WES7與WES2009嵌入式產品之比較
概述
本文介紹了Windows Embedded Standard 2009和Windows Embedded Standard 7在組件化、工具和映像構建流程等方面的部分不同。目的是使用戶深入了解這兩款嵌入式產品之間的差異,以及這兩款產品在創建和部署嵌入式設備映像時在功能、工具和用戶整體體驗方面的部分不同。
組件化對比
本文將比較Windows Embedded Standard 2009和Windows Embedded Standard 7在以下方面的不同:
- 組件架構
- 功能集包
- 驅動程序包
- 語言包
- 組件依賴關系
- 宏組件與模板
- SMI(Settings Management Infrastructure,設置管理架構)的設置與配置設置
- 嵌入式功能(EEFs)
- 客戶化組件支持
- 組件架構
Windows Embedded Standard 2009和Windows Embedded Standard 7具有相似的組件化概念,即將注冊表信息、依賴關系和其他資源定義在一個統一的二進制文件集中,所有這些數據都作為一個集合安裝在運行的映像中。但是,兩款產品在組件實現和使用上是不同的。
對于Windows Embedded Standard 2009而言,其組件的實現是從頭開始的。因為Windows Embedded Standard 2009從Windows XP Pro繼承來的二進制文件并未進行組件化。因此,Windows Embedded Standard 2009的組件無法與包括Windows Embedded Standard 7在內的新推出的操作系統兼容。此外,這些組件只是用來導入到用于開發的Windows Embedded Standard 2009的組件數據庫中,而無法導入到嵌入式設備中。要為這些設備提供服務,需要OEM開發人員使用更新后的組件重新創建整個運行時的映像。
Windows Embedded Standard 7的組件繼承自Windows 7,這些組件都列在組件清單上。除了個別的是為了滿足某些嵌入式的特殊需求而沒有包括在Windows 7中,其他的都與Windows 7清單一樣。因此,Windows Embedded Standard 7與Windows 7的設計完全兼容。組件更新升級與Windows 7也相似,僅需創建一個嵌入式開發的專用更新包,用戶可將該更新包導入部署在OEM開發人員計算機上的Windows Embedded Standard 7分發共享目錄(distribution share)中,或直接安裝到嵌入式運行映像上。
Windows Embedded Standard 7與Windows Embedded Standard 2009在組件設計上的另一個不同之處體現在嵌入式核心(eCore)這一概念上。eCore包括一系列操作系統基本組件(內核、網絡、安全、某些驅動程序等),這些基本組件用于引導有系統安全和網絡功能的嵌入式設備。eCore是嵌入式設備的最小映像,支持OEM開發人員在其上面添加其他功能集、驅動程序和語言包,本文將在下面對此進行討論。
功能集包
對于Windows Embedded Standard 2009,當用戶創建自己的設備映像時,需要在組件的層面上選擇功能集包。甚至某些重要功能(如,Windows Media Player、Windows Internet Explorer、Microsoft Remote Desktop Protocol等)都是作為組件實現的,這是因為這些功能是由大量二進制文件聚集而成。因此,組件和功能的區分不很明顯。此外,由于Windows Embedded Standard 2009有1萬多個組件,因此用戶如何從中選擇合適的組件創建自己的映像成為一種挑戰。
對于Windows Embedded Standard 7,創建功能集包的目的是聚合相關的組件(如,Windows Media Player、Windows Internet Explorer、Microsoft Remote Desktop Protocol等),OEM開發人員只需選擇他們所要部署的功能集即可。由于要將功能集包的數量保持在最低水平(約為150個),所以功能選擇流程更簡單,設計和創建設備映像也更容易。
驅動包
在Windows Embedded Standard 2009中,每個驅動程序都作為獨立組件實現,共有約9000個獨立的驅動程序,對OEM開發人員而言,將這些驅動程序與相應的硬件設備配在一起是一項重大的挑戰。
與功能集包類似,Windows Embedded Standard 7也提供包層面的驅動程序。但是,為了降低程序的大小,各驅動程序都是以獨立的包的形式提供,只有一個例外是USB 驅動程序,此外,我們還提供了一個可選的支持USB 啟動的驅動程序包。。實際上,這些驅動程序包與Windows Embedded Standard 2009中的各個驅動程序組件相似。Windows Embedded Standard 7放棄了Windows 7中部分陳舊的驅動程序,創建了大約400個獨立的驅動程序包。此外,嵌入式核心(eCore)中還包括了約100個驅動程序的列表,能夠滿足例如系統引導、網絡通信等基本需要。
總體而言,Windows Embedded Standard 2009和Windows Embedded Standard 7的驅動程序基本相似,但Windows Embedded Standard 7中的驅動程序數量明顯減少,而且eCore中還包含了部分基本的驅動程序。
語言包
Windows XP并不是由語言中性的組件組成,所以,它不支持將單個語言包安裝在一個語言中性的操作系統上。每個操作系統二進制文件必須對不同的語言進行本地化,以滿足不同國家和地區的需要。這種設計不僅使錯誤修復、測試和OS組件服務復雜化,而且對需要多種語言支持映像的終端設備而言,還大大增加了操作系統的大小。Windows Embedded Standard 繼承了Windows XP相同的語言設計,但是,它額外提供了非英語的語言資源包,從而使得用戶能夠選擇是否創建一種或多種語言的設備映像。盡管如此,這并未解決上述的錯誤修復和OS組件維護復雜、占用內存太大等問題。
Windows Embedded Standard 7繼承了與Windows 7相同的支持語言中性的設計模型,可以將不同的語言包安裝在同一個語言中性的操作系統上。那些存在于Windows XP和Windows Embedded Standard 2009中的問題在這得到了改善。與Windows 7一樣,Windows Embedded Standard 7提供了多達36個完全本地化的語言包(LP),但實際安裝的LIP語言包(language-interface package)的數量取決于用戶的需求。此外,Windows Embedded Standard 7中的某種語言包只包含與功能和驅動程序包(及Embedded core)中的語言中性組件相對應的某種語言資源文件,從而,與Windows 7相比,大大減小了包的大小。語言包更小,使得OEM開發人員可根據具體需求,更容易地在專業設備上部署各種語言包。
組件依賴關系
Windows Embedded Standard 7采用了與Windows Embedded Standard 2009類似的組件依賴關系概念。與Windows Embedded Standard 2009不同,Windows Embedded Standard 2009的依賴關系表現在組件層面,Windows Embedded Standard 7則表現在功能集包層面。如下表所示,Windows Embedded Standard 2009和Windows Embedded Standard 7的依賴關系類型相似。
宏組件與模板
在Windows Embedded Standard 2009中,為滿足安裝某些功能或應用的依賴關系,可應用宏組件,或將宏組件導入組件數據庫中。宏組件可指定某些配置設置,以及任何所需的和/或可選的依賴關系。宏組件的安裝與標準組件類似,但宏組件中不包含任何文件。因此,OEM開發人員可使用(如Target Designer等)嵌入式工具修改配置的設置。
Windows Embedded Standard 7中也采用了類似的概念。有一個模板是用于滿足特定功能或應用的安裝。該模板詳細列出了一系列的功能集包,這些包對于這類功能或應用來說是必需的。但是,模板的安裝方式與標準功能集包的安裝方式不太相同,它不允許使用(例如映像配置編輯器,ICE)等嵌入式工具更改配置設置。
SMI設置與配置設置
在Windows Embedded Standard 2009中,用戶可以使用組件指定配置設置(例如,定義防火墻端口等),系統支持OEM開發人員使用Target Designer設定所需的設置值。這些設置使用HTML作為用戶界面應用到組件wrapper文件(或SLD),這些設置可修改某些特定功能的運行(例如,啟用或禁用防火墻端口)。
在Windows Embedded Standard 7中,OEM開發人員可以通過ICE控制的唯一設置是從Windows 7繼承來的組件中可見和可變的SMI設置。此外在功能集包層面沒有任何其他設置可執行。因此,功能的某些操作是不可見的,或者是不能定義為組件層的SMI設置,不能進行修改(例如,設置防火墻端口)。換言之,Windows Embedded Standard 7的OEM開發體驗與Windows Embedded Standard 2009大相徑庭。
嵌入式功能(EEFs)
在Windows Embedded Standard 2009中,EEFs與其他組件的實現方式相同。與之類似的是,在Windows Embedded Standard 7中,EEFs的實現方式與其他功能集相同。在EEFs方面,除下表給出的少數例外,Windows Embedded Standard 7基本與Windows Embedded Standard 2009相同 。
自定義組件支持
在Windows Embedded Standard 2009中,OEM開發人員可通過創建適用的二進制文實現適用的SLD文件自定義組件,然后將組件導入組件數據庫。這樣,這些客戶化的組件就具有擴展功能并可被集成到開發平臺,使用(例如Target Designer等)嵌入式工具為用戶提供無縫的體驗。
由于OEM開發人員無法在Windows Embedded Standard 7中創建自定義組件或功能集,所以對于嵌入式包和開發平臺,他們的體驗會有所不同。然而,OEM開發人員可以創建自定義的功能(包括第三方驅動程序),放入到分發共享目錄中的“$OEM $”文件夾。這樣可以支持OEM開發人員將自定義功能加入嵌入式運行時映像,或將它們作為配置集重新分發。但如果使用這種方法,自定義功能不能表示與Windows Embedded Standard 7功能集的任何依賴關系,系統中也沒有基于工具的機制可改變設置。
滿足嵌入式需求/場景的可修改的Windows 7操作
如上所述,Windows Embedded Standard 2009 與Windows Embedded Standard 7除在組件化方面有所不同外,為更好滿足嵌入的需求,Windows 7功能的某些操作也作了修改。如下表所示,大多數操作的修改是通過SMI設置完成的。
映像創建進程的比較
創建Windows Embedded Standard 操作系統的過程可分解為以下步驟:
1. 設備分析——確定目標計算機上有哪些設備,并添加驅動程序,支持這些設備。
2. 配置——向操作系統添加所需的包,并配置所有關聯設置。
3. 創建——形成設備的操作系統。
4. 自定義 ——向操作系統添加任何第三方文件或程序。
5. 捕獲——將操作系統捆綁到一個聚合單元中,用于重新部署至其他設備。
6. 部署——將預先配置的操作系統安裝到一臺或多臺設備上。
下面的兩張圖表概括了Windows Embedded Standard 2009和Windows Embedded Standard 7映像的創建過程。
對照上述各步驟,本文逐步討論了Windows Embedded Standard 2009和Windows Embedded Standard 7開發流程的差異。
設備分析
在Windows Embedded Standard 2009中,設備分析是使用Target Analyzer(Tap.exe)程序完成的。建議OEM開發人員在其設備上啟動Windows預安裝環境(PE)并運行Tap.exe。默認情況下,Tap.exe將生成一個Devices.pmq文件,該文件將列出目標設備上的所有硬件。
可在得到Devices.pmq文件后,使用Target Designer導入該文件。系統會自動把設備映射到驅動程序上,將包含這些驅動程序的組件添加到配置中。
Windows Embedded Standard 7的設備分析與此類似,但進行了簡化。Windows Embedded Standard 7同樣利用Target Analyzer創建Devices.pmq文件。但運行Tap.exe的流程更加簡單。
如果用戶使用Image Builder Wizard(映像構建向導,IBW)開發映像,則Tap.exe自動在后臺運行,系統會自動把設備映射到驅動程序包上。由于IBW是在目標設備上執行的,所以不用作為創建配置前的單獨步驟,可直接在創建時間前對目標硬件進行分析。
用戶使用ICE開發映像時,設備分析過程幾乎與Windows Embedded Standard 2009完全相同。Tap.exe既可從Windows PE運行,也可從IBW的磁盤運行。接下來,OEM開發人員可將Devices.pmq文件導入ICE。在ICE中,各設備將被映射到驅動程序包,并添加到配置中。
配置
在Windows Embedded Standard 2009中,映像配置在Target Designer工具上完成。Target Designer是一個在OEM開發人員的計算機上運行的應用程序,可提供一個用于創建Windows Embedded Standard 2009 操作系統的IDE。OEM開發人員可創建新配置,并將其添加到驅動程序、軟件和嵌入式功能組件中,創建自己的自定義操作系統。開發人員還可以添加宏和模板組件,這些宏和模板組件可包含各種組件二進制文件和設置的組合。此外,開發人員還可選擇編輯與操作系統或其組件相關的設置。
添加基本組件后,OEM開發人員必須解決依賴關系問題。系統將自動檢查添加到配置中的組件,并添加操作系統功能所需的任何其他組件。解決依賴關系問題后,開發人員可將配置保存為.slx文件,該文件用于創建操作系統映像。
在Windows Embedded Standard 7中,存在兩種相互之間有關聯的開發體驗。IBW是一個基于向導的開發工具,支持用戶快速、簡便地對樣機設備進行配置。ICE與Target Designer類似,支持OEM開發人員完全控制其操作系統的各個方面。
IBW是一個在目標設備上運行的安裝向導,可自動檢測系統中的設備,并安裝相應的驅動程序。OEM開發人員可以從模板配置入手,或手動選擇他們希望添加到操作系統中的功能包。解決依賴關系并完成配置后,IBW就可以將操作系統直接安裝到設備上。
ICE與Target Designer的相似之處在于,ICE是一種在OEM開發人員的計算機上運行的IDE體驗。開發人員可以向配置中添加驅動程序、軟件和EEF包,可以向配置中添加作為起始點的模板,還可以添加一系列功能。此外,開發人員還能修改操作系統的設置,解決依賴關系問題。
OEM開發人員完成所需的配置后,可將配置保存到應答文件中。該文件列出了所有要安裝的功能或驅動程序包包和需要進行設置的配置。可將應答文件傳送至IBW,由此創建操作系統。
在Windows Embedded Standard 2009中,操作系統的創建是在OEM開發人員的計算機上完成的。OEM開發人員可在Target Designer中完成配置后創建映像。Target Designer在開發人員指定的位置創建一個操作系統文件夾結構,并使用目標操作系統的二進制文件和注冊表配置單元填充該文件夾結構。然后,OEM開發人員可將這些文件復制到目標設備的磁盤上。系統引導目標設備時,Windows Embedded Standard 2009通過首次啟動代理(FBA),由FBA完成操作系統的最終安裝。完成FBA后,操作系統即可投入使用。
在Windows Embedded Standard 7中,操作系統的創建完全在目標設備上進行。無論是IBW和ICE配置方法,配置工作都在IBW工具上最終完成,從而實現操作系統的創建。IBW首先在設備上安裝基本操作系統,然后安裝所選的包,并應用所有配置設置?;景惭b完成后,設備將重新啟動到安裝的操作系統。然后,與FBA非常相似,完成操作系統的最終安裝后,操作系統即可投入使用。
自定義
在Windows Embedded Standard 2009中,OEM開發人員可以通過多種方式向配置中添加第三方應用程序。第一種方法是使用Component Designer工具。這種方法允許開發人員創建自定義組件。這些自定義組件可包含自定義文件、應用程序或驅動程序的注冊表項,以及其他組件依賴關系的列表。這些組件被導入組件數據庫,并在Target Designer中可見。這樣,OEM開發人員可以創建永久組件,永久組件的操作與操作系統的其他部分類似,可由多種配置共享。此外,自定義組件還支持版本修訂控制。如果開發人員不希望使用自定義組件而向某個配置添加第三方文件或注冊表項,Target Designer還支持使用Extra Files、Extra Registry Data或Extra Resources節點將其他文件和資源手動添加到配置中。使用該配置時,這些文件將安裝到設備上,但使用其他配置時,這些文件將無法安裝到設備上,也無法進行版本控制。
Windows Embedded Standard 7中沒有Component Designer(組件設計)工具。Windows Embedded Standard 7使用$OEM$文件夾的概念將第三方文件加入目標映像。如果必須通過安裝程序安裝第三方文件,則用戶可在安裝過程中使用同步命令執行安裝程序。$OEM $文件夾不支持依賴關系或內置的版本控制功能。但用戶可以創建模板,將功能包組合到一起,然后按照文件版本的不同區分文件夾。
捕獲
在對所需映像進行配置,并創建到設備上以后, OEM開發人員可能需要捕獲映像,用于日后在多臺設備上部署相同配置。
在Windows Embedded Standard 2009中,OEM開發人員必須在捕獲操作系統映像前使用包含Fbreseal.exe的系統克隆(System Cloning)工具。在安裝過程中,每次安裝都具有唯一性。Fbreseal.exe可去除任何唯一標識符,以便這種安裝可以復制到多臺計算機上。運行Fbreseal.exe后,OEM開發人員可使用第三方工具捕獲映像,供日后部署時使用。Windows Embedded Standard 2009還對Sysprep提供有限支持。Sysprep僅用于為使用系統中心配置管理器操作系統部署方法(System Center Configuration Manager’s Operating System Deployment)而準備映像時使用。
在Windows Embedded Standard 7中,OEM開發人員使用的是Sysprep,而不是Fbreseal.exe。Sysprep的功能與Fbreseal.exe類似,可生成映像,以便可以捕獲映像,并用于重新部署。Sysprep具有強制被部署的操作系統進入Out of Box Experience (OOBE) 或Audit模式,支持最終用戶配置操作系統設置,以及OEM開發人員確保在向最終用戶發布設備前已完成了全部預設置工作。用戶也可將無人值守安裝應答文件傳遞到Sysprep,以便系統執行其他命令或對設置進行配置。
運行Sysprep后,用戶即可使用ImageX捕獲映像用于重新部署。ImageX可將目標磁盤的全部內容捕獲到Windows Imaging(WIM)文件中。WIM文件是基于文件的,可進行大規模壓縮。對于重復的文件,系統只在WIM文件中存儲一次,這樣同一文件的多個副本不會顯著增加WIM文件的大小。此外,一個WIM文件可存儲多個類似的映像;只有多個映像之間的差異才會增加WIM文件的整體內存占用。
部署
生成并捕獲映像后,即可在產品計算機部署映像。根據環境的不同,OEM開發人員可能需要重新在一臺、數臺,乃至成千上萬臺設備上重新部署映像。應針對不同場景,采取不同的部署方法。
Windows Embedded Standard 2009中沒有專門針對重新部署流程提供幫助的工具。進行小批量重新部署時,OEM開發人員可簡單地將操作系統文件復制到目標設備的磁盤上。大批量重新部署則需借助第三方工具。
微軟在Windows Embedded Standard 7中提供了多種部署選項。第一種方法是使用ImageX。ImageX不僅可將文件捕獲為WIM文件格式,而且還可將WIM文件部署到目標磁盤上。OEM開發人員可使用ImageX手動部署WIM文件,或使用ImageX編寫腳本,進行自動部署。
對于小批量部署的第二種方法是通過IBW進行。用戶可以使用IBW查看WIM文件并完成安裝。除進行標準WIM部署外,IBW還可以向正在安裝的映像中添加語言包,用戶甚至可以利用IBW將無人參與文件應用到映像。
最后,OEM開發人員可以為了部署Windows Embedded Standard 7映像,而設置Windows Deployment Services(WDS)或System Center Configuration Manager服務器。WDS和Configuration Manager支持面向多個設備進行大規模部署,Windows Embedded Standard 7對它們提供全面支持。
開發流程各階段所用工具總結
評論
查看更多