Windows CE作業系統是Windows家族中的成員,為專門設計給掌上電腦(HPCs)以及嵌入式設備所使用的系統環境。這樣的作業系統可使完整的可移動技術與現有的Windows桌面技術整合工作。Windows CE被設計成針對小型設備(它是典型的擁有有限記憶體的無磁碟系統)的通用作業系統,Windows CE可以通過設計一層位於核心和硬體之間代碼用來設定硬體平台,這即是眾所周知的硬體抽象層(HAL)(在以前解釋時,這被稱為OEMC(原始設備製造)適應層,即OAL;核心壓縮層,即KAL。以免與微軟的Windows NT作業系統的HAL混淆)。
Windows CE1.0是一種基於Windows 95的作業系統,其實就是單純的Windows95簡化版本。90年代中期卡西歐推出第一款採用Windows CE 1.0作業系統的蛤殼式PDA,算是第一家推出真正稱得上手掌尺寸的掌上電腦廠商。作為第一代的Windows CE 1.0於1996年問世,不過它最初的發展並不順利。當時Palm作業系統在PDA市場上非常成功,幾乎成為了整個PDA產品的代名詞,在這種情況下,微軟公司被迫為最初Windows CE的不斷改進的同時,微軟公司也通過遊說、技術支持、直接資助等手段聚集了大量合作廠商,使Windows CE類的PDA陣容越來越強大。
2.0
隨著Windows 95的出現和Windows 98的成功,另外一個巨人-微軟站起來了,並迅速地在PC作業系統業界建立了微軟帝國。PDA市場的發展潛力被眾多分析家看好,嗅覺異常靈敏的微軟自然不會放過這樣一個巨大的市場,在其作業系統帝國已經非常穩定的前提下,又開始了在PDA市場上的全力衝刺,用Windows CE 2.0作業系統來打造與Palm非常類似的掌上產品。
2000年微軟公司將WinCE3.0正式改名為Windows for Pocket PC,簡稱Pocket PC。就是把Pocket Word和Pocket Excel等一些日常所需的辦公軟體的袖珍版裝了進去Pocket PC,同時在娛樂方面的性能做很大的加強。當然對於微軟的所有舉動,捧場的廠商自然也不會少,加入Pocket PC 陣營的有HP、Compaq、Casio等一些著名廠商。當Compaq的iPAQ 3630的誕生和在市場的熱銷,支持和加入Pocket PC陣營的廠商就越來越多。2002年智慧型手機商機再現,不少PPC廠商希望推出整合手機功能的PPC,於是在2002年8月,專門為手機最佳化過的微軟Pocket PC 2002 Phone Edition作業系統匆匆問世,2002年10月,國內第一款PPC手機--多普達686上市了,隨後熊貓推出了CH860、聯想推出ET180,越來越多的pocket pc產品出現了。
4.0-4.2
Windows CE. NET(即Windows CE 4.0)是微軟於2002年1月份推出的首個以.NET為名的作業系統,從名字上我們就可以知道它是微軟的.NET的一部分。WinCE. NET是WinCE3.0的升級,同時還加入.NET Framework精簡版,支持藍牙和.NET應用程式開發。
WindowsCE. NET 4.2是Windows CE. NET 4.0/4.1的升級版,對Windows CE先前版本的強大功能進行了進一步的擴充和豐富,基於其開發的設備將從這些微小但重要的變化中獲得更好的性能和更強的Windows集成功能。微軟在WinCE4.2版時曾提供開放原始碼,不過只針對研究單位,而程式代碼較少,為200萬行。
2006年11月,微軟公司其最新的嵌入式平台Windows Embedded CE 6.0正式上市。作為業內領先的軟體工具,Windows Embedded CE 6.0將為多種設備構建實時作業系統,例如:網際網路協定(IP)機頂盒、全球定位系統(GPS)、無線投影儀,以及各種工業自動化、消費電子以及醫療設備等。
在Windows Embedded誕生十周年之際,微軟將首次在“共享源計畫(Microsoft Shared Source programme)”中100%毫無保留地開放Windows Embedded CE 6.0核心,(GUI圖形用戶界面不開放)比Windows Embedded CE的先前版本的開放比例整體高出56%。“共享源計畫”為設備製造商提供了全面的原始碼訪問,以進行修改和重新發布(根據許可協定條款),而且不需要與微軟或其他方共享他們最終的設計成果。儘管Windows作業系統是一個通用型計算機平台,為實現統一的體驗而設計,設備製造商可以使用Windows Embedded CE 6.0這個工具包為不同的非桌面設備構建定製化的作業系統映像。通過獲得Windows Embedded CE原始碼的某些部分,比如:檔案系統、設備驅動程式和其他核心組件,嵌入式開發者可以選擇他們所需的原始碼,然後編譯並構建自己的代碼和獨特的作業系統,迅速將他們的設備推向市場。
微軟還將Visual Studio 2005專業版作為Windows Embedded CE 6.0的一部分一併推出。這對微軟來說又是一次史無前例的突破。Visual Studio 2005專業版將包括一個被稱為Platform Builder的功能強大的外掛程式,它是一個專門為嵌入式平台提供的“集成開發環境”。這個集成開發環境使得整個開發鏈融為一體,並提供了一個從設備到套用都易於使用的工具,極大地加速了設備開發的上市。
Windows Embedded CE 6.0重新設計的核心具有32,000個處理器的並發處理能力,每個處理有2GB虛擬記憶體定址空間,同時還能保持系統的實時回響。這使得開發人員可以將大量強大的應用程式融入到更智慧型化、更複雜的設備中。無論在路上、在工作還是在家裡,都可以使用這種設備。
在路上:Windows Embedded CE 6.0加入了新的單元核心數據和語音組件,這使得設備能夠通過蜂窩通訊網路建立數據連線和語音通話,從而實現機器對機器的通訊套用場景,並構建相應的設備,如停車表、自動售貨機和GPS設備等。
在工作上:Windows Embedded CE 6.0包含的組件更便於開發者創建通過Windows Vista內置功能無線連線到遠程桌面共享體驗的投影儀。
在家中:Windows Embedded CE 6.0充分利用了多媒體技術,以開發網路媒體設備、數字視頻錄像機和IP機頂盒等。
Windows Embedded Compact 2013 是一套簡化的組件化設備作業系統,現經過更新可同時支持Visual Studio 2013和Visual Studio 2012,該作業系統為開發人員提供了創建下一代智慧型系統解決方案所需的所有工具。 通過對 x86 和 ARM 架構進行支持,Windows Embedded Compact 2013 提供了靈活性和實時支持,可幫助設備製造商縮短產品的上市時間,同時創建易於使用、多點觸控的智慧型系統,以讓企業能夠提高員工的生產效率。
目前最新的Windows CE為 Windows Embedded Compact 7,這個版本在核心部分有很大的進步: 所有系統元件都由EXE改為DLL,並移到 kernel space.
全新設計的虛擬記憶體架構、全新的設備驅動程式架構,同時支持 User Mode 與 Kernel Mode 兩種驅動程式。突破只能運行 32 個工作元(process)的限制,可以運行 32768 個工作元。每一工作元的的虛擬記憶體限制由32 M 增加到全系統總虛擬記憶體。Platform Builder IDE 集成到 Microsoft Visual Studio 2005。新的安全架構,確保只有被信任的軟體可以在系統中運行。UDF 2.5 檔案系統。支持 802.11i (WPA2)及 802.11e (QoS) 等無線規格,及多重 radio support.
針對不同的系統,WindowsCE使用了不同的開發技術:Windows CE 使用的 VC++ 5.0 開發系統嵌入式工具包,提供系統庫、工具、文本和樣本代碼,從而使 OEMs 能夠對特定的硬體平台使 Windows CE 標準定製。嵌入式工具包也包括設備驅動包(DDK)和軟體開發包(SDK) ,DDK 提供了關於寫驅動器的附加文本,SDK 提供庫、頭檔案、樣本代碼、文本以允許,開發者對基於 Windows CE 的平台進行寫操作。Windows CE 提供了相同的程式界面,以用來為其它的視窗作業系統開發功能,例如,Windows CE 版本 1.01支持大約1000個微軟的Win 32 API 函式的其中500個。這就意味著大量不同類的工具,第三方書籍,關於 Win 32 開發者訓練教程,可以替代或為 Windows CE 系統的開發者所用。而實時系統的開發者能夠使用 VDFF 5.0 的嵌入式工具包,以把作業系統轉移到特定的平台,並為這個平台開發附加設備驅動器和實時功能。
系統詳細介紹
執行緒優先權級
Windows CE 是有優先權的多任務作業系統,它允許多重功能、進程,在相同時間系統中運行 Windows CE 支持最大的 32 位同步進程。一個進程包括一個或多個執行緒,每個執行緒代表進程的一個獨立部分,一個執行緒被指定為進程的基本執行緒,進程也能創造一個未定數目的額外執行緒,額外執行緒實際數目,僅由可利用的系統資源限定。
Windows CE 利用基於優先權的時間片演算法以安排執行緒的執行,Windows CE 支持八個不同的優先權,由0到7,0代表最高級,它在頭檔案windows.h中定義。
類似於Windows,擁有高級優先權的執行緒安排優先運行,而同一優先權的執行緒會以循環優先先級方式運行,即每個執行緒接受定製的時間或時間片,定量時間默認值為25毫秒 (Windows CE 2.0 支持在 MIPS 平台更改定量時間)。較低優先權的執行緒,要直到較高級執行緒完成之後再運行,也即直到他們或者放棄或停止。一個重要的例外是最高優先權的執行緒(級別0,關鍵時間優先權)不與其它的執行緒共享時間片,這些執行緒連續執行直到他們完成。不象其它的Windows作業系統,Windows CE 是固定的,不能改變。它不匹配這基於引進優先權的中斷,他們能夠暫時改動,但僅能通過 Windows CE核心以避免所謂的的“優先權倒置”。
優先權倒置指的是當它們同時競爭同一資源時,低優先權的執行緒,阻礙了高優先權執行緒對資源的利用。為了改正這種局面並解放較高優先權的執行緒,Windows CE 允許低級優先權繼承,嚴格的執行緒優先權,並且運行較高優先權直到它釋放所用資源。
如同其它的 Windows作業系統一樣,Windows CE 為執行緒同步提供了一個豐富的“等待對象”,這包括關鍵部門、事件、互斥體,些等待對象,允許一個執行緒減緩它的運行並且等待直到指定事件發生。
Windows CE 將互斥體、關鍵部分、事件請求按“先入先出,優先權(FIFO)”順序排列:不同的先入先出順序序列定義成八個不同的優先權,在給定的優稱級的執行緒請求,將被放在優先權列表末尾,當優先權倒置出現時,調度程式調整這些序列。
除了等待對象,Windows CE 支持標準的 Win 32 時間 API 函式,這些來自核心的套用,軟體中斷將獲得時間間隔,它被用來管理實時套用。通過調用 GetTickCont 函式,它能夠返回幾毫秒,執行緒能夠使用系統間隔時間。關於更詳細的分時信息,Windows CE核心也支持Win 32 API 函式QueryPerformanreCounter 和 QueryPerFormanteFrequency。OEM 必須為這些調用提供硬體和軟體支持,它提供一個較高的時間分辨力和 OAL 界面其它方面。
其它方面考慮
Windows CE 提供了一個重要的存儲系統,例如,當某些運行Windows CE的平台提供4MB的物理記憶體時,Windows CE 支持一個重要的 2GB 的地址空間,每個進程聯接在它自己的32MB 物理空間上,當它需要產生記憶體分頁中斷(這可能影響執行緒執行時間),物理記憶體進行執行緒代碼或數據記憶體分頁。
Windows CE 允許映射,這將阻止多個進程共享同一物理記憶體,結果將會導致協同進程間或驅動器與映射快速的數據傳送,記憶體映射能夠戲劇性的增強實時操作。
中斷處理
WinCE的中斷處理機制基於IRQS ISRS 和 ISTS
實時套用被設立在指定的時間間隔內,對外部事件做出反應,實時套用使用中斷做為一種確保外部事件由作業系統獲知的方式。在 Windows 中,核心和 OEM 適應層 (OAL)被設定成使系統其它部分的中斷和調度最最佳化。Windows CE 平衡操作,並通過把中斷過程分成兩部分而使執行更加容易:它分為中斷服務程式(ISR)和中斷服務執行緒(IST)兩部分。
每條硬體中斷申請線(IRQ),與一個ISR相連。當中斷成立和中斷出現時,核心為此調用暫存的 ISR, ISR 為中斷處理的核心模式部分儘可能短的保存。它首先將核心放在適合的 IST 上。
ISR 執行它的最小處理並返回一個 ID 號到核心,核心檢查返回的中斷 ID 號,並設定相關事件,中斷服務執行緒等待事件。當核心設定事件時,IST 停止等待並開始執行,附加的中斷進程,中斷處理大部分實際上出現在 IST 中,兩個最高的執行緒優先權 (級別0和1),通常指定為 ISTS,保證這些執行緒運行得足夠快。