日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

Linux 內(nèi)核的類型( 二 )


從眾多思想中抽取出來的 。簡單說來,事實是Linux內(nèi)核既不是嚴(yán)格層次化的,也不是嚴(yán)
格模塊化的,也不是嚴(yán)格意義上的任何類型,而是以實用為主要依據(jù)的(實際上,如果要
用一個詞來概括Linux從設(shè)計到實現(xiàn)的所有特點,那么實用就是最確切的) 。也許最保守
的觀點是內(nèi)核的實現(xiàn)是模塊化的,雖然這些模塊有時會為了追求速度而有意跨越模塊的界
限 。
這樣,Linux的設(shè)計同時兼顧了理論和實際 。Linux并沒有忽視設(shè)計方法;相反,在Linux
的開發(fā)基本思想中,設(shè)計方法的作用就像是編譯器:它是完成工作的有力工具 。選擇一個
基本的設(shè)計原則(例如對象)并完全使用這種原則,不允許有任何例外,這對于測試該原
則的限制,或者構(gòu)建以說明這些方法為目的的教學(xué)系統(tǒng)來說都是一個不錯的方法 。但是如
果要用它來達(dá)到Linux的設(shè)計目標(biāo)則會引起許多問題 。而且Linux的設(shè)計目標(biāo)中也并不包括
要使內(nèi)核成為一個完全純化的系統(tǒng) 。Linux開發(fā)者為了達(dá)到設(shè)計目標(biāo)寧愿違背妨礙目標(biāo)實
現(xiàn)的原則 。
實際上,如果對于Linux來說是正確的,那么它們對于所有最成功的設(shè)計來說都是正確的
。最成功、應(yīng)用最廣泛的實際系統(tǒng)必然是實用的系統(tǒng) 。有些開發(fā)人員試圖尋找功能強(qiáng)大的
可以解決所有問題的特殊方法 。他們一旦找到了這種方法,所有的問題就都迎刃而解了 。
像Linux內(nèi)核一樣的成功設(shè)計通常需要為系統(tǒng)的不同部分和描述上的不同層次使用不同的
方法 。這樣做的結(jié)果可能不是很清晰,也不是很純粹,但是這種混合產(chǎn)物比同等功能的純
粹系統(tǒng)要強(qiáng)大而且優(yōu)秀得多 。
Linux大部分都是單內(nèi)核的
操作系統(tǒng)內(nèi)核可能是微內(nèi)核,也可能是單內(nèi)核(后者有時稱之為宏內(nèi)核Macrokernel) 。
按照類似封裝的形式,這些術(shù)語定義如下:
* 微內(nèi)核(microkernel)—在微內(nèi)核中,大部分內(nèi)核都作為獨立的進(jìn)程在特權(quán)狀態(tài)下運(yùn)
行,它們通過消息傳遞進(jìn)行通訊 。在典型情況下,每個概念模塊都有一個進(jìn)程 。因此,如
果在設(shè)計中有一個系統(tǒng)調(diào)用模塊,那么就必然有一個相應(yīng)的進(jìn)程來接收系統(tǒng)調(diào)用,并和能
夠執(zhí)行系統(tǒng)調(diào)用的其他進(jìn)程(或模塊)通訊以完成所需任務(wù) 。
在這些設(shè)計中,微內(nèi)核部分經(jīng)常只不過是一個消息轉(zhuǎn)發(fā)站:當(dāng)系統(tǒng)調(diào)用模塊要給文件系統(tǒng)
模塊發(fā)送消息時,消息直接通過內(nèi)核轉(zhuǎn)發(fā) 。這種方式有助于實現(xiàn)模塊間的隔離(某些時候
,模塊也可以直接給其他模塊傳遞消息) 。在一些微內(nèi)核的設(shè)計中,更多的功能,如I/O
等,也都被封裝在內(nèi)核中了 。但是最根本的思想還是要保持微內(nèi)核盡量小,這樣只需要把
微內(nèi)核本身進(jìn)行移植就可以完成將整個內(nèi)核移植到新的平臺上 。其他模塊都只依賴于微內(nèi)
核或其他模塊,并不直接直接依賴硬件 。
微內(nèi)核設(shè)計的一個優(yōu)點是在不影響系統(tǒng)其他部分的情況下,用更高效的實現(xiàn)代替現(xiàn)有文件
系統(tǒng)模塊將會更加容易 。我們甚至可以在系統(tǒng)運(yùn)行時將開發(fā)出的新系統(tǒng)模塊或者需要替換
現(xiàn)有模塊的模塊直接而迅速地加入系統(tǒng) 。另外一個優(yōu)點是不需要的模塊將不會被加載到內(nèi)
存中,因此,微內(nèi)核就可以更有效地利用內(nèi)存 。
* 單內(nèi)核(monolithic kernel)—單內(nèi)核是一個很大的進(jìn)程 。它的內(nèi)部又可以被分為若
干模塊(或者是層次或其他) 。但是在運(yùn)行的時候,它是一個獨立的二進(jìn)制大映象 。其模
塊間的通訊是通過直接調(diào)用其他模塊中的函數(shù)實現(xiàn)的,而不是消息傳遞 。
單內(nèi)核的支持者聲稱微內(nèi)核的消息傳遞開銷引起了效率的損失 。微內(nèi)核的支持者則認(rèn)為因

推薦閱讀