微內核操作系統在嵌入式平臺上的應用*
隨著嵌入式系統越來越多得與外部連接,甚至是通過互聯網連接,其安全性也越來越受到關注。比如用掌上電腦進行網上購物的時候,用戶的銀行帳號信息必須得到嚴格的保護。安全性具體是指要求嵌入式設備在與外部連接的過程中,其內部的數據不會偶然或被惡意地破壞、更改或者泄露,維持嵌入式系統中信息的保密性和完整性。
本文引用地址:http://www.104case.com/article/92482.htm所謂微內核是一種最小的的計算機操作系統內核,其設計思想是內核本身不提供操作系統的相關服務,而是提供實現這些服務的機制,諸如底層的地址空間管理,線程調度以及進程間通信。一般的硬件都有執行權限級別,比如Intel IA32架構有Ring0到Ring3的特權級,而一般的操作系統至少會用到兩個,稱之為內核態和用戶態。而對于微內核操作系統來說,并非操作系統服務都運行于內核態,而是提供服務實現的機制部分運行于內核態;而操作系統的服務,包括設備驅動,文件系統和用戶界面等則作為用戶態的服務應用程序運行。
圖2 單內核操作系統(左)和微內核操作系統結構比較圖
如圖2所示,左邊的是單內核操作系統的結構示意圖。我們常用的Windows操作系統和Linux操作系統都屬于這個類型。單內核操作系統的內核提供完整的操作系統服務,比如圖中所示的文件系統,進程間通信,進程調度器,內存管理,設備驅動程序等等。而應用程序則運行在用戶態,應用程序想要使用操作系統提供的服務,需要通過內核提供的接口,我們稱之為系統調用。當應用程序進程執行系統調用時,會陷入到內核的代碼去執行,進程此時運行于內核態,處理器處于特權級最高的Ring0狀態執行。當應用程序需要的操作系統服務調用完成,進程回到原本的應用程序代碼中繼續執行,也同時回到了用戶態,在Ring3的特權級上運行。
而對于右邊的微內核操作系統,操作系統的內核部分被大大簡化,只包括基本的IPC機制,虛擬內存映射和調度機制,這些僅僅是用于實現操作系統服務的基本機制。真正的操作系統服務,比如設備驅動,文件系統,應用程序間通信等,通過用戶態服務程序的方式實現。當普通的應用程序需要操作系統的相關服務時,通過發送IPC消息給這個服務程序,這些服務程序進行相關的操作,必要時也會通過內核提供的系統調用陷入到內核態去執行基本的操作,并把結果再通過IPC返回給請求服務的應用程序。
linux操作系統文章專題:linux操作系統詳解(linux不再難懂)
linux操作系統文章專題:linux操作系統詳解(linux不再難懂)
評論