一、内核简介
内核,是个操作系统的核心。他负责管理系统的进程、内存、设备驱动程式、文档和网络系统,决定着系统的性能和稳定性。
linux的一个重要的特点就是其源代码的公开性,任何的内核源程式都能够在/usr/src/linux下找到,大部分应用软件也都是遵循GPL而设计
的,您都能够获取相应的源程式代码。全世界任何一个软件工程师都能够将自己认为优秀的代码加入到其中,由此引发的一个明显的好处就是Linux修补漏洞的
快速连同对最新软件技术的利用。而Linux的内核则是这些特点的最直接的代表。
想象一下,拥有了内核的源程式对您来说意味着什么?首先,我
们能够了解系统是如何工作的。通过通读源代码,我们就能够了解系统的工作原理,这在
Windows下简直是天方夜谭。其次,我们能够针对自己的情况,量体裁衣,定制适合自己的系统,这样就需要重新编译内核。在Windows下是什么情况
呢?相信很多人都被越来越庞大的Windows整得莫名其妙过。再次,我们能够对内核进行修改,以符合自己的需要。这意味着什么?没错,相当于自己研发了
一个操作系统,但是大部分的工作已做好了,您所要做的就是要增加并实现自己需要的功能。在Windows下,除非您是微软的核心技术人员,否则就不用痴
心妄想了。
二、内核版本号
由于linux的源程式是完全公开的,任何人只要遵循GPL,就能够对内核加以修改并发布
给他人使用。Linux的研发采用的是集市模型(bazaar,和cathedral--教堂模型--对应),为了确保这些无序的研发过程能够有序地进
行,Linux采用了双树系统。一个树是稳定树(stable tree),另一个树是非稳定树(unstable
tree)或研发树(development
tree)。一些新特性、实验性改进等都将首先在研发树中进行。假如在研发树中所做的改进也能够应用于稳定树,那么在研发树中经过测试以后,在稳定树中将
进行相同的改进。一旦研发树经过了足够的发展,研发树就会成为新的稳定树。研发数就体现在源程式的版本号中;源程式版本号的形式为x.y.z:对于稳定树
来说,y是偶数;对于研发树来说,y比相应的稳定树大一(因此,是奇数)。到现在为止,稳定树的最高版本是2.4.18;研发树的最新版本是
2.5.10。下载内核版本请访问http://www.kernel.org。
三、为什么重新编译内核
linux作为一个免费软件,在广大爱好者的支持下,内核版本不断更新。新的内核修订了旧内核的bug,并增加了许多新的特性。假如用户想要使用这些新特性,或想根据自己的系统度身定制一个更高效,更稳定的内核,就需要重新编译内核。
通常,更新的内核会支持更多的硬件,具备更好的进程管理能力,运行速度更快、 更稳定,并且一般会修复老版本中发现的许多漏洞等,经常性地选择升级更新的系统内核是linux使用者的必要操作内容。
为了正确的合理地配置内核编译配置选项,从而只编译系统需要的功能的代码,一般主要有下面四个考虑:
l 自己定制编译的内核运行更快(具备更少的代码)
l 系统将拥有更多的内存(内核部分将不会被交换到虚拟内存中)
l 无需的功能编译进入内核可能会增加被系统攻击者利用的漏洞
l 将某种功能编译为模块方式会比编译到内核内的方式速度要慢一些
四、内核编译模式
要增加对某部分功能的支持,比如网络之类,能够把相应部分编译到内核中(build-in),也能够把该部分编译成模块(module),动态调用。如
果编译到内核中,在内核启动时就能够自动支持相应部分的功能,这样的长处是方便、速度快,机器一启动,您就能够使用这部分功能了;缺点是会使内核变得庞大
起来,不管您是否需要这部分功能,他都会存在,这就是Windows惯用的招数,建议经常使用的部分直接编译到内核中,比如网卡。假如编译成模块,就会生
成对应的.o文档,在使用的时候能够动态加载,长处是不会使内核过分庞大,缺点是您得自己来调用这些模块。
五、新版本内核的获取和更新
linux内核版本发布的官方网站是http://www.kernel.org。新版本的内核...问剑恢质荈ull
Source版本,另外一种是patch文档,即补丁。完整的内核版本比较大,一般是tar.gz或是.bz2文档,二者分别是使用gzip或
bzip2进行压缩的文档,使用时需要解压缩。patch文档则比较小,一般只有几十K到几百K,但是patch文档是针对于特定的版本的,您需要找到自
己对应的版本才能使用。
编译内核需要root权限,以下操作都假定您是root用户。请把您需要升级的内核拷贝到/usr/src/下(下文中以2.4.18的内核的linux-2.4.18.tar.gz为例),命令为#cp linux-2.4.18.tar.gz /usr/src
让我们先来查看一下当前/usr/src的内容,注意到有一个linux-2.4的符号链接,指向一个linux-2.4.7-10(以REDHAT7.2为例)的目录。这就是您所装linux的kernel源代码,删除这个链接。
现在解压我们下载的源程式文档。假如所下载的是.tar.gz(.tgz)文档,请使用下面的命令:#tar -zxvf linux-2.4.18.tar.gz.tar.gz
假如您所下载的是.bz2文档,例如linux-2.4.0test8.tar.bz2,请使用下面的命令#bzip2 -d linux-2.4.18.tar.bz2
#tar -xvf linux-2.4.18.tar
文档将解压到/usr/src/linux目录中,我们把他稍作修改:
linux内核编译详解
来源:互联网
作者:west263.com
时间:2008-04-16
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!
linux内核编译详解 [本文最初由solaris发布]



