wince6.0操作系統的架構



Windows Embedded CE 6.0操作系統被實現爲一種分層的架構,分別由內核模式層和用戶模式層組成,其中內核模式層由OAL(OEM抽象層)、KITL(獨立於內核的傳輸層)、操作系統內核、內核模式的Coredll庫及文件系統模塊、GWES模塊、設備管理器模塊和內核模式驅動/服務模塊等組成,而用戶模式層分別由用戶模式的Coredll庫、用戶模式驅動/服務以及各種用戶應用程序組成,與以前版本的Windows CE操作系統相比,Windows Embedded CE 6.0的架構有以下兩個顯著的特徵:

(1)將Coredll.dll庫區分爲兩個不同的庫,一個位於內核層(稱爲K.COREDLL.DLL),另一個位於用戶層(稱爲COREDLL.DLL)。其中位於內核層的K.COREDLL.DLL庫爲內核模塊、內核驅動和服務提供API,而位於用戶層的COREDLL.DLL庫爲用戶驅動、用戶應用程序和服務提供API。位於用戶層的應用程序不能調用內核模式K.COREDLL.DLL庫中的API。

(2)將驅動程序區分爲內核模式的驅動和用戶模式的驅動。由於內核模式的驅動能夠應用內核版本的K.COREDLL.DLL直接調用內核API,因而可以提供最好的性能,同時,由於用戶內存對於內核驅動是直接可用的,因而內核驅動還可以同步訪問用戶緩衝。而用戶模式的驅動一般不被允許直接訪問系統硬件,內核模式驅動只有通過內存映射的方法才能通過操作系統內核訪問系統硬件,這種通過內存映射將用戶模式驅動與操作系統內核隔離的方法,可以大大提高系統的穩定性。

Windows Embedded CE 6.0的系統架構進行細化,分別表示出用戶空間、內核空間以及系統硬件的主要組成模塊,用戶空間主要由用戶應用程序、Shell、ServiceD.EXE和Udevice.EXE等模塊組成。

Shell爲用戶運行應用程序和管理Windows Embedded CE操作系統提供對象接口,這些對象既可以是位於目標設備上的真實對象,如文件和文件夾等,也可以是虛擬的對象,如回收站等,還可以是通過網絡進行訪問的遠程對象。與以前版本的Windows CE一樣,Windows Embedded CE 6.0允許實現從簡單的命令行接口到完全定製的圖形用戶接口的適合特定設備需要的各種Shell。Shell是由一些模塊和組件組成的,每一個模塊或組件都完成一個特定的Shell功能。

UDevice.EXE是用戶模式驅動程序的主(Host)進程,其作用僅僅是爲了將驅動程序加載到用戶模式。

ServicesD.EXE是對UDevice.EXE的補充。從本質上來講,服務(Service)是與驅動程序同樣的東西,它們具有同樣的目的以及相同的編程模型,其差別僅僅是人們爲了將硬件操作與純軟件操作區分開來,人爲地將完成硬件操作功能的軟件稱爲驅動程序,而將完成純軟件操作功能的軟件稱爲服務,用戶模式的驅動程序由UDevice.EXE加載和卸載,服務由ServicesD.EXE啓動、暫停和停止。因此,如果要開發一個運行在UDevice.EXE上而不是ServicesD.EXE上的服務,是沒有任何問題的。

內核空間主要由FILESYS.DLL、FSDMGR.DLL、GWES.DLL、DEVMGR.DLL、KERNEL.DLL、Networking DLLs和KITL.DLL等模塊組成。

FILESYS.DLL模塊相當於Windows CE以前版本中的FILESYS.EXE,負責初始化文件系統、對象存儲、註冊表、CEDB數據庫、設備通知以及其它一些工作。Gf8平坦軟件園

FSDMGR.DLL模塊負責管理文件系統、過濾器和存儲管理器。

GWES.DLL是由Microsoft Win32應用程序編程接口(Win32 API)、用戶接口(UI)和圖形設備接口(GDI)組合而成的圖形、窗口、事件子系統模塊,GWES是用戶、應用程序和操作系統之間的接口。GWES支持所有構成Windows Embedded CE 6.0用戶接口的窗口、對話框、控件、菜單和資源,使用戶能夠控制應用程序,同時還爲用戶提供位圖、光標、文本和圖標形式的信息。即使對於沒有圖形用戶界面的無頭設備(Headless Device)也需要使用GWES基本的窗口和消息機制以及電源管理功能。GWES還負責處理圖形窗口的管理和事件管理器,包括消息、事件以及來自於鍵盤、鼠標和觸摸筆的輸入等。

DEVMGR.DLL被稱爲設備管理器,由操作系統內核加載,並一直運行直至系統關閉。設備管理器用來管理已經加載的驅動程序及驅動程序的接口。當設備管理器被加載時,它同時會加載I/O資源管理器,以便從註冊表讀取可用的I/O端口及IRQ資源。

KERNEL.DLL、FILESYS.DLL、FSDMGR.DLL、DEVMGR.DL、GWES.DLL以及絕大多數的驅動程序都被加載到內核進程空間,被稱爲內核模式的服務器,並實現了一組API供應用程序調用。內核模式的服務由內核版本的COREDLL(即K.COREDLL.DLL)支持,被加載到內核並被連接到COREDLL.DLL的任何代碼,系統會自動重定向去使用K.COREDLL.DLL來代替。Gf8平坦軟件園

KERNEL.DLL是構成Windows Embedded CE 6.0內核及其它共同特徵的核心操作系統服務,主要用於處理操作系統底層的任務,如時鐘管理,進程、線程多任務調度以及電源管理等。

硬件是操作系統賴以生存的物理基礎,硬件與操作系統通過驅動程序提供的標準接口連接在一起。
發佈了21 篇原創文章 · 獲贊 25 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章