91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

在Rust被很多項(xiàng)目使用以后,其實(shí)際安全性表現(xiàn)到底如何呢?

華為開發(fā)者社區(qū) ? 來源:華為開發(fā)者社區(qū) ? 2020-09-04 11:53 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

近幾年,Rust語言以極快的增長速度獲得了大量關(guān)注。其特點(diǎn)是在保證高安全性的同時(shí),獲得不輸C/C++的性能,讓系統(tǒng)編程領(lǐng)域難得的出現(xiàn)了充滿希望的新選擇。在Rust被很多項(xiàng)目使用以后,其實(shí)際安全性表現(xiàn)到底如何呢?

今年6月份,來自3所大學(xué)的5位學(xué)者在ACM SIGPLAN國際會(huì)議(PLDI'20)上發(fā)表了一篇研究成果,針對(duì)近幾年使用Rust語言的開源項(xiàng)目中的安全缺陷進(jìn)行了全面的調(diào)查。這項(xiàng)研究調(diào)查了5個(gè)使用Rust語言開發(fā)的軟件系統(tǒng),5個(gè)被廣泛使用的Rust庫,以及兩個(gè)漏洞數(shù)據(jù)庫。調(diào)查總共涉及了850處unsafe代碼使用、70個(gè)內(nèi)存安全缺陷、100個(gè)線程安全缺陷。

在調(diào)查中,研究員不光查看了所有漏洞數(shù)據(jù)庫中報(bào)告的缺陷和軟件公開報(bào)告的缺陷,還查看了所有開源軟件代碼倉庫中的提交記錄。通過人工的分析,他們界定出提交所修復(fù)的BUG類型,并將其歸類到相應(yīng)的內(nèi)存安全/線程安全問題中。

內(nèi)存安全問題的分析

這項(xiàng)研究調(diào)查了70個(gè)內(nèi)存安全問題。針對(duì)于每個(gè)問題,研究者仔細(xì)的分析了問題出現(xiàn)的根因(cause)和問題導(dǎo)致的效果(effect)。問題根因是通過修改問題時(shí)提交的patch代碼來界定的——即編碼的錯(cuò)誤發(fā)生在哪兒;問題的效果是指代碼運(yùn)行造成可觀察的錯(cuò)誤的位置,比如出現(xiàn)緩沖區(qū)溢出的代碼位置。由于從根因到效果有個(gè)傳遞過程,這兩者有時(shí)候是相隔很遠(yuǎn)的。根據(jù)根因和效果所在的代碼區(qū)域不同,研究者將錯(cuò)誤分為了4類:safe -> safe、safe -> unsafe、unsafe -> safe、unsafe -> unsafe。比如:如果編碼錯(cuò)誤出現(xiàn)在safe代碼中,但造成的效果體現(xiàn)在unsafe代碼中,那么就歸類為safe -> unsafe。

另一方面,按照傳統(tǒng)的內(nèi)存問題分類,問題又可以分為空間內(nèi)存安全(Wrong Access)和時(shí)間內(nèi)存安全(Lifetime Violation)兩大類,進(jìn)一步可細(xì)分為緩沖區(qū)溢出(Buffer overflow)、解引用空指針(Null pointer dereferencing)、訪問未初始化內(nèi)存(Reading uninitialized memory)、錯(cuò)誤釋放(Invalid free)、釋放后使用(Use after free)、重復(fù)釋放(Double free)等幾個(gè)小類。根據(jù)這兩種分類維度,問題的統(tǒng)計(jì)數(shù)據(jù)如下:

從統(tǒng)計(jì)結(jié)果中可以看出,完全不涉及unsafe代碼的內(nèi)存安全問題只有一個(gè)。進(jìn)一步調(diào)查發(fā)現(xiàn)這個(gè)問題出現(xiàn)在Rust早期的v0.3版本中,之后的穩(wěn)定版本編譯器已經(jīng)能攔截這個(gè)問題。因此可以說:Rust語言的safe代碼機(jī)制能非常有效的避免內(nèi)存安全問題,所有穩(wěn)定版本中發(fā)現(xiàn)的內(nèi)存安全問題都和unsafe代碼有關(guān)。

然而,這并不意味著我們只要檢查所有unsafe代碼段就能有效發(fā)現(xiàn)問題。因?yàn)橛袝r(shí)候問題根因會(huì)出現(xiàn)在safe代碼中,只是效果產(chǎn)生在unsafe代碼段。論文中舉了一個(gè)例子:(hi3ms沒有Rust代碼編輯功能,只能拿其他語言湊合下了)

Css代碼

pub fn sign(data: Option<&[u8]>) { let p = match data { Some(data) => BioSlice::new(data).as_ptr(), None => ptr::null_mut(), }; unsafe { let cms = cvt_p(CMS_sign(p)); } }

在這段代碼中,p是raw pointer類型,在safe代碼中,當(dāng)data含有值(Some分支)時(shí),分支里試圖創(chuàng)建一個(gè)BioSlice對(duì)象,并將對(duì)象指針賦給p。然而,根據(jù)Rust的生命周期規(guī)則,新創(chuàng)建的BioSlice對(duì)象在match表達(dá)式結(jié)束時(shí)就被釋放了,p在傳給CMS_sign函數(shù)時(shí)是一個(gè)野指針。這個(gè)例子中的unsafe代碼段沒有任何問題,如果只檢視unsafe代碼,不可能發(fā)現(xiàn)這個(gè)釋放后使用的錯(cuò)誤。對(duì)此問題修改后的代碼如下:

Css代碼

pub fn sign(data: Option<&[u8]>) { let bio = match data { Some(data) => Some(BioSlice::new(data)), None => None, }; let p = bio.map_or(ptr::null_mut(),|p| p.as_ptr()); unsafe { let cms = cvt_p(CMS_sign(p)); } }

修改后的代碼正確的延長了bio的生命周期。所有的修改都只發(fā)生在safe代碼段,沒有改動(dòng)unsafe代碼。 既然問題都會(huì)涉及unsafe代碼,那么把unsafe代碼消除掉是否可以避免問題?研究者進(jìn)一步的調(diào)查了所有BUG修改的策略,發(fā)現(xiàn)大部分的修改涉及了unsafe代碼,但是只有很少的一部分修改完全移除了unsafe代碼。這說明unsafe代碼是不可能完全避免的。

unsafe的價(jià)值是什么?為什么不可能完全去除?研究者對(duì)600處unsafe的使用目的進(jìn)行了調(diào)查,發(fā)現(xiàn)其中42%是為了復(fù)用已有代碼(比如從現(xiàn)有C代碼轉(zhuǎn)換成的Rust代碼,或者調(diào)用C庫函數(shù)),22%是為了改進(jìn)性能,剩下的14%是為了實(shí)現(xiàn)功能而繞過Rust編譯器的各種校驗(yàn)。

進(jìn)一步的研究表明,使用unsafe的方法來訪問偏移的內(nèi)存(如slice::get_unchecked()),和使用safe的下標(biāo)方式訪問相比,unsafe的速度可以快4~5倍。這是因?yàn)镽ust對(duì)緩沖區(qū)越界的運(yùn)行時(shí)校驗(yàn)所帶來的,因此在某些性能關(guān)鍵區(qū)域,unsafe的作用不可缺少。

需要注意的是,unsafe代碼段并不見得包含unsafe的操作。研究者發(fā)現(xiàn)有5處unsafe代碼,即使去掉unsafe標(biāo)簽也不會(huì)有任何編譯錯(cuò)誤——也就是說,從編譯器角度它完全可以作為safe代碼。將其標(biāo)為unsafe代碼是為了給使用者提示關(guān)鍵的調(diào)用契約,這些契約不可能被編譯器檢查。一個(gè)典型的例子是Rust標(biāo)準(zhǔn)庫中的String::from_utf8_unchecked()函數(shù),這個(gè)函數(shù)內(nèi)部并沒有任何unsafe操作,但是卻被標(biāo)為了unsafe。其原因是這個(gè)函數(shù)直接從用戶提供的一片內(nèi)存來構(gòu)造String對(duì)象,但并沒有對(duì)內(nèi)容是否為合法的UTF-8編碼進(jìn)行檢查,而Rust要求所有的String對(duì)象都必須是合法的UTF-8編碼字符串。

也就是說,String::from_utf8_unchecked()函數(shù)的unsafe標(biāo)簽只是用來傳遞邏輯上的調(diào)用契約,這種契約和內(nèi)存安全沒有直接關(guān)系,但是如果違反契約,卻可能導(dǎo)致其他地方(有可能是safe代碼)的內(nèi)存安全問題。這種unsafe標(biāo)簽是不能去除的。

即便如此,在可能的情況下,消除unsafe代碼段確實(shí)是個(gè)有效的安全改進(jìn)方法。研究者調(diào)查了130個(gè)去掉unsafe的修改記錄,發(fā)現(xiàn)其中43個(gè)通過代碼的重構(gòu)把unsafe代碼段徹底改為了safe代碼,剩下的87個(gè)則通過將unsafe代碼封裝出safe的接口來保證了安全性。

線程安全問題的分析

這項(xiàng)研究調(diào)查了100個(gè)線程安全問題。問題被分為了兩類:阻塞式問題(造成死鎖)和非阻塞式問題(造成數(shù)據(jù)競爭),其中阻塞式問題有59個(gè),之中55個(gè)都和同步原語(Mutex和Condvar)有關(guān):

雖然Rust號(hào)稱可以進(jìn)行“無畏并發(fā)”的編程,并且提供了精心設(shè)計(jì)的同步原語以避免并發(fā)問題。然而,僅僅用safe代碼就可能導(dǎo)致重復(fù)加鎖造成的死鎖,更糟糕的是,有些問題甚至是Rust的特有設(shè)計(jì)所帶來的,在其他語言中反而不會(huì)出現(xiàn)。論文中給出了一個(gè)例子:

Css代碼

fn do_request() { //client: Arc> match connect(client.read().unwrap().m) { Ok(_) => { let mut inner = client.write().unwrap(); inner.m = mbrs; } Err(_) => {} }; }

這段代碼中,client變量被一個(gè)讀寫鎖(RwLock)保護(hù)。RwLock的方法read()和write()會(huì)自動(dòng)對(duì)變量加鎖,并返回LockResult對(duì)象,在LockResult對(duì)象生命周期結(jié)束時(shí),自動(dòng)解鎖。

顯然,該段代碼的作者以為client.read()返回的臨時(shí)LockResult對(duì)象在match內(nèi)部的匹配分支之前就被釋放并解鎖了,因此在match分支中可以再次用client.write()對(duì)其加鎖。但是,Rust語言的生命周期規(guī)則使得client.read()返回的對(duì)象的實(shí)際生命周期被延長到了match語句結(jié)束,所以該段代碼實(shí)際結(jié)果是在read()的鎖還沒有釋放時(shí)又嘗試獲取write()鎖,導(dǎo)致死鎖。

根據(jù)生命周期的正確用法,該段代碼后來被修改成了這樣:

Css代碼

fn do_request() { //client: Arc> let result = connect(client.read().unwrap().m); match result { Ok(_) => { let mut inner = client.write().unwrap(); inner.m = mbrs; } Err(_) => {} }; }

修改以后,client.read()返回的臨時(shí)對(duì)象在該行語句結(jié)束后即被釋放,不會(huì)一直加鎖到match語句內(nèi)部。

對(duì)于41個(gè)非阻塞式問題,其中38個(gè)都是因?yàn)閷?duì)共享資源的保護(hù)不當(dāng)而導(dǎo)致的。根據(jù)對(duì)共享資源的不同保護(hù)方法,以及代碼是否為safe,這些問題進(jìn)一步被分類如下:

38個(gè)問題中,有23個(gè)發(fā)生在unsafe代碼,15個(gè)發(fā)生在safe代碼。盡管Rust設(shè)置了嚴(yán)格的數(shù)據(jù)借用和訪問規(guī)則,但由于并發(fā)編程依賴于程序的邏輯和語義,即使是safe代碼也不可能完全避免數(shù)據(jù)競爭問題。論文中給出了一個(gè)例子:

Css代碼

impl Engine for AuthorityRound { fn generate_seal(&self) -> Seal { if self.proposed.load() { return Seal::None; } self.proposed.store(true); return Seal::Regular(...); } }

這段代碼中,AuthorityRound結(jié)構(gòu)的proposed成員是一個(gè)boolean類型的原子變量,load()會(huì)讀取變量的值,store()會(huì)設(shè)置變量的值。顯然,這段代碼希望在并發(fā)操作時(shí),只返回一次Seal::Regular(...),之后都返回Seal::None。但是,這里對(duì)原子變量的操作方法沒有正確的處理。如果有兩個(gè)線程同時(shí)執(zhí)行到if語句,并同時(shí)讀取到false結(jié)果,該方法可能給兩個(gè)線程都返回Seal::Regular(...)。 對(duì)該問題進(jìn)行修改后的代碼如下,這里使用了compare_and_swap()方法,保證了對(duì)原子變量的讀和寫在一個(gè)不可搶占的原子操作中一起完成。

Css代碼

impl Engine for AuthorityRound { fn generate_seal(&self) -> Seal { if !self.proposed.compare_and_swap(false, true) { return Seal::Regular(...); } return Seal::None; } }

這種數(shù)據(jù)競爭問題沒有涉及任何unsafe代碼,所有操作都在safe代碼中完成。這也說明了即使Rust語言設(shè)置了嚴(yán)格的并發(fā)檢查規(guī)則,程序員仍然要在編碼中人工保證并發(fā)訪問的正確性。

對(duì)Rust缺陷檢查工具的建議

顯然,從前面的調(diào)查可知,光憑Rust編譯器本身的檢查并不足以避免所有的問題,甚至某些晦澀的生命周期還可能觸發(fā)新的問題。研究者們建議對(duì)Rust語言增加以下的檢查工具:

1. 改進(jìn)IDE。當(dāng)程序員選中某個(gè)變量時(shí),自動(dòng)顯示其生命周期范圍,尤其是對(duì)于lock()方法返回的對(duì)象的生命周期。這可以有效的解決因?yàn)閷?duì)生命周期理解不當(dāng)而產(chǎn)生的編碼問題。

2. 對(duì)內(nèi)存安全進(jìn)行靜態(tài)檢查。研究者們實(shí)現(xiàn)了一個(gè)靜態(tài)掃描工具,對(duì)于釋放后使用的內(nèi)存安全問題進(jìn)行檢查。在對(duì)參與研究的Rust項(xiàng)目進(jìn)行掃描后,工具新發(fā)現(xiàn)了4個(gè)之前沒有被發(fā)現(xiàn)的內(nèi)存安全問題。說明這種靜態(tài)檢查工具是有必要的。

3. 對(duì)重復(fù)加鎖問題進(jìn)行靜態(tài)檢查。研究者們實(shí)現(xiàn)了一個(gè)靜態(tài)掃描工具,通過分析lock()方法返回的變量生命周期內(nèi)是否再次加鎖,來檢測重復(fù)加鎖問題。在對(duì)參與研究的Rust項(xiàng)目進(jìn)行掃描后,工具新發(fā)現(xiàn)了6個(gè)之前沒有被發(fā)現(xiàn)的死鎖問題。

論文還對(duì)動(dòng)態(tài)檢測、fuzzing測試等方法的應(yīng)用提出了建議。

結(jié)論

1. Rust語言的safe代碼對(duì)于空間和時(shí)間內(nèi)存安全問題的檢查非常有效,所有穩(wěn)定版本中出現(xiàn)的內(nèi)存安全問題都和unsafe代碼有關(guān)。 2. 雖然內(nèi)存安全問題都和unsafe代碼有關(guān),但大量的問題同時(shí)也和safe代碼有關(guān)。有些問題甚至源于safe代碼的編碼錯(cuò)誤,而不是unsafe代碼。 3. 線程安全問題,無論阻塞還是非阻塞,都可以在safe代碼中發(fā)生,即使代碼完全符合Rust語言的規(guī)則。 4. 大量問題的產(chǎn)生是由于編碼人員沒有正確理解Rust語言的生命周期規(guī)則導(dǎo)致的。 5. 有必要針對(duì)Rust語言中的典型問題,建立新的缺陷檢測工具。

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

    關(guān)注

    90

    文章

    3716

    瀏覽量

    97203
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4968

    瀏覽量

    74010
  • Rust
    +關(guān)注

    關(guān)注

    1

    文章

    240

    瀏覽量

    7595

原文標(biāo)題:前沿技術(shù)探討:Rust語言真的安全嗎?

文章出處:【微信號(hào):Huawei_Developer,微信公眾號(hào):華為開發(fā)者社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    從 M0 到 M3丨笙泉32 位 MCU:高效能、安全性與多元應(yīng)用兼具

    ? Cortex?-M0 / M0+ 與 M3 核心,并推出具備高效能與高安全性的32位MG32F/L系列MCU。相關(guān)產(chǎn)品穩(wěn)定性、安全性與市場競爭力方面表現(xiàn)出色,可滿足各行業(yè)多元化應(yīng)
    發(fā)表于 03-10 15:29

    儲(chǔ)能EMS控制器(8) — 儲(chǔ)能柜項(xiàng)目調(diào)試如何提升安全性?

    當(dāng)儲(chǔ)能柜的項(xiàng)目需求變化比較大,或者對(duì)于新手調(diào)試運(yùn)維工程師來說,本地EMS能量管理系統(tǒng)的運(yùn)行時(shí)直接調(diào)試有風(fēng)險(xiǎn)。那么,如何給儲(chǔ)能柜調(diào)試提升安全性?簡介當(dāng)儲(chǔ)能柜的項(xiàng)目需求變化比較大,或者對(duì)
    的頭像 發(fā)表于 01-28 11:50 ?278次閱讀
    儲(chǔ)能EMS控制器(8) — 儲(chǔ)能柜<b class='flag-5'>項(xiàng)目</b>調(diào)試如何提升<b class='flag-5'>安全性</b>?

    請(qǐng)問CW32L052C8T6這種安全性低功耗MCU的安全固件部分怎么實(shí)現(xiàn)?

    請(qǐng)問,CW32L052C8T6這種安全性低功耗MCU的安全固件部分怎么實(shí)現(xiàn)?
    發(fā)表于 12-05 07:19

    車規(guī)級(jí)與消費(fèi)級(jí)芯片的可靠、安全性與成本差異

    引言汽車電子和消費(fèi)電子領(lǐng)域,"車規(guī)級(jí)"與"消費(fèi)級(jí)"芯片代表了兩種截然不同的設(shè)計(jì)理念和技術(shù)標(biāo)準(zhǔn)。車規(guī)級(jí)芯片專為汽車應(yīng)用設(shè)計(jì),強(qiáng)調(diào)在極端環(huán)境下的可靠安全性
    的頭像 發(fā)表于 11-18 17:27 ?1282次閱讀
    車規(guī)級(jí)與消費(fèi)級(jí)芯片的可靠<b class='flag-5'>性</b>、<b class='flag-5'>安全性</b>與成本差異

    無源探頭與有源探頭的安全性差異解析

    電子測量中,探頭作為示波器與測電路的連接橋梁,其安全性直接關(guān)乎人身與設(shè)備的雙重防護(hù)。無源探頭與有源探頭因結(jié)構(gòu)原理的根本不同,絕緣能力、電路保護(hù)、操作風(fēng)險(xiǎn)等維度呈現(xiàn)顯著差異,需基于
    的頭像 發(fā)表于 11-10 11:23 ?369次閱讀
    無源探頭與有源探頭的<b class='flag-5'>安全性</b>差異解析

    RusT-Thread:基于Rust面向資源受限嵌入式設(shè)備的操作系統(tǒng)的實(shí)踐 | 技術(shù)集結(jié)

    摘要隨著物聯(lián)網(wǎng)和嵌入式系統(tǒng)的發(fā)展,實(shí)時(shí)操作系統(tǒng)(RTOS)的安全性和性能需求日益提高。傳統(tǒng)基于C語言的RTOS在內(nèi)存安全和并發(fā)控制方面存在局限,容易導(dǎo)致緩沖區(qū)溢出、數(shù)據(jù)競爭等問題。本項(xiàng)目
    的頭像 發(fā)表于 11-07 17:37 ?6866次閱讀
    <b class='flag-5'>RusT</b>-Thread:基于<b class='flag-5'>Rust</b>面向資源受限嵌入式設(shè)備的操作系統(tǒng)的實(shí)踐 | 技術(shù)集結(jié)

    實(shí)施動(dòng)態(tài)校準(zhǔn)與補(bǔ)償策略時(shí),如何保證數(shù)據(jù)的安全性?

    實(shí)施動(dòng)態(tài)校準(zhǔn)與補(bǔ)償策略時(shí),數(shù)據(jù)安全性需覆蓋數(shù)據(jù)全生命周期(采集→傳輸→存儲(chǔ)→處理→銷毀),重點(diǎn)防范 “數(shù)據(jù)泄露(如補(bǔ)償模型參數(shù)外泄)、數(shù)據(jù)篡改(如傳感器數(shù)據(jù)注入偽造值)、數(shù)據(jù)丟失(如校準(zhǔn)日志損壞
    的頭像 發(fā)表于 09-23 18:01 ?695次閱讀

    有哪些技術(shù)可以提高邊緣計(jì)算設(shè)備的安全性?

    邊緣計(jì)算設(shè)備的安全性面臨分布式部署、資源受限(算力 / 存儲(chǔ) / 帶寬)、網(wǎng)絡(luò)環(huán)境復(fù)雜(多無線連接)、物理接觸易篡改等獨(dú)特挑戰(zhàn),因此其安全技術(shù)需
    的頭像 發(fā)表于 09-05 15:44 ?1502次閱讀
    有哪些技術(shù)可以提高邊緣計(jì)算設(shè)備的<b class='flag-5'>安全性</b>?

    如何利用硬件加速提升通信協(xié)議的安全性

    產(chǎn)品實(shí)拍圖 利用硬件加速提升通信協(xié)議安全性,核心是通過 專用硬件模塊或可編程硬件 ,承接軟件層面難以高效處理的安全關(guān)鍵操作(如加密解密、認(rèn)證、密鑰管理等),提升性能的同時(shí),通過硬件級(jí)隔離、防篡改等
    的頭像 發(fā)表于 08-27 09:59 ?1001次閱讀
    如何利用硬件加速提升通信協(xié)議的<b class='flag-5'>安全性</b>?

    宏集分享 | 集中告警管理如何提升設(shè)施安全性?

    提高團(tuán)隊(duì)響應(yīng)速度,優(yōu)化維護(hù)運(yùn)營工業(yè)或商業(yè)建筑中,集中告警管理已成為確保安全性或檢測故障的必備工具。通過將所有安全系統(tǒng)集中管理,企業(yè)能夠?qū)⑺懈婢y(tǒng)一一個(gè)HMI界面中,大幅提升響應(yīng)速
    的頭像 發(fā)表于 08-08 18:25 ?534次閱讀
    宏集分享 | 集中告警管理如何提升設(shè)施<b class='flag-5'>安全性</b>?

    請(qǐng)問DM平臺(tái)訪問安全性如何控制?

    DM平臺(tái)訪問安全性如何控制?
    發(fā)表于 08-06 06:01

    RT-Thread 遇上 Rust安全內(nèi)核 RusT-Thread 的誕生

    大家好,我們是中國科學(xué)技術(shù)大學(xué)操作系統(tǒng)原理與設(shè)計(jì)(H)課oooooS小組。這個(gè)項(xiàng)目是我們的課程大作業(yè):參考RT-Thread架構(gòu),使用Rust搭建一個(gè)原生的嵌入式操作系統(tǒng)內(nèi)核。初識(shí)Rust是因?yàn)閤k
    的頭像 發(fā)表于 08-02 11:03 ?3550次閱讀
    RT-Thread 遇上 <b class='flag-5'>Rust</b>:<b class='flag-5'>安全</b>內(nèi)核 <b class='flag-5'>RusT</b>-Thread 的誕生

    SD-WAN供應(yīng)商安全性方面有哪些差異?服務(wù)商安全性排行

    市場報(bào)告,2022年該市場增長達(dá)25%,預(yù)計(jì)2027年規(guī)模將突破75億美元,而**安全性差異**成為企業(yè)選型的首要考量。以下從技術(shù)架構(gòu)、行業(yè)適配等維度解析頭部服務(wù)商
    的頭像 發(fā)表于 07-29 10:14 ?345次閱讀
    SD-WAN供應(yīng)商<b class='flag-5'>在</b><b class='flag-5'>安全性</b>方面有哪些差異?服務(wù)商<b class='flag-5'>安全性</b>排行

    國產(chǎn)主板耐用和可靠上有哪些具體表現(xiàn)

    國產(chǎn)主板耐用和可靠上有著諸多令人矚目的具體表現(xiàn),不同領(lǐng)域發(fā)揮著關(guān)鍵作用。
    的頭像 發(fā)表于 07-22 18:21 ?1066次閱讀

    電子電器產(chǎn)品安全性與針焰試驗(yàn)的重要

    電子設(shè)備部件的著火危險(xiǎn),為產(chǎn)品的安全性提供科學(xué)依據(jù)。針焰試驗(yàn)通過模擬實(shí)際使用場景,檢驗(yàn)電子產(chǎn)品及材料熱和火焰作用下的反應(yīng)特性,其結(jié)果是評(píng)估著火風(fēng)險(xiǎn)的重要要素。
    的頭像 發(fā)表于 03-11 17:20 ?1005次閱讀
    電子電器產(chǎn)品<b class='flag-5'>安全性</b>與針焰試驗(yàn)的重要<b class='flag-5'>性</b>