返學(xué)費(fèi)網(wǎng) > 培訓(xùn)機(jī)構(gòu) > 武漢英泰移動通信
學(xué)習(xí)Windows CE的方向有哪些
與桌面操作系統(tǒng)和服務(wù)器操作系統(tǒng)下的軟件開發(fā)不同,為嵌入式操作系統(tǒng)開發(fā)軟件可不只是寫寫應(yīng)用程序那么簡單。我們常常要深入到內(nèi)核,甚至要深入到硬件。根據(jù)不同的開發(fā)層面,我們把Windows CE 下的嵌入式軟件開發(fā)者分為下面三類:
第一類我們稱之為應(yīng)用程序開發(fā)者。此類開發(fā)人員與傳統(tǒng)的通用操作系統(tǒng)下的應(yīng)用開發(fā)人員比較相似。他們通常是利用操作系統(tǒng)提供的API (Application Programming Interface,應(yīng)用程序編寫接口),應(yīng)用程序庫(例如C 運(yùn)行時(shí)庫,Visual Basic 運(yùn)行時(shí)庫)或應(yīng)用開發(fā)框架(例如J2EE 與.NET Framework)來編寫代碼。他們開發(fā)的代碼通常運(yùn)行在用戶態(tài),無需直接對硬件進(jìn)行操作。他們所關(guān)注的是通常是應(yīng)用功能和業(yè)務(wù)邏輯的實(shí)現(xiàn)。此外,他們的程序通常是直接與最終用戶打交道的。
第二類是操作系統(tǒng)平臺的提供者。此類開發(fā)人員的主要職責(zé)是針對具體的應(yīng)用環(huán)境,對嵌入式操作系統(tǒng)進(jìn)行裁減,向第一類開發(fā)人員提供應(yīng)用程序運(yùn)行的平臺。他們通常要對所裁減的操作系統(tǒng)的各個(gè)模塊的功能了如指掌,這樣才可以針對具體的應(yīng)用環(huán)境,搭建出合適的平臺,使資源達(dá)到最節(jié)省。例如,一個(gè)運(yùn)行在自動取款機(jī)上的嵌入式操作系統(tǒng)應(yīng)不應(yīng)該加入MPEG4 播放模塊,管理數(shù)碼相機(jī)的嵌入式操作系統(tǒng)中“藍(lán)牙”網(wǎng)絡(luò)協(xié)議棧是否必要……。此外,為了滿足應(yīng)用需求,他們有可能還需要對所裁減的嵌入式操作系統(tǒng)進(jìn)行一些擴(kuò)充,增加嵌入式操作系統(tǒng)所不支持的功能,編寫一些比較上層的驅(qū)動程序通常是必要的。例如,用于視頻會議的嵌入式系統(tǒng)要用到USB 攝像頭的支持,如果該嵌入式系統(tǒng)沒有提供USB 攝像頭的驅(qū)動程序,就需要此類開發(fā)者來提供。在現(xiàn)實(shí)的世界中,除了微軟向外界提供Windows Mobile和Windows Automotive,還沒有發(fā)現(xiàn)有公司專門定制操作系統(tǒng)。一般這類角色通常都由第一類或第三類開發(fā)人員兼任。
第三類是內(nèi)核/驅(qū)動開發(fā)者。嵌入式操作系統(tǒng)與通用操作系統(tǒng)最顯著的區(qū)別之一是它的可移植性。一款嵌入式操作系統(tǒng)通??梢赃\(yùn)行在不同體系結(jié)構(gòu)的處理器和開發(fā)板上。為了使嵌入式操作系統(tǒng)可以在某塊具體的開發(fā)板上運(yùn)行,嵌入式操作系統(tǒng)的編寫者通常無法一次性完成整個(gè)操作系統(tǒng)的代碼,而把一部份與具體硬件設(shè)備相關(guān)的代碼作為抽象的接口保留出來,給提供硬件的OEM 廠商來完成。這樣才可以保證整個(gè)操作系統(tǒng)的可移植性。這些代碼通常是BSP(Board Support Package,板級支持包)的一部分。例如,不同的處理器和開發(fā)板通常都會提供時(shí)鐘支持,用來得到當(dāng)前的時(shí)間日期,但是時(shí)鐘的實(shí)現(xiàn)方式卻不勝枚舉,如何告訴嵌入式操作系統(tǒng)當(dāng)前的時(shí)間,就是此類開發(fā)人員要解決的任務(wù)。這一類開發(fā)人員不但要對嵌入式操作系統(tǒng)提供的硬件接口了如指掌,還要對操作系統(tǒng)運(yùn)行的硬件有極為深入的了解。有可能此類開發(fā)人員會同時(shí)身兼軟件工程師和硬件工程師雙種身份——讓嵌入式操作系統(tǒng)在自己設(shè)計(jì)的硬件平臺上運(yùn)行起來。
通常第一類軟件開發(fā)者的數(shù)目最多,第三類軟件開發(fā)者的數(shù)目最為稀少。從軟件角度來看,一般把應(yīng)用開發(fā)稱作上層開發(fā),而把驅(qū)動等系統(tǒng)開發(fā)稱作底層開發(fā)。所以,這三類軟件開發(fā)者的結(jié)構(gòu)通常呈現(xiàn)出“倒三角型”。
就目前國內(nèi)市場上來看,無論是應(yīng)用開發(fā)還是內(nèi)核/驅(qū)動開發(fā)都有良好的前途(錢途)。國內(nèi)基于Windows CE的應(yīng)用程序開發(fā)主要集中在Windows Mobile這一塊,也就是給Pocket PC和Smartphone開發(fā)應(yīng)用程序。此外,還會有一些公司需要開發(fā)Windows CE的BSP和驅(qū)動程序。從報(bào)酬來看自然是后者要高于前者,這個(gè)與開發(fā)難度是成正比的。
但是應(yīng)用開發(fā)與內(nèi)核/驅(qū)動開發(fā)都有自己的知識體系,而且它們的交集并不多。如果兩者兼顧可能需要花費(fèi)大量的時(shí)間與精力。建議學(xué)習(xí)Windows CE的人根據(jù)自己的喜好對這兩者進(jìn)行選擇,對自己的能力有12分自信的則可以“通吃”。