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