日本无码免费高清在线|成人日本在线观看高清|A级片免费视频操逼欧美|全裸美女搞黄色大片网站|免费成人a片视频|久久无码福利成人激情久久|国产视频一二国产在线v|av女主播在线观看|五月激情影音先锋|亚洲一区天堂av

  • 手機(jī)站
  • 小程序

    汽車測試網(wǎng)

  • 公眾號
    • 汽車測試網(wǎng)

    • 在線課堂

    • 電車測試

技術(shù)分享 | 國汽智控軟件研發(fā)總監(jiān)肖猛《Rust作為汽車軟件主語言的探索》

2021-03-08 15:25:48·  來源:國汽智控  
 
2020年12月26日到27日,Rust開發(fā)者大會在深圳舉行。國汽智控軟件研發(fā)總監(jiān)肖猛應(yīng)邀在大會發(fā)表題為《Rust作為汽車軟件主語言的探索》的演講。 肖猛認(rèn)為,汽車軟件需要更好的效率、更高的安全性,和其他軟件有很多不同。 傳統(tǒng)汽車軟件有硬實時的要求,MCU 軟件是
2020年12月26日到27日,Rust開發(fā)者大會在深圳舉行。國汽智控軟件研發(fā)總監(jiān)肖猛應(yīng)邀在大會發(fā)表題為《Rust作為汽車軟件主語言的探索》的演講。
肖猛認(rèn)為,汽車軟件需要更好的效率、更高的安全性,和其他軟件有很多不同。

傳統(tǒng)汽車軟件有硬實時的要求,MCU 軟件是主要的解決方案;和底層硬件進(jìn)行交互,跟硬件關(guān)聯(lián)性大;與汽車電子電氣架構(gòu)密切相關(guān);有功能安全方面的要求;數(shù)據(jù)傳輸量少但信號復(fù)雜;一次發(fā)布、很少升級;軟件開發(fā)流程復(fù)雜而嚴(yán)格,還要考慮開發(fā)、工廠刷寫、4S店維護(hù)的全生命周期管理;Classic AutoSar 逐漸成為 ECU開發(fā)的規(guī)范,但成本非常高。

由于自動駕駛的興起,汽車軟件正在經(jīng)歷分水嶺?,F(xiàn)代汽車軟件帶來了新要求,如硬件平臺的異構(gòu)分布式要求;感知算法帶來極高的算力要求;自動駕駛、娛樂系統(tǒng)帶來海量數(shù)據(jù)傳輸需求;自動駕駛應(yīng)用帶來更高的功能復(fù)雜度;汽車實時在線的要求;更復(fù)雜的信息安全和功能安全要求。

尤其是在自動駕駛、智能座艙逐漸成為汽車標(biāo)配,“軟件定義汽車”已經(jīng)成為行業(yè)共識的大環(huán)境下,汽車技術(shù)中軟件所占的比重將會越來越大,軟件的復(fù)雜度越來越高,越來越多的軟件開發(fā)者將進(jìn)入汽車軟件領(lǐng)域。那么,選用更合適的開發(fā)語言,將會成倍地提高開發(fā)效率和軟件質(zhì)量。

目前汽車軟件還是主要基于 C/C++。 但是C++的復(fù)雜性使得人員培養(yǎng)難度大,人員技術(shù)水平參差不齊,即便使用了20年的程序員也不敢說精通。 C++還面臨 C++98 標(biāo)準(zhǔn)和 C++11以上標(biāo)準(zhǔn)的鴻溝。 C++98標(biāo)準(zhǔn)過于古老,C++11標(biāo)準(zhǔn)吸收了最近20年語言研究的大部分成果,已經(jīng)幾乎是一個全新的語言,但為了兼容C++98,之前標(biāo)準(zhǔn)的弊端也一樣被繼承下來了,內(nèi)存錯誤的噩夢如影隨行。

肖猛,國汽智控軟件研發(fā)總監(jiān),20年從桌面到云端到嵌入式的軟件架構(gòu)經(jīng)驗,跨通訊、游戲、金融、智能網(wǎng)聯(lián)汽車多個行業(yè)領(lǐng)域系統(tǒng)分析專家、全棧軟件架構(gòu)專家。
 
Rust的安全性和執(zhí)行效率使得它非常適合用于汽車軟件的開發(fā)。作為系統(tǒng)級語言,近5年來已經(jīng)逐步開始應(yīng)用于實時數(shù)據(jù)庫、嵌入式開發(fā)、操作系統(tǒng)開發(fā)、游戲開發(fā)等領(lǐng)域。微軟、Facebook、華為等大廠都已經(jīng)開始接受并推動 Rust的發(fā)展。Rust一方面具有C/C++級別的運行效率,相比 C/C++又有更好的安全性,編譯器幫助解決了絕大部分內(nèi)存安全問題。同時,最近二十年來,程序語言研究的最新成果,都在 Rust中有很好體現(xiàn)。在尤為注重質(zhì)量和運行效率的汽車軟件領(lǐng)域,Rust是 C/C++的最佳替代者。

一方面,Rust 可以用于替換 C/C++ 代碼,實現(xiàn)效率與安全的并重;另一方面,因為它強(qiáng)大的表達(dá)能力,可以給復(fù)雜的汽車軟件提供新的開發(fā)思路。比如,在其他行業(yè)廣泛使用的 DSL (領(lǐng)域?qū)S谜Z言)技術(shù),一般多基于 JVM 語言實現(xiàn),而JVM 在垃圾回收過程中出現(xiàn)的系統(tǒng)凍結(jié)問題,在汽車軟件中是絕對不允許的,因此 DSL 這種大大簡化領(lǐng)域軟件開發(fā)的方式,在汽車軟件開發(fā)中聞所未聞。如果使用 Rust ,我們可以利用Rust 宏直接操作 AST (抽象語法樹)的能力,這樣可以定制化語法,實現(xiàn)內(nèi)部 DSL(使用宿主語言的語法機(jī)制實現(xiàn)看起來定制的語法)。直接在語言級增加行業(yè)領(lǐng)域的概念。比如一個自動駕駛應(yīng)用,其規(guī)劃決策的規(guī)則就可以直接使用 DSL 來表達(dá)。這可以大大簡化應(yīng)用的開發(fā),還沒有執(zhí)行效率的損耗。

同時 Rust一樣可以用于MCU軟件的開發(fā)。這個領(lǐng)域一直是C語言的絕對地盤。原因就是其它語言很難直接操作硬件,對于MCU這樣需要硬實時的領(lǐng)域無能為力。使用 Rust,一樣能達(dá)到硬實時要求并提供完美的內(nèi)存安全機(jī)制,可以使用諸多的現(xiàn)代語言特性讓代碼有更好的結(jié)構(gòu)和表達(dá)能力。

肖猛分享了他在實際項目中基于Rust語言進(jìn)行的中間件軟件開發(fā)探索。 
上圖是將Rust用于自動駕駛ECU中間件軟件的實例。完成自動駕駛功能的汽車控制器一般會分為 SoC和 MCU 兩部分。MCU 部分使用 RTOS, 執(zhí)行實時性要求最高的控制算法,達(dá)到功能安全需要的 ASIL 等級。SoC 部分運行 Linux, 利用Linux 系統(tǒng)完善的軟件生態(tài)。Linux 上使用發(fā)布訂閱服務(wù),將系統(tǒng)中數(shù)據(jù)發(fā)送者和接收者解耦和。
此系統(tǒng)中,發(fā)布訂閱服務(wù)完全使用 Rust 實現(xiàn),實現(xiàn)機(jī)制完全基于 Actor 模型,使用了Rust社區(qū)知名的 Actor 庫 Actix。中間件的底層 IPC 通訊使用 Apache Thrift 的 Rust 版本,提供了共享內(nèi)存數(shù)據(jù)通道,讓單系統(tǒng)內(nèi)的多進(jìn)程能得到更高效的數(shù)據(jù)傳遞。 
在這個設(shè)計中,Rust 語言本身提供了內(nèi)存安全機(jī)制,保證絕大部分內(nèi)存問題在編譯期間被解決,Actor 設(shè)計模式一方面能提供高效的并發(fā)模型,另一方面,其監(jiān)督者機(jī)制能夠讓出問題的 Actor 隨時被重啟而不影響系統(tǒng)的功能,從軟件架構(gòu)層級提高了軟件的穩(wěn)定性。Thrift可以跨多種語言使用,讓測試人員可以使用 Python在系統(tǒng)外使用發(fā)布訂閱服務(wù),對各軟件節(jié)點進(jìn)行數(shù)據(jù)的注入并檢查處理的結(jié)果。    
這個設(shè)計中另一個亮點就是發(fā)布訂閱服務(wù)在RTOS中的實現(xiàn)。他們開發(fā)了一個可以運行在 RTOS 中的輕量級 "Thrift運行時" 的 C 語言實現(xiàn),以及對應(yīng)的代碼生成工具,可以根據(jù) Thrift IDL 生成 C 代碼。這樣 RTOS 中的各個 Task 之間可以根據(jù) Topic 實現(xiàn)數(shù)據(jù)的發(fā)布和訂閱。    
同時實現(xiàn)了Linux 和 RTOS 之間的數(shù)據(jù)橋接。 對同一個 Topic 的發(fā)布和訂閱,可以跨越系統(tǒng)邊界。 也就是說,在 RTOS 中發(fā)布的數(shù)據(jù),在 Linux 中也可以訂閱到,反之亦然。 這樣可以簡化各層軟件之間的通訊模型。 而且還帶來一個附加的好處,就是可以在 RTOS 外 , 通過對消息的發(fā)布訂閱,來測試 RTOS 下軟件的行為。

肖猛表示,這個項目只是一個輕量級的發(fā)布訂閱服務(wù)的實現(xiàn)。Rust 和 Actor 模式為系統(tǒng)提供了高性能和高穩(wěn)定性。開銷也非常小。這只是將 Rust 語言用于汽車軟件的初步嘗試,取得了非常好的效果。他們正計劃將 Rust 用于更多的場景。例如,在系統(tǒng)底層,使用 Rust開發(fā) MCU軟件乃至 RTOS;在應(yīng)用層,使用 Rust定制自動駕駛應(yīng)用的 DSL,簡化應(yīng)用開發(fā)。

隨著Rust的進(jìn)一步發(fā)展和推廣,生態(tài)的進(jìn)一步完善,會有越來越多的人了解到它的優(yōu)勢,愿意學(xué)習(xí)并應(yīng)用它。在可見的未來,Rust一定會成為汽車軟件開發(fā)的主流語言。

none="shifuMouseDownCard('shifu_c_009')">
關(guān)于國汽智控
國汽智控(北京)科技有限公司基于頂層設(shè)計、優(yōu)勢人才、科技創(chuàng)新和重磅資源,研發(fā)智能網(wǎng)聯(lián)汽車基礎(chǔ)平臺產(chǎn)品并實現(xiàn)產(chǎn)業(yè)化落地。公司注冊成立于2020年7月,總部位于北京經(jīng)濟(jì)技術(shù)開發(fā)區(qū),在北京、上海、硅谷均設(shè)有研發(fā)中心。核心產(chǎn)品包括智能汽車操作系統(tǒng)及計算基礎(chǔ)平臺、異構(gòu)分布硬件平臺、車路云協(xié)同基礎(chǔ)軟件等。
分享到:
 
反對 0 舉報 0 收藏 0 評論 0
滬ICP備11026917號-25