程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> Windows ce的體系結構和功能

Windows ce的體系結構和功能

編輯:.NET實例教程

Windows ce的體系結構和功能

                             Windows ce體系結構圖

 

操作系統層

操作系統的基本功能被放在多個獨立的進程(exe)裡面實現。在運行的時候,這些進程大致有如下幾個:

l         內核NK.EXE

l         圖形系統GWES.EXE

l         對象存儲FILESYS.EXE

l         設備管理系統DEVICE.EXE

l         服務SERVICES.EXE

 

系統調用與CoreDLL.DLL

CoreDLL.DLL不是一個單獨的進程,它是一個會被所有用戶進程都加載的動態鏈接庫。所有的應用程序都不能直接與操作系統或硬件打交道,如果用戶程序希望訪問Windows ce所提供的服務,那麼只能通過CoreDLL.DLL進行。


應用程序


DLL接口

進程邊界


CoreDLL.DLL


Win32API代理


本地函數


NK.EXE


NK.LIB


OAL.LIB   


中斷處理


NK.EXE


NK.LIB


OAL.LIB   


中斷處理


中斷處理

 

進程切換


FileSys.exe


gwes.exe


device.exe


硬件


中斷

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中有些函數並不是系統調用的包裝函數,例如字符串處理

函數調用


函數代碼


應用

程序


內核

自陷


內核調用


跳轉

函數,當應用程序調用這類函數時,就不會發生自陷和進程執行的跳轉。


App.exe


NK.EXE


GWES.EXE


用戶態線程


        CoreDLL.DLL


CreateWindow()包裝函數


 

Win32API派發

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved