Red Hat mühəndisləri nüvəyə daxil edilməsini təklif etdilər Linux первый набор патчей с реализацией драйвера Nova. Драйвер рассчитан на использование с GPU NVIDIA, оснащёнными GSP-прошивками, которые используются начиная с серии NVIDIA GeForce RTX 2000 на базе микроархитектуры Turing. В подобных GPU операции инициализации и управления реализованы в прошивке и выполняются отдельным микроконтроллером GSP (GPU System Processor). Предполагается, что в долгосрочной перспективе Nova заменит собой драйвер Nouveau для GPU с поддержкой GSP.
Yeni drayver Rust dilində yazılmışdır və Rust drayverlərinin inkişafı üçün infrastruktur hələ də inkişaf etdiyi üçün Nova kodunun Rust dili üçün lazımi bağlamalar göründüyü üçün tədricən əsas nüvəyə köçürülməsi nəzərdə tutulur. Birinci mərhələdə nüvəyə daxil edilməsi üçün 232 kod sətirindən ibarət “nova-core” drayveri təklif edilir. Nova-core GSP proqram təminatı API-ləri üzərində əsas abstraksiya qatını həyata keçirir və proqram təminatı versiyalarından asılı olmayaraq API təmin edir.
Növbəti mərhələdə kernel istifadəçi məkanından GPU ilə qarşılıqlı əlaqə üçün nova-drm (Direct Rendering Manager) DRM sürücüsünü, həmçinin virtualizasiya sistemlərində NVIDIA virtual GPU-larından istifadə etməyə imkan verən vGPU meneceri ilə VFIO sürücüsünü daxil etməyi planlaşdırır.
Yeni Nova sürücüsünün təşviq edilməsinin əsas səbəbi, Nouveau sürücüsünə xas olan fəsadlardan xilas olmaq və GSP mikroproqramı tərəfindən təmin edilmiş hazır işləyicilərdən istifadə etməklə və köhnə GPU-ları dəstəkləmək yükünü azaltmaqla əhəmiyyətli dərəcədə sadələşdirməyə nail olmaqdır. Nova, həmçinin Nouveau-da VMM/MMU kodunda kilidləmə problemləri kimi kod bazasının əhəmiyyətli dərəcədə yenidən işlənməsini tələb edən memarlıq məsələlərini həll edəcək. Rust dili yaddaşla işləyərkən xətaların baş vermə ehtimalını azaltmaq üçün, həmçinin Rust-da drayverlərin inkişafı üçün cildlərin və abstraksiyaların yaradılması ilə işləyən sürücü üzərində işi birləşdirmək imkanı kimi seçilib.

Что касается прогресса добавления в ядро Linux возможностей для разработки драйверов на языке Rust, в состав ветки 6.14 приняты Rust-обвязки для PCI, платформ, Open Firmware, символьных устройств и некоторых функций ввода/вывода. Грег Кроа-Хартман (Greg Kroah-Hartman), отвечающий за поддержку стабильной ветки ядра Linux, в pull-запросе с обновлением драйверов для ядра 6.14, охарактеризовал текущее состояние, как «почти готовность к написанию реального драйвера на Rust».
Mənbə: opennet.ru
