常用核心架構

天翼雲開發者社群發表於2023-04-20

本文分享自天翼雲開發者社群《常用核心架構》,作者 : JackW

連結: https://www.ctyun.cn/developer/article/401791607513157

單核心

應用程式呼叫記憶體分配的 API(應用程式介面)函式。

處理器切換到特權模式,開始執行核心程式碼。

核心裡的記憶體管理程式碼按照特定的演算法,分配一塊記憶體。

把分配的記憶體塊的首地址,返回給記憶體分配的 API 函式。

記憶體分配的 API 函式返回,處理器開始執行使用者模式下的應用程式,應用程式就得到了一塊記憶體的首地址,並且可以使用這塊記憶體了。

特點 :功能耦合,效率高;但是開發一個新的功能也得重新編譯、連結、安裝核心,因為它沒有模組化,沒有擴充套件性、沒有移植性,高度耦合在一起,一旦其中一個元件有漏洞,核心中所有的元件可能都會出問題。

 

 

微核心

應用程式傳送記憶體分配的訊息,這個傳送訊息的函式是微核心提供的,相當於系統 API,微核心的 API(應用程式介面)相當少,極端情況下僅需要兩個,一個接收訊息的 API 和一個傳送訊息的 API。

處理器切換到特權模式,開始執行核心程式碼。

微核心程式碼讓當前程式停止執行,並根據訊息包中的資料,確定訊息傳送給誰,分配記憶體的訊息當然是傳送給記憶體管理服務程式。

記憶體管理服務程式收到訊息,分配一塊記憶體。

記憶體管理服務程式,也會透過訊息的形式返回分配記憶體塊的地址給核心,然後繼續等待下一條訊息。

微核心把包含記憶體塊地址的訊息返回給傳送記憶體分配訊息的應用程式。

處理器開始執行使用者模式下的應用程式,應用程式就得到了一塊記憶體的首地址,並且可以使用這塊記憶體了。

 

特點 :微核心犧牲一定效能,具有不少優點,首先,系統結構相當清晰利於協作開發。其次,系統有良好的移植性,微核心程式碼量非常少,就算重寫整個核心也不是難事。最後,微核心有相當好的伸縮性、擴充套件性,因為那些系統功能只是一個程式,可以隨時拿掉一個服務程式以減少系統功能,或者增加幾個服務程式以增強系統功能。

 

Darwin-XUN 核心

Darwin是蘋果公司2000年開發的開源OS。整合了卡耐基梅隆大學的微核心Mach和伯克利大學的類Unix作業系統,後者提供一整套的作業系統服務。

 

 

Windows NT(new Technology)

微軟為了獲得市場,從不穩定的 Windows3.1、95/98、ME之後推出NT,後續的XP更是成為其商業巔-峰。

 

總結

Linux 效能良好,結構異常複雜,不利於問題的排查和功能的擴充套件,而 Darwin-XNU 和 Windows 結構良好,層面分明,利於功能擴充套件,不容易產生問題且效能穩定。

 


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70014251/viewspace-2947153/,如需轉載,請註明出處,否則將追究法律責任。

相關文章