En el kernel de Linux se están haciendo varios cambios para reducir la complejidad de escribir drivers y al mismo tiempo abrir la puerta para que se puedan desarrollar extensiones importantes sin que se tengan que incorporar al kernel.
Un par de ejemplos visibles de estos cambios son:
En la próxima versión del kernel se incluirá una nueva extensión llamada CUSE o Character Devices in User Space. La idea es similar a FUSE, pero en vez de que sean sistemas de archivos externos al kernel, ahora se trata de drivers o controladores de dispositivos externos al kernel.
En Linux y Unix en general se utilizan algunos archivos especiales para comunicar a las aplicaciones con los drivers, se trata de esos archivos que se encuentran en el directorio /dev. Un problema que surge, especialmente con aplicaciones antiguas, es que las aplicaciones al usar directamente los archivos que están ahí, necesitan que exista el driver relacionado con cada archivo. Un ejemplo clásico son los archivos /dev/dsp y /dev/mixer que se usaban en el antiguo sistema de sonido Open Sound System.
Con CUSE ahora son aplicaciones las que podrán tomar el control de esos dispositivos especiales y como es de esperar, la primera aplicación práctica es un proxy de OSS que permitirá que las aplicaciones crean que están usando OSS, pero serán direccionadas a PulseAudio/ALSA para aprovechar toda la potencialidad de estos sistemas de audio.
Otro uso propuesto es atender las solicitudes a /dev/pilot que realizan aplicaciones antiguas que se conectan a Palm Pilot. Con CUSE no será necesario tener un driver especial, sino que se podrá escribir un proxy que tome las solicitudes a /dev/pilot y las convierta en lo necesario para comunicarse con el dispositivo bajo estándares actuales.
Con CUSE, nuevos desarrolladores podrán dar soporte a sus dispositivos de una forma sencilla, y aplicaciones antiguas podrán seguir funcionando, adaptándose automáticamente a las nuevas funcionalidades que se vayan incorporando al sistema.
Links:
- Kernel Log – Coming in 2.6.31: CUSE… (The H Open)
- Character devices in user space (LWN.net)
Publicado por Franco Catrin el 7 de September 2009 en la categoría Destacados, Software con los tags alsa, cuse, fuse, Kernel, Linux, ntfs. Tiene 59 comentarios.
59 Comentarios
Drivers fuera del kernel con CUSE en Linux
Ver Comentario... boti dijo el 7-9-2009 a las 15:37 ...

53beleg dijo el 7-9-2009 a las 15:38:
@Franco:
Felicitaciones por el articulo (seras el unico que trabaja realmente en Fw?)

9desenfoque dijo el 7-9-2009 a las 15:43:
Buena idea, pero… ¿Esto no fomentará que las compañías de hardware desarrollen drivers de código CERRADO?…

4kotak dijo el 7-9-2009 a las 15:44:
Es decir, antes el primero que llegaba, bloqueada a los demás el uso del archivo (léase /dev/algo) y ahora va a existir una instancia que maneja la interacción con el archivo.. ¿me equivoco? si así fuese, ¿sería un mero semaforo?

-7kotak dijo el 7-9-2009 a las 15:46:
o sería
necesitan que exista el driver relacionado con cada archivo.

6kotak dijo el 7-9-2009 a las 15:48:
perdon, sería, en vez de:
necesitan que exista el driver relacionado con cada archivo.
debería ser:
necesita que exista un archivo relacionado con cada driver.
ando medio perdido.

8iperich dijo el 7-9-2009 a las 15:48:
LinuxWayer!!! como se les ocurre poner noticias de Linux!!! Twitterwayer!! como se les ocurre poner noticias de Twitter!!! Applewayer!!! como se les ocurre poner noticias de Apple!!!
No se dan cuenta que tecnología=Microsoft y nada más???
[ironic mode=off]
xDD
Realmente linux (el kernel) siempre ha sido “demasiado” monolítico a mi parecer. Me parece una buena noticia que se esté pensando en sacar cosas del kernel para hacerlo más modular. Interesante noticia.
Ver Comentario... Ἀχιλλεύς dijo el 7-9-2009 a las 15:52 ...

5elBarto dijo el 7-9-2009 a las 16:02:
excelente nota franco.
no se si has publicado alguna sobre gallium3D, pero si no lo has hecho podrias hacerlo proximamente ya que he leido muchas cosas sobre el y se ve muy prometedor, aunque igualmente muy verde ¬¬

-4Omeg@ dijo el 7-9-2009 a las 16:13:
Esto me parece como la respuesta de un articulo que debatia sobre los dispositivos a conectar en W7 y Linux, del cual ganaba W7.
Cuando crearan las cosas mas fáciles para los usuarios “comunes” o “humanos” D:
(fue un cacho conectar mi ZUNE a Ubuntu)
Se agradece el articulo D:, aunque esperaría un poco mas de info, quede con gusto a poco.
Saludos

2subzero79 dijo el 7-9-2009 a las 16:22:
@Franco: Excelente articulo,
off topic: lei hoy que Debian pasaria a implementar upstart de Ubuntu, remplazando al clasico init.d, viene un articulo con las reacciones de los desarrolladores en Debian?
sl2

10Guatón Campero dijo el 7-9-2009 a las 16:24:
@Omeg@:
El nivel de información proporcionado por Franco es perfecto: suficiente como para que un mortal cualquiera sepa algo y vea que se avanza en Linux, y también suficiente como para que alguien más ñoñoavanzado pueda investigar por sí mismo.

14Tezeract dijo el 7-9-2009 a las 16:24:
Omeg@:
Si el Zune no funciona bajo multiples plataformas es porque esta intencionalmente diseñado de esa forma. Es accesible para cualquier fabricante sacar drivers para Linux, basta con liberar especificaciones básicas que sirvan como base para hacer los drivers.
Ver Comentario... Omeg@ dijo el 7-9-2009 a las 16:45 ...

0Hugo dijo el 7-9-2009 a las 16:50:
Esta bueno que se vote por hacer mas modular la cosa…
Monokernel is so last year ~

2supreme dijo el 7-9-2009 a las 17:02:
Yo estoy usando el kernel 2.6.31, iré actualizando y veré si puedo hacer algo haciéndole creer a alguna aplicación que está sobre OSS cuando en realidad uso PulseAudio. El tremendo avance CUSE
, cuántos dolores de cabeza no me/nos hubiera ahorrado a lo largo de la vida.

4Carlos Le Mare dijo el 7-9-2009 a las 17:03:
La razón de por qué es tan monolítico es: Nadie pensó que llegaría a tanto
@Anónimo: En Windows y Mac los Kernels son del tipo microkernel, es decir, que nacieron con los drivers (y otras cosas) afuera del Kernel. Este diseño es más moderno y eventualmente mejor (aunque los monolíticos tienen otras ventajas), pero como dije en la primera línea, nadie pensó que llegaría a tanto.
clemare
Franco Catrin dijo el 7-9-2009 a las 17:21:
21@Carlos Le Mare
Segun entiendo, aun es discutible si es mejor o no un microkernel. Recordar el histórico debate entre Torvalds y Tanenbaum al respecto
Franco Catrin dijo el 7-9-2009 a las 17:43:
23@kotak
El archivo que está en /dev es sólo un nombre que se usa para llegar desde la aplicación a un driver en particular, pero no es el driver en si mismo.
No sacas nada con tener el archivo si no hay un driver que sepa atender las solicitudes a ese archivo.
En el modelo tradicional, los modulos del kernel se registran indicando qué tipo de dispositivo atienden : block/character, major number, minor number. Y cuando se abre un archivo en /dev se ve qué driver se debe usar.
Por ejemplo:
fcatrin@shaman:/dev$ ls -la dsp
crw-rw—-+ 1 root audio 14, 3 2009-09-07 09:44 dsp
Indica que el archivo /dev/dsp está asociado a un character device (c), con major=14 y minor=13. Entonces al abrirlo, el kernel le entregará el trabajo al módulo que se haya registrado para atender c-14-13. Si no hay un driver asociado, indicará “no device found”.
Lo que hace CUSE es tomar el control de esa llamada.
Franco Catrin dijo el 7-9-2009 a las 17:47:
24@desenfoque
Buena idea, pero… ¿Esto no fomentará que las compañías de hardware desarrollen drivers de código CERRADO?…
Ese es el vaso medio vacío.
Al mirar el vaso medio lleno se entiende que aquellas compañías de hardware que no pueden poner a disposición su driver en el kernel por problemas de licencia, ahora lo podrían hacer mediante CUSE. No siempre se pueden desarrollar drivers de código abierto, lamentablemente.
En todo caso, tampoco es la panacea, ya que existen otras limitaciones al quedar fuera del kernel.
Franco Catrin dijo el 7-9-2009 a las 17:51:
25@Omeg@
Esto me parece como la respuesta de un articulo que debatia sobre los dispositivos a conectar en W7 y Linux, del cual ganaba W7.
Te refieres al entrenamiento para vendedores de Microsoft en base a FUD?
No está relacionado con este artículo.
Cuando crearan las cosas mas fáciles para los usuarios “comunes” o “humanos” D:
(fue un cacho conectar mi ZUNE a Ubuntu)
Cuando los fabricantes hagan bien su trabajo. Habría que preguntarle al fabricante del Zune en este caso, que es… oh wait!
Se agradece el articulo D:, aunque esperaría un poco mas de info, quede con gusto a poco.
No quise extenderme demasiado, incluso no pensé que este artículo tuviera tanta acogida.
Manda un comentario con tus inquietudes.

6RAcl dijo el 7-9-2009 a las 18:22:
@Franco No quise extenderme demasiado, incluso no pensé que este artículo tuviera tanta acogida.
La verdad con el impacto que puede causar CUSE creo que valdría la pena extenderse un poco más

4Soulwave dijo el 7-9-2009 a las 18:24:
@desenfoque
Prefiero un driver closed-source que funciona a nada, al final de cuentas, si hay que ser mainstream, hay que hacer algunos sacrificios.

3Nicolas dijo el 7-9-2009 a las 18:29:
Por lo general escribo para ptar/trollear.
Pero debo felicitarte, tus articulos son los mejores del sitio. Claros, de una complejidad tecnica superior… pero no se nota!.
Sigue asi, porque no te vienes a CHW? estos articulos deberian estar allá.

-2superfremo dijo el 7-9-2009 a las 18:32:
iba a escribir algo, pero me incomoda tanto escribir desde windows… me siento como de visita en mi propio pc
Ver Todos Páginas: [1] 2 Próximos 30 Comentarios →
Ver Todos Páginas: [1] 2 Próximos 30 Comentarios →