三局見(jiàn)真章 微軟Linux嵌入式開(kāi)發(fā)成本PK
隨著嵌入式系統(tǒng)開(kāi)發(fā)日益復(fù)雜,使到開(kāi)發(fā)成本也在不斷增加之中。因此,大力降低開(kāi)發(fā)的復(fù)雜性,實(shí)現(xiàn)低成本開(kāi)發(fā)對(duì)于嵌入式廠商來(lái)說(shuō)顯得意義非凡。一般來(lái)說(shuō),嵌入式設(shè)備是軟件和硬件高度集成的設(shè)備,其中軟件平臺(tái)是由軟件開(kāi)發(fā)工具和開(kāi)發(fā)集成環(huán)境構(gòu)成。如果開(kāi)發(fā)平臺(tái)選擇失誤,重新選擇往往意味著要浪費(fèi)大量的人力、物力以及時(shí)間,更重要的是會(huì)延誤產(chǎn)品的上市時(shí)間,這無(wú)疑是一個(gè)沉重的打擊。
近日,我公司新一代嵌入式設(shè)備面臨著開(kāi)發(fā)平臺(tái)的選擇。公司多次組織開(kāi)發(fā)部門(mén)和相關(guān)技術(shù)人員進(jìn)行討論。在會(huì)議上,Windows Embedded和嵌入式Linux兩種平臺(tái)的支持者爭(zhēng)執(zhí)不下,觀點(diǎn)針?shù)h相對(duì)。那么,究竟哪一種開(kāi)發(fā)平臺(tái)更能有效地降低開(kāi)發(fā)的復(fù)雜性、降低產(chǎn)品成本和加快上市速度呢?在這個(gè)問(wèn)題上兩大陣營(yíng)是經(jīng)常發(fā)生“公說(shuō)公有理、婆說(shuō)婆有理”的口水大戰(zhàn),我們不妨來(lái)個(gè)全面的比較。本文詳細(xì)分析嵌入式平臺(tái)選型的要點(diǎn),然后結(jié)合討論會(huì)上的發(fā)言,分析許多開(kāi)發(fā)人員關(guān)心的一個(gè)問(wèn)題:究竟Windows Embedded 和嵌入式Linux相比較,誰(shuí)的開(kāi)發(fā)成本更具有競(jìng)爭(zhēng)力?
***局:開(kāi)發(fā)總成本大比拼
(1)免費(fèi)嵌入式Linux VS 商業(yè)化平臺(tái)工具
在嵌入式平臺(tái)領(lǐng)域中,微軟的地位無(wú)疑是非常重要的。但Linux不但繼承了Unix的技術(shù)特色,更因?yàn)殚_(kāi)放源代碼而在商業(yè)機(jī)制上與一貫封閉的微軟相對(duì)壘,更是贏得了眾多支持者的口碑。免費(fèi)開(kāi)源的嵌入式Linux現(xiàn)在是嵌入式領(lǐng)域的熱點(diǎn)話題,很多小型廠商為了節(jié)省開(kāi)發(fā)成本都在采用免費(fèi)的嵌入式Linux開(kāi)發(fā)產(chǎn)品。他們認(rèn)為L(zhǎng)inux是免費(fèi)的,因此開(kāi)發(fā)成本會(huì)低很多,雖然他們也承認(rèn)必須要花費(fèi)不少的資源和時(shí)間去將它變成一個(gè)可用的商業(yè)產(chǎn)品。或者有人認(rèn)為可從風(fēng)河、MontaVista和紅帽子等供應(yīng)商處買(mǎi)到商業(yè)版Linux,但事實(shí)上商業(yè)版Linux可不便宜,在很多同等情況下和Windows Embedded的費(fèi)用相差不大。
對(duì)于一個(gè)嵌入式產(chǎn)品來(lái)說(shuō),從開(kāi)發(fā)到批量上市的費(fèi)用大致由三個(gè)方面構(gòu)成:開(kāi)發(fā)平臺(tái)和開(kāi)發(fā)工具費(fèi)用、產(chǎn)品License許可證費(fèi)用、以及開(kāi)發(fā)過(guò)程中的各種隱性費(fèi)用。在產(chǎn)品License許可證費(fèi)用上,Linux是免收使用許可費(fèi)的,Windows Embedded是要收取使用許可費(fèi)的。拋開(kāi)在技術(shù)上的區(qū)別,從開(kāi)發(fā)平臺(tái)費(fèi)用來(lái)看可以分為:免費(fèi)的嵌入式Linux、商業(yè)版嵌入式Linux和Windows Embedded。從平臺(tái)費(fèi)用的經(jīng)濟(jì)性上看,Open Source的Linux無(wú)疑是最吸引人的,因?yàn)樗敲赓M(fèi)的,而其它商用平臺(tái)(如Windows Embedded、VxWorks)和商業(yè)版Linux都需要支付一定的費(fèi)用。
嵌入式開(kāi)發(fā)平臺(tái)從商業(yè)模式上可以分為兩類:In-House平臺(tái)(由各生產(chǎn)廠商自行研發(fā)和維護(hù))和商業(yè)化的平臺(tái)。對(duì)于完全免費(fèi)的嵌入式Linux平臺(tái),由于各自應(yīng)用的領(lǐng)域和需求的不同,必然要求開(kāi)發(fā)者在基礎(chǔ)版本上自行修改和維護(hù),最終形成各自不同的版本,這樣就和In-House的嵌入式開(kāi)發(fā)工具沒(méi)有什么區(qū)別了。在這一點(diǎn)上開(kāi)發(fā)者需要有非常清醒的認(rèn)識(shí),就是廠商開(kāi)發(fā)的是面向最終用戶的嵌入式設(shè)備,而不是花大量的時(shí)間和成本在修改和維護(hù)Linux平臺(tái)上。所以,雖然很多人會(huì)覺(jué)得免費(fèi)的Linux可以節(jié)省成本,但實(shí)情上卻是需要花費(fèi)更多的隱形維護(hù)成本。
因此,經(jīng)過(guò)激烈的爭(zhēng)辯和分析后,在我們公司的討論會(huì)上一致的結(jié)論是:針對(duì)我們公司的技術(shù)實(shí)力而言,免費(fèi)的嵌入式Linux暫時(shí)不具備商用化的快速開(kāi)發(fā)、高可靠性、低成本維護(hù)等商業(yè)要求。當(dāng)然,這個(gè)結(jié)論對(duì)許多嵌入式設(shè)備開(kāi)發(fā)廠商同樣具有參考意義。因?yàn)閷?duì)于一個(gè)嵌入式產(chǎn)品開(kāi)發(fā)來(lái)說(shuō),是要清醒的認(rèn)識(shí)到總開(kāi)發(fā)成本TCD(Total Cost of Development),而不能只看產(chǎn)品的入門(mén)許可證費(fèi)用,這也是選擇嵌入式軟件開(kāi)發(fā)平臺(tái)的一個(gè)基本準(zhǔn)則。
(2)Linux VS Window Embedded的開(kāi)發(fā)成本比較
從前文我們可知,對(duì)總開(kāi)發(fā)成本TCD的評(píng)估可以幫助嵌入式廠商評(píng)估花在軟件開(kāi)發(fā)中的總體成本。在這里參考和引用知名市場(chǎng)研究機(jī)構(gòu)Embedded Market Forecasters提出的一個(gè)模型和數(shù)據(jù):TCD=TTM x NOE x CPMM。其中:TTM(Time to Market)是產(chǎn)品從開(kāi)發(fā)開(kāi)始到上市所用的時(shí)間,以月為單位;NOE(Number of Engineers Used)是開(kāi)發(fā)該產(chǎn)品所需要的開(kāi)發(fā)人員數(shù)量;CPMM(Cost Per Man-Month)是每個(gè)開(kāi)發(fā)人員每個(gè)月所需要的費(fèi)用。調(diào)查數(shù)據(jù)表示:Windows Embedded平臺(tái)的平均TTM為8.1個(gè)月,而嵌入式Linux平臺(tái)的平均TTM為14.3個(gè)月,前者比后者快了43%。從對(duì)開(kāi)發(fā)人員的需求數(shù)量來(lái)看,Windows Embedded 平臺(tái)中每開(kāi)發(fā)一個(gè)產(chǎn)品所需的平均開(kāi)發(fā)人員數(shù)量為7.9人,而嵌入式Linux平臺(tái)需要14.2人,前者比后者節(jié)省44%。再把兩種平臺(tái)開(kāi)發(fā)人員的平均月成本CPMM都假定為相同。從而得出一個(gè)結(jié)論:就是Windows Embedded平臺(tái)成本大約只是Linux的四分之一,而且開(kāi)發(fā)周期更短。報(bào)告的主要作者Jerry Krasner博士對(duì)差別如此之大所作的解釋是:Windows Embedded更為成熟、功能更加豐富、采用基于組件的設(shè)計(jì)方法、具有集成化的工具集、支持并行開(kāi)發(fā)工作流程。
這個(gè)結(jié)論一經(jīng)發(fā)布,可謂一石激起千層浪。嵌入式Linux的支持者紛紛出來(lái)辯論,并對(duì)其提出質(zhì)疑。因?yàn)闊嶂杂谇度胧絃inux的人們認(rèn)為開(kāi)發(fā)平臺(tái)的評(píng)估方法應(yīng)該是準(zhǔn)確地衡量開(kāi)發(fā)工作中的全部因素。雖然TTM和TCD的確是很重要的因素,但如果只是拿一兩個(gè)指標(biāo)來(lái)衡量,其結(jié)果一定是片面的。對(duì)于Windows Embedded是否更具TCD(總開(kāi)發(fā)成本)優(yōu)勢(shì)這個(gè)結(jié)論我們先不予置評(píng),但TTM和NOE這兩個(gè)數(shù)據(jù)卻是真實(shí)的調(diào)查數(shù)據(jù),對(duì)我們選擇開(kāi)發(fā)平臺(tái)時(shí)有一定的參考價(jià)值。
第二局:組件化和硬件兼容性大比拼
(1)組件化技術(shù)可大大降低開(kāi)發(fā)成本
大量的嵌入式開(kāi)發(fā)項(xiàng)目已證明復(fù)用技術(shù)是提高開(kāi)發(fā)效率,降低開(kāi)發(fā)成本,并改善軟件質(zhì)量的有效方式之一。所謂復(fù)用技術(shù),其核心是組件化、構(gòu)件化。經(jīng)過(guò)多年發(fā)展和積淀,成熟的嵌入式開(kāi)發(fā)平臺(tái)大多支持基于組件(Components)的開(kāi)發(fā)方法,從而使到不同產(chǎn)品、不同開(kāi)發(fā)項(xiàng)目之間能實(shí)現(xiàn)大范圍的軟件組件重復(fù)使用,從而加快開(kāi)發(fā)速度,降低開(kāi)發(fā)成本。
據(jù)微軟Teched 2009技術(shù)大會(huì)的資料介紹,Windows Embedded Standard 2011是針對(duì)Windows 7平臺(tái)的模塊化系統(tǒng)。為了適應(yīng)嵌入式產(chǎn)品的定制化需求,微軟將Windows 7拆分成一萬(wàn)多個(gè)獨(dú)立的功能組件,允許用戶根據(jù)自己的需求在自定義設(shè)備映像管理時(shí)選擇***功能,以定制尺寸更小的操作系統(tǒng)。因此,通過(guò)提供大量成熟而實(shí)用的組件的方式,使得Windows Embedded Standard 2011平臺(tái)具有了“配置化”的開(kāi)發(fā)特點(diǎn),有效的降低了對(duì)開(kāi)發(fā)人員的技術(shù)要求。據(jù)統(tǒng)計(jì)數(shù)據(jù)顯示,相對(duì)于其它開(kāi)發(fā)平臺(tái)而言,這可以節(jié)省40%~60%的人力成本,并且可縮短50%~80%的軟件開(kāi)發(fā)周期。此外,Windows Embedded的應(yīng)用程序開(kāi)發(fā)接口是Win32 API,與桌面Windows的基本一致,這大大的方便桌面Windows開(kāi)發(fā)人員向Windows Embedded嵌入式開(kāi)發(fā)過(guò)渡。
同時(shí),微軟Windows Embedded操作系統(tǒng)還為許多特殊功能需求和外圍設(shè)備提供了一系列廣泛的硬件驅(qū)動(dòng)支持和功能組件支持,包括:工業(yè)自動(dòng)化系統(tǒng)和機(jī)器人、互聯(lián)網(wǎng)IP電話、家庭網(wǎng)關(guān)、消費(fèi)電子產(chǎn)品、網(wǎng)絡(luò)機(jī)頂盒、GPS設(shè)備、游戲機(jī)、零售終端收銀機(jī)POS和自動(dòng)柜員機(jī)ATM等。因此,Windows Embedded的成本優(yōu)勢(shì)主要是體現(xiàn)在優(yōu)化端對(duì)端的開(kāi)發(fā),快速配置、構(gòu)建和部署等功能組件上。而且,Windows Embedded還有大量的第三方應(yīng)用軟件支持。無(wú)論是針對(duì)特殊需求優(yōu)化的功能組件,還是針對(duì)硬件驅(qū)動(dòng)支持來(lái)說(shuō),嵌入式Linux都相對(duì)的缺乏,這都需要更多的完善。
(2)硬件兼容性和可移植性
微軟Windows Embedded的策略是推出廣泛的組件化、硬件兼容性和可移植性,以使嵌入式設(shè)備開(kāi)發(fā)商在從大量的功能和特性選擇時(shí)具有更大的靈活性和選擇權(quán)。硬件兼容性和可移植性選擇包括:CPU處理器、硬件外圍設(shè)備、硬件驅(qū)動(dòng)程序等。其中CPU處理器選擇是最為重要的,同時(shí)硬件外圍設(shè)備驅(qū)動(dòng)程序也是非常關(guān)鍵的。原因是CPU處理器的選擇往往會(huì)限制操作系統(tǒng)的選擇,而操作系統(tǒng)的選擇又會(huì)限制或影響硬件驅(qū)動(dòng)程序的選擇。
當(dāng)今的嵌入式系統(tǒng)開(kāi)發(fā)是處于高度分化狀態(tài)中,因?yàn)橛兄嗟米屓搜刍潄y的CPU處理器和硬件外圍設(shè)備可供選擇。但處理器和硬件外圍設(shè)備的多樣化也困擾著嵌入式系統(tǒng)的開(kāi)發(fā)者,這一障礙導(dǎo)致開(kāi)發(fā)商必須要小心選擇軟件開(kāi)發(fā)平臺(tái)和開(kāi)發(fā)工具環(huán)境。而作為通用性強(qiáng)的嵌入式平臺(tái)Windows Embedded是能滿足甚至超過(guò)了這些需求。例如,Windows Embedded支持多種處理器家族,包括X86、PowerPC、ARM、MIPS和SH等系列,而且微軟為每個(gè)支持的處理器家族提供了完整的系統(tǒng)庫(kù)。另外,Windows Embedded可以通過(guò)OEM適配層OAL適配到任何硬件外圍設(shè)備上。其中OAL是駐留在Windows Embedded內(nèi)核和硬件之間的代碼層,原始設(shè)備制造商使用OAL代碼把Windows Embedded適配到自己的硬件上。在硬件外圍設(shè)備驅(qū)動(dòng)程序上,微軟提供了許多參考的樣例。開(kāi)發(fā)人員通過(guò)參考樣例可迅速地完成硬件外圍設(shè)備驅(qū)動(dòng)程序的開(kāi)發(fā),不但可以節(jié)省開(kāi)發(fā)時(shí)間,還能降低開(kāi)發(fā)的技術(shù)難度。
第三局:平臺(tái)生態(tài)環(huán)境成本大比拼
(1)開(kāi)發(fā)工具生態(tài)環(huán)境成本考慮
當(dāng)開(kāi)發(fā)人員圍繞一個(gè)平臺(tái)進(jìn)行開(kāi)發(fā)時(shí),就跟它相關(guān)的生態(tài)環(huán)境密切相關(guān)。平臺(tái)生態(tài)環(huán)境是指所有參與這個(gè)開(kāi)發(fā)平臺(tái)的合作伙伴,例如芯片廠商、開(kāi)發(fā)工具提供商、以及在平臺(tái)上做應(yīng)用開(kāi)發(fā)的廠商。目前,嵌入式Linux很少有第三方廠商的支持,不管是開(kāi)發(fā)工具還是應(yīng)用程序,開(kāi)發(fā)商必須開(kāi)發(fā)所有的東西,這對(duì)于今天分秒必爭(zhēng)的嵌入式市場(chǎng)來(lái)說(shuō)是不現(xiàn)實(shí)的。而微軟Windows Embedded的第三方開(kāi)發(fā)資源和可重復(fù)利用的資源很多,使到應(yīng)用程序的開(kāi)發(fā)速度會(huì)較快,也使到產(chǎn)品上市周期會(huì)比Linux快很多。
另外,與嵌入式Linux相比,Windows Embedded不但是一個(gè)成熟的商業(yè)產(chǎn)品,更重要的是微軟推出功能強(qiáng)大的輔助開(kāi)發(fā)工具,這能幫助客戶實(shí)現(xiàn)快速開(kāi)發(fā)和減少投入市場(chǎng)的時(shí)間。而嵌入式Linux則相對(duì)的缺乏成熟的開(kāi)發(fā)工具和生態(tài)環(huán)境。因?yàn)閷?duì)開(kāi)發(fā)人員來(lái)說(shuō),微軟已經(jīng)幫他們完成了80%的軟件開(kāi)發(fā)工作,例如提供很多的庫(kù)和基本的軟件框架,客戶只需把與他們實(shí)際應(yīng)用相關(guān)的軟件部分填進(jìn)去就可以了,這使得客戶在微軟Windows Embedded平臺(tái)上更容易完成開(kāi)發(fā)工作。雖然使用Windows Embedded是需要先花費(fèi)一筆授權(quán)許可費(fèi),但天下沒(méi)有免費(fèi)的午餐。因此,在誰(shuí)先進(jìn)入市場(chǎng)誰(shuí)就能獲得更大利潤(rùn)的今天,選擇一個(gè)功能強(qiáng)大,同時(shí)又有使用方便的開(kāi)發(fā)工具的生態(tài)環(huán)境顯得至關(guān)重要。
(2)從應(yīng)用和學(xué)習(xí)成本考慮
眾所周知,開(kāi)發(fā)一個(gè)產(chǎn)品的隱形成本究竟是多少,是與開(kāi)發(fā)者已有的資源密切相關(guān)的。例如,開(kāi)發(fā)者熟悉工具的學(xué)習(xí)成本就是一個(gè)非常關(guān)鍵的考慮因素。從學(xué)習(xí)和研究的角度來(lái)看,Linux能讓開(kāi)發(fā)者了解到最徹底的東西,因?yàn)殚_(kāi)發(fā)者有全部的源碼。而Windows Embedded只給封裝好的各種API,通常學(xué)到的是表層的內(nèi)容。但與Linux相比,Windows Embedded的主要優(yōu)點(diǎn)是應(yīng)用簡(jiǎn)單和容易學(xué)習(xí)。因?yàn)槲④浱峁┝朔奖愕腎DE和開(kāi)發(fā)工具,無(wú)論是對(duì)于OS的定制、裁減、交叉編譯,還是應(yīng)用程序的開(kāi)發(fā)都相對(duì)簡(jiǎn)單。
此外,從微軟在Teched 2009公布的市場(chǎng)策略來(lái)看,使用微軟Windows Embedded的客戶不必投入資源用于技術(shù)支持和培訓(xùn),因?yàn)槲④浻斜姸嗟呐嘤?xùn)合作伙伴。相比之下,雖然開(kāi)源的Linux曾經(jīng)在一段時(shí)間內(nèi)風(fēng)靡一時(shí),但畢竟沒(méi)有大量的人力、物力以及技術(shù)實(shí)力的持續(xù)投入,使到Linux系統(tǒng)在大規(guī)模商用時(shí)往往成為一紙空談。
***,除了技術(shù)支持與合作伙伴之外,相信微軟也是在市場(chǎng)營(yíng)銷(xiāo)方面唯一一家跟嵌入式廠商一起開(kāi)拓市場(chǎng)的廠商,而Linux則沒(méi)有哪一家廠商是從市場(chǎng)營(yíng)銷(xiāo)方面來(lái)跟開(kāi)發(fā)廠商配合。總而言之,在激烈競(jìng)爭(zhēng)的商業(yè)環(huán)境中,誰(shuí)都希望以更低的成本、更快的速度推出滿足市場(chǎng)需求的產(chǎn)品,但前提是要根據(jù)自家的技術(shù)實(shí)力綜合的考慮總擁有成本。
【編輯推薦】