女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何提高嵌入式應用程序的安全性和可靠性

星星科技指導員 ? 來源:embedded ? 作者:Semir Haddad ? 2023-05-04 09:39 ? 次閱讀

在最近的一篇文章中,嵌入式系統顧問Jacob Beningo提出了一個問題,即是否是時候退役C編程語言了,因為它在復雜性和潛在錯誤以及C開發人員短缺方面的局限性。作為回應,Andrei Gorine 認為 C 的緊湊占用空間使其比 JavaC# 和 Go 等資源密集型現代語言更具競爭力。

此外,C 語言直接控制應用程序行為和內存的能力使其成為需要近距離訪問硬件資源(如中斷和外圍設備)的系統的唯一可行選擇。對于嵌入式設備尤其如此,因為它們的基礎操作系統、驅動程序和相關 API 也傾向于用 C 語言編寫。

但是,這種高度靈活的控制級別可能會導致運行時行為出現問題。無論 C 語言最終是否停用,開發人員都需要當今的工具來確保應用程序的安全性和可靠性不會因人為錯誤或嵌入式設備日益互聯而受到損害。開發人員需要像管理高級語言一樣管理 C,以增強應用程序的安全性和可靠性。

托管 C 與非托管 C

C 語言與現代語言(如 Java、JavaScript 和 Python)之間的主要區別之一是后者的實現是托管的。這意味著代碼由運行時環境執行,該運行時環境確保其在內存邊界、安全原則和優化范圍內正確管理和執行。

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

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

托管代碼 非托管代碼
由公共語言基礎結構(運行時)執行 處理器編譯和執行
不會發生內存緩沖區溢出 可能發生內存緩沖區溢出
提供內存保護并降低內存泄漏的風險 內存不受保護,分配函數和指針使用不當會導致內存損壞和系統崩潰
提供異常處理和內存清理等服務 不提供這些服務
可以輕松移植到不同的平臺,因為運行時環境抽象了硬件和操作系統的細節 無法輕松移植,需要工程團隊經常從頭開始
運行時環境強制實施安全功能,例如類型安全和訪問控制 開發人員負責編寫安全可靠的代碼,這可能會增加出錯的風險

將兩全其美相結合:C 應用程序與用高級語言編寫的應用程序的可靠性

軟件容器使開發人員能夠在運行時環境中有效地管理 C 應用程序,盡管內存分配仍然需要手動管理。這是因為容器化為每個應用程序提供了一個安全且隔離的空間,從而降低了由于內存錯誤而導致系統崩潰的可能性。

托管 C 中的動態鏈接允許安裝新包,而無需開發人員重新編譯整個程序,從而節省開發時間。此功能傳統上與 Linux 相關聯,現在可以通過使用小型軟件容器獲得,并在支持熱代碼替換的同時提供增強的可移植性和安全性。

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

使用安全軟件容器來隔離每個應用程序,允許用不同編程語言編寫的多個應用程序無縫共存,從而提供了顯著的優勢。通過將托管 C 與安全容器相結合,這種方法彌合了嵌入式和企業開發之間的差距。托管 C 提供了 C 的靈活性,同時使開發人員無需管理安全內存、多任務同步和執行其他低級任務。

這種方法還有助于在 C 語言中集成遺留代碼和現有軟件堆棧。這對于實現用嵌入式 C 語言編寫的協議特別有用,包括云連接器、Matter、LWM2M 和 MQTT。它也是MISRA C指南的補充,因為它克服了低級健壯性和安全問題。最后,像 MICROEJ VEE 這樣的容器允許動態鏈接,這意味著托管 C 可以動態鏈接和取消鏈接,就像用 VEE 容器支持的任何其他語言編寫的代碼一樣。

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

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

相比之下,對于更復雜的應用程序任務,使用托管代碼更方便、更高效。由于關注點分離,托管代碼提高了工作效率并減少了錯誤,并使代碼更具可移植性。

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

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

托管 C:未來的 C 語言

在復雜且不斷變化的開發環境中,開發人員必須能夠訪問利用最新硬件創新的尖端軟件和語言解決方案。盡管 C 語言是嵌入式開發中的領先語言,但仍需要使用工具和流程來管理其運行時行為,這些工具和流程可以釋放托管代碼的所有優勢,以加速創新。

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

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 嵌入式
    +關注

    關注

    5141

    文章

    19526

    瀏覽量

    314885
  • JAVA
    +關注

    關注

    20

    文章

    2984

    瀏覽量

    106855
  • 應用程序
    +關注

    關注

    38

    文章

    3322

    瀏覽量

    58720
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    如何提高嵌入式代碼質量?

    嵌入式代碼的質量是至關重要的。本文將探討如何通過有效的開發方法和工具來提高嵌入式代碼的質量,以確保系統的可靠性和可維護。 理解
    發表于 01-15 10:48

    嵌入式軟件可靠性測試方法

    嵌入式軟件可靠性測試方法
    發表于 11-05 17:18

    嵌入式系統產品的可靠性

    關注有助于確保整個終端設備可靠性要求的裝置。集成電路在嵌入式系統的性能、尺寸和整體成本方面已經實現重大突破,對各種存儲元件的依賴及使用小尺寸硅工藝技術可能產生的永久和瞬時誤差對可靠性產生了影響。 將眾多
    發表于 08-30 14:43

    嵌入式軟件的可靠性測試與可靠性增長評估

    關于嵌入式等軟件可靠性安全性測試與評估的資料,希望有幫助。
    發表于 06-17 16:53

    開發高可靠性嵌入式系統的技巧有哪些?

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

    如何提升嵌入式系統的VxWorks安全性

    實時嵌入式系統與網絡的結合以及高可信覆蓋網絡的發展使得嵌入式實時操作系統的安全性問題日益突出。提高實時嵌入式系統的
    發表于 10-30 06:03

    嵌入式實時多任務操作系統的安全性怎么樣?

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

    嵌入式設備如何提高安全性

      隨著越來越多的嵌入式設備接入網絡并成為物聯網的一部分,網絡黑客們開始利用這些連接,以達到自己不可告人的目的。因此,嵌入式設備必須提高安全性,以防止黑客復制IP、盜竊數據或侵入系統,可是對于
    發表于 06-30 11:05

    如何對嵌入式軟件進行可靠性測試

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

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

    不同的嵌入式系統對其安全可靠性的要求是不一樣的。一般說來,嵌入式系統對可靠性安全性的要求要高于非嵌入式
    發表于 04-22 16:49 ?21次下載

    嵌入式系統軟件可靠性設計

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

    嵌入式系統的可靠性設計

    嵌入式應用系統是一個有計算機內核,軟、硬件整合的智能化電子系統。與傳統的激勵響應型電子系統的本質差異,是它的智力嵌入,從而形成嵌入式應用系統全新的可靠性設計觀念、方法與技術。這些全新的
    發表于 11-30 10:04 ?1498次閱讀
     <b class='flag-5'>嵌入式</b>系統的<b class='flag-5'>可靠性</b>設計

    嵌入式系統硬件可靠性分析

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

    可靠性安全性

    安全性促進可靠性設計:安全性要求通常會推動可靠性設計的實施。為了滿足安全性要求,產品設計人員需要考慮風險評估、故障預防和容錯設計等措施。這些
    的頭像 發表于 07-12 10:44 ?7007次閱讀

    可靠性嵌入式主板設計

    設計直接影響整個系統的穩定性和壽命。因此,設計高可靠性嵌入式主板不僅是技術挑戰,也是提高產品競爭力的關鍵因素。本文將深入探討高可靠性嵌入式
    的頭像 發表于 03-25 15:11 ?390次閱讀
    高<b class='flag-5'>可靠性</b><b class='flag-5'>嵌入式</b>主板設計