開闢鴻蒙,聊聊華爲微內核

 

曾經,微內核的操作系統一直活在實驗室裏,從來沒走出過實驗室。無數教授拿着教材說“微內核的操作系統沒有實現過”。

過了昨天,這句話就就成爲歷史了。

操作系統(Operating System)內核有幾種?

操作系統內核kernel,主要控制的計算機的正常運行,包括:文件管理(文件系統)、進程管理(CPU調度)、內存管理、中斷處理和應用程序的切換調度。這些功能都是獨立成單獨的模塊,除了這些功能模塊,內核kernel本身除了在“恰當的時候”負責調度、連接這些模塊之外,它自己也有重要的功能,如控制計算機的啓動bootLoader。

主要的操作系統內核:宏內核、微內核、VMM

 

宏內核

目前市面上、絕大多數操作系統都是宏內核。宏內核的操作系統,典型代表就是Linux。

宏內核:將內核服務作爲整體,所有服務都“伸手即得”。也就是將上述控制的計算機的正常運行的各個模塊,都聚合在一起。如下圖所示,

所有服務都“伸手即得”:就比如,當有應用程序申請內存時,kernel直接調度相關的單元即可完成,沒有額外的消耗。

畫外音

這種內核有點像web開發中,之前很盛行的一體化架構—— 一個jar/war包打天下;所有服務模塊都聚在一起,要死一起死,一個服務模塊掛了,整個web應用服務都掛了。
當然,很久以前在使用這個架構時,我們並沒有給它命名“一體化架構”一樣,知道後來有人提出了SOA/微服務。相對比較之下,才流行起來比較形象的名字。

恰似web開發一體化架構的宏內核,具體有沒有剛纔說的“要死一起死”問題,我們不得而知。但在5G時代,微內核將成新寵。

 

微內核

做過嵌入式開發的同學應該知道,微內核,kernel非常小,只管非常少的事。內存、文件管理等都是外圍服務的存在。
kernel除了必要的程序,如啓動等,其他事都交給外圍服務完成。

那微內核劃分開來了,除了職責單一了、kernel啓動快,它有什麼缺點呢?
執行效率低了。宏內核所有服務都“伸手即得”;而微內核,實際做事的是指派給外圍服務了,要等別的[外圍]內核返回數據給我,才能返回給應用程序,他們之間多一手網絡通信傳輸。

既然缺點這麼明顯,提出幹啥呢?
5G能解決瓶頸。微內核就是爲5G而設計的。
5G的超高速傳輸,讓不同內核服務數據傳輸,變得“伸手即得”。5G+微內核的結合,將創造無限可能。

畫外音
微內核,有點像是給各服務“微服務化”了。就像web開發中目前主流的微服務一樣。

與內核相對的,還有外核。這也是目前研究領域的一個熱門方向。

 

外核

基於內核,延伸出“服務定製化”的外核。如瀏覽器browser運行在操作系統中,基於操作系統內核,專門給browser量身定製一個外核,專門給browser用,以達到更棒的應用使用效果。

目前,還不存在外核的操作系統。只是活在實驗室。
缺點:和軟件強綁定,沒有通用性。但爲“服務定製化”的外核爲“專供”的軟件程序提供超強支持。

 

VMM

虛擬化的技術,專爲解決硬件資源過剩而生。
這種內核的操作系統,解決問題的思路,有點像docker。

增加一個虛擬層,虛擬成多個操作系統,共享硬件資源。
一個硬件較好的機器上面能虛擬出多個獨立的OS,互相隔離、互不影響,充分發揮硬件能力。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章