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