GNU/Linux >> Tutoriales Linux >  >> Linux

Algunos sugieren que el controlador de código abierto de Nvidia no es suficiente. Están equivocados, y he aquí por qué

Comentario:Nvidia hizo olas al anunciar el código abierto del controlador del kernel de Linux para sus GPU, incluso cuando la empresa mantuvo la mayor parte del código del controlador cerrado. Por qué esto sigue siendo una victoria.

En un clásico momento de vaso medio vacío/medio lleno, Nvidia lanzó un controlador kernel de código abierto para sus GPU. Chris Duckett de ZDNet ha detallado por qué el momento de código abierto de Nvidia fue bueno para Linux y bueno para Nvidia, pero quiero abordar la queja del desarrollador de Linux Héctor Martin de que "fueron de código abierto su 'controlador' no lo hicieron" porque Nvidia "movió la mayor parte [del inteligencia del controlador] al firmware e hizo que el controlador de código abierto lo llamara”. Incluso si aceptamos la versión negativa del vaso medio vacío de Martin sobre las noticias (y Jens Axboe, mantenedor del subsistema de E/S del bloque de Linux, no lo hace), también hay una manera más positiva de leerlo medio lleno.

Código abierto:Cobertura de lectura obligatoria

La opinión más positiva es que el código abierto no es fácil, y las empresas que son nuevas en el código abierto se toman su tiempo para dominarlo. Se requiere paciencia.

Entonces, ¿qué pasó?

Otros han escrito más inteligentemente que yo sobre la historia de Nvidia con código abierto, pero aquí hay un tl; dr:no es bueno. Al menos, no con la comunidad Linux. No obtienes una insignia de vergüenza de "la peor compañía con la que hemos tratado" del creador de Linux, Linus Torvalds, sin alguna razón. Dado el pasado conflictivo, tal vez no sea sorprendente que Michael Larabel se regocijara por "este hito súper emocionante que muchos de nosotros hemos estado esperando ver durante muchos años".

Pero qué exactamente ¿Nvidia fue de código abierto?

Christian Schaller, director de escritorio, gráficos e infoentretenimiento de Red Hat, proporcionó una revisión crítica y objetiva. Pero no uno desinteresado. Como escribió, “[A]s el único proveedor de Linux con una huella de ingeniería significativa en GPU, nosotros [Red Hat] hemos estado trabajando estrechamente con Nvidia durante un par de años tratando de ayudar a preparar el terreno para que Nvidia cambie a un modelo con un controlador de núcleo de código abierto”. Esta no fue una decisión tomada en un día, en otras palabras.

Tampoco fue una decisión de código abierto todo. Como reconoció Schaller, "[A] una gran parte de los controladores de gráficos modernos se encuentran en el firmware y los componentes del espacio de usuario y aún son de código cerrado". Martin se toma su tiempo para catalogar el tamaño relativo de lo que era de código abierto y lo que se retuvo, pero para Schaller, la noticia esencial es que "significa que ahora tenemos un controlador del kernel de Nvidia que comenzará a poder consumir la licencia GPL". API en el kernel de Linux”. No, no se aplica a las GPU Nvidia anteriores a 2018. Y sí, pasarán años antes de que el impacto de esta decisión (y su dirección) llegue realmente a casa para la mayoría de los desarrolladores.

En todo esto, Martin quizás tenga razón en los hechos (“no se ganó libertad, para las personas que se preocupan por eso. Se cierra ~la misma cantidad de código”), incluso sin estar en lo cierto o, al menos, no ser optimista, en las implicaciones ( por ejemplo, Schaller señaló que "con el tiempo proporciona un camino para simplificar radicalmente el soporte del hardware de Nvidia"). Esas implicaciones son que Nvidia acaba de dar un paso significativo hacia código abierto, en lugar de alejarse de él.

Crédito por intenciones

Recuerde el comentario de Schaller de que este movimiento se ha estado discutiendo durante años entre Red Hat y Nvidia? Si fuera un salto fácil para Nvidia, se habría dado después de ese primer encuentro. Por lo tanto, Axboe fue perspicaz cuando señaló:“¿Ayudó a la apertura de la fuente del controlador al introducir más bits en el firmware? Seguro que sí, obviamente”. No es de extrañar que Martin esperara que una mayor parte del controlador fuera de código abierto, pero casi seguro que Axboe tiene razón al sugerir que no mantener todo el código en el controlador facilitó que Nvidia diera el paso de código abierto.

¿Por qué no abrirlo todo? El colaborador del sistema de gráficos Linux, Timur Kristóf, ofreció una razón:"La principal preocupación suele ser que los competidores puedan obtener "secretos comerciales" de los controladores de código abierto u otros detalles de implementación que la empresa preferiría mantener en secreto". Podemos estar de acuerdo o en desacuerdo con que las empresas deberían tener esta preocupación, pero para una empresa como Nvidia que tradicionalmente ha operado fuera del código abierto, la lucha interna debe haber sido colosal para mantener cerrado el controlador.

Por todos los medios, es justo exigir que Nvidia y otras empresas hagan más. Pero también seamos empáticos con el humano factores tras bambalinas:miedo a otorgar una ventaja a los competidores (ya sea que creamos que es una preocupación bien fundada o no), miedo a un código abierto deficiente (las empresas son criticadas regularmente por los observadores del código abierto por no seguir sus modelos preferidos de licencia y gobierno). , etc.), y cualquier número de otros miedos. En lugar de castigar a Nvidia por no ir lo suficientemente lejos, celebremos lo lejos que ha llegado.

Divulgación:trabajo para MongoDB, pero las opiniones expresadas aquí son mías .





Enlace de origen


Linux
  1. Hashing de contraseñas y por qué lo necesitamos

  2. Linux:¿por qué usamos Su y no solo Su?

  3. $bashpid y $$ difieren en algunos casos?

  4. Controlador Nvidia actualizado:¿versiones mixtas de 304.88 y 319.32?

  5. ¿Por qué usamos su - y no solo su?

Una introducción a los diferenciales y parches

¿Por qué algunos emoji en blanco y negro y otros son demasiado grandes?

Por qué su proyecto de código abierto definitivamente no debería ser el próximo Kubernetes

¿Por qué Deis y qué es?

¿Cuándo se maneja una señal y por qué alguna información se congela?

¿Por qué está abierto el puerto 1111 y es seguro estarlo?