對(duì)于嵌入式應(yīng)用程序開(kāi)發(fā)人員來(lái)說(shuō),開(kāi)源軟件似乎是一個(gè)絕妙的選擇,無(wú)論是用作應(yīng)用程序的基礎(chǔ),還是使用開(kāi)源工具來(lái)加速開(kāi)發(fā)過(guò)程和加快上市時(shí)間。開(kāi)源軟件就其本質(zhì)而言是免費(fèi)的——這意味著無(wú)需成本或付款。在管理人員不斷嘗試限制開(kāi)發(fā)成本的環(huán)境中,開(kāi)源聽(tīng)起來(lái)是個(gè)好主意,并且根據(jù)每個(gè)開(kāi)發(fā)人員的獨(dú)特情況,它可能只是解決預(yù)算限制所需的解決方案。
考慮一些專業(yè)人士。首先,開(kāi)源很容易獲得。使用開(kāi)源,開(kāi)發(fā)人員只需下載和使用該軟件。開(kāi)源代碼質(zhì)量也可以是積極的。如果代碼已經(jīng)不錯(cuò),它只會(huì)隨著社區(qū)的改進(jìn)而改進(jìn)。利用開(kāi)源社區(qū)獲得幫助、支持和功能開(kāi)發(fā)是開(kāi)源的最大資產(chǎn)之一。“我們都在一起”的感覺(jué)有助于所有船只升起。
總而言之,這些好處可以讓開(kāi)發(fā)人員懷疑開(kāi)源是否存在不利因素。事實(shí)證明,開(kāi)源確實(shí)有隱藏的成本,只有在組織處于開(kāi)發(fā)過(guò)程中時(shí)才會(huì)顯現(xiàn)出來(lái)。雖然開(kāi)源產(chǎn)品可能適合某些開(kāi)發(fā)人員,但其他使用開(kāi)源產(chǎn)品的人在考慮替代方案為時(shí)已晚后可能會(huì)遇到各種陷阱。
讓我們回顧一下開(kāi)源對(duì)開(kāi)發(fā)過(guò)程的四個(gè)關(guān)鍵部分的影響——使用開(kāi)源代碼作為開(kāi)發(fā)嵌入式應(yīng)用程序的基礎(chǔ)、定制開(kāi)源平臺(tái)以加速構(gòu)建、開(kāi)源蔓延和可見(jiàn)性以及對(duì)時(shí)間敏感問(wèn)題的支持。
為嵌入式環(huán)境定制開(kāi)源
在考慮將開(kāi)源作為網(wǎng)絡(luò)基礎(chǔ)設(shè)施平臺(tái)、機(jī)頂盒平臺(tái)、醫(yī)療設(shè)備或任何其他嵌入式應(yīng)用程序的基礎(chǔ)時(shí),請(qǐng)考慮滿足特定行業(yè)需求所需的定制量。
在實(shí)施一個(gè)新的開(kāi)源項(xiàng)目時(shí),一個(gè)團(tuán)隊(duì)要么需要使用他們自己團(tuán)隊(duì)的寶貴資源來(lái)定制軟件以滿足其環(huán)境的需求,要么使用資金聘請(qǐng)顧問(wèn)來(lái)做同樣的事情。顧問(wèn)路線可以節(jié)省定制軟件的時(shí)間,但它仍然需要開(kāi)發(fā)人員花時(shí)間管理流程。
維護(hù)開(kāi)源軟件是另一個(gè)時(shí)間槽。十分之九,腳本和修復(fù)是可行的,但代價(jià)是開(kāi)發(fā)人員可以更明智地花費(fèi)在開(kāi)發(fā)產(chǎn)品上的時(shí)間,而不僅僅是修復(fù)開(kāi)源軟件。由于開(kāi)發(fā)人員的高成本,這可能占分配給“免費(fèi)”解決方案的開(kāi)發(fā)資源的很大一部分。
優(yōu)化開(kāi)源以加速構(gòu)建
開(kāi)發(fā)人員需要以最大化工程組織生產(chǎn)力的方式優(yōu)化他們的構(gòu)建。這意味著開(kāi)發(fā)人員不會(huì)坐在那里等待他們的個(gè)人構(gòu)建完成——這個(gè)過(guò)程通常最多需要幾分鐘或幾小時(shí),最壞的情況是幾天。當(dāng)今市場(chǎng)上的構(gòu)建加速器工具主要通過(guò)分布在大型構(gòu)建云中的稱為依賴感知并行性的過(guò)程以及巧妙的緩存和避免技術(shù)來(lái)加速構(gòu)建,從而實(shí)現(xiàn)快速可靠的增量構(gòu)建和完整構(gòu)建。一些大型開(kāi)發(fā)組織已經(jīng)使用這些加速器優(yōu)化了數(shù)據(jù)中心,以加快分布式全球團(tuán)隊(duì)的構(gòu)建速度。
開(kāi)源選項(xiàng)可用于管理和加速軟件構(gòu)建,但它們有明確的限制和警告。例如,在使用通用軟件構(gòu)建工具(如 GNU Make 和 SCons)時(shí),構(gòu)建必要的可擴(kuò)展性和可靠性以支持和加速適當(dāng)級(jí)別的軟件構(gòu)建通常成本很高。隨著組織擴(kuò)大到更多的開(kāi)發(fā)人員、更多的項(xiàng)目以及在整個(gè)開(kāi)發(fā)生命周期中對(duì)更快的反饋循環(huán)的更大需求,這個(gè)問(wèn)題會(huì)成倍增加。
開(kāi)源構(gòu)建工具的另一個(gè)常見(jiàn)問(wèn)題是缺乏對(duì)軟件構(gòu)建結(jié)構(gòu)內(nèi)部細(xì)節(jié)的可見(jiàn)性和“可調(diào)試性”,這導(dǎo)致希望變得更加高效和敏捷的組織需要進(jìn)行昂貴的手動(dòng)維護(hù)和較長(zhǎng)的交付周期。一旦構(gòu)建失敗,返回并確定出現(xiàn)問(wèn)題的可見(jiàn)性根本不存在。隨著多個(gè)團(tuán)隊(duì)共同努力將產(chǎn)品推向市場(chǎng),團(tuán)隊(duì)之間缺乏可見(jiàn)性會(huì)減慢故障排除速度,從而加快產(chǎn)品上市速度。在一個(gè)需要上市時(shí)間就是一切的行業(yè),并且越來(lái)越需要嵌入式應(yīng)用程序的多個(gè)版本和修復(fù)程序,這種級(jí)別的支持根本是不可接受的。
在考慮開(kāi)源工具的替代方案時(shí),團(tuán)隊(duì)?wèi)?yīng)確保加速工具不會(huì)導(dǎo)致構(gòu)建中斷,可以利用現(xiàn)有的硬件資源進(jìn)行并行化,并且可以使用現(xiàn)有的工具集和流程。
一個(gè)這樣的替代方案是 Electric Cloud 的 ElectricAccelerator(圖 1),它在單臺(tái)機(jī)器上或跨標(biāo)準(zhǔn)服務(wù)器集群執(zhí)行并行構(gòu)建,將完整或增量構(gòu)建時(shí)間減少多達(dá) 20 倍。這種加速的關(guān)鍵在于獲得專利的依賴管理技術(shù),該技術(shù)在文件級(jí)別檢測(cè)和管理依賴關(guān)系,以確保準(zhǔn)確的構(gòu)建。ElectricAccelerator 可插入現(xiàn)有的構(gòu)建和發(fā)布架構(gòu),無(wú)需修改現(xiàn)有的構(gòu)建腳本和工具。作為構(gòu)建工具的附加組件,ElectricInsight 提供了一個(gè)直觀的圖形表示,描述了構(gòu)建的結(jié)構(gòu)和運(yùn)行方式,使構(gòu)建管理人員能夠查明所有構(gòu)建中的性能問(wèn)題或沖突。而不是手動(dòng)傾倒數(shù)千行構(gòu)建輸出文件,
圖 1: ElectricAccelerator 并行構(gòu)建管理底層復(fù)雜依賴項(xiàng)。插圖報(bào)告顯示了如何優(yōu)化硬件利用率以減少構(gòu)建時(shí)間。

開(kāi)源蔓延和可見(jiàn)性
因?yàn)殚_(kāi)源平臺(tái)很容易獲得,所以大多數(shù)部門最終都會(huì)實(shí)施自己的個(gè)人版本,通常是為了滿足他們的特定需求而定制的。對(duì)于較大的組織,這可能意味著在同一個(gè)開(kāi)發(fā)組織中實(shí)施了數(shù)十個(gè)持續(xù)集成工具實(shí)例,從而創(chuàng)建了一個(gè)不受管理的、孤立的環(huán)境,或者換句話說(shuō),一個(gè)開(kāi)源的蔓延。
這種蔓延所產(chǎn)生的成本可能是巨大的。首先,這不是一個(gè)容易擴(kuò)展的模型。其次,管理層對(duì)開(kāi)發(fā)工作的進(jìn)展幾乎沒(méi)有可見(jiàn)性。由于缺乏標(biāo)準(zhǔn)化,無(wú)法真正評(píng)估進(jìn)度或解決相互依賴的項(xiàng)目之間的問(wèn)題。從管理的角度來(lái)看,這是令人沮喪的,因?yàn)楣ぷ鞑粎f(xié)調(diào),對(duì)昂貴資源的要求來(lái)自四面八方。
開(kāi)源和支持
在使用開(kāi)源時(shí),開(kāi)發(fā)人員總是面臨支持的問(wèn)題。當(dāng)必須解決時(shí)間緊迫的問(wèn)題時(shí),這些問(wèn)題可能需要直接提交給社區(qū),因?yàn)闆](méi)有官方支持系統(tǒng)。影響組織收入的關(guān)鍵任務(wù)應(yīng)用程序必須與可追究責(zé)任的專業(yè)人員合作,以對(duì)時(shí)間敏感的方式解決。有人隨叫隨到來(lái)解決問(wèn)題而不是依賴社區(qū),這是有話要說(shuō)的。
總而言之,所有這些問(wèn)題很容易復(fù)合,從而在任何嵌入式開(kāi)發(fā)過(guò)程中引入重大問(wèn)題。這并不是說(shuō)開(kāi)源不能成為嵌入式開(kāi)發(fā)人員的有價(jià)值的工具——它肯定可以。但是,使用開(kāi)源進(jìn)行開(kāi)發(fā)工作的成本具有局限性,并且需要組織必須預(yù)算的時(shí)間和精力。因此,當(dāng)開(kāi)發(fā)人員決定依賴開(kāi)源技術(shù)時(shí),他們應(yīng)該確保了解“免費(fèi)”的真實(shí)價(jià)格。
審核編輯:郭婷
-
嵌入式
+關(guān)注
關(guān)注
5210文章
20712瀏覽量
337796 -
機(jī)器
+關(guān)注
關(guān)注
0文章
801瀏覽量
41950 -
開(kāi)源
+關(guān)注
關(guān)注
3文章
4391瀏覽量
46531
發(fā)布評(píng)論請(qǐng)先 登錄
TPS63024xEVM - 553評(píng)估模塊:特性、使用與注意事項(xiàng)
LMZ20502 SIMPLE SWITCHER? 評(píng)估板:特性、使用與注意事項(xiàng)
LM5017隔離電源評(píng)估板:特性、應(yīng)用與注意事項(xiàng)
深入了解LM3281評(píng)估板:功能、應(yīng)用與使用注意事項(xiàng)
深入探究LM3280評(píng)估板:設(shè)計(jì)、應(yīng)用與注意事項(xiàng)
LM10692評(píng)估模塊:功能、使用與注意事項(xiàng)
驅(qū)動(dòng)板PCB布線的注意事項(xiàng)
emWin AppWizard 開(kāi)發(fā)注意事項(xiàng)有哪些?
別讓這些細(xì)節(jié)毀了PCBA!焊接注意事項(xiàng)清單
美國(guó)Odyssey奧德賽電池充電注意事項(xiàng)全解析
評(píng)估開(kāi)源的注意事項(xiàng)
評(píng)論