1. gzyueqian
      18078865874

      嵌入式開發(fā):簡(jiǎn)化物聯(lián)網(wǎng)

      更新時(shí)間: 2022-04-20 09:32:35來源: 粵嵌教育瀏覽量:9193

        許多開發(fā)人員認(rèn)為物聯(lián)網(wǎng)和嵌入式 Linux 設(shè)備是他們今天工作環(huán)境的擴(kuò)展。但現(xiàn)實(shí)情況是,為嵌入式 Linux 設(shè)備開發(fā)和維護(hù)應(yīng)用程序伴隨著一系列獨(dú)特的挑戰(zhàn)和工作流程。此外,一些創(chuàng)建新物聯(lián)網(wǎng)產(chǎn)品的嵌入式開發(fā)人員由于各種原因沒有采用容器等現(xiàn)代工具及其實(shí)踐。

        軟件開發(fā)更復(fù)雜

        毫無疑問,軟件開發(fā),尤其是云計(jì)算,這些年來變得更加復(fù)雜。同樣的復(fù)雜程度也適用于物聯(lián)網(wǎng)和嵌入式 Linux 系統(tǒng)。嵌入式設(shè)備越來越復(fù)雜,并將繼續(xù)變得越來越復(fù)雜。當(dāng)前的 Raspberry Pi 和 Nvidia 板就是很好的例子。這些是片上系統(tǒng) (SOC) 的示例,它提供了許多具有許多創(chuàng)新功能的資源,可以使開發(fā)和管理應(yīng)用程序和其他系統(tǒng)變得更加復(fù)雜。

        云開發(fā)人員所需的技能范圍廣泛而多樣,無論是從單個(gè)開發(fā)人員的角度來看,還是從整個(gè)團(tuán)隊(duì)的角度來看都是如此。云開發(fā)人員需要處理許多不同的系統(tǒng),從像 Git 這樣的源代碼控制存儲(chǔ)庫(kù)到像 Kubernetes 這樣的自動(dòng)化持續(xù)集成和部署管道和編排系統(tǒng)。盡管如此,在你開始將應(yīng)用程序部署到云之前,你還需要掌握開發(fā)應(yīng)用程序的語(yǔ)言和框架以及存儲(chǔ)系統(tǒng)。

        嵌入式工程師和硬件

        嵌入式工程師還有管理硬件的額外要求。與擁有近乎無限資源的云不同,嵌入式工程師還必須評(píng)估板的功能和限制。

        嵌入式 Linux 產(chǎn)品也往往會(huì)在市場(chǎng)上銷售很長(zhǎng)時(shí)間,有時(shí)甚至長(zhǎng)達(dá) 10 年。因此,另一個(gè)考慮因素是軟件和固件必須可靠且易于更新。大多數(shù)設(shè)備都是連接的,并且像裸機(jī)服務(wù)器一樣是物聯(lián)網(wǎng)基礎(chǔ)設(shè)施的基本組件。嵌入式開發(fā)人員最不想擔(dān)心的是會(huì)導(dǎo)致整個(gè)網(wǎng)絡(luò)或生態(tài)系統(tǒng)崩潰的關(guān)鍵軟件錯(cuò)誤。

        嵌入式工程和現(xiàn)代云技術(shù)

        通過采用容器及其實(shí)踐等現(xiàn)代云技術(shù),可以滿足許多這些特定于嵌入式的要求。但采用容器還有許多其他好處,可以幫助嵌入式工程團(tuán)隊(duì),例如更快的周轉(zhuǎn)時(shí)間,以將概念原型驗(yàn)證到生產(chǎn)就緒,以及提高開發(fā)速度。



        從概念驗(yàn)證到生產(chǎn)就緒

        在處理新的和復(fù)雜的框架和庫(kù)時(shí),嵌入式工程師必須保持高效并領(lǐng)先于曲線。例如,工程師需要快速構(gòu)建和迭代可與客戶一起評(píng)估和測(cè)試的概念證明或產(chǎn)品原型,以快速確定其是否是可構(gòu)建并推向市場(chǎng)的可行產(chǎn)品。

        上市速度

        原型經(jīng)過測(cè)試和批準(zhǔn)后,你需要做好準(zhǔn)備并盡快將其推向市場(chǎng)。如果測(cè)試成功,你還希望成為市場(chǎng)上第一個(gè)使用有望領(lǐng)先于競(jìng)爭(zhēng)對(duì)手的新一代產(chǎn)品的人。

        生命周期管理的長(zhǎng)期視野

        嵌入式 Linux 設(shè)備需要長(zhǎng)期維護(hù),需要一種可靠的方式來安全地更新和維護(hù)設(shè)備。對(duì)于嵌入式系統(tǒng),嵌入式開發(fā)人員需要一致的電源和一種簡(jiǎn)單的方法來回滾或轉(zhuǎn)發(fā)到良好狀態(tài),以防出現(xiàn)問題而不是最終導(dǎo)致設(shè)備變磚。

        在沒有容器的情況下構(gòu)建嵌入式 Linux 系統(tǒng)

        多年來,構(gòu)建嵌入式 Linux 系統(tǒng)幾乎沒有變化。盡管有像 Buildroot 和 Yocto 這樣專門針對(duì)嵌入式系統(tǒng)的發(fā)行版,但圍繞嵌入式系統(tǒng)設(shè)計(jì)和架構(gòu)的開發(fā)方法和實(shí)踐與 20 年前相似。

        傳統(tǒng)上,嵌入式團(tuán)隊(duì)的發(fā)布周期很慢,包括每隔幾個(gè)月甚至每年一次的整體發(fā)布,其中包含每個(gè)小的更改到一個(gè)大版本中。這種類型的釋放可能適用于封閉的設(shè)備。但是,如果你的設(shè)備連接到互聯(lián)網(wǎng)或在一個(gè)車隊(duì)中呢?如果是這種情況,則需要快速交付其中一些更改和更新。

        單映像整體部署

        以下是嵌入式 Linux 工程師在創(chuàng)建嵌入式系統(tǒng)時(shí)將采用的傳統(tǒng)工作流程。編譯和調(diào)試后,結(jié)果是部署到板上的單個(gè)圖像。

        在組裝和定制板級(jí)支持包以及 Linux 內(nèi)核庫(kù)和模塊后,你需要決定要用于你的應(yīng)用程序的框架和庫(kù)。然后,整個(gè)系統(tǒng)使用 Yocto 或 Buildroot 分層構(gòu)建或“配方”。

        當(dāng)然,這從來沒有聽起來那么簡(jiǎn)單,而且在使用特定工具鏈進(jìn)行交叉編譯時(shí),通常會(huì)出現(xiàn)依賴沖突需要調(diào)試。但是,一旦完成,最終結(jié)果是部署到設(shè)備的單個(gè)整體映像。

        單一映像部署的優(yōu)缺點(diǎn)

        單個(gè)圖像的一個(gè)優(yōu)點(diǎn)是可以對(duì)其進(jìn)行優(yōu)化以在設(shè)備上運(yùn)行得更快。但是,一個(gè)缺點(diǎn)是,如果有關(guān)鍵補(bǔ)丁、新功能或任何其他類型的更新,嵌入式開發(fā)人員必須重復(fù)整個(gè)過程,這可能很耗時(shí)。

        容器和管理復(fù)雜性

        還記得開發(fā)人員說“在我的機(jī)器上工作!”的日子。使用容器,你現(xiàn)在可以做到這一點(diǎn)。本質(zhì)上,容器允許你將帶有應(yīng)用程序及其底層依賴項(xiàng)的機(jī)器移動(dòng)到另一臺(tái)機(jī)器上,并確信它按預(yù)期運(yùn)行。這是因?yàn)槿萜鲗?yīng)用程序和任何依賴項(xiàng)打包為可以在任何環(huán)境(包括嵌入式 Linux 設(shè)備)中運(yùn)行的標(biāo)準(zhǔn)化單元。

        將所有依賴項(xiàng)打包到一個(gè)獨(dú)立的單元中,使系統(tǒng)和應(yīng)用程序能夠在沒有任何外部幫助的情況下完成工作,并提供了許多單體架構(gòu)所不具備的獨(dú)特優(yōu)勢(shì)。



        嵌入式 Linux 系統(tǒng)的便攜式構(gòu)建模塊

        自包含的標(biāo)準(zhǔn)化軟件單元的一個(gè)顯著優(yōu)勢(shì)是能夠?qū)⒛愕恼w系統(tǒng)劃分為邏輯組件。每個(gè)組件都可以獨(dú)立地使用容器之間的接口和容器運(yùn)行時(shí)來管理它們。例如,你可以將系統(tǒng)級(jí)組件與應(yīng)用程序分開。你還可以在用戶空間中為你的應(yīng)用程序使用你想要的任何語(yǔ)言或框架,而不必?fù)?dān)心下面運(yùn)行的是什么操作系統(tǒng)。有關(guān)更多信息,請(qǐng)參閱“掌握嵌入式 Linux 設(shè)備上的容器”或觀看演講“(發(fā)行版)是否仍然相關(guān)”。

        便攜式構(gòu)建塊為嵌入式世界提供了與云開發(fā)人員如今所使用的語(yǔ)言獨(dú)立性相同的優(yōu)勢(shì)。今天,大多數(shù)云開發(fā)人員甚至都沒有考慮他們正在運(yùn)行什么 Distro,甚至沒有考慮在一個(gè)集群中運(yùn)行了多少其他語(yǔ)言。相反,開發(fā)人員將時(shí)間花在他們的應(yīng)用程序或服務(wù)上,以便為客戶而不是基礎(chǔ)設(shè)施提供價(jià)值。這些相同的好處也可以擴(kuò)展到構(gòu)建物聯(lián)網(wǎng)的嵌入式開發(fā)Linux工程團(tuán)隊(duì)。

        更高效、更敏捷的工程團(tuán)隊(duì)

        將內(nèi)核庫(kù)與用戶區(qū)分開組件化的另一個(gè)優(yōu)點(diǎn)是能夠?qū)⒏呒?jí)別的應(yīng)用程序開發(fā)移交給另一個(gè)團(tuán)隊(duì)。例如,嵌入式 Linux 操作系統(tǒng)可以由根文件系統(tǒng)、引導(dǎo)加載程序、內(nèi)核和 BSP 在單獨(dú)的容器和其他可選實(shí)用程序(如容器中的網(wǎng)絡(luò)和圖形庫(kù))中組件化。一旦硬件工程師為特定板構(gòu)建了系統(tǒng),就可以使用簡(jiǎn)單的 Docker 組合文件跨項(xiàng)目共享標(biāo)準(zhǔn)系統(tǒng)級(jí)容器。

        同樣,應(yīng)用程序開發(fā)人員使用的框架(例如 UI 或分布式存儲(chǔ))也可以構(gòu)建為容器,并以可移植的方式在應(yīng)用程序開發(fā)團(tuán)隊(duì)之間共享。同樣,這可以提高開發(fā)效率,并有助于快速完成概念驗(yàn)證,然后最終更快地將可生產(chǎn)的產(chǎn)品推向市場(chǎng)。

        簡(jiǎn)化的軟件生命周期管理

        容器化嵌入式 Linux 系統(tǒng)和應(yīng)用程序庫(kù)的另一個(gè)好處是它們可以更快、更有效地更新。通過容器管理不同版本庫(kù)的能力,你無需重新開始并通過更新構(gòu)建新的單體應(yīng)用程序,你可以更新單個(gè)組件,而無需每次都重新構(gòu)建整個(gè)系統(tǒng)。由于容器是不可變且可移植的,你還可以將測(cè)試和部署自動(dòng)化為 CICD 管道,從眾多可用的開放工具中進(jìn)行選擇,并使用更新和安全補(bǔ)丁快速構(gòu)建新容器。所有這些最終都會(huì)加快產(chǎn)品交付速度并提高物聯(lián)網(wǎng)安全性。

        歸根結(jié)底,在你的嵌入式開發(fā)工作流程中實(shí)施 DevOps 可以快速有效地更新你的 IoT 設(shè)備。DevOps、容器和自動(dòng)化將使物聯(lián)網(wǎng)車隊(duì)更加安全,同時(shí)不斷為你的客戶提供新的服務(wù)和功能。


      免費(fèi)預(yù)約試聽課

      亚洲另类欧美综合久久图片区_亚洲中文字幕日产无码2020_欧美日本一区二区三区桃色视频_亚洲AⅤ天堂一区二区三区

      
      

      1. 一级少妇精品久久久久久久 | 日韩精品动漫在线观看一区 | 黑色丝袜脚足国产在线看非洲 | 亚洲日韩国产中文字幕 | 精品国产天天在线2019 | 思思九九热在线视频免费精品 |