Nova: Trình điều khiển Rust mới cho GPU NVIDIA sắp có trên Linux 6.15

Nova, Rỉ sét

Một năm trước Red Hat đã công bốvới công việc của họ trên trình điều khiển nguồn mở mới để quản lý GPU NVIDIA trên hệ thống Linux,Mới". Không giống như thế hệ trước là Nouveau, Nova dựa vào việc phân công các hoạt động khởi tạo và điều khiển cho vi điều khiển GSP (Bộ xử lý hệ thống GPU) được tích hợp vào chính card đồ họa.

Và hiện tại, chỉ sau vài tháng (không giống như các dự án mới khác), có vẻ như trình điều khiển đã đạt được độ hoàn thiện đủ để được đề xuất thành một bộ bản vá để tích hợp vào nhân Linux 6.15, đây là phiên bản đầu tiên của trình điều khiển trên Linux.

Nova, nó là được thiết kế như một mô-đun hạt nhân Linux, dựa vào hệ thống DRM để quản lý tương tác với GPU từ không gian người dùng. Sự phát triển của nó được coi là bước tiến hóa của Nouveau, với điểm khác biệt chính là nó chỉ nhắm mục tiêu vào GPU có phần mềm GSP, bao gồm các mẫu từ dòng NVIDIA GeForce RTX 2000 dựa trên kiến ​​trúc vi mô Turing.

Sự khác biệt với Nouveau và Ưu điểm của Nova

Tân tinh tìm cách giải quyết các vấn đề về cấu trúc của Nouveau, đòi hỏi phải có sự thay đổi lớn trong các lĩnh vực như quản lý bộ nhớ (VMM/MMU) và khóa trong mã. Không giống như Nouveau, Nova tận dụng chương trình cơ sở GSP của NVIDIA để đơn giản hóa việc khởi tạo và kiểm soát GPU, giảm độ phức tạp của mã và loại bỏ nhu cầu xử lý các card cũ hơn.

Mã Nova nó được viết bằng Rust, một ngôn ngữ không chỉ cải thiện tính bảo mật bằng cách giảm thiểu lỗi trong quản lý bộ nhớ mà còn cho phép tạo các lớp và lớp trừu tượng có thể tái sử dụng để phát triển các trình điều khiển khác.

Dự án Nó được hỗ trợ bởi nhiều sáng kiến ​​song song khác nhau, chẳng hạn như rust-device để tạo trình điều khiển, rust-pci để tương tác với bus PCI và rust-drm để tích hợp với các hệ thống con DRM và GEM. Các công cụ này cũng đang được sử dụng trong quá trình phát triển drm-asahi, trình điều khiển Rust cho GPU Apple M1 và M2, cho thấy sự hội tụ trong cơ sở hạ tầng của trình điều khiển đồ họa được viết bằng Rust.

Việc sử dụng ngôn ngữ Rỉ sét trong sự phát triển này không phải là ngẫu nhiên, vì Rust cung cấp các cơ chế hỗ trợ việc xem xét và tái cấu trúc, góp phần tăng tính ổn định của dự án. Việc áp dụng ngôn ngữ này trong hạt nhân Linux là để đáp ứng chiến lược rộng hơn nhằm hiện đại hóa việc viết mô-đun và giúp những người đóng góp mới dễ tiếp cận hơn với quá trình phát triển.

Đây không phải là nỗ lực duy nhất đang được thực hiện để tích hợp Rust vào kernel. Các trình điều khiển và hệ thống khác hiện đang được phát triển bằng ngôn ngữ này, chẳng hạn như trình điều khiển GPU Apple AGX, hỗ trợ lưu trữ NVMe, hệ thống tệp PuzzleFS và nhiều triển khai quản lý thiết bị và bảo mật khác. Xu hướng sử dụng Rust tiếp tục phát triển mạnh mẽ trong hệ sinh thái Linux, đánh dấu sự thay đổi đáng kể về cách giải quyết vấn đề bảo mật và tính ổn định trong quá trình phát triển hạt nhân hệ điều hành.

Các giai đoạn thực hiện

Hiện nay, Nova đang trong giai đoạn triển khai đầu tiên, tích hợp nova-core, một mô-đun với khoảng 400 dòng mã thiết lập các khái niệm trừu tượng cần thiết để giao tiếp với chương trình cơ sở GSP. Cùng với nova-core, các liên kết thiết yếu để tích hợp với phần mềm NVIDIA cũng đã được thêm vào.

Điều đáng nói là, Nova ban đầu được lên kế hoạch sẽ có mặt trên Linux 6.14 với một mô-đun nova-core bao gồm 232 dòng mã, nhưng cuối cùng nó đã không được đưa vào vì Greg Kroah-Hartman đã đề cập đến một số chi tiết cần được đánh bóng.

Với xác nhận mới rằng nó sẽ được đưa vào, Bây giờ bộ điều khiển sẽ chuyển sang giai đoạn tiếp theo trong đó dự kiến ​​sẽ thêm:

  • nova-drm: trình điều khiển DRM (Trình quản lý kết xuất trực tiếp) để quản lý tương tác với GPU từ không gian người dùng.
  • VFIO với trình quản lý vGPU: sẽ cho phép sử dụng GPU ảo NVIDIA trong môi trường ảo hóa.

Cuối cùng, điều quan trọng là phải làm rõ rằng Nova eỞ trạng thái hiện tại, nó không phải là bộ điều khiển chức năng và rằng bản vá đã được gửi Chúng chỉ là cơ sở để bắt đầu phát triển bộ điều khiển, tức là mã sẽ đặt nền móng cho sự phát triển trong tương lai.


Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: Miguel Ángel Gatón
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.