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