Linux V4L2 VP9 編解碼器內核代碼將用Rust重寫 提高內存安全性


Collabora的DanielAlmeida發佈Linux內核視頻4Linux2(V4L2)子系統中重寫的VP9編解碼器庫代碼。通過使用Rust而不是現有的C代碼,這應該會產生更好的內存安全性,並能更好地抵禦現有代碼中的潛在問題。

image.webp

請求註釋"代碼將 VP9 庫代碼移植到 Rust 中,並將 RKVDEC 和 Hantro 驅動程序代碼轉換為使用 Rust 版本。 

Fluendo 的 Fluster 測試表明,無論是使用 Rust 還是 C 版本的代碼,結果都是一樣的。

Almeida 對 RFC 補丁發表如下評論:

關於驅動程序,我們在不同場合已經說很多,我覺得目前的共識是等待。這就是為什麼我提出一種不同的方法:將我們的編解碼器庫移植到 Rust 中。

在我看來,這些組件可以從 Rust 中受益匪淺,因為它們實現復雜的算法,同時還通過 V4L2 控制來處理從用戶空間接收的數據。這些算法使用從用戶空間接收的數據來索引大量數組,從而受益於 Rust 的內存安全性。

關於代碼的第一件事是它不包含任何綁定層。

這裡的 Rust 代碼還為 C 驅動程序提供一個 C API。這個 C API 是由 cbindgen 自動生成的,我已經提供如何生成的說明。我們甚至可以同時使用 C 庫和 Rust 庫中的函數,因為 ABI 是相同的。

以上內容非常有用,因為這意味著我們可以在必要時逐段轉換給定的代碼庫。C 驅動程序將通過 C API 正常工作,而任何新的 Rust 驅動程序都將受益於本地 Rust 接口。

他在補丁封面信中繼續補充道:

最後,請註意這段代碼隻是一個概念驗證,如果反響良好,我們可以推出一個正式的補丁(包括所有相關內容)"

感興趣的人可以在內核郵件列表中找到這些 RFC 補丁,同時等待其他 Linux 內核上遊利益相關者的反饋。


相關推薦

2024-02-15

模式"(SandBoxMode),以提高內核中C代碼的內存安全性。華為公司的 Petr Tesarik 發出關於新 SandBox 模式的"征求意見"補丁系列。Petr 將 SandBox 模式描述為:"SandBox 模式的最終目標是在僅允許訪問預定義地址的內

2024-02-13

在即將到來的Linux6.9周期中,64位Arm(AArch64)little-endian內核將支持Rust內核代碼。通過"next/rust-for-arm64"在ARM64開發樹中排隊的補丁是為讓RustARM64/AArch64支持Rust內核代碼到達終點線。提交說明顯示:"此提交為 Rust

2024-04-03

Linux內核Rust代碼正準備升級到Rust1.78,該版本將在一個月後發佈為穩定版。Rust1.78要到5月初才會發佈,而由米格爾-奧赫達(MiguelOjeda)領導的RustLinux內核開發人員已經在為下一次升級做準備。隨著向 Rust 1.78 的轉變,這是他們第

2022-06-23

軟件的安全。而今早的一篇報道指出,大傢對開源的整體安全性仍缺乏足夠的信心。對此,Torvalds 並不奢望包括 Linux 內核在內的開源軟件都可做到永遠 100% 安全且無 Bug 。錯誤總是難免,如果它們不在硬件層面上出現,軟件層面

2022-07-02

的一層。在內核內部,進程的不同部分已經已經具備多層安全性。對於負責構建整個堆棧的開發人員來說,最重要的是對堆棧中的任一層出現安全漏洞時應該怎麼處理都有一個概念。One More Thing目前 Linux 內核最新版本為 5.19,Linu

2022-10-01

去年,Google宣佈用於低比特率的Lyra語音編解碼器,與開放的AV1編解碼器相結合,可以在20多年前的56kbps的Modem連接上實現語音聊天。Lyra利用機器學習和其他技術進行極低比特率的語音壓縮後,甚至可以在3kbps的速度下頑強工作。G

2024-02-03

這個幾十年來由不同代碼語言拼湊而成的系統帶來更多的安全性,甚至明顯的性能改進。微軟還是 Rust 基金會的創始成員之一,該基金會是一個非營利組織,成員包括亞馬遜、華為、Google和 Mozilla 等公司。在為編程界的新秀留出

2022-07-28

5.20 內核的 RDNA 3 圖形驅動的最新修改:● 針對 VCN4 視頻編解碼器的修復● 針對 8.10 版 UWB 多接口控制器(UMC)的可靠性、可用性與可維護性(RAS)支持● 添加對該公司 Jadeite 平臺的音頻協處理器(ACP)支持● 針對運行時(run-

2023-03-29

隨著越來越多的硬件和軟件增加對AV1編碼的支持,該視頻編解碼器看起來將取代H.264成為首選標準。隨著YouTube準備支持AV1的現場直播,過渡期的另一個步驟正在接近。最近,一位知名的YouTuber在訪問最新的OBS測試版後看到AV1直播

2022-09-27

。得益於此,流媒體的質量也將得到改善 —— 因為 AV1 編解碼器的效率,較 H.264(AVC)和 VP9 要更加高效。

2022-07-07

機以提高節電效果● ADB 調試提示重定向到 Windows 以提高安全性● 更新到 Chromium WebView 101● 圖形修復,包括應用程序閃爍和圖形損壞● 視頻播放修復● AV1 編解碼器支持● 啟用 IPv6 和 VPN 連接● 提高連接到容器中的虛擬 WIFI 的

2022-07-25

,ByteDance(字節跳動)在過去幾年中一直致力於許多Linux內核的優化,他們最近的工作是加快內核的Kexec重啟。由於公司龐大的服務器群需要為TikTok和其他應用程序提供動力,他們必須盡其所能從其服務器的啟動/重啟時間中減少

2022-12-12

臺管理框架,各種開源圖形驅動的改進,Btrfs性能優化,內核內存消毒器,MapleTree數據結構的引入,以及許多其他硬件驅動工作。隨著6.1版本的發佈,現在社區開始進入令人興奮的Linux 6.2合並窗口。Linus Torvalds在今天的v6.1發佈公

2022-08-26

至讓每臺機器造成大約2.7GB的內存浪費。Facebook正在為Linux內核開發的THP收縮機制旨在解決這種浪費,與此同時仍然可以享受THP以提高CPU效率的優勢,THP Shrinker將分割利用率最低的大內存頁面。THP Shrinker旨在避免浪費RAM,並盡可能