ubuntu内核开发?ubuntu切换内核版本

今天给各位分享ubuntu内核开发的知识,其中也会对ubuntu切换内核版本进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

Ubuntu和Linux是什么关系

Ubuntu(友帮拓、优般图、乌班图)是一个以桌面应用为主的开源Linux操作系统,Ubuntu是基于Linux,支持x86、amd64(即x64)和ppc架构,由全球化的专业开发团队(Canonical Ltd)打造的。

Linux参照UNIX发展而来的,源码完全不同。红旗Linux、Ubuntu都是Linux的发行版,基于Linux核心内容增加一些更易使用的功能。

Unix于1969年由贝尔实验室开发出来,使用至今已变更了很多个版本。目前主流的Unix系统有三种,分别是AIX、HP-UX、Solaris,这些Unix系统互不兼容。Unix是商业软件,大多是与硬件配套的。

Linux于1991年由芬兰大学生Linus开发出来,是一个类Unix系统,但是其代码不源自任何Unix版本,完全不是Unix的一个分支,而是一个开源版的模仿。Linux是自由软件,免费、公开源代码的,比Unix容易掌握。

扩展资料

linux主要特性

1、基本思想

Linux的基本思想有两点:第一,一切都是文件;第二,每个软件都有确定的用途。

其中第一条详细来讲就是系统中的所有都归结为一个文件,包括命令、硬件和软件设备、操作系统、进程等等对于操作系统内核而言,都被视为拥有各自特性或类型的文件。至于说Linux是基于Unix的,很大程度上也是因为这两者的基本思想十分相近。

2、完全免费

Linux是一款免费的操作系统,用户可以通过网络或其他途径免费获得,并可以任意修改其源代码。这是其他的操作系统所做不到的。正是由于这一点,来自全世界的无数程序员参与了Linux的修改、编写工作,程序员可以根据自己的兴趣和灵感对其进行改变,这让Linux吸收了无数程序员的精华,不断壮大。

3、完全兼容POSIX1.0标准

这使得可以在Linux下通过相应的模拟器运行常见的DOS、Windows的程序。这为用户从Windows转到Linux奠定了基础。许多用户在考虑使用Linux时,就想到以前在Windows下常见的程序是否能正常运行,这一点就消除了他们的疑虑。

4、多用户、多任务

Linux支持多用户,各个用户对于自己的文件设备有自己特殊的权利,保证了各用户之间互不影响。多任务则是现在电脑最主要的一个特点,Linux可以使多个程序同时并独立地运行。

5、良好的界面

Linux同时具有字符界面和图形界面。在字符界面用户可以通过键盘输入相应的指令来进行操作。它同时也提供了类似Windows图形界面的X-Window系统,用户可以使用鼠标对其进行操作。在X-Window环境中就和在Windows中相似,可以说是一个Linux版的Windows。

6、支持多种平台

Linux可以运行在多种硬件平台上,如具有x86、680x0、SPARC、Alpha等处理器的平台。此外Linux还是一种嵌入式操作系统,可以运行在掌上电脑、机顶盒或游戏机上。

2001年1月份发布的Linux 2.4版内核已经能够完全支持Intel64位芯片架构。同时Linux也支持多处理器技术。多个处理器同时工作,使系统性能大大提高。

参考资料来源:百度百科—Ubuntu

参考资料来源:百度百科—Linux

ubuntu和linux的区别

Linux和Ubuntu的区别:

Linux内核是操作系统的核心,相当于一个引擎。

Linux操作系统基于Linus Torvalds制作的内核。

默认安装的Ubuntu有各种各样的软件,比如Firefox和几个轻量级游戏。

Linux发行版有Fedora,Debian等等。

诞生与定位

Ubuntu Linux是由南非人马克·沙特尔沃思(Mark Shuttleworth)创办的基于Debian Linux的操作系统,于2004年10月公布Ubuntu的第一个版本(Ubuntu 4.10“Warty Warthog”)。

Ubuntu适用于笔记本电脑、桌面电脑和服务器,特别是为桌面用户提供尽善尽美的使用体验。

Ubuntu几乎包含了所有常用的应用软件:文字处理、电子邮件、软件开发工具和Web服务等。用户下载、使用、分享Ubuntu系统,以及获得技术支持与服务,无需支付任何许可费用。

Ubuntu提供了一个健壮、功能丰富的计算环境,既适合家庭使用又适用于商业环境。Ubuntu社区承诺每6个月发布一个新版本,以提供最新最强大的软件。

在Ubuntu上做内核编程,要安装哪个包怎么做

1、gcc(C编译器)

安装 apt-get install gcc

2、make(源代码维护工具,它能自动检测出需要重新编译的源文件并根据你设定的编译规则去重新编译程序)

安装 apt-get install make

3.kernel-source(内核源码包。你可以apt-cache search kernel-source搜索到内核源代码包,并用uname-r命令查看到当前系统内核版本,然后用apt-get install kernel-source-xxxx来安装和你内核版本一致的内核源代码包)

如果你不想重新编译内核,内核源代码包kernel-source是完全可以不下载的。

4.kernel-headers(内核源代码头文件包,不管你是要进行内核模块开发还是进行驱动程序开发,这个包都是必须要安装的。因为作为一个内核模块编写者,通常会调用内核里的一些东西,比如内核头文件,内核数据结构申明等。它里面包含了一些关键的内核头文件)

安装 apt-cache search kernel-headers

uname-r

apt-get instakk kernel-headers-xxxx

5.kernel-kbuild(用来编译内核模块的,下载安装这个包后会发现在/usr/src目录下多了一个kernel-kbuild-xxxx开头的目录,下面只有scripts一个目录,这是用来编译内核模块的一些脚本程序)

安装 apt-cache search kernel-kbuild

uname-r

apt-get install kernel-kbuild-xxxx

6.build-essential(包含一个在建立deb包过程中起关键作用的包的信息列表,如果你不想建立deb包你就不需要安装此表)

安装 apt-get install build-essential

7.kernel-package(如果你想把内核镜像做成一个deb包来用,那么必须用安装这个包了)

安装 apt-get install kernel-package

8.initrd-tools(如果你想制作启动过程的initrd镜像,则这个包是必不可少的)

安装 apt-get instakk initrd-tools

假设你编写了一个内核模块程序,源代码如下:

/* hello.c*/

#include<linux/init.h>

#include<linux/module.h>

#include<linux/kernel.h>

static int hello_init(void)

{

printk(KERN_ALERT"Hello, linux kernel module

");

return 0;

}

static void hello_exit(void)

{

printk(KERN_ALERT"Goodbye, I've created a linux kernel module sucessfully

");

}

module_init(hello_init);

module_exit(hello_exit);

MODULE_LICENSE("GPL");

你需要这此源程序编写一个makefile,内容如下:

#Makefile for hello.c file

#

KERNEL_DIR:=/usr/src/linux

obj-m:=hello.o

default:

$(MAKE)-C$(KERNEL_DIR) SUBDIRS=$(PWD) modules

clean:

$(RM).*.cmd*.mod.c*.o*.ko-r.tmp

注意:这里的KERNEL_DIR是指内核源代码头文件所在目录的上一级目录,通常就是指内核源代码目录。该目录一般包括有arch,drivers,fs,include,init,ipc,kernel,lib,mm,net,scripts,usr,sound,security等目录。

在本示例中,/usr/src/linux是一个链接,指向了/usr/src/kernel-headers-2.6.8-3目录。

编写好makefile后就可以输入make命令生成hello.ko内核模块了,然后你可以用:

insmode hello.ko

命令来加入内核模块,然后用:

rmmod hello

来删除内核模块。

阅读剩余
THE END