微內(nèi)核是什么?宏內(nèi)核是什么?一文帶你了解操作系統(tǒng)內(nèi)核架構(gòu)

導(dǎo)讀:近年來(lái),我國(guó)自主研發(fā)操作系統(tǒng)被反復(fù)提及。近期,一個(gè)計(jì)算機(jī)領(lǐng)域內(nèi)非常專業(yè)的詞來(lái)到了幾乎所有人的視線內(nèi),這就是——微內(nèi)核。人們對(duì)操作系統(tǒng)內(nèi)核的討論越來(lái)越熱烈,甚至有人說(shuō)我不懂什么叫微內(nèi)核,什么是宏內(nèi)核,接下來(lái)本文將帶領(lǐng)大家了解操作系統(tǒng)內(nèi)核架構(gòu),微內(nèi)核與宏內(nèi)核到底孰優(yōu)孰劣?
作者:陳海波 夏虞斌 等
來(lái)源:華章計(jì)算機(jī)(ID:hzbook_jsj)





小知識(shí):最早的微內(nèi)核操作系統(tǒng) 一些讀者可能認(rèn)為微內(nèi)核架構(gòu)是一個(gè)比較新的設(shè)計(jì)。事實(shí)上,早在1969年,UNIX系統(tǒng)開(kāi)始設(shè)計(jì)的時(shí)候,類似微內(nèi)核架構(gòu)的操作系統(tǒng)就已經(jīng)出現(xiàn)。Per Brinch Hansen開(kāi)發(fā)的RC 4000多路編程系統(tǒng)在歷史上第一次將操作系統(tǒng)的組件分離為各個(gè)相互交互的功能組件,以及一個(gè)負(fù)責(zé)消息通信的內(nèi)核。Per Brinch Hansen在RC 4000中也首次提出了分離機(jī)制與策略的原則,以及管程(Monitor)這個(gè)概念。
彈性擴(kuò)展能力:對(duì)于一個(gè)宏內(nèi)核來(lái)說(shuō),很難僅僅通過(guò)簡(jiǎn)單的裁剪或擴(kuò)展,使其支持資源訴求從KB到TB級(jí)別的場(chǎng)景。 硬件異構(gòu)性:異構(gòu)硬件往往需要一些定制化的方式來(lái)解決特定問(wèn)題,這種定制化對(duì)于宏內(nèi)核來(lái)說(shuō)很難得到長(zhǎng)期的支持。 功能安全:由于宏內(nèi)核在故障隔離和時(shí)延控制等方面的缺陷,截至目前尚無(wú)通過(guò)高等級(jí)功能安全認(rèn)證(例如,汽車行業(yè)的ASIL-D)的先例。 信息安全:宏內(nèi)核架構(gòu)的操作系統(tǒng)存在較大的信息安全隱患,例如內(nèi)核態(tài)驅(qū)動(dòng)容易導(dǎo)致低質(zhì)量的驅(qū)動(dòng)代碼入侵內(nèi)核,粗粒度權(quán)限管理容易帶來(lái)權(quán)限漏洞等。 確定性時(shí)延:由于宏內(nèi)核架構(gòu)資源隔離較為困難,且各模塊耦合度高導(dǎo)致難以控制系統(tǒng)調(diào)用的時(shí)延,因此較難做到確定性時(shí)延;即便為時(shí)延做一些特定優(yōu)化(例如Linux-RT補(bǔ)丁),時(shí)延抖動(dòng)仍然較大。
小思考:小的操作系統(tǒng)內(nèi)核就是微內(nèi)核嗎? 不是。有一些操作系統(tǒng)內(nèi)核(如FreeRTOS、uCOS-II等)雖然很小,但是不具備現(xiàn)代意義上的操作系統(tǒng)功能,包括虛擬內(nèi)存、用戶態(tài)和內(nèi)核態(tài)分離等。因此它們應(yīng)該被歸為本章提到的簡(jiǎn)要結(jié)構(gòu)內(nèi)核。

評(píng)論
圖片
表情
