wince6.0作業系統架構

來源:互聯網
上載者:User

文章轉載自:http://blog.csdn.net/duanhjlt/article/details/4443548

Windows Embedded CE 6.0作業系統被實現為一種分層的架構,分別由核心模式層和使用者模式層組成,其中核心模式層由OAL(OEM抽象層)、KITL(獨立於核心的傳輸層)、作業系統核心、核心模式的Coredll庫及檔案系統模組、GWES模組、裝置管理員模組和核心模式驅動/服務模組等組成,而使用者模式層分別由使用者模式的Coredll庫、使用者模式驅動/服務以及各種使用者應用程式組成,1所示。

                                      圖1

 

與以前版本的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,因而可以提供最好的效能,同時,由於使用者記憶體對於核心驅動是直接可用的,因而核心驅動還可以同步訪問使用者緩衝。而使用者模式的驅動一般不被允許直接存取系統硬體,核心模式驅動只有通過記憶體映射的方法才能通過作業系統核心訪問系統硬體,這種通過記憶體映射將使用者模式驅動與作業系統核心隔離的方法,可以大大提高系統的穩定性。

如果將1所示Windows Embedded CE 6.0的系統架構進行細化,分別表示出使用者空間、核心空間以及系統硬體的主要組成模組,那麼將4所示。

 

使用者空間主要由使用者應用程式、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,負責初始設定檔案系統、Object Storage Service、註冊表、CEDB資料庫、裝置通知以及其它一些工作。

FSDMGR.DLL模組負責管理檔案系統、過濾器和儲存管理器。

GWES.DLL是由Microsoft Win32API(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來代替。

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

硬體是作業系統賴以生存的物理基礎,硬體與作業系統通過驅動程式提供的標準介面串連在一起。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.