Linux內核更新加入Rust語言支持並開始提供網絡和異步功能
在一個激動人心的周六早晨,Miguel Ojeda發布了最新的補丁系列,歷史性地將Rust語言支持納入Linux內核。”Rust for the Linux kernel”補丁現在已經到了第六個版本,它為這種第二種可選語言添加了必要的支撐,並繼續添加更多的示例代碼/基本功能,以展示這種注重內存安全的語言在內核中的應用。
與此同時,Rust for Linux的努力仍在繼續,許多開發者和組織有興趣看到在內核中開始使用Rust代碼的能力,特別是在容易出現內存安全問題的領域。在今天發布的v6補丁中,工具鏈支持已經針對Rust 1.60進行了更新,支持在內核中運行文檔測試,以及其他Rust基礎設施的改進。
說到Rust代碼在內核中的使用,在這個補丁系列中可以看到網絡支持的開始。net”模塊支持Namespace、SkBuff、Ipv4Addr、SocketAddrV4、TcpListener等類型。還有”async”開始支持異步的內核編程。目前的狀態已經在為允許異步TCP套接字代碼工作。新的Rust代碼還增加了對網絡包過濾器和其他新功能的支持。
從這個Rust for Linux v6系列來看,Rust支持仍然被認為是”實驗性的”,但表現已經足夠好,如果需要的話,內核開發者可以開始為其他內核子系統開發Rust抽象,並將更多的驅動移植到Rust上。
更多關於Linux內核更新的Rust代碼的細節,請看這個補丁系列:
https://lore.kernel.org/lkml/ 20220507052451.12890-1-ojeda@kernel.org /
目前Rust內核的努力達到了37.9萬行代碼,包括底層、到目前為止開始的子系統抽象、樣本代碼,以及將一些Android和GPIO驅動代碼轉換為Rust作為額外的例子。