Linux 编译内核详解
内核简介
内核,是一个操作系统的核心。它负责管理系统的进程、内存、设备驱动程序、文件和
网络系统,决定着系统的性能和稳定性。
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.2.16,最新发布的 Redhat7.0 所采用的就是 2.2.16
的内核;开发树的最新版本是 2.3.99。也许你已经发现和多网站上都有 2.4.0-test9-pre7 之类
的内核,但是这并不是正式版本。内核版本的更新可以访问 http://www.kernel.org/。
为什么重新编译内核
Linux 作为一个自由软件,在广大爱好者的支持下,内核版本不断更新。新的内核修订
了旧内核的 bug,并增加了许多新的特性。如果用户想要使用这些新特性,或想根据自己的
系统度身定制一个更高效,更稳定的内核,就需要重新编译内核。
通常,更新的内核会支持更多的硬件,具备更好的进程管理能力,运行速度更快、 更
稳定,并且一般会修复老版本中发现的许多漏洞等,经常性地选择升级更新的系统内核是
Linux 使用者
的必要操作内容。
为了正确的合理地设置内核编译配置选项,从而只编译系统需要的功能的代码,一般主
要有下面四个考虑:
l 自己定制编译的内核运行更快(具有更少的代码)
评论5