Останнім часом Представлена Nvidia через рекламу прийняв рішення випустити код всіх модулів ядра, що постачаються у вашому пакеті Відео драйверів для лінукс.
Випущений код було випущено під ліцензіями MIT і GPLv2. Можливість створювати модулі надається для архітектур x86_64 і aarch64 в системах із ядром Linux 3.10 і новіших версій, хоча бібліотеки мікропрограм і простору користувача, такі як стеки CUDA, OpenGL і Vulkan, залишаються власністю Nvidia. .
Очікується публікація кодексу призводять до значного збільшення щодо зручності використання графічних процесорів Nvidia в системах Linux, покращити інтеграцію з операційною системою і спростити проблеми доставки та налагодження драйверів.
Розробники Ubuntu і SUSE вже оголосили про формування пакетів на основі відкритих модулів.
Наявність відкритих модулів також полегшить інтеграцію драйверів Nvidia із системами, заснованими на нестандартних збірках ядра Linux. Для Nvidia відкритий вихідний код покращить якість і безпеку драйверів Linux за рахунок посилення участі спільноти та можливості перегляду третьою стороною та незалежного аудиту.
Зазначається, що представлена база з відкритим кодом одночасно використовується при формуванні фірмових драйверів, зокрема, вона використовується у випущеній сьогодні бета-гілки 515.43.04.
У цьому випадку, закритий репозиторій є основним, і запропонована база відкритого вихідного коду буде оновлюватися для кожної версії фірмових драйверів у вигляді перетворення після певної обробки та очищення. Окрема історія змін не надається, лише загальна фіксація для кожної версії драйвера (код модулів для драйвера 515.43.04 наразі випущений).
Проте, представники громади мають можливість подавати заявки потягніть вкладку, щоб рекламувати свої виправлення та зміни коду модуля, але ці зміни не відображатимуться як окремі зміни у відкритому репозиторії, але спочатку буде інтегровано в основний закритий репозиторій і тільки потім перенесені з рештою змін на відкриття. Участь у розробці вимагає підписання договору про передачу прав власності на переданий код компанії NVIDIA (Contributor License Agreement).
Код модуля ядра розділений на дві частини: загальні компоненти, не прив'язані до операційної системи, і рівень для взаємодії з ядром Linux. Щоб скоротити час інсталяції, загальні компоненти все ще поставляються у фірмових драйверах NVIDIA у вигляді попередньо зібраного бінарного файлу, а рівень збирається на кожній системі з урахуванням поточної версії ядра та доступної конфігурації. Надаються такі модулі ядра: nvidia.ko, nvidia-drm.ko (диспетчер прямого відтворення), nvidia-modeset.ko та nvidia-uvm.ko (уніфікована відеопам’ять).
La підтримка графічних процесорів серії GeForce та робочих станцій вважається альфа-якістю, але виділені графічні процесори, засновані на архітектурі NVIDIA Turing і NVIDIA Ampere, що використовуються в центрі обробки даних для паралельних обчислень і прискорення даних (CUDA), повністю підтримуються, повністю протестовані та придатні для використання в корпоративних проектах (відкритий код тепер готовий замінити фірмові драйвери).
стабілізація підтримки GeForce та GPU для робочих станцій планується для майбутніх версій. В кінцевому підсумку рівень стабільності бази з відкритим кодом буде доведений до стану проприетарних драйверів.
У його нинішньому вигляді включення опублікованих модулів до основного ядра неможливе, оскільки вони не відповідають вимогам ядра щодо стилю кодування та архітектурних умов, але Nvidia має намір співпрацювати з Canonical, Red Hat і SUSE щоб вирішити цю проблему та стабілізувати інтерфейси програмування контролера. Крім того, випущений код можна використовувати для покращення драйвера ядра Nouveau з відкритим вихідним кодом, який використовує те ж програмне забезпечення графічного процесора, що й фірмовий драйвер.
нарешті, якщо ти є зацікавлений дізнатися більше про це, Ви можете перевірити деталі в за наступним посиланням.