Лидерство NVIDIA в Rust-разработке GPU
Разработчики ядра Linux 7.4 подготовили пакет изменений DRM (Direct Rendering Manager) на языке Rust, который будет включен в ветку DRM-Next. Основной объем этих изменений составляют патчи для драйвера NVIDIA Nova, который окончательно закрепил за собой статус главного проекта по внедрению Rust-драйверов GPU непосредственно в ядро. В отличие от экспериментального драйвера Tyr для ARM Mali, Nova демонстрирует зрелость и готовность к массовому использованию.
Ключевые технические нововведения
Версия для Linux 7.4 приносит существенные архитектурные улучшения. Вводятся новые механизмы управления памятью и взаимодействия с пользователем. Особое внимание уделено оптимизации работы с видеопамятью и таблицами страниц.
| Компонент | Описание изменений в Linux 7.4 |
|---|---|
| NovaCoreApi | Новый API, предназначенный для использования дочерними драйверами, расширяющий экосистему. |
| ioctl | Новый интерфейс для передачи в user-space данных об архитектуре GPU, ID чипа и объеме vRAM. |
| Управление памятью | Внедрена система распределения VRAM (buddy allocation), поддержка MMU v2/v3 и флешинг TLB. |
| Доступ к BAR1 | Реализован прямой доступ CPU к отображенной видеопамяти (vRAM) через BAR1. |
Стабильность и тестирование
Помимо функциональных нововведений, команда NVIDIA уделила внимание надежности. Обновление включает улучшенную систему отчетов об ошибках, новые модули самодиагностики (self-tests) и обновления для обработки прошивок. Эти изменения критически важны для стабильной работы драйвера в production-средах.
Контекст и перспективы
Полный список патчей доступен в pull-реквесте для DRM-Next. Для тех, кто хочет глубже понять архитектуру проекта, на конференции LPC 2026 в Праге была представлена детальная презентация Nova. Успех этого драйвера задает стандарт для всей индустрии, доказывая, что Rust может эффективно использоваться для написания высокопроизводительных компонентов ядра, ранее считавшихся прерогативой C.
Источник: Phoronix ↗
