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