После нескольких лет намеков Nvidia объявила вчера, что она станет частью драйвера графического процессора Linux с открытым исходным кодом , как Intel и AMD делали в течение многих лет. Раньше пользователям Linux, которые хотели избежать проприетарного драйвера Nvidia, приходилось полагаться на программное обеспечение с обратной разработкой, такое как проект Nouveau , который лучше всего работал на старом оборудовании и в лучшем случае предлагал неполную поддержку всех функций графического процессора Nvidia.
«Этот выпуск является важным шагом на пути к улучшению работы графического процессора NVIDIA в Linux, более тесной интеграции с ОС и возможности отладки, интеграции и помощи разработчикам», — говорится в сообщении в блоге, приписываемом нескольким сотрудникам Nvidia . «Для поставщиков дистрибутивов Linux модули с открытым исходным кодом облегчают использование. Они также улучшают готовый пользовательский интерфейс для подписания и распространения драйверов графических процессоров NVIDIA. Canonical и SUSE могут сразу упаковать открытые модули ядра в дистрибутивы Ubuntu и SUSE Linux Enterprise».
Nvidia специально выпускает драйвер ядра с открытым исходным кодом под двойной лицензией MIT/GPL и в настоящее время не выпускает части драйвера для пользовательского пространства. Сюда входят драйверы для OpenGL, Vulkan, OpenCL и CUDA, исходный код которых по-прежнему закрыт, а также прошивка для системного процессора графического процессора (GSP). Nvidia заявляет, что эти драйверы «останутся закрытыми и будут опубликованы с предварительно собранными двоичными файлами», поэтому не похоже, что в ближайшее время планируется выпуск версий с открытым исходным кодом.
Nvidia по-прежнему отстает от Intel и AMD, когда речь идет о драйверах графических процессоров с открытым исходным кодом — обе компании выпускают драйверы ядра и пользовательского пространства с открытым исходным кодом, а также прошивку с закрытым исходным кодом. Но это первый шаг к паритету с открытым исходным кодом для пакетов драйверов Nvidia для Linux.
Драйверы Nvidia с открытым исходным кодом поддерживают только графические процессоры компании на базе Turing и более поздних версий, включая серии GeForce GTX 1600, RTX 2000 и 3000, а также графические процессоры для рабочих станций Quadro, основанные на той же архитектуре. Собственные драйверы компании восходят к архитектуре Kepler 2012 года.
Драйверы с открытым исходным кодом также пока не будут интегрированы в ядро Linux, поскольку, по словам Phoronix , API, ABI и интерфейс между драйвером ядра и интерфейсом прошивки GSP не доработаны. Это означает, что все, от микропрограммы до драйвера ядра и драйверов пользовательского пространства, должно иметь версию для правильной работы (сегодняшняя версия — R515.43.04). Как только эти интерфейсы завершены, драйвер может быть передан ядру, и различные версии прошивки, драйверы ядра и драйверы пользовательского пространства должны быть в состоянии взаимодействовать.
Nvidia заявляет, что поддержка своих графических процессоров для центров обработки данных в текущих драйверах «готова к производству» в этом первоначальном выпуске, но поддержка GeForce, Quadro и других потребительских графических процессоров находится в «альфа-качестве» — это не то программное обеспечение, которое вам нужно. спешите установить, если вы не хотите пинать его шины на тестовой системе или вносить свой код самостоятельно.
Гектор Мартин, один из разработчиков дистрибутива Asahi Linux, раскритиковал Nvidia за перенос многих функций в свою прошивку с закрытым исходным кодом, которую затем вызывает драйвер с открытым исходным кодом. Мартин называет драйвер с открытым исходным кодом «чистой победой с практической точки зрения», потому что куча проприетарного кода легче помещается в песочнице. «Но для людей, которые заботятся о ней, не было получено никакой свободы», — пишет он. «[Примерно] такое же количество кода закрыто [как и раньше]».