您好,  [请登录] [QQ登录]  [支付宝登录[免费注册]

商品分类

分享到: 百度搜藏 搜狐微博 新浪微博 腾讯微博 QQ收藏 人人网 Facebook Twitter

Linux利用体系的内核编译黑幕详解

发布日期:2011-04-27


    内核,是一个利用体系的内核。它认真办理体系的进程、内存、配置驱动步调、文件和网络体系,决定着体系的性能和稳固性。
  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利用者的须要利用内容。

    为了正确的公平地设置内核编译配置选项,从而只编译体系须要的结果的代码,一样通常紧张有下面四个思量: 

    本身定制编译的内核运行更快