新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > C++在嵌入式應用中的安全問題

        C++在嵌入式應用中的安全問題

        作者: 時間:2011-05-28 來源:網絡 收藏

          規則16-6-1 (不容討論) 所有的庫函數代碼必須符合MISRA C++

          上述這些例子只是為了讓大家對MISRA C++:2008的3種規則有一定的認識,我們會結合相關內容,在接下來的幾篇文章中進一步討論學習。不難發現,許多違反了MISRA C++:2008中規則的例程都是符合C++語言標準的,但出于性考慮,應當被禁止或者謹慎使用。通覽之后,往往會發現自己平時從未注意的一些編程習慣,都已經被嚴令禁止。它們有些是明顯有礙性的,有些則相對隱蔽。

          然而MISRA的號召力是不容小覷的。以實時操作系統μC/OS-II為例,其2.52版本雖然已經于2000年通過了美國航空管理局(FAA)的認證,但2003年μC/OS-II的作者就根據MISRA C:1998規范又對源碼作了相應的修改,并發布了2.62的新版本,宣稱其源代碼99%符合MISRA C:1998的要求。

          4 安全性

          對于安全性,MISRA給出以下5種可能的安全來源:開發人員的錯誤、開發人員對于語言的誤解、編譯器沒有按照開發人員的預期工作、編譯器本身含有錯誤、運行錯誤。

          這些錯誤的來源與實際使用的是何種計算機語言沒有關系,可以說比較全面地包含了系統開發以及其他相關的軟件設計中可能導致安全的所有渠道。

          作為C++這樣一門面向對象的高級語言(由于其與C的淵源,嚴格地說,C++是具有某些面向對象特征的過程語言),通過類、函數參數類型檢查、模版、異常處理以及派生、繼承、多態等手段,使得其在保有高效率的同時,實現了強大的功能,并帶來了自頂向下的模塊化程序設計理念。但編程靈活度的提高,也令其代碼復雜而易錯。與C語言相比,它所面對的安全問題將更為隱蔽,更加難以發現。但就對數據的封裝而言,C++遠遠優于C,只要參照合理的規范指南,進行項目的開發,就可以通過充分發揮C++靈活的特點,到更多更廣的工程領域。

          5 行業展望

          標準與規范從來沒有如眼下這般備受重視過。一個權威的標準或規范,不僅將成為相關領域的“金科玉律”,更是行業動向的風向標。可以說正是由于MISRA-C的存在,使得在高級語言種類繁多的今天,C語言的地位依然無可替代。

          此次MISRA攜著在C語言上的巨大成功,選擇了C++語言進行新的規范化嘗試,不僅因為C++語言的群眾基礎深厚,更是表明了系統領域內大多數專家的觀點:如果說未來能有一門語言取代目前C語言在嵌入式系統中的地位的話,也只能是C++語言。一名成功的嵌入式系統工程師,必須是對行業動向極為敏感的,也只有這樣,才能在知識爆炸的今天緊跟時代潮流。從使用C語言到使用C++語言是一個巨大的跨越,決不僅僅像使用“增強的C”那么簡單,需要從現在就開始學習。而從學習之初就養成的良好的語言使用習慣,將決定將來進階的速度與可能性。MISRA C++:2008無疑是培養這樣良好習慣的最佳手冊。

        linux操作系統文章專題:linux操作系統詳解(linux不再難懂)

        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 柳江县| 盐津县| 南宫市| 九龙坡区| 广平县| 禄劝| 八宿县| 海丰县| 兖州市| 虎林市| 瓦房店市| 合肥市| 南开区| 汕头市| 康保县| 雷山县| 巴林右旗| 蒲城县| 徐汇区| 方城县| 凤山市| 中牟县| 通江县| 治多县| 深州市| 盐山县| 大庆市| 依兰县| 涟水县| 库伦旗| 句容市| 托克托县| 丹东市| 依兰县| 临城县| 清水县| 乳山市| 高阳县| 江门市| 庆安县| 林芝县|