Betazeta Networks: BelelúBólidoCHWFayerWayerFW BrasilFerpleiLUPANiubieSaborizanteSabrosiaVeoVerdeWayerlessZimio Versión Movil

Temas Calientes

Cómo funciona el desarrollo de los drivers de NVIDIA para Linux

Cómo funciona el desarrollo de los drivers de NVIDIA para Linux

nvidiaHace un tiempo atrás, el sitio especializado Phoronix comenzó a recolectar preguntas que sus lectores quisieran realizar a NVIDIA sobre su soporte para el sistema operativo Linux.  Las preguntas fueron repondidas por Andy Ritger, quien lidera el equipo de drivers gráficos NVIDIA para UNIX en GPU’s de estaciones de trabajo, escritorio y netbooks.

Sorprendentemente, Andy fue bastante completo y directo en sus respuestas, lo que produjo una entrevista imperdible para todo aquel que quiera conocer el punto de vista de NVIDIA respecto a la plataforma Linux y otros sistemas Unix como Solaris y FreeBSD.

En este artículo publicamos un extracto de lo que nos pareció más interesante.

Andy dice que la mayoría de los ingenieros trabajando en el equipo de Linux usan emacs y/o vim en forma diaria, el código fuente se mantiene a través de Perforce (como en Google) aunque algunos de ellos usan git en forma personal, antes de aplicar los cambios en Perforce.

Cuando llega la hora de poner a prueba el driver, usan un conjunto interno de tests que se encarga de asegurar una correcta implementación de OpenGL. Además usan algunas aplicaciones como Maya, Viewperf, Unigine Tropics, ETQW, Doom 3, Quake 3 y por su puesto, Compiz.

Más del 90% del código es multiplataforma

Se estima que más del 90% del código que está en el driver para Linux es el mismo que se usa para el resto de las plataformas. La compañía ha realizado un esfuerzo para tener una arquitectura en donde gran parte del código sea independiente de la plataforma, lo que hace que el código específico sea muy reducido.

Tanto así, que el módulo que se carga a nivel de kernel es casi completamente independiente del sistema operativo subyacente. La mayor parte del código es el mismo para Windows XP, Vista, 7, MacOSX, Solaris, FreeBSD y Linux.  De hecho, el binario nv-kernel.o es el mismo para Solaris, FreeBSD y Linux. La única parte que es específica para cada sistema es la que tiene que interactuar finalmente con el kernel y esa fracción es bastante pequeña.

En la implementación de OpenGL, la única parte que cambia es la que tiene que interactuar con el sistema de ventanas (WGL en Windows y GLX en Unix).  Por el lado del código que interactúa con el sistema gráfico X, obviamente es más específico de Unix, aunque no se comparte mucho entre los distintos sistemas. Finalmente, el driver para acelerar la decodificación de video por hardware (VDPAU) usa gran parte del código que fue escrito para Windows (PureVideo).

El segmento de mercado Linux para NVIDIA

Para NVIDIA, el mercado Linux siempre ha sido bastante fuerte, y éste se encuentra principalmente en estaciones de trabajo de gama alta para segmentos específicos de mercado, como por ejemplo la industria energética, automotriz y de producción cinematográfica.  Es aquí en donde el impacto de Linux como plataforma para su negocio es medible para NVIDIA.

Aunque no se tienen porcentajes concretos, del total de las estaciones de trabajo de gama alta que se ocupan para visualización, prácticamente la mitad son Linux, y en la creación de contenido digital, como ya se sabe, es principalmente Linux.

Las estaciones de trabajo 3D con Linux son una proporción importante para NVIDIA y es por ahí en donde se han explorado nuevas tecnologías, como por ejemplo el caso de CUDA, en donde la proporción de usuarios con Linux es alta.

Desde el punto de vista de las descargas del driver desde su sitio web, las cifras no reflejan esta realidad, ya que respecto al driver para Windows, las descargas del driver de Linux son sólo un 0,5%.  Como muchos usuarios obtienen en driver a través de la misma distribución o en el caso de los segmentos industriales, a través de instalaciones OEM, se sabe que este porcentaje no es muy representativo, y medir de esta forma siempre ha sido un desafío.

Abrir el código fuente del driver: imposible

Abrir el código fuente del driver de NVIDIA es algo que probablemente nunca sucederá, y Andy indica tres razones para ello:

  • La competencia en otras plataformas, ya que más del 90% es código compartido con esas plataformas también.  Las piezas específicas para Linux son tan pocas y tienen tan poca influencia que no sería práctico liberarlas.
  • Hay propiedad intelectual de NVIDIA que está contenida en el driver y no quieren exponer.
  • La documentación que mantienen está pensada para ser distribuida en forma interna. Si en algún momento quisieran hacer pública esa documentación, requerirían de un esfuerzo monumental para transformar esos documentos en algo que sea entendible por gente externa a la compañía.

X no es un problema, sino que una oportunidad

Mirando hacia adelante, en NVIDIA creen que las oportunidades de crecimiento están en X, no porque sea malo (de hecho la arquitectura es bastante buena), sino porque la evolución del escritorio Linux está sucediendo ahí e involucra tanto a X, drivers, gestores de ventanas y de composición.

Afortunadamente, X está implementado de tal forma que se puede extender con la flexibilidad necesaria para enfrentar los desafíos que impone el escritorio moderno en Linux.

Link: NVIDIA Developer talks openly about Linux support (Phoronix)

36 Comentarios

Cómo funciona el desarrollo de los drivers de NVIDIA para Linux

Páginas: 1 2
Ver Todos
Thumb up 0 Thumb down 0 avatar_TurboMAC TurboMAC dijo hace 3 años

@vincegeratorix:

Ni siquiera es necesario reiniciar. SOlamente basta con init 1 y luego presionas ctrl+D y tienes tus controladores nuevitos recien sacados del horno.

Responder
Thumb up 0 Thumb down 0 avatar_Daniel Daniel dijo hace 3 años

@mauro

De donde sacaste que para instalar un driver de nvidia en Ubuntu hay que hacer todo eso? Arriba te sale un icono que te dice que hay controladores disponibles y te la detecta solo, con 2 clicks ya se instala automaticamente.

Si ni siquiera puedes hacer eso, acabas de quedar en ridiculo pobre weon.

@Trabajosesteban

Por tus palabras se nota que eres un pobre Troll frustrado.

Responder
Thumb up 0 Thumb down 0 avatar_zeta zeta dijo hace 3 años

en mi ubuntu es refacil instalar los drivers.

Responder
Thumb up 0 Thumb down 0 avatar_Diego Diego dijo hace 3 años

¿Se están escribiendo aplicaciones de uso diaro que hagan uso de CUDA?

Responder
Thumb up 0 Thumb down 0 avatar_rex hauser rex hauser dijo hace 3 años

offtopic: "sudo su" es lo mas ridículo que he visto en mi vida.

Responder
Thumb up 0 Thumb down 0 avatar_jado92mx jado92mx dijo hace 3 años

increible qe mas del 90% del codigo de nvidia sea multiplataforma
eso me pone a pensar: si fuera especifico de cada SO, seria aun ams eficiente?
es por eso qe me gustaria seguir el avance de nuveau y gallium 3D, qe como son tecnologias mas nativas, i amgino si se les bien encamina, podrian conseguir gran perfonrmance ;)

JaD!

Responder
Páginas: 1 2
Ver Todos

Deja tu Comentario

La opción de comentar está abierta a todos los usuarios, pero te pedimos por favor mantenerte dentro del tema del artículo y no publicar comentarios ofensivos o publicidad basura. Nos reservamos el derecho de eliminar cualquier comentario que no cumpla estas reglas.

Para que aparezca tu foto en vez del icono genérico en tu comentario, el email con el que comentas debe estar inscrito en Gravatar.