Windows ce的體繫結構和功能

來源:互聯網
上載者:User
文章目錄
  • 系統調用與CoreDLL.DLL
  • 核心NK.EXE

                             Windows ce體繫結構圖

 

作業系統層

作業系統的準系統被放在多個獨立的進程(exe)裡面實現。在啟動並執行時候,這些進程大致有如下幾個:

l         核心NK.EXE

l         圖形系統GWES.EXE

l         Object Storage ServiceFILESYS.EXE

l         裝置管理系統DEVICE.EXE

l         服務SERVICES.EXE

 

系統調用與CoreDLL.DLL

CoreDLL.DLL不是一個單獨的進程,它是一個會被所有使用者進程都載入的動態連結程式庫。所有的應用程式都不能直接與作業系統或硬體打交道,如果使用者程式希望訪問windows ce所提供的服務,那麼只能通過CoreDLL.DLL進行。

Windows ce的系統調用

ü         應用程式進行系統調用時,它直接調用的是CoreDLL.DLL中的一個(Wrapper)函數,此封裝函數為真正的系統調用準備所需要的參數。CoreDLL.DLL會被Windows CE的所有進程載入,因此這一步其實只是進程內部的函數調用。

ü         CoreDLL.DLL會發起一個異常,也可叫做軟體中斷。在不同的CPU體繫結構上,異常的實現原理也不一樣。總之,異常的作用是把執行權重新由應用程式還給作業系統。

ü         作業系統核心會捕捉所有的異常,當作業系統捕獲到此異常時,也就重新獲得CPU。在Windows CE上,NK.EXE會處理這個軟體中斷,這樣進行系統調用的應用程式進程就掛起了,掛靠就轉入了NK.EXE。

ü         接下來,NK.EXE根據系統調用的不同,找到具體實現該系統調用的進程(這些進程在Windows CE上也被叫做PSL,全稱是Protected Server Library)。此進程可能是NK.EXE,也可能不是。如果不是NK.EXE,那麼執行就再次跳轉,把執行轉到具體實現系統調用的進程去執行。

ü         實現這個系統調用的進程得到執行的機會。

ü         系統調用結束,應用程式可以從對CoreDLL.DLL的調用處返回,然後繼續執行。

要注意的是CoreDLL.DLL中有些函數並不是系統調用的封裝函數,例如字串處理函數,當應用程式調用這類函數時,就不會發生自陷和進程執行的跳轉。

由上CreateWindow()的調用可以看出,windows ce中的每次系統調用都會導致多個進程之間頻繁切換,而且系統調用所涉及的資料也需要在多個進程之間遷移,這樣勢必會使整個系統的效率降低。其實,在系統調用的整個過程中,並沒有發生真正的線程環境切換。Windows ce核心負責把api調用轉到實現該api的PSL進程。PSL進程會把進行系統調用的執行線程從一個進程遷移到下一個進程。比如說,上個例子中,雖然CreateWindow系統調用會在應用程式、NK.EXE和GWES.EXE中來回切換,但是在3個進程中招待的純種是同一個線程。而所謂的“切換”只是把執行進程的虛擬位址空間映射到了Slot
0。Windows ce核心負責把應用程式中的使用者態線程改變存取權限,然後把它遷移到系統進程中,在整個系統調用過程中,這個線程在3個進程中使用同一個棧和同一些寄存器。當這個線程離開PSL進程的時候,windows ce核心再把它的特殊存取權限移除。

核心NK.EXE

系統運行時,windows ce的核心表現為NK.EXE進程。NK.EXE是所有windows ce的系統中都存在的核心進程,它表現了win32 API核心中進程建立載入、純種高度、中斷處理和內在管理等核心功能。

NK.EXE由NK.LIB與OAL.LIB組成。NK.LIB是由微軟提供的,它的代碼與CPU指令體繫結構相關而與具體的外設無關,此種設計可使OAL儘可能小OAL.LIB是OEM層中的OAL代碼編譯後的輸出。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.