www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式分享
[導(dǎo)讀]更新并不總是必要的,但是很難想出有哪些軟件沒(méi)有在某個(gè)時(shí)候發(fā)現(xiàn)的錯(cuò)誤。即使您的軟件是完美的,如果設(shè)備在網(wǎng)絡(luò)上或互聯(lián)網(wǎng)上與任何開(kāi)源庫(kù)進(jìn)行通信,安全更新也可能成為必需品。

一旦嵌入式Linux產(chǎn)品離開(kāi)實(shí)驗(yàn)室進(jìn)入現(xiàn)實(shí)世界,如何更新設(shè)備的問(wèn)題將成為重要考慮。

更新并不總是必要的,但是很難想出有哪些軟件沒(méi)有在某個(gè)時(shí)候發(fā)現(xiàn)的錯(cuò)誤。即使您的軟件是完美的,如果設(shè)備在網(wǎng)絡(luò)上或互聯(lián)網(wǎng)上與任何開(kāi)源庫(kù)進(jìn)行通信,安全更新也可能成為必需品。

以CV-2104-01650(心出血)為例。這個(gè)漏洞影響了開(kāi)放SSL密碼庫(kù),也影響了網(wǎng)絡(luò)上三分之二的網(wǎng)站。即使在三年后的今天,還有很多嵌入式的Linux設(shè)備運(yùn)行著一個(gè)未經(jīng)防御的版本的開(kāi)放式攻擊。

塊與文件更新

在討論更新Linux時(shí),您可能會(huì)看到"塊"和"文件"更新系統(tǒng)正在被提及。這是指通過(guò)直接寫(xiě)入塊設(shè)備或更新單個(gè)文件來(lái)一次更新整個(gè)分區(qū)。您可能熟悉來(lái)自臺(tái)式機(jī)或服務(wù)器Linux的文件更新系統(tǒng)(例如"Sudo應(yīng)用程序升級(jí)")。

在基于嵌入式Linux塊的升級(jí)中,由于其原子性和整個(gè)文件系統(tǒng)通常是嵌入式Linux構(gòu)建系統(tǒng)的輸出這一事實(shí),這是前進(jìn)的道路。我們希望每個(gè)嵌入式設(shè)備上的存儲(chǔ)空間對(duì)于一個(gè)特定的產(chǎn)品來(lái)說(shuō)是常量的,所以我們每次都創(chuàng)建相同的大小分區(qū)。這種類(lèi)型的更新與具有某種備份或恢復(fù)的圖像同時(shí)進(jìn)行。

失敗時(shí)回收

我們絕不希望該設(shè)備處于無(wú)法使用的狀態(tài)(例如,如果發(fā)生斷電)。我們可以通過(guò)確保在更新過(guò)程中出現(xiàn)任何錯(cuò)誤時(shí)總是有可能"退回"到另一個(gè)分區(qū)來(lái)解決這個(gè)問(wèn)題。

圖1失敗時(shí)的恢復(fù)-撤退選項(xiàng)

上面您可以看到兩個(gè)可能的實(shí)現(xiàn),在電源中斷的情況下,一個(gè)備份模式。在左側(cè),引導(dǎo)加載程序啟動(dòng)一個(gè)救援分區(qū),然后引導(dǎo)進(jìn)入一個(gè)主分區(qū)。在右側(cè),引導(dǎo)加載程序啟動(dòng)基于開(kāi)關(guān)的兩個(gè)分區(qū)之一。

引導(dǎo)加載程序應(yīng)該實(shí)現(xiàn)某種方法,以確定引導(dǎo)是否成功,如果沒(méi)有,則應(yīng)該返回到救援分區(qū)(左側(cè)圖)或先前的工作分區(qū)(右側(cè)圖)。

救援方法(左)允許向主分區(qū)提供更多的空間,而雙根方法(右)要求在兩個(gè)分區(qū)之間或多或少地平均分配空間。如果空間不是一個(gè)問(wèn)題,那么建議使用雙根法,只是因?yàn)樗鼤?huì)減少停機(jī)時(shí)間。通過(guò)救援方法更新需要兩次重新啟動(dòng),一次進(jìn)入救援分區(qū),另一次回到主分區(qū)。雙根文件方法只需要重新啟動(dòng)一次,因?yàn)槿魏螘r(shí)候都可以執(zhí)行更新。

在這些系統(tǒng)中,您無(wú)法安全地更新的是引導(dǎo)加載程序(或者說(shuō)救援分區(qū))。如果您也希望能夠更新引導(dǎo)加載程序,那么您將需要兩個(gè)獨(dú)立的引導(dǎo)加載程序分區(qū),以及某種董事會(huì)管理控制器來(lái)實(shí)現(xiàn)在這兩個(gè)程序之間切換的邏輯。

圖2故障恢復(fù)--董事會(huì)管理控制器

當(dāng)然,這是一個(gè)復(fù)雜的解決方案,需要一個(gè)額外的微控制器,一套新的固件,以及一個(gè)更復(fù)雜的硬件設(shè)計(jì)(它在一些設(shè)備中使用,例如那些包含單獨(dú)的智能平臺(tái)管理接口(IPMI)控制器的設(shè)備)。因此,您應(yīng)該致力于構(gòu)建一個(gè)功能性的引導(dǎo)加載程序,其范圍小,因此不需要更新。

U-腳環(huán)境變量

U-Boot實(shí)現(xiàn)了一個(gè)可以存儲(chǔ)變量的非易失性"環(huán)境"。這些數(shù)據(jù)甚至可以從Linux中訪問(wèn)(根據(jù)環(huán)境存儲(chǔ)方式的不同,有不同的方式)。這是實(shí)現(xiàn)上述"轉(zhuǎn)換"的最明顯方式。它還可以用來(lái)存儲(chǔ)有關(guān)以前引導(dǎo)成功或失敗的信息,以便在引導(dǎo)失敗的情況下,可以逆轉(zhuǎn)開(kāi)關(guān),恢復(fù)工作分區(qū)。

圖3u-Boot環(huán)境變量

安裝看門(mén)狗

您的處理器的硬件監(jiān)視器應(yīng)該由U-Boot(康菲-沃奇狗)安裝,然后在啟動(dòng)完成后由Linux維護(hù)。這將導(dǎo)致在整個(gè)系統(tǒng)掛起的情況下重置。

檢查引導(dǎo)失敗

一旦您的任務(wù)關(guān)鍵應(yīng)用程序運(yùn)行完畢,它應(yīng)該在U-Boot環(huán)境中設(shè)置一個(gè)變量,表示已完成的引導(dǎo)。然后,U腳將能夠檢查下一個(gè)引導(dǎo)是否設(shè)置了這個(gè)設(shè)置,如果引導(dǎo)失敗(有時(shí)是在連續(xù)幾次失敗之后),則采取行動(dòng)。

它的精確架構(gòu)將取決于您的應(yīng)用程序和產(chǎn)品;您將需要稍微定制一下,以適應(yīng)您的需求。您將需要確定所有可能的失敗模式,并實(shí)現(xiàn)所有這些模式的恢復(fù)。

實(shí)施更新

正如我們?cè)诟轮八f(shuō)的,應(yīng)該作為一個(gè)單獨(dú)的密碼簽名文件出現(xiàn)。私鑰簽名確保其來(lái)源于你,制造商?,F(xiàn)在系統(tǒng)只需要打開(kāi)它并在其中運(yùn)行一個(gè)腳本來(lái)執(zhí)行更新本身。它將寫(xiě)入將要更新的分區(qū);輕彈需要的任何開(kāi)關(guān)并重新啟動(dòng)。這應(yīng)該盡快發(fā)生,以盡可能減少停機(jī)時(shí)間。

確保更新

我們希望確保提供給設(shè)備的更新文件是來(lái)自我們的制造商,而不是來(lái)自其他人。為了實(shí)現(xiàn)這一點(diǎn),更新文件與一個(gè)由制造商持有的私鑰簽署。相應(yīng)的公鑰是設(shè)備上的所持有的,它將驗(yàn)證要求它執(zhí)行更新的任何更新文件。如果提供的文件被視為無(wú)效,那么更新將失敗。

得到更新

更新如何到達(dá)是另一回事。這里有四種可能性:

最明顯和最簡(jiǎn)單的是,更新是由一個(gè)工程師應(yīng)用的,他在設(shè)備上有一個(gè)根登錄。他運(yùn)行更新腳本,設(shè)備被更新。這充滿了安全方面的擔(dān)憂,可能僅適用于正在開(kāi)發(fā)的系統(tǒng),或在工程或工業(yè)環(huán)境中使用的系統(tǒng)。

物理介質(zhì)插入設(shè)備(USB棒),其中包含所需的更新.板上的軟件將通過(guò)輪詢(xún)守護(hù)進(jìn)程或UDEV規(guī)則自動(dòng)檢測(cè)和安裝。

通過(guò)某些方法(例如Web應(yīng)用程序)將更新文件上傳到單個(gè)機(jī)器上。

如下一節(jié)所描述的,實(shí)時(shí)更新。

廣播最新消息

超空(OTA)更新通常是指通過(guò)安全通道從中央服務(wù)器上更新的設(shè)備。它一般指的是多功能設(shè)備、移動(dòng)電話、汽車(chē)ECU等。在本文中,我將描述一種可以在任何連接到互聯(lián)網(wǎng)的設(shè)備上工作的更新類(lèi)型,這可能是通過(guò)Wi-Fi(超廣播)、以太網(wǎng)(超銅)或其他協(xié)議。

查詢(xún)更新情況

首先要做的是檢查更新情況。在設(shè)備上運(yùn)行的守護(hù)進(jìn)程可以將請(qǐng)求發(fā)送到預(yù)定的服務(wù)器,提供其當(dāng)前的版本和硬件版本。然后,服務(wù)器可以根據(jù)該信息,在必要時(shí)將簽名更新文件發(fā)送到設(shè)備上進(jìn)行安裝,或者報(bào)告沒(méi)有可用的或不需要的更新。

復(fù)雜性可以在許多方面增加,從僅提供更新到基于不同標(biāo)準(zhǔn)的設(shè)備子集,到完全加密更新文件,到向中央服務(wù)器報(bào)告更新?tīng)顟B(tài)或其他信息。

現(xiàn)成與內(nèi)部解決方案

有許多現(xiàn)成的更新機(jī)制可以與您的嵌入式Linux系統(tǒng)集成,而無(wú)需重新發(fā)明上述的車(chē)輪。

這可能需要花費(fèi)一些時(shí)間和努力來(lái)集成到您當(dāng)前的嵌入式Linux構(gòu)建系統(tǒng)中,但是它可能比在內(nèi)部開(kāi)發(fā)定制方法的工作要少,而且它可能更健壯,因?yàn)槠渲幸恍╉?xiàng)目已經(jīng)投入了數(shù)百小時(shí)。

你可能不希望現(xiàn)成的解決方案的原因:

你希望為你的董事會(huì)定制每個(gè)級(jí)別的東西

你可能在使用一個(gè)相對(duì)較新的,而且沒(méi)有被廣泛使用或認(rèn)可的大型代碼庫(kù)時(shí)會(huì)有安全問(wèn)題。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

本屆年會(huì)將在上海(11月13-14日)、北京(11月19-20日)和深圳(11月27-28日)舉行,面向嵌入式設(shè)計(jì)工程師推出25門(mén)技術(shù)課程

關(guān)鍵字: 嵌入式 MCU 模擬

上海2025年9月5日 /美通社/ -- 由紐倫堡會(huì)展(上海)有限公司舉辦的上海國(guó)際嵌入式會(huì)議將于 2025 年 10 月 16-17 日在上海世博展覽館舉辦。 此次會(huì)議將由三個(gè)版塊組成:嵌入式技術(shù)會(huì)議、汽...

關(guān)鍵字: 嵌入式 CE CHINA EMBEDDED

從外部看,電子系統(tǒng)仿佛一個(gè)統(tǒng)一的學(xué)科或設(shè)備,各組成部分協(xié)同工作,渾然一體。然而揭開(kāi)表象,其內(nèi)在卻是另一番景象:一個(gè)碎片化、多層次的世界——其中每一層都獨(dú)立且復(fù)雜,衍生出各自特有的工具、專(zhuān)家、工作流程,甚至哲學(xué)體系。

關(guān)鍵字: 嵌入式 電子系統(tǒng) 半導(dǎo)體

8位單片機(jī)在嵌入式設(shè)計(jì)領(lǐng)域已經(jīng)成為半個(gè)多世紀(jì)以來(lái)的主流選擇。盡管嵌入式系統(tǒng)市場(chǎng)日益復(fù)雜,8位單片機(jī)依然不斷發(fā)展,積極應(yīng)對(duì)新的挑戰(zhàn)和系統(tǒng)需求。如今,Microchip推出的8位PIC?和AVR?單片機(jī)系列,配備了先進(jìn)的獨(dú)立...

關(guān)鍵字: 單片機(jī) 嵌入式 CPU

深圳2025年8月28日 /美通社/ -- 8月26日,2025 ELEXCON深圳國(guó)際電子展盛大啟幕。本屆大會(huì)以"All for AI"為主題,深圳市德...

關(guān)鍵字: AI 工業(yè)級(jí) SSD 嵌入式

深圳2025年8月26日 /美通社/ -- 8月26日,由博聞創(chuàng)意會(huì)展主辦的 第22屆深圳國(guó)際電子展暨嵌入式展(elexcon2025)在深圳(福田)會(huì)展中心隆重開(kāi)幕。 作為中國(guó)電子與嵌入式技術(shù)領(lǐng)域的專(zhuān)業(yè)大展,本屆展會(huì)...

關(guān)鍵字: 嵌入式 電子 高通 AI

模塊化設(shè)計(jì)作為一種將系統(tǒng)拆分為獨(dú)立、可復(fù)用組件的方法,能夠在低代碼平臺(tái)中實(shí)現(xiàn)功能的靈活組合,并最大限度地提升系統(tǒng)性能。本文將探討如何通過(guò)模塊化設(shè)計(jì),使得低代碼平臺(tái)既能快速適應(yīng)變化,又能保持高效穩(wěn)定的運(yùn)行。

關(guān)鍵字: 模塊化設(shè)計(jì) 嵌入式

CPU親和度通過(guò)限制進(jìn)程或線程可以運(yùn)行的CPU核心集合,使得它們只能在指定的CPU核心上執(zhí)行。這可以減少CPU緩存的失效次數(shù),提高緩存命中率,從而提升系統(tǒng)性能。

關(guān)鍵字: Linux 嵌入式

加密算法分對(duì)稱(chēng)加密和非對(duì)稱(chēng)算法,其中對(duì)稱(chēng)加密算法的加密與解密密鑰相同,非對(duì)稱(chēng)加密算法的加密密鑰與解密密鑰不同,此外,還有一類(lèi)不需要密鑰的散列算法。

關(guān)鍵字: 算法 嵌入式

從本質(zhì)上講,算法是一種有條不紊、分步驟解決問(wèn)題或完成任務(wù)的方法。無(wú)論是簡(jiǎn)單的數(shù)字相加公式,還是復(fù)雜的機(jī)器學(xué)習(xí)協(xié)議,算法都是軟件應(yīng)用的基礎(chǔ),確保任務(wù)能夠高效有效地執(zhí)行。

關(guān)鍵字: 算法 嵌入式
關(guān)閉