MINIX 3承諾比Windows或Linux更安全
阿姆斯特丹Vrije大學(xué)的計(jì)算機(jī)科學(xué)教授Andrew S. Tanenbaum正領(lǐng)導(dǎo)著一個(gè)開(kāi)發(fā)MINIX 3操作系統(tǒng)的項(xiàng)目,MINIX 3的目標(biāo)是比Windows或Linux更安全。
在他那份獲得歐盟研究委員會(huì)(European Research Council)5年250萬(wàn)歐元資助的研究計(jì)劃書(shū)里,Tanenbaum解釋了為何他認(rèn)為現(xiàn)有的操作系統(tǒng)不安全:
最嚴(yán)重的可靠性及安全問(wèn)題是與操作系統(tǒng)相關(guān)的那些。核心問(wèn)題在于現(xiàn)有操作系統(tǒng)都不符合POLA——***授權(quán)原則(Principle OfLeastAuthority)。POLA說(shuō)的是系統(tǒng)劃分組件的方式,應(yīng)當(dāng)使必然存在于某個(gè)組件中的缺陷,不至于波及其他組件。每個(gè)組件僅應(yīng)該得到完成它本身工作所需的權(quán)限,不多不少。具體來(lái)說(shuō),它應(yīng)該無(wú)權(quán)讀寫(xiě)屬于其他組件的數(shù)據(jù),無(wú)權(quán)讀取它自身地址空間之外的任何計(jì)算機(jī)內(nèi)存,無(wú)權(quán)執(zhí)行與它無(wú)關(guān)的敏感操作指令,無(wú)權(quán)訪問(wèn)不該訪問(wèn)的I/O設(shè)備,諸如此類。現(xiàn)有操作系統(tǒng)完全違反以上原則,結(jié)果就是造成眾多可靠性及安全問(wèn)題。
Tanenbaum認(rèn)為設(shè)備驅(qū)動(dòng)程序是主要的肇事者:
典型的操作系統(tǒng)代碼中大約有70%屬于設(shè)備驅(qū)動(dòng)代碼。我們知道設(shè)備驅(qū)動(dòng)部分的每行缺陷數(shù)量是其他部分的3到7倍。有據(jù)可查63%到85%的Windows XP崩潰根源是驅(qū)動(dòng)錯(cuò)誤,Linux的情況也沒(méi)什么理由會(huì)不一樣。
MINIX的操作系統(tǒng)架構(gòu)稍有不同:
Tanenbaum指出其中的主要區(qū)別是令設(shè)備驅(qū)動(dòng)運(yùn)行在用戶態(tài)能提高安全性:
設(shè)備驅(qū)動(dòng)處于內(nèi)核之上,運(yùn)行在用戶態(tài)。每個(gè)驅(qū)動(dòng)都作為單獨(dú)的進(jìn)程運(yùn)行,受到內(nèi)存管理硬件的嚴(yán)格約束,只能訪問(wèn)自己擁有的內(nèi)存。設(shè)備驅(qū)動(dòng)需要執(zhí)行I/O操作的時(shí)候向微內(nèi)核發(fā)出調(diào)用以獲得服務(wù)(比如向物理設(shè)備發(fā)出指令)。微內(nèi)核在執(zhí)行任何調(diào)用之前,首先會(huì)檢查該調(diào)用是否被許可。因此從聲音驅(qū)動(dòng)發(fā)出控制聲卡的調(diào)用會(huì)被接受,而從聲音驅(qū)動(dòng)發(fā)出控制硬盤(pán)的調(diào)用會(huì)被拒絕。
總體目標(biāo)是:
……將操作系統(tǒng)的結(jié)構(gòu)重新組織為一個(gè)運(yùn)行于內(nèi)核態(tài)的微內(nèi)核,外加若干用戶進(jìn)程去完成真正的操作系統(tǒng)任務(wù)。盡管一個(gè)微內(nèi)核離完整的操作系統(tǒng)還很遠(yuǎn),但這樣的設(shè)計(jì)達(dá)到了我們的主要目標(biāo)。我們的目標(biāo)是將大部分操作系統(tǒng)代碼移出到用戶空間,這樣我們就能將之劃分成進(jìn)程并阻止它們執(zhí)行“危險(xiǎn)”(控制)指令,內(nèi)存管理硬件也能防止進(jìn)程訪問(wèn)自身所屬以外的內(nèi)存。
目前MINIX 3的版本是3.1.3a版,它的主要特性包括:
符合POSIX
TCP/IP網(wǎng)絡(luò)
X Window系統(tǒng)
語(yǔ)言支持包括cc、gcc、g++、perl、python等等
超過(guò)650個(gè)UNIX程序
完全支持多用戶和multiprogramming多任務(wù)
設(shè)備驅(qū)動(dòng)作為用戶進(jìn)程運(yùn)行
高度容錯(cuò)
提供完整的C源代碼。
由于MINIX實(shí)現(xiàn)了POSIX標(biāo)準(zhǔn),大多數(shù)UNIX程序只要細(xì)微修改或無(wú)需修改就能在上面運(yùn)行。該項(xiàng)目進(jìn)入了Google’s Summer of Code 2008,還設(shè)立了相應(yīng)的MINIX討論組。
【編輯推薦】