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