在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何提高嵌入式應(yīng)用程序的安全性和可靠性

星星科技指導(dǎo)員 ? 來(lái)源:embedded ? 作者:Semir Haddad ? 2023-05-04 09:39 ? 次閱讀

在最近的一篇文章中,嵌入式系統(tǒng)顧問Jacob Beningo提出了一個(gè)問題,即是否是時(shí)候退役C編程語(yǔ)言了,因?yàn)樗趶?fù)雜性和潛在錯(cuò)誤以及C開發(fā)人員短缺方面的局限性。作為回應(yīng),Andrei Gorine 認(rèn)為 C 的緊湊占用空間使其比 JavaC# 和 Go 等資源密集型現(xiàn)代語(yǔ)言更具競(jìng)爭(zhēng)力。

此外,C 語(yǔ)言直接控制應(yīng)用程序行為和內(nèi)存的能力使其成為需要近距離訪問硬件資源(如中斷和外圍設(shè)備)的系統(tǒng)的唯一可行選擇。對(duì)于嵌入式設(shè)備尤其如此,因?yàn)樗鼈兊幕A(chǔ)操作系統(tǒng)、驅(qū)動(dòng)程序和相關(guān) API 也傾向于用 C 語(yǔ)言編寫。

但是,這種高度靈活的控制級(jí)別可能會(huì)導(dǎo)致運(yùn)行時(shí)行為出現(xiàn)問題。無(wú)論 C 語(yǔ)言最終是否停用,開發(fā)人員都需要當(dāng)今的工具來(lái)確保應(yīng)用程序的安全性和可靠性不會(huì)因人為錯(cuò)誤或嵌入式設(shè)備日益互聯(lián)而受到損害。開發(fā)人員需要像管理高級(jí)語(yǔ)言一樣管理 C,以增強(qiáng)應(yīng)用程序的安全性和可靠性。

托管 C 與非托管 C

C 語(yǔ)言與現(xiàn)代語(yǔ)言(如 Java、JavaScript 和 Python)之間的主要區(qū)別之一是后者的實(shí)現(xiàn)是托管的。這意味著代碼由運(yùn)行時(shí)環(huán)境執(zhí)行,該運(yùn)行時(shí)環(huán)境確保其在內(nèi)存邊界、安全原則和優(yōu)化范圍內(nèi)正確管理和執(zhí)行。

相比之下,C 語(yǔ)言是非托管的,這意味著程序員必須手動(dòng)管理內(nèi)存分配和釋放。這使得代碼更容易受到安全漏洞的影響,例如緩沖區(qū)溢出和內(nèi)存泄漏。權(quán)衡是 C 代碼通常比托管代碼更快、更高效,但需要更多的努力來(lái)編寫和維護(hù)。

下面是托管 C 代碼和非托管 C 代碼之間主要區(qū)別的摘要:

托管代碼 非托管代碼
由公共語(yǔ)言基礎(chǔ)結(jié)構(gòu)(運(yùn)行時(shí))執(zhí)行 處理器編譯和執(zhí)行
不會(huì)發(fā)生內(nèi)存緩沖區(qū)溢出 可能發(fā)生內(nèi)存緩沖區(qū)溢出
提供內(nèi)存保護(hù)并降低內(nèi)存泄漏的風(fēng)險(xiǎn) 內(nèi)存不受保護(hù),分配函數(shù)和指針使用不當(dāng)會(huì)導(dǎo)致內(nèi)存損壞和系統(tǒng)崩潰
提供異常處理和內(nèi)存清理等服務(wù) 不提供這些服務(wù)
可以輕松移植到不同的平臺(tái),因?yàn)檫\(yùn)行時(shí)環(huán)境抽象了硬件和操作系統(tǒng)的細(xì)節(jié) 無(wú)法輕松移植,需要工程團(tuán)隊(duì)經(jīng)常從頭開始
運(yùn)行時(shí)環(huán)境強(qiáng)制實(shí)施安全功能,例如類型安全和訪問控制 開發(fā)人員負(fù)責(zé)編寫安全可靠的代碼,這可能會(huì)增加出錯(cuò)的風(fēng)險(xiǎn)

將兩全其美相結(jié)合:C 應(yīng)用程序與用高級(jí)語(yǔ)言編寫的應(yīng)用程序的可靠性

軟件容器使開發(fā)人員能夠在運(yùn)行時(shí)環(huán)境中有效地管理 C 應(yīng)用程序,盡管內(nèi)存分配仍然需要手動(dòng)管理。這是因?yàn)槿萜骰癁槊總€(gè)應(yīng)用程序提供了一個(gè)安全且隔離的空間,從而降低了由于內(nèi)存錯(cuò)誤而導(dǎo)致系統(tǒng)崩潰的可能性。

托管 C 中的動(dòng)態(tài)鏈接允許安裝新包,而無(wú)需開發(fā)人員重新編譯整個(gè)程序,從而節(jié)省開發(fā)時(shí)間。此功能傳統(tǒng)上與 Linux 相關(guān)聯(lián),現(xiàn)在可以通過使用小型軟件容器獲得,并在支持熱代碼替換的同時(shí)提供增強(qiáng)的可移植性和安全性。

MICROEJ VEE是一個(gè)微型軟件容器的一個(gè)例子,它為托管C,Java和JavaScript應(yīng)用程序提供了沙盒機(jī)制。所有組件都由同一個(gè)運(yùn)行時(shí)環(huán)境管理,確保安全可靠的共存。通過這種方法,工程師可以重復(fù)使用組件,確信它們將可靠、安全地工作。

使用安全軟件容器來(lái)隔離每個(gè)應(yīng)用程序,允許用不同編程語(yǔ)言編寫的多個(gè)應(yīng)用程序無(wú)縫共存,從而提供了顯著的優(yōu)勢(shì)。通過將托管 C 與安全容器相結(jié)合,這種方法彌合了嵌入式和企業(yè)開發(fā)之間的差距。托管 C 提供了 C 的靈活性,同時(shí)使開發(fā)人員無(wú)需管理安全內(nèi)存、多任務(wù)同步和執(zhí)行其他低級(jí)任務(wù)。

這種方法還有助于在 C 語(yǔ)言中集成遺留代碼和現(xiàn)有軟件堆棧。這對(duì)于實(shí)現(xiàn)用嵌入式 C 語(yǔ)言編寫的協(xié)議特別有用,包括云連接器、Matter、LWM2M 和 MQTT。它也是MISRA C指南的補(bǔ)充,因?yàn)樗朔说图?jí)健壯性和安全問題。最后,像 MICROEJ VEE 這樣的容器允許動(dòng)態(tài)鏈接,這意味著托管 C 可以動(dòng)態(tài)鏈接和取消鏈接,就像用 VEE 容器支持的任何其他語(yǔ)言編寫的代碼一樣。

將托管和非托管 C 組合在一起以獲得最佳結(jié)果

使用安全軟件容器并不意味著需要管理所有 C 代碼。在像 MICROEJ VEE 這樣的虛擬執(zhí)行環(huán)境中,非托管 C 代碼(也稱為本機(jī)代碼)仍然可以發(fā)揮作用。所有直接與硬件和CPU寄存器接口的低級(jí)驅(qū)動(dòng)程序和板級(jí)支持包都應(yīng)在C語(yǔ)言中保持不受管理的狀態(tài),以最好地利用C與硬件的緊密聯(lián)系。

相比之下,對(duì)于更復(fù)雜的應(yīng)用程序任務(wù),使用托管代碼更方便、更高效。由于關(guān)注點(diǎn)分離,托管代碼提高了工作效率并減少了錯(cuò)誤,并使代碼更具可移植性。

托管和非托管代碼庫(kù)仍可以通過抽象層和本機(jī)接口以受控方式進(jìn)行交互。它稱為簡(jiǎn)單本機(jī)接口或 SNI,它允許任何托管代碼調(diào)用本機(jī)函數(shù)、傳遞參數(shù)、獲取返回值并在專用空間中操作共享內(nèi)存。

托管代碼中的高級(jí)堆棧和非托管代碼中的低級(jí)別硬件接口的這種拆分提供了理想的組合。

托管 C:未來(lái)的 C 語(yǔ)言

在復(fù)雜且不斷變化的開發(fā)環(huán)境中,開發(fā)人員必須能夠訪問利用最新硬件創(chuàng)新的尖端軟件和語(yǔ)言解決方案。盡管 C 語(yǔ)言是嵌入式開發(fā)中的領(lǐng)先語(yǔ)言,但仍需要使用工具和流程來(lái)管理其運(yùn)行時(shí)行為,這些工具和流程可以釋放托管代碼的所有優(yōu)勢(shì),以加速創(chuàng)新。

通過簡(jiǎn)化開發(fā)過程并將安全性和可靠性卸載到運(yùn)行時(shí),托管 C 使開發(fā)人員能夠提高其應(yīng)用程序的健壯性、安全性和可移植性,同時(shí)保持熟悉的編程語(yǔ)言。隨著技術(shù)的不斷發(fā)展,采用托管 C 代碼解決方案的開發(fā)人員將能夠更好地創(chuàng)建創(chuàng)新、安全和可靠的連接產(chǎn)品。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5142

    文章

    19561

    瀏覽量

    315411
  • JAVA
    +關(guān)注

    關(guān)注

    20

    文章

    2986

    瀏覽量

    107045
  • 應(yīng)用程序
    +關(guān)注

    關(guān)注

    38

    文章

    3322

    瀏覽量

    58778
收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    如何提高嵌入式代碼質(zhì)量?

    嵌入式代碼的質(zhì)量是至關(guān)重要的。本文將探討如何通過有效的開發(fā)方法和工具來(lái)提高嵌入式代碼的質(zhì)量,以確保系統(tǒng)的可靠性和可維護(hù)。 理解
    發(fā)表于 01-15 10:48

    嵌入式軟件可靠性測(cè)試方法

    嵌入式軟件可靠性測(cè)試方法
    發(fā)表于 11-05 17:18

    嵌入式系統(tǒng)產(chǎn)品的可靠性

    關(guān)注有助于確保整個(gè)終端設(shè)備可靠性要求的裝置。集成電路在嵌入式系統(tǒng)的性能、尺寸和整體成本方面已經(jīng)實(shí)現(xiàn)重大突破,對(duì)各種存儲(chǔ)元件的依賴及使用小尺寸硅工藝技術(shù)可能產(chǎn)生的永久和瞬時(shí)誤差對(duì)可靠性產(chǎn)生了影響。 將眾多
    發(fā)表于 08-30 14:43

    嵌入式軟件的可靠性測(cè)試與可靠性增長(zhǎng)評(píng)估

    關(guān)于嵌入式等軟件可靠性安全性測(cè)試與評(píng)估的資料,希望有幫助。
    發(fā)表于 06-17 16:53

    開發(fā)高可靠性嵌入式系統(tǒng)的技巧有哪些?

    盡管許多嵌入式工程師充滿了希望和夢(mèng)想,但高可靠性的代碼不是一蹴而就的。它是一個(gè)艱苦的過程,需要開發(fā)人員維護(hù)和管理系統(tǒng)的每個(gè)比特和字節(jié)。當(dāng)一個(gè)應(yīng)用程序被確認(rèn)為“成功”的那一刻,通常會(huì)有一種如釋重負(fù)
    發(fā)表于 09-29 08:10

    如何提升嵌入式系統(tǒng)的VxWorks安全性

    實(shí)時(shí)嵌入式系統(tǒng)與網(wǎng)絡(luò)的結(jié)合以及高可信覆蓋網(wǎng)絡(luò)的發(fā)展使得嵌入式實(shí)時(shí)操作系統(tǒng)的安全性問題日益突出。提高實(shí)時(shí)嵌入式系統(tǒng)的
    發(fā)表于 10-30 06:03

    嵌入式實(shí)時(shí)多任務(wù)操作系統(tǒng)的安全性怎么樣?

    許多實(shí)時(shí)操作系統(tǒng)本身就有不安全性和不可靠性,這些不安全因素就給黑客的入侵和病毒的攻擊留下了可趁之機(jī)。操作系統(tǒng)是最基本的系統(tǒng)軟件,它是對(duì)硬件系統(tǒng)的第一次擴(kuò)充,同時(shí)給用戶提供一個(gè)更容易理解和進(jìn)行
    發(fā)表于 03-06 06:27

    嵌入式設(shè)備如何提高安全性

      隨著越來(lái)越多的嵌入式設(shè)備接入網(wǎng)絡(luò)并成為物聯(lián)網(wǎng)的一部分,網(wǎng)絡(luò)黑客們開始利用這些連接,以達(dá)到自己不可告人的目的。因此,嵌入式設(shè)備必須提高安全性,以防止黑客復(fù)制IP、盜竊數(shù)據(jù)或侵入系統(tǒng),可是對(duì)于
    發(fā)表于 06-30 11:05

    如何對(duì)嵌入式軟件進(jìn)行可靠性測(cè)試

    摘 要 本文針對(duì)目前嵌入式軟件設(shè)計(jì)可靠性測(cè)試用例的手段主要依靠手工分析,沿用傳統(tǒng)的軟件測(cè)試用例設(shè)計(jì)方法進(jìn)行,不能夠滿足可靠性測(cè)試用例設(shè)計(jì)的基本要求的問題,設(shè)計(jì)了一套行之有效的可靠性測(cè)試
    發(fā)表于 10-27 06:10

    嵌入式軟件的安全可靠性控制

    不同的嵌入式系統(tǒng)對(duì)其安全可靠性的要求是不一樣的。一般說來(lái),嵌入式系統(tǒng)對(duì)可靠性安全性的要求要高于非嵌入式
    發(fā)表于 04-22 16:49 ?21次下載

    嵌入式系統(tǒng)軟件可靠性設(shè)計(jì)

    本文分析了 嵌入式系統(tǒng)軟件的復(fù)雜度、可靠性與穩(wěn)定性之間的關(guān)系,本給出了增加嵌入式系統(tǒng)可靠性的一般方法。
    發(fā)表于 11-17 17:43 ?38次下載

    嵌入式系統(tǒng)的可靠性設(shè)計(jì)

    嵌入式應(yīng)用系統(tǒng)是一個(gè)有計(jì)算機(jī)內(nèi)核,軟、硬件整合的智能化電子系統(tǒng)。與傳統(tǒng)的激勵(lì)響應(yīng)型電子系統(tǒng)的本質(zhì)差異,是它的智力嵌入,從而形成嵌入式應(yīng)用系統(tǒng)全新的可靠性設(shè)計(jì)觀念、方法與技術(shù)。這些全新的
    發(fā)表于 11-30 10:04 ?1503次閱讀
     <b class='flag-5'>嵌入式</b>系統(tǒng)的<b class='flag-5'>可靠性</b>設(shè)計(jì)

    嵌入式系統(tǒng)硬件可靠性分析

    嵌入式系統(tǒng)硬件的可靠性是十分重要的,它直接關(guān)系到嵌入式系統(tǒng)的質(zhì)量和壽命。為了對(duì)嵌入式系統(tǒng)的硬件可靠性進(jìn)行分析,利用Copula方法從硬件角度
    發(fā)表于 01-17 13:46 ?1次下載
    <b class='flag-5'>嵌入式</b>系統(tǒng)硬件<b class='flag-5'>可靠性</b>分析

    可靠性安全性

    安全性促進(jìn)可靠性設(shè)計(jì):安全性要求通常會(huì)推動(dòng)可靠性設(shè)計(jì)的實(shí)施。為了滿足安全性要求,產(chǎn)品設(shè)計(jì)人員需要考慮風(fēng)險(xiǎn)評(píng)估、故障預(yù)防和容錯(cuò)設(shè)計(jì)等措施。這些
    的頭像 發(fā)表于 07-12 10:44 ?7090次閱讀

    可靠性嵌入式主板設(shè)計(jì)

    設(shè)計(jì)直接影響整個(gè)系統(tǒng)的穩(wěn)定性和壽命。因此,設(shè)計(jì)高可靠性嵌入式主板不僅是技術(shù)挑戰(zhàn),也是提高產(chǎn)品競(jìng)爭(zhēng)力的關(guān)鍵因素。本文將深入探討高可靠性嵌入式
    的頭像 發(fā)表于 03-25 15:11 ?419次閱讀
    高<b class='flag-5'>可靠性</b><b class='flag-5'>嵌入式</b>主板設(shè)計(jì)
    主站蜘蛛池模板: 99九九成人免费视频精品 | 奇米影色777四色在线首页 | 日日摸人人看97人人澡 | 亚洲黄色一区二区 | 亚洲4区 | 欧美黄视频在线观看 | 成人午夜影院在线观看 | xxx性欧美 | 婷婷在线网站 | 91色在线观看 | 欧美色图影院 | 午夜国产大片免费观看 | 高清国产亚洲va精品 | 91久久国产青草亚洲 | 又黄又湿又爽吸乳视频 | 亚洲色图21p| 高清国产在线 | 久久精品综合 | 国产精品女人在线观看 | 午夜无码国产理论在线 | 日本三级黄色网址 | 九月婷婷综合 | 国产精品成人观看视频国产奇米 | 亚洲免费二区三区 | 美女视频网站免费播放视 | aa三级动态图无遮无挡 | 日本高清视频在线www色 | 老师我好爽再深一点好大 | 美女性色 | 日本黄色网址视频 | 一区二区三区在线观看视频 | 色噜噜狠狠成人网 | 小泽玛利亚在线观看123 | 欧美色视频日本 | 成人综合色站 | 天天干天日| 永久免费的拍拍拍网站 | 婷婷综合久久中文字幕 | 免费国内精品久久久久影院 | 在线91精品亚洲网站精品成人 | 天天操夜夜艹 |