紅帽公司的工程師提議將其納入內核 Linux 這是實現 Nova 驅動程式的首批補丁。該驅動程式專為配備 GSP 韌體的 NVIDIA GPU 設計,GSP 韌體自基於 Turing 微架構的 NVIDIA GeForce RTX 2000 系列以來一直被使用。在這些 GPU 中,初始化和控制操作在韌體中實現,並由獨立的 GSP(GPU 系統處理器)微控制器執行。從長遠來看,Nova 有望取代 Nouveau 驅動程序,用於支援 GSP 的 GPU。
新的驅動程式是用 Rust 語言編寫的,由於開發 Rust 驅動程式的基礎設施仍在開發中,因此隨著 Rust 語言必要綁定的出現,Nova 程式碼將逐步轉移到主核心。第一階段,提議將由 232 行程式碼組成的「nova-core」驅動程式納入核心。 Nova-core 在 GSP 韌體 API 上實作了基礎抽象層,並提供了獨立於韌體版本的 API。
在下一階段,核心計劃包含 nova-drm(直接渲染管理器)DRM 驅動程序,用於從用戶空間與 GPU 交互,以及帶有 vGPU 管理器的 VFIO 驅動程序,允許在虛擬化系統中使用 NVIDIA 虛擬 GPU。
推廣新版 Nova 驅動程式的主要原因是能夠擺脫 Nouveau 驅動程式固有的複雜性,並透過使用 GSP 韌體提供的現成處理程序實現顯著的簡化,並減輕支援舊 GPU 的負擔。 Nova 也將解決 Nouveau 中需要大量程式碼庫返工的架構問題,例如 VMM/MMU 程式碼中的鎖定問題。選擇 Rust 語言是為了減少處理記憶體時出錯的可能性,同時也可以將工作驅動程式的工作與在 Rust 中開發驅動程式的綁定和抽象的創建結合起來。

關於核心擴容的進展 Linux 為了增強 Rust 的驅動程式開發能力,6.14 分支包含了 PCI、平台、Open Firmware、字元裝置和一些 I/O 功能的 Rust 綁定。維護穩定內核分支的 Greg Kroah-Hartman 表示: Linux在更新核心 6.14 驅動程式的拉取請求中,將當前狀態描述為「幾乎準備好用 Rust 編寫一個真正的驅動程式」。
來源: opennet.ru
