嵌入式開源軟件:君子合而不同
近十年來,開源軟件已經(jīng)主宰了嵌入式系統(tǒng)。網(wǎng)景公司的聯(lián)合創(chuàng)始人,同時也是LinkedIn主要投資人的Marc Andressen,最近發(fā)表了一篇“軟件正在鯨吞世界”的文章。當(dāng)今嵌入式軟件的適用場合比任何其他種類軟件加起來還要廣。嵌入式軟件是交通、安全、醫(yī)療、食品、農(nóng)業(yè)、國防和娛樂等應(yīng)用系統(tǒng)的核心,事實上這些行業(yè)的每個領(lǐng)域都以各種方式深入到我們?nèi)粘I钪小?/p>
嵌入式軟件設(shè)計的復(fù)雜度在以指數(shù)級的速度增加。在一定程度上,它反映并且遵循了集成式設(shè)備中,門電路的復(fù)雜度在過去的40年里每18個月增加一倍的 規(guī)律。代碼復(fù)雜度的增加和互不分割的全球化市場變革有所重疊。對于缺貨產(chǎn)品的需求成倍增長,產(chǎn)品的功能增多,開發(fā)成本降低,這些都導(dǎo)致采購需求、合作和代 碼復(fù)用的增加。開源軟件作為代碼復(fù)用的最終表現(xiàn),已經(jīng)成了當(dāng)今嵌入式市場競爭的主要推動因素。
從1983年首個GNU,到2011侵入到整個IT系統(tǒng),開源已經(jīng)滲透到了軟件開發(fā)的每個層面。開源軟件已經(jīng)成為40%嵌入式項目的選擇(下載報告 全文:選擇研究:嵌入式工程調(diào)查,來自VDC Research),因為它能提供的優(yōu)勢包括:快速面市、低開發(fā)成本、更好的安全性、反復(fù)經(jīng)過檢驗的質(zhì)量、多樣性、令授權(quán)成本、諸多知名供應(yīng)商提供的多個 選擇等等。
開源征服嵌入式設(shè)備
開源軟件在嵌入式應(yīng)用的典型例子包括Android(嵌入式Linux和其他開源實時操作系統(tǒng)RTOS),用于手機(jī)和PDA的Qt用戶界面,冰箱和 工業(yè)控制系統(tǒng),大約十萬種其他項目,涵蓋從通信軟件棧,網(wǎng)絡(luò)瀏覽、用戶界面、遠(yuǎn)程管理、嵌入式數(shù)據(jù)庫、音頻和視頻編解碼,甚至虛擬機(jī)(例如Java虛擬 機(jī))。40%用于嵌入式環(huán)境的實時操作系統(tǒng)(RTOS)都是開源的,除了Android外還包括重量級的廠商如MontaVista,QNX和 Mentor。
應(yīng)該管理開源應(yīng)用
開源軟件的優(yōu)勢只有在其實際應(yīng)用得到管理的時候才能體現(xiàn)。開源軟件從來都有明確的條款,有相應(yīng)的授權(quán)、版權(quán)、安全隱患說明和出口管制分類。如果不了 解或者不遵守這些條款,就有可能導(dǎo)致產(chǎn)品質(zhì)量問題。消費產(chǎn)品等嵌入式設(shè)備大量售出,任何質(zhì)量問題或損害授權(quán)條款的問題都有可能造成嚴(yán)重的經(jīng)濟(jì)損失。
項目層面,或者組織層面的政策通常限定了條款的可接受度。雖然有人覺得很難承認(rèn),但今天占有豐富資源的開發(fā)者都不會從最基礎(chǔ)的部分開始寫代碼,因為 他們知道哪兒能獲得所需代碼,自己只要靠創(chuàng)造力優(yōu)化代碼就可以了。指望開發(fā)者在軟件開發(fā)時間緊張的情況下了解并管理代碼條例不太合理也不現(xiàn)實,因此相關(guān)組 織就越來越多地允許管理下的開源軟件在項目中的使用,縮短開發(fā)間隔,降低開發(fā)成本。
曾經(jīng)有專門針對100多個覆蓋跨國大組織到50人以下的小技術(shù)公司進(jìn)行的調(diào)查,發(fā)現(xiàn)了嵌入式領(lǐng)域應(yīng)用并管理開源軟件的最好的做法。在產(chǎn)品推出市場之 前建立授權(quán)政策、采用軟件包預(yù)批核流程、對現(xiàn)有的軟件目錄創(chuàng)建基本準(zhǔn)則、實時而且定期規(guī)范軟件分析等,都是嵌入式領(lǐng)域采取的做法。
開源軟件開始主導(dǎo)嵌入式設(shè)備市場,其對于嵌入式系統(tǒng)公司的開發(fā)者和管理層,以及對嵌入式解決方案最終用戶都能帶來廣泛的優(yōu)勢。這些優(yōu)勢包括更低的開 發(fā)成本、更低的市場產(chǎn)品成本、更短的面市時間、更快的產(chǎn)品進(jìn)化速度、反復(fù)經(jīng)過檢驗的高質(zhì)量方案、方案的多樣性以及確保長期產(chǎn)品可用,同時降低了供需變化不 確定性的資源。每一項采用開源軟件帶來的優(yōu)勢對于資源豐富的開發(fā)者來說都極具吸引力,他們可以集中注意力于在現(xiàn)有代碼,在此基礎(chǔ)上加上自己的創(chuàng)造力,實現(xiàn) 更快的創(chuàng)新周期。立即可用的開源代碼也有短處,例如用來了解整個嵌入式項目的開源內(nèi)容的代碼記錄和整理會有滯后、需要保持新版本的更新進(jìn)度、存在潛在的授 權(quán)和版權(quán)條款問題以及要考慮安全可行性和修補(bǔ)并減輕這些問題。
架構(gòu)完善的開源軟件使用流程(OSSAP)讓組織能夠使用可控制和可管理的模式發(fā)揮開源軟件的優(yōu)勢。OSSAP所包含的步驟包括建立政策、軟件包的 預(yù)批核、建立現(xiàn)有代碼和來自商業(yè)供應(yīng)商和外包團(tuán)體的代碼掃描的基本準(zhǔn)則。定期掃描項目代碼合集,進(jìn)入項目庫或在開發(fā)者進(jìn)行開發(fā)的時候?qū)崟r發(fā)現(xiàn)并管理軟件, 確保任何時候項目中的開源軟件內(nèi)容都可以被知曉或了解,而構(gòu)建時間的掃描確保了最終推向市場的產(chǎn)品滿足采取的開源政策。