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