物聯網包括各種各樣的設備,運行不同的體系結構,并且通常專門針對手頭的特定任務進行配置。盡管嵌入式設備世界中有很大一部分是在Linux上運行的,但為完成這項任務而添加的定制軟件和系統可能會使維護生命周期變得復雜,從而使它們保持最新、安全和可靠。在現代云時代怎么更新物聯網設備呢?
嵌入式環境中的挑戰
根據相關數據推測,到2025年,全球聯網設備將超過557億臺,其中75%連接到物聯網平臺。有了這么多聯網的物聯網設備,更新它們變得簡單、高效、最重要的是安全,這一點至關重要。
但在深入研究嵌入式設備更新所需的內容之前,有必要仔細看看嵌入式環境是什么樣子的。與云計算或web編程不同,你在嵌入式世界中的環境受到嚴格控制,有許多限制。
設備通常位于難以到達的位置
通常情況下,消費者和其他你甚至沒有想到的設備都位于偏遠且難以到達的位置。如果你想到wifi路由器和其他難以獲得的設備,它們不可能總是以可控的方式更新。
網絡連接可能會有所不同
連接可能是斷斷續續的,可能是通過4G連接,或者比這更慢的連接。你可能有也可能沒有安全的連接,特別是當你通過公共網絡時。
產品壽命可延長至10年以上
嵌入式開發領域中的產品壽命差異很大。一些市場,如汽車,可以保持相同的硬件五到十年,而家用電器,它可以是原來的兩倍。但在消費電子領域,產品的使用壽命更像是6到12個月,因此種類繁多。
電力并非總是有保障的
必須解決電力問題,特別是在客戶不是企業的消費者服務提供商(CSP)的情況下。許多消費類設備都使用電池供電,即使沒有,也不能保證設備所有者在任何特定時刻都不會拔下電源。你必須能夠處理可能具有間歇性電源的設備。
嵌入式Linux系統上更新了什么?
大多數嵌入式設備都是單用途設計,其構造目的是為了更好地執行一件事情。由于這種高度的專門化,Linux發行版通常是完全精簡的。當涉及到安全和其他維護更新時,以下是需要在嵌入式Linux設備上更新的基本組件:
Board Support Package(BSP):這通常由你使用的系統芯片制造商提供,它包含為設備中使用的目標板提供基本Linux內核支持的代碼庫。嵌入式開發人員通常可以自定義這些內容,有時還需要更新。
Bootloader :這是設備通電后運行的第一個組件,初始化了主板并啟動了Linux內核。
Linux Kernel:Linux發行版的核心,包括你想要運行的應用程序的任何專用模塊和特定驅動程序。這通常是一個需要半定期更新的組件。
根文件系統:這是保持系統運行的基本系統庫和其他實用程序和腳本所在的位置。這些文件中的大多數都需要更新和升級。
系統應用程序和包:這是你的應用程序所在的用戶區。在這里,你需要更新功能,偶爾修復bug。
傳統嵌入式發行版更新
更新嵌入式系統通常需要完全重建操作系統以保護設備。根據你使用的Linux發行版的不同,可以逐個文件、逐個包或以一層一層更可移植的方式手動完成。一旦嵌入式開發人員添加了修復和升級,然后重新構建并測試了操作系統,你就可以從空中傳送(OTA)設備更新系統將其部署回設備。
“重建整個操作系統”方法的一個大問題是,現在你可能有1000臺設備,其中許多設備都有定制的配置和定制的發行版,帶有精選的軟件包和模塊,甚至是偏離原始電路板設計的高度專業化的電路板支持軟件包。單獨或甚至在較小的設備組中更新所有這些是一個耗時且容易出錯的過程。
用容器更新嵌入式系統
如果你可以將整個操作系統和系統想象為一組模塊化的容器化不可變構建塊,你可以完全控制這些構建塊,會怎么樣?使用容器,可以將系統粒度保持在第三方可以將組件作為完全工作單元交付的水平,如果操作正確,這些組件之間的相互依賴性將非常小。
通過以上對在現代云時代怎么更新物聯網設備的具體教程介紹,想必有了一定了解吧!一個完全容器化的系統包括以下容器:Linux內核、任何中間件包以及用戶區。此級別的容器化為你提供了一個完全模塊化的系統,如果需要,可以跨數百萬臺設備進行更靈活和獨立的更新,這將大大提高嵌入式開發效率。更多關于“物聯網培訓”的問題,歡迎咨詢千鋒教育在線名師。千鋒教育多年辦學,課程大綱緊跟企業需求,更科學更嚴謹,每年培養泛IT人才近2萬人。不論你是零基礎還是想提升,都可以找到適合的班型,千鋒教育隨時歡迎你來試聽。