Linux操作系统的内核之多方面解说

系统 Linux
Linux是一个内核。“内核”指的是一个提供硬件抽象层、磁盘及文件系统控制、多任务等功能的系统软件。一个内核不是一套完整的操作系统。一套基于Linux内核的完整操作系统叫作Linux操作系统,或是GNU/Linux。本文就内核展开话题,进行深一步剖析。

  内核简介

  内核,是一个操作系统的核心。它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。

  Linux的一个重要的特点就是其源代码的公开性,所有的内核源程序都可以在/usr/src/linux下找到,大部分应用软件也都是遵循GPL而设计的,你都可以获取相应的源程序代码。

  全世界任何一个软件工程师都可以将自己认为优秀的代码加入到其中,由此引发的一个明显的好处就是Linux修补漏洞的快速以及对最新软件技术的利用。而Linux的内核则是这些特点的最直接的代表。

  想象一下,拥有了内核的源程序对你来说意味着什么?首先,我们可以了解系统是如何工作的。通过通读源代码,我们就可以了解系统的工作原理,这在Windows下简直是天方夜谭。其次,我们可以针对自己的情况,量体裁衣,定制适合自己的系统,这样就需要重新编译内核。

  在Windows下是什么情况呢?相信很多人都被越来越庞大的Windows整得莫名其妙过。再次,我们可以对内核进行修改,以符合自己的需?U庖馕蹲攀裁矗棵淮恚嗟庇谧约嚎⒘艘桓霾僮飨低常谴蟛糠值墓ぷ饕丫龊昧耍闼龅木褪且黾硬⑹迪肿约盒枰墓δ堋T赪indows下,除非你是微软的核心技术人员,否则就不用痴心妄想了。

  内核版本号

  由于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使用者的必要操作内容。

  为了正确的合理地设置内核编译配置选项,从而只编译系统需要的功能的代码,一般主要有下面四个考虑:

  自己定制编译的内核运行更快(具有更少的代码)

  系统将拥有更多的内存(内核部分将不会被交换到虚拟内存中)

  不需要的功能编译进入内核可能会增加被系统攻击者利用的漏洞

  将某种功能编译为模块方式会比编译到内核内的方式速度要慢一些

通过上文我们知道了什么是内核、内核版本号是怎么的、为什么要编译内核。希望对大家有所帮助。

【编辑推荐】

 

责任编辑:赵鹏 来源: 互联网
相关推荐

2010-09-17 12:38:07

2009-09-14 13:25:08

LINQ多方面探讨

2012-07-24 11:42:32

Python

2010-09-02 10:32:41

2011-04-18 17:30:04

开源iPhoneAndroid

2011-01-14 16:23:46

Linux内核

2011-05-04 17:32:15

2010-04-19 13:08:35

Unix操作系统

2020-03-01 22:07:38

信息泄露数据安全

2009-05-08 15:16:09

PHP 5.3.0测试发布

2009-12-17 18:19:12

Linux操作系统

2010-04-13 13:02:43

Unix操作系统

2009-07-03 10:04:04

JSP ASPJSP ASP区别

2011-01-04 18:15:21

2010-01-06 10:37:55

Ubuntu操作系统

2009-06-19 20:32:00

Linux

2009-09-01 09:14:42

2009-02-17 16:07:29

Linux操作系统内核启动参数

2011-01-14 16:51:44

Linux内核

2015-10-26 14:49:21

物联网物联网集成
点赞
收藏

51CTO技术栈公众号