小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

阿里面試官:說說操作系統(tǒng)微內(nèi)核和Dubbo微內(nèi)核?

 Laterede0fo33i 2021-01-31

這個詞條歸類在操作系統(tǒng)技術(shù)下,所以這里的微內(nèi)核指的就是操作系統(tǒng)的內(nèi)核設(shè)計,與之對應(yīng)的是宏內(nèi)核架構(gòu)。

Linux 就是宏內(nèi)核架構(gòu)。

操作系統(tǒng)我們都知道它是一個中間層,為我們管理底層的硬件資源,為上層服務(wù)提供接口。

提供進(jìn)程管理、內(nèi)存管理、文件系統(tǒng)、進(jìn)程通信等功能。

Linux 這樣的宏內(nèi)核設(shè)計是把這些功能都作為內(nèi)核來實現(xiàn),而微內(nèi)核則僅保留最基礎(chǔ)的功能。

比如就留下進(jìn)程的管理、內(nèi)存管理等,把文件管理等功能剝離出去,變成用戶空間的獨立進(jìn)程來提供服務(wù)。

來看下這個維基百科上的這個圖應(yīng)該就很清晰了。

宏內(nèi)核中的一些功能在微內(nèi)核架構(gòu)上都被獨立到用戶態(tài)中,這樣內(nèi)核代碼量就少了。

代碼少了潛在的 bug 就少,出了問題也更容易排查。

系統(tǒng)也就更加穩(wěn)定,不易奔潰,因為那些服務(wù)從內(nèi)核中移除,在用戶空間運行著,如果出了故障,內(nèi)核重啟這個服務(wù)就好了,不會像之前那樣整個內(nèi)核 GG。

拿顯卡驅(qū)動來說,出問題就藍(lán)屏,這要是微內(nèi)核設(shè)計就可以重啟顯卡驅(qū)動。

聽起來好像微內(nèi)核很好???并不是,接下來就說說微內(nèi)核的缺點。

首先是性能問題。

因為很多功能作為獨立進(jìn)程放到用戶空間運行了,所以宏內(nèi)核時的函數(shù)調(diào)用就變成了進(jìn)程間調(diào)用,涉及進(jìn)程間的通信,還會伴隨著內(nèi)核態(tài)和用戶態(tài)的來回切換,我們知道這種上下文切換時比較耗時的。

這性能的問題就有點大了。

然后微內(nèi)核設(shè)計沒那么簡單,想要靈巧、減少耦合、提高可移植性就需要好好的設(shè)計,按照林納斯的話來說:“如果 GNU 內(nèi)核(微內(nèi)核架構(gòu))早在去年春天完成了,我壓根不會開始我的項目(Lniux)?!?/p>

GNU Hurd 采用微內(nèi)核架構(gòu),設(shè)計過于精巧,研發(fā)速度緩慢,性能長期無法提升。

當(dāng)年林納斯還和 Minix 的作者安德魯,對操作系統(tǒng)的宏內(nèi)核和微內(nèi)核的好壞進(jìn)行了一波網(wǎng)絡(luò)口水戰(zhàn)。

我們來回顧一下那段歷史,挺有意思的。

因為 AT&T 把 Unix 商業(yè)化了,大學(xué)不能免費使用 Unix,身為大學(xué)教授的安德魯為了教學(xué)自己搞了個操作系統(tǒng),即 Minix。

安德魯

當(dāng)時的學(xué)術(shù)風(fēng)潮是微內(nèi)核架構(gòu),把核心功能模塊化,劃分為幾個獨立的進(jìn)程,運行在不同的地址空間提高了代碼的可移植和系統(tǒng)的安全性。

所以 Minix 就是按微內(nèi)核架構(gòu)編寫的,當(dāng)然還有上述提到的 GNU Hurd。

而林納斯那時候讀大學(xué),他祖父送了他一臺 Intel 80386,林納斯也看到了安德魯?shù)慕炭茣?,根?jù)書上的內(nèi)容寫出了 Linux。

林納斯

不過沒有按照微內(nèi)核的設(shè)計,而是跟 Unix 一樣采用了宏內(nèi)核架構(gòu)。

安德魯教授看到了 Linux ,然后在 comp.os.Minix 上批評道:宏內(nèi)核的設(shè)計是有害的。

Linux 內(nèi)核耦合度太高,完全是為了 Intel 80386 而設(shè)計的,處理器架構(gòu)進(jìn)化很快的,操作系統(tǒng)應(yīng)該都具備可移植性。

安德魯還提到:都1991年了還用宏內(nèi)核來設(shè)計操作系統(tǒng),這是一種巨大的退步。

林納斯在一天之后進(jìn)行了反擊,他說 Minix 設(shè)計上有缺陷,從哲學(xué)和美學(xué)角度來看微內(nèi)核確實好,但是你看 GUN Hurd 到現(xiàn)在還沒開發(fā)出來。

然后操作系統(tǒng)本來就依靠硬件的特性,源碼交易所以內(nèi)核本身不需要過度具備可移植性,應(yīng)用程序的可移植性才重要,Linux 比 Minix 好移植多了。

而且 Linux 本來就是為我自己做的,所以契合 80386,如果要移植到別的平臺,代碼都是開源的(Minix 源碼當(dāng)時得買),想要的人自己做咯。

安德魯也做了一波回應(yīng):Minix 有局限性是因為我是教授,因為大部分學(xué)生都只能在低配的機器上使用,所以系統(tǒng)的硬件需求得足夠低,雖然你 Linux 是免費的,但是需要的硬件貴呀。

其實可以看到,兩者并沒有對宏內(nèi)核和微內(nèi)核的技術(shù)細(xì)節(jié)的進(jìn)行深入探討,而是抓住對方的:你這 Minix 代碼還要收費,你這 Linux 需要的硬件這么貴來進(jìn)行“攻擊”,所以稱之為口水戰(zhàn)。

反正口水戰(zhàn)之后雙方都沒有改變各自的設(shè)計,不過林納斯有引進(jìn)微內(nèi)核的思想來改進(jìn)代碼,也改善了可移植性。

微內(nèi)核市面上設(shè)計成功的有 QNX,黑莓手機就是用這個操作系統(tǒng),車用市場也幾乎都用 QNX 系統(tǒng)。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多