嵌入式系統(tǒng)是熱點,它們是具有實時要求的專用硬件和軟件,是為優(yōu)化成本、性能和功能而定制的。嵌入式系統(tǒng)無處不在,物聯(lián)網(wǎng)行業(yè)正在推動對它們的指數(shù)級需求,以填補(bǔ)每一個可以想象的利基市場,但是沒有足夠的嵌入式開發(fā)工程師來設(shè)計和制造所有這些設(shè)備,即使有,專業(yè)化和硬件獨特性也會妨礙代碼重用、可移植性,甚至像固件空中(FOTA)更新和調(diào)試這樣的簡單需求。對于尋求冒險或在競爭中領(lǐng)先的工程師和團(tuán)隊來說,容器可能是答案。
在云和桌面應(yīng)用程序中,像Docker這樣的容器徹底改變了開發(fā)人員編寫、更新和共享應(yīng)用程序的方式。如果你需要特性A,可能有人已經(jīng)編寫了實現(xiàn)該特性的容器化服務(wù),只需要你部署它。容器已經(jīng)找到了進(jìn)入CI/CD系統(tǒng)的方法,允許軟件被不斷地測試和部署。容器已經(jīng)徹底改變了軟件行業(yè),但是到目前為止,它們還沒有在基于微控制器的嵌入式系統(tǒng)中被廣泛采用。
使用容器來設(shè)計和構(gòu)建嵌入式軟件可能是未來的發(fā)展方向。在嵌入式系統(tǒng)的潮流中保持領(lǐng)先的最好方法是看看更大的軟件行業(yè)正在發(fā)生什么。不幸的是,嵌入式軟件開發(fā)人員往往落后于行業(yè)的其他人大約五年。然而,如果你看看今天的趨勢,一切都是關(guān)于容器技術(shù),那么,嵌入式軟件容器的未來是什么?
到目前為止,我遇到的最小的容器框架的運(yùn)行時間只有幾百千字節(jié)的代碼大小,并且需要同樣數(shù)量的RAM,這太棒了,但在嵌入式開發(fā)中,這仍將淘汰嵌入式系統(tǒng)行業(yè)的很大一部分,這些行業(yè)使用的是內(nèi)存少于256K的受限設(shè)備。很多容器似乎都是針對物聯(lián)網(wǎng)應(yīng)用的。物聯(lián)網(wǎng)設(shè)備通常需要額外的內(nèi)存和成本來管理無線連接、與云通信等。
容器可以在作為物聯(lián)網(wǎng)邊緣設(shè)備的嵌入式系統(tǒng)中扮演利基角色。對于這些設(shè)備,容器可以簡化和改進(jìn)它們生命周期的幾個方面。首先,新的服務(wù)、功能和更新可以遠(yuǎn)程部署到設(shè)備,而無需完全重寫所有固件。第二,容器不需要專門的硬件。例如,一個產(chǎn)品可能有幾個使用不同微控制器的硬件版本,而一個新的特性或服務(wù)可以同時部署到它們上面。最后,不一定需要嵌入式軟件工程師來添加新功能。容器抽象出了所有底層的細(xì)節(jié),這意味著你不再需要一個專門的工程師來編寫一個新的特性。
對于嵌入式系統(tǒng)來說,容器是一個令人興奮的技術(shù)選擇。但是,它們很可能永遠(yuǎn)不會被普遍采用。從來都不是。然而,在一些行業(yè)中,使用容器的好處將有助于簡化嵌入式系統(tǒng)開發(fā)和生命周期管理。在這些領(lǐng)域,我猜想我們將開始看到容器的采用遠(yuǎn)遠(yuǎn)快于物料成本優(yōu)化是關(guān)鍵要求的行業(yè)。
你怎么想呢?容器會成為嵌入式開發(fā)人員工具箱中的常規(guī)工具嗎?