Linux操作系統(tǒng)的內(nèi)核之多方面解說(shuō)
內(nèi)核簡(jiǎn)介
內(nèi)核,是一個(gè)操作系統(tǒng)的核心。它負(fù)責(zé)管理系統(tǒng)的進(jìn)程、內(nèi)存、設(shè)備驅(qū)動(dòng)程序、文件和網(wǎng)絡(luò)系統(tǒng),決定著系統(tǒng)的性能和穩(wěn)定性。
Linux的一個(gè)重要的特點(diǎn)就是其源代碼的公開(kāi)性,所有的內(nèi)核源程序都可以在/usr/src/linux下找到,大部分應(yīng)用軟件也都是遵循GPL而設(shè)計(jì)的,你都可以獲取相應(yīng)的源程序代碼。
全世界任何一個(gè)軟件工程師都可以將自己認(rèn)為優(yōu)秀的代碼加入到其中,由此引發(fā)的一個(gè)明顯的好處就是Linux修補(bǔ)漏洞的快速以及對(duì)最新軟件技術(shù)的利用。而Linux的內(nèi)核則是這些特點(diǎn)的最直接的代表。
想象一下,擁有了內(nèi)核的源程序?qū)δ銇?lái)說(shuō)意味著什么?首先,我們可以了解系統(tǒng)是如何工作的。通過(guò)通讀源代碼,我們就可以了解系統(tǒng)的工作原理,這在Windows下簡(jiǎn)直是天方夜譚。其次,我們可以針對(duì)自己的情況,量體裁衣,定制適合自己的系統(tǒng),這樣就需要重新編譯內(nèi)核。
在Windows下是什么情況呢?相信很多人都被越來(lái)越龐大的Windows整得莫名其妙過(guò)。再次,我們可以對(duì)內(nèi)核進(jìn)行修改,以符合自己的需?U庖馕蹲攀裁矗棵淮恚嗟庇謐約嚎⒘艘桓霾僮饗低常譴蟛糠值墓ぷ饕丫齪昧耍闥齙木褪且黽硬⑹迪腫約盒枰墓δ堋T赪indows下,除非你是微軟的核心技術(shù)人員,否則就不用癡心妄想了。
內(nèi)核版本號(hào)
由于Linux的源程序是完全公開(kāi)的,任何人只要遵循GPL,就可以對(duì)內(nèi)核加以修改并發(fā)布給他人使用。Linux的開(kāi)發(fā)采用的是集市模型(bazaar,與cathedral--教堂模型--對(duì)應(yīng)),為了確保這些無(wú)序的開(kāi)發(fā)過(guò)程能夠有序地進(jìn)行,Linux采用了雙樹(shù)系統(tǒng)。
一個(gè)樹(shù)是穩(wěn)定樹(shù)(stable tree),另一個(gè)樹(shù)是非穩(wěn)定樹(shù)(unstable tree)或者開(kāi)發(fā)樹(shù)(development tree)。一些新特性、實(shí)驗(yàn)性改進(jìn)等都將首先在開(kāi)發(fā)樹(shù)中進(jìn)行。如果在開(kāi)發(fā)樹(shù)中所做的改進(jìn)也可以應(yīng)用于穩(wěn)定樹(shù),那么在開(kāi)發(fā)樹(shù)中經(jīng)過(guò)測(cè)試以后,在穩(wěn)定樹(shù)中將進(jìn)行相同的改進(jìn)。一旦開(kāi)發(fā)樹(shù)經(jīng)過(guò)了足夠的發(fā)展,開(kāi)發(fā)樹(shù)就會(huì)成為新的穩(wěn)定樹(shù)。
開(kāi)發(fā)數(shù)就體現(xiàn)在源程序的版本號(hào)中;源程序版本號(hào)的形式為x.y.z:對(duì)于穩(wěn)定樹(shù)來(lái)說(shuō),y是偶數(shù);對(duì)于開(kāi)發(fā)樹(shù)來(lái)說(shuō),y比相應(yīng)的穩(wěn)定樹(shù)大一(因此,是奇數(shù))。到目前為止,穩(wěn)定樹(shù)的最高版本是2.2.16,最新發(fā)布的Redhat7.0所采用的就是2.2.16的內(nèi)核;開(kāi)發(fā)樹(shù)的最新版本是2.3.99。也許你已經(jīng)發(fā)現(xiàn)和多網(wǎng)站上都有2.4.0-test9-pre7之類(lèi)的內(nèi)核,但是這并不是正式版本。內(nèi)核版本的更新可以訪問(wèn)http://www.kernel.org。
為什么編譯內(nèi)核
Linux作為一個(gè)自由軟件,在廣大愛(ài)好者的支持下,內(nèi)核版本不斷更新。新的內(nèi)核修訂了舊內(nèi)核的bug,并增加了許多新的特性。如果用戶想要使用這些新特性,或想根據(jù)自己的系統(tǒng)度身定制一個(gè)更高效,更穩(wěn)定的內(nèi)核,就需要重新編譯內(nèi)核。
通常,更新的內(nèi)核會(huì)支持更多的硬件,具備更好的進(jìn)程管理能力,運(yùn)行速度更快、 更穩(wěn)定,并且一般會(huì)修復(fù)老版本中發(fā)現(xiàn)的許多漏洞等,經(jīng)常性地選擇升級(jí)更新的系統(tǒng)內(nèi)核是Linux使用者的必要操作內(nèi)容。
為了正確的合理地設(shè)置內(nèi)核編譯配置選項(xiàng),從而只編譯系統(tǒng)需要的功能的代碼,一般主要有下面四個(gè)考慮:
自己定制編譯的內(nèi)核運(yùn)行更快(具有更少的代碼)
系統(tǒng)將擁有更多的內(nèi)存(內(nèi)核部分將不會(huì)被交換到虛擬內(nèi)存中)
不需要的功能編譯進(jìn)入內(nèi)核可能會(huì)增加被系統(tǒng)攻擊者利用的漏洞
將某種功能編譯為模塊方式會(huì)比編譯到內(nèi)核內(nèi)的方式速度要慢一些
通過(guò)上文我們知道了什么是內(nèi)核、內(nèi)核版本號(hào)是怎么的、為什么要編譯內(nèi)核。希望對(duì)大家有所幫助。
【編輯推薦】
- Linux內(nèi)核修煉寶典
- 2010年度報(bào)告:是誰(shuí)在編寫(xiě)Linux內(nèi)核?
- Linux內(nèi)核編譯之高手教程
- Linux內(nèi)核入門(mén),包教會(huì)
- Linux之父動(dòng)手修改Linux內(nèi)核古老Bug(附下載)
- 五年26個(gè)版本!Linux內(nèi)核版本的“武林大會(huì)”
- SELinux簡(jiǎn)介:Linux內(nèi)核安全