1. gzyueqian
      13352868059

      嵌入式開發(fā):用于嵌入式系統(tǒng)的Rust

      更新時(shí)間: 2023-02-17 15:06:53來源: 粵嵌教育瀏覽量:6716

        嵌入式開發(fā):用于嵌入式系統(tǒng)的Rust

        在嵌入式開發(fā)中,到目前為止,C/C++已經(jīng)主導(dǎo)了系統(tǒng)編程。開發(fā)低錯(cuò)誤和安全的軟件是一項(xiàng)重大挑戰(zhàn)。Rust語言是唯一成功的候選語言。與C++相比,它更專注于避免編程錯(cuò)誤,而不會(huì)帶來過多的復(fù)雜性。

        但是,當(dāng)查看常見編程語言排名時(shí),發(fā)現(xiàn)已經(jīng)有無數(shù)種語言在廣泛使用。這是因?yàn)槊糠N語言都有不同的目標(biāo)群體、不同的應(yīng)用領(lǐng)域或不同的質(zhì)量特征。因此,在軟件開發(fā)中有許多語言的空間。

        在傳統(tǒng)嵌入式系統(tǒng)的情況下,它主要涉及系統(tǒng)編程語言,即開發(fā)對(duì)資源具有最大控制的低級(jí)軟件。該軟件通常是任務(wù)關(guān)鍵型的,有時(shí)必須滿足實(shí)時(shí)或安全領(lǐng)域的特殊要求。

        系統(tǒng)編程

        在系統(tǒng)編程中,語言C和C++已經(jīng)主導(dǎo)了幾十年。C已經(jīng)快50歲了,長期以來一直是許多系統(tǒng)的骨干。在嵌入式開發(fā)中,如果沒有用C語言編寫的軟件,通用操作系統(tǒng)、內(nèi)部組件和硬件相關(guān)驅(qū)動(dòng)程序在今天仍然是不可想象的。嵌入式系統(tǒng)也不例外。對(duì)C的支持是所有平臺(tái)上最低的共同點(diǎn)。

        隨著C++的進(jìn)一步發(fā)展,更大的軟件和更復(fù)雜的概念可以更好地實(shí)現(xiàn)。然而,C語言采用了所有語言,并面臨著相關(guān)的挑戰(zhàn)。C程序員總是需要確切地知道自己在做什么。謹(jǐn)慎和紀(jì)律對(duì)于避免許多危險(xiǎn)的絆腳石至關(guān)重要。雖然處理器體系結(jié)構(gòu)和內(nèi)存結(jié)構(gòu)的抽象幾乎不存在,這為系統(tǒng)編程語言提供了前提,但不幸的是,這也會(huì)導(dǎo)致容易出錯(cuò),因?yàn)榫幾g器允許大量代碼通過。

        


        C語言的已知問題,如緩沖區(qū)溢出、懸空指針、競爭條件、未初始化內(nèi)存或未定義行為,通常只在運(yùn)行時(shí)檢測(cè)到,這些問題通常是隨機(jī)發(fā)生的。這使得通過測(cè)試更難檢測(cè)到它們。在嵌入式開發(fā)中,使用C++而不是C只能在有限的程度上有所幫助,因?yàn)樾碌某橄蠛头庋b方法只能很容易地繞過,而且該語言還引入了新的障礙(例如不需要的復(fù)制構(gòu)造函數(shù)),這些障礙同樣危險(xiǎn),甚至更隱蔽。

        另一個(gè)問題是C++的語言復(fù)雜性,它隨著每個(gè)新版本的增加而增加,并且早就把其他主流語言拋在了后面(見圖1)。因此,掌握C++需要越來越多的經(jīng)驗(yàn),編寫低錯(cuò)誤軟件需要足夠的紀(jì)律。在現(xiàn)代世界中,軟件扮演著越來越重要的角色,網(wǎng)絡(luò)安全無從談起,在可接受的時(shí)間內(nèi)實(shí)現(xiàn)軟件而不出錯(cuò)已變得至關(guān)重要。因此,需要系統(tǒng)編程的后繼語言。

        C/C++后繼者的要求

        在測(cè)試過程中很容易檢測(cè)到簡單、明顯的錯(cuò)誤。在嵌入式開發(fā)中,更難檢測(cè)的bug更隨機(jī),通常來自內(nèi)存安全、線程安全或未定義的行為。這是需要向前邁出一大步的地方。編程語言應(yīng)在關(guān)鍵點(diǎn)允許盡可能少的錯(cuò)誤。癥狀控制(審查、測(cè)試、更新)不再足以解決棘手的問題。

        由于這仍然是關(guān)于嵌入式系統(tǒng)的,因此也是關(guān)于系統(tǒng)編程的,因此將缺少一種避免困難bug的高級(jí)方法(例如垃圾收集器、自動(dòng)并行化、強(qiáng)抽象)。強(qiáng)制運(yùn)行時(shí)環(huán)境需要開銷和許多依賴性,不適合裸機(jī)軟件的面向硬件編程,嵌入式系統(tǒng)通常就是這樣。

        在嵌入式開發(fā)中,C/C++后繼者的其他要求當(dāng)然是支持現(xiàn)代范式(包括功能)、與現(xiàn)有C代碼的輕松集成以及帶來豐富的生態(tài)系統(tǒng),即工具、開發(fā)環(huán)境和社區(qū)。

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

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

      
      

      1. 伊人五香丁香婷婷天堂网 | 亚洲αV欧美αV一区 | 日本系列变态另类一区二区三区 | 中文字幕乱码亚洲∧ⅴ日本 | 在线观看国产不卡秒播AV | 亚洲国产综合视频 |