在今天的嵌入式Linux物聯(lián)網(wǎng)(IoT)生態(tài)系統(tǒng)中,低端設(shè)備仍將是提供容量和消費(fèi)行業(yè)支柱的設(shè)備。隨著智能邊緣連接物聯(lián)網(wǎng)的爆炸式發(fā)展,讓設(shè)備保持最新和安全比以往任何時(shí)候都更加重要。我們將討論嵌入式開(kāi)發(fā)人員在低規(guī)格嵌入式設(shè)備上管理固件及其應(yīng)用程序所面臨的挑戰(zhàn)。
1. 保持嵌入式系統(tǒng)在不同硬件之間的的可伸縮性
大多數(shù)用于物聯(lián)網(wǎng)的嵌入式設(shè)備都是單功能和單用途的,它們配備了支持其預(yù)期用途的最低硬件功能。此外,不同的硬件集可以具有有限的閃存(最低32
MB的NAND)、NOR或EMMC存儲(chǔ)(最低64 MB的RAM),這些限制以及硬件的多樣性可能會(huì)限制其處理和聯(lián)網(wǎng)能力。
由于這些限制,為設(shè)備創(chuàng)建的任何固件和應(yīng)用程序都需要高效和精簡(jiǎn),而不需要不必要的二進(jìn)制文件、庫(kù)和模塊。
2. 缺乏可移植性和自動(dòng)化
大多數(shù)低規(guī)格單用途設(shè)備的設(shè)計(jì)不是為了持續(xù)更新。一個(gè)大問(wèn)題是管理設(shè)備狀態(tài),并在發(fā)生災(zāi)難時(shí)能夠?qū)崟r(shí)回滾。例如,如果你沒(méi)有更新并在更新過(guò)程中恢復(fù)到良好狀態(tài)的故障保護(hù)方法,則簡(jiǎn)單的斷電或壞補(bǔ)丁可能會(huì)使設(shè)備變?yōu)榇u塊。
現(xiàn)代云本地工具和實(shí)踐在嵌入式開(kāi)發(fā)人員中并不常見(jiàn)。但現(xiàn)在,隨著物聯(lián)網(wǎng)應(yīng)用程序的激增以及需要盡快應(yīng)用Linux關(guān)鍵安全補(bǔ)丁的宣布,發(fā)布團(tuán)隊(duì)必須采用DevOps方法,以更高效地自動(dòng)化和管理設(shè)備的固件和軟件升級(jí)。
3. 定制Linux發(fā)行版
典型的垂直集成供應(yīng)商品牌Linux發(fā)行版包括許多冗余模塊和軟件包,對(duì)于資源有限的單用途設(shè)備來(lái)說(shuō),這些模塊和軟件包是多余的。相反,開(kāi)發(fā)人員需要根據(jù)他們的用例定制他們的發(fā)行版。
但是,即使在使用定制內(nèi)核模塊和庫(kù)專門(mén)化了嵌入式系統(tǒng)之后,大多數(shù)都需要一種方法來(lái)保持?jǐn)?shù)千臺(tái)設(shè)備的固件和軟件的最新和安全。如今廣泛使用的IoT發(fā)行版在不花費(fèi)大量時(shí)間了解特定發(fā)行版及其工具集的特性的情況下,嵌入式開(kāi)發(fā)人員也很難進(jìn)行定制和安全保護(hù)。