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