Linux
Опубликовано в Linux
avatar
27 секунд читать

Red Hat анонсирует Nova: новый драйвер Nvidia, написанный на Rust

Возможно, он заменит nouveau

Команда разработчиков под руководством Даниэло Крумриха из Red Hat объявила о старте работы над проектом Nova. Nova — драйвер для видеокарт от Nvidia, написанный на языке программирования Rust. В долгосрочной перспективе Nova предполагается использовать в качестве преемника Nouveau для видеокарт, основанных на прошивке GSP.

***

Nova в конечном итоге стремится стать современным драйвером NVIDIA Linux DRM с открытым исходным кодом для графических процессоров Turing и новее (серия RTX 2000), где есть поддержка системного процессора GPU (GSP). Драйвер Nouveau DRM недавно добавил дополнительную поддержку GSP - или обязательную поддержку, начиная с последней серии RTX 40 - в то время как Nova будет современной заменой, написанной на Rust и без багажа Nouveau, который накопился за годы поддержки графических процессоров NVIDIA, начиная с его ранних дней.

Одна из причин, по которой Red Hat задумалась о преемнике Nouveau, заключается в том, что основной мейнтейнер Nouveau ушел в отставку.

Даниэло отметил, что в этом проекте они хотят работать над упрощенным (но современным) драйвером по сравнению с Nouveau:

  В Nova мы видим возможность значительно снизить сложность драйвера по сравнению с Nouveau по двум причинам. Во-первых, историческая архитектура Nouveau, особенно вокруг nvif/nvkm, довольно сложна и негибка и требует серьезной переработки для решения некоторых проблем (таких как иерархия блокировки в коде VMM/MMU для VM_BIND в настоящее время решается обходным путем), во-вторых, с драйвером, работающим только с GSP, нет необходимости поддерживать совместимость с кодом до GSP.
Danilo Krummrich

Конечно, рассматривая его как амбициозный проект, у него есть свои заминки, главная из которых:

При выборе Rust первой проблемой, с которой приходится иметь дело, являются отсутствующие абстракции привязки C для интегральной инфраструктуры ядра (например, абстракции устройств / драйверов). Так как это немного похоже на проблему курицы и яйца - нам нужен пользователь для вышестоящих абстракций, но нам также нужны абстракции для создания драйвера - мы хотим разработать Nova в основной ветке разработки и начать только с заглушки драйвера, которая использует только некоторые базовые абстракции Rust.
Danilo Krummrich

Все это звучит довольно круто, но разработчикам предстоит нелегкая работа по созданию полноценного драйвера на основе Rust. Но улучшения в области сохранения памяти, надежности и производительности, которые дает Rust, того стоят. 

Источник: Nova and staging Rust abstractions - Danilo Krummrich (kernel.org)

8 Комментарии

avatar
johnnybgoode1885
3 месяца назад

Хуйню делают. Будто вот так можно взять и начать драйвер писать с нуля под готовое железо без каких-либо документов и спецификации. Лучше бы перестали разрабатывать систем дурь и днетворкменеджер. А у нвидии и так уже есть опенсорс драйвер, у них только userspace закрытый. Своя модификация mesa или чот такое. У амуде раньше своя меса была, щас хз чо

avatar
Richard
3 месяца назад

>Лучше бы перестали разрабатывать систем дурь и днетворкменеджер
Ещё один фанатик конфигураций на шелл-портянках?

А вообще приятно, когда луддитов корёжит. Зоопарку дистрибутивов не хватает унификации.

avatar
The9S Автор
3 месяца назад

Но системди реально многое на себя берет

avatar
nFox
3 месяца назад

Init.d говно не унифицируемое, systemd.d существенно лучше, хоть и не идеальна. Ну и лучше все рано ничего нет 🤷‍♂️ А гона на nm вообще не понял. Шикос работает.

avatar
Richard
3 месяца назад

Что поделать, если в этом зоопарке - разброд и шатание, а то самое сОоБщЕсТвО не осилило написать альтернативу, не состоящую из говна и шелла. Хотя постоянно грозятся, мол, вот сейчас корпоратов перебьём и заживём.

Account deleted
3 месяца назад

Это конечно хорошо но как сказал великий
“fuck envidia!”

avatar
The9S Автор
3 месяца назад

Сам жду того момента, когда свой пека на gtx 1660 ti смогу перевести на открытый дравйвер без каких-либо компромиссов)
https://www.youtube.com/watch?v=_36yNWw_07g