fbpx
Wikipedia

udev

udev es el gestor de dispositivos que usa el núcleo Linux en su versión 2.6. Su función es controlar los ficheros de dispositivo en /dev. Es el sucesor de devfs y de hotplug, lo que significa que maneja el directorio /dev y todas las acciones del espacio de usuario al agregar o quitar dispositivos, incluyendo la carga de firmwares.

Udev
Parte de systemd
Información general
Tipo de programa Device Filesystem
Desarrollador Greg Kroah-Hartman y Kay Sievers
Lanzamiento inicial Noviembre de 2003
Fecha de parchado 2012
Licencia GPLv2
Información técnica
Programado en C
Versiones
Última versión estable 217 28 de octubre de 2014 (6 años, 9 meses y 14 días)
Serie systemd
Devfsd y Device Filesystem
Udev
Asistencia técnica
Enlaces
Sitio web oficial
Repositorio de código

Motivación

En un sistema Linux tradicional (sin udev ni devfs), en el directorio /dev hay nodos de dispositivo creados para cada dispositivo conocido, esté o no en el sistema. Se dice que es un conjunto de ficheros estático, ya que los nodos no cambian.

Además, la forma de acceder a un periférico concreto no es siempre la misma, ya que depende de qué otros aparatos hay conectados: si se conectan los discos A y B, se llamarán disco1 y disco2 respectivamente. Pero si está solo un disco (el B, por ejemplo), se llamará disco1, porque solo hay uno. El B ha cambiado de nombre.

Este modelo de gestión de dispositivos da algunos problemas:

  • el directorio /dev es enorme y difícil de manejar, ya que incluye todos los dispositivos posibles
  • los números mayor y menor que se asocian a cada dispositivo se estaban acabando
  • los usuarios necesitan que cada dispositivo sea accesible de la misma manera; no aceptarán que por conectar un disco USB al sistema tengan que reconfigurar la cámara de vídeo.
  • los programas necesitan poder detectar cuándo se ha conectado o desconectado un dispositivo, y cuál es la entrada que se le ha asociado en /dev

udev soluciona estos problemas, sobre todo el de poder acceder a un dispositivo con un nombre siempre fijo. Ésta fue la razón por la que se hizo udev, ya que antes estaba devfs, que solucionaba alguno de estos problemas, pero no todos (véase sección Diferencias con devfs).

Características

udev resuelve los problemas anteriores de la siguiente forma:

Solo dispositivos conectados

udev mantiene en /dev solo las entradas correspondientes a los dispositivos que hay conectados al sistema. Así se soluciona el problema del /dev superpoblado.

No se usa mayor y menor

No se usa el número mayor y menor para reconocer a cada dispositivo. Puede funcionar incluso aunque estén elegidos al azar. Por tanto, no le afecta el que se acaben las combinaciones mayor/menor asignables.

Permite dar nombre fijo

Permite dar un nombre fijo para cada dispositivo, por ejemplo cámara, sin que éste dependa de qué otros dispositivos hay conectados ni del orden en que se han conectado.

Un disco duro, por ejemplo, se reconoce por el identificador de su sistema de ficheros, el nombre del disco, y el conector físico en el que está.

Avisa a los programas

Avisa mediante mensajes D-BUS para que cualquier programa del espacio de usuario pueda enterarse cuando un dispositivo se conecta o desconecta (esto es útil para HAL). También permite a los programas consultar la lista de dispositivos conectados y la forma de acceder a cada uno.

Todo en espacio de usuario

udev hace que toda la política de nombres de dispositivo esté en espacio de usuario, y no en el núcleo. Esto hace posible que un programa cualquiera pueda decidir el nombre de un dispositivo, por ejemplo basándose en sus características. No es necesario modificar el núcleo si no se está conforme con el nombre que se le da a un dispositivo.

Otra ventaja de tener el demonio de udev (udevd) en espacio de usuario es que esta memoria se puede llevar a disco (al espacio de intercambio), a diferencia de la memoria de núcleo. Esto lo hace apropiado para sistemas embebidos con poca memoria física.

Otras características

udev respeta la forma de nombrar dispositivos definida en el LSB, aunque permite que los usuarios usen otros nombres.

El proceso (udevd) ocupa poca memoria y no necesita ejecutarse siempre. Esto también favorece a los sistemas embebidos y equipos poco potentes.

Diferencias con devfs

devfs también se hizo para solucionar algunos de los problemas originales, pero no todos. Los autores de udev explican en (en inglés) las razones por las que udev es mejor que devfs.

Resumiendo:

  • devfs solo muestra en /dev los dispositivos conectados, al igual que udev
  • devfs no soluciona el problema de los números mayor/menor que se acaban, ya que no permite que sean dinámicos
  • devfs no permite dar un nombre fijo a cada dispositivo (ésta es la razón por la que se hizo udev)
  • devfs, al igual que udev, permite que los programas sepan cuándo se conecta o desconecta un dispositivo, mediante consultas a un proceso demonio
  • en devfs la política de nombres de dispositivo sigue dentro del núcleo, no en los programas
  • devfs no sigue el estándar de nombres definido en LSB
  • devfs es pequeño, pero se encuentra en espacio de núcleo, que es memoria que no se puede llevar a disco

Implementación

udev se ejecuta mediante un demonio: el proceso udevd, que detecta cuándo se ha conectado o desconectado un dispositivo del sistema.

Cuando pasa uno de estos eventos, udev obtiene información de contexto (subsistema del núcleo, conector físico usado, nombre dado por el núcleo, ...) y también del propio dispositivo (número de serie, fabricante, ...).

Esta información la puede encontrar mediante los datos que hay en /sys, en donde está montado el sistema de ficheros sysfs, del que se encarga el núcleo (versión 2.6 y posteriores).

Un conjunto de reglas (en /etc/udev/rules.d/) deciden qué acción hay que hacer a partir de los datos obtenidos. Lo que la regla hará será -probablemente- dar un nombre al dispositivo, crear el fichero de dispositivo apropiado, y ejecutar el programa que se haya configurado para que acabe de hacer funcionar el dispositivo.

Las reglas pueden asociar un nombre fijo a un dispositivo, pero también pueden llamar a un programa externo que dé más información sobre el dispositivo; así se puede conseguir un nombre más específico.

Ejemplo de reglas

Dos posibles reglas que dan un nombre fijo a dos impresoras distintas; las dos conectadas por USB pero con un número de serie distinto (obtenido por sysfs):

BUS=="usb", SYSFS_serial=="W09090207101241330", \ NAME="lp_color" BUS=="usb", SYSFS_serial=="HXOLL0012202323480", \ NAME="lp_plain" 

Autores

udev fue desarrollado por Greg Kroah-Hartman, con ayuda de Dan Stekloff, Kay Sievers, y muchos otros.

Enlaces externos

  • Escribir reglas de udev (en inglés)
  • (en inglés)
  • Guía de udev de Gentoo
  • (en inglés)
  •   Datos: Q284236

udev, gestor, dispositivos, núcleo, linux, versión, función, controlar, ficheros, dispositivo, sucesor, devfs, hotplug, significa, maneja, directorio, todas, acciones, espacio, usuario, agregar, quitar, dispositivos, incluyendo, carga, firmwares, udevparte, sy. udev es el gestor de dispositivos que usa el nucleo Linux en su version 2 6 Su funcion es controlar los ficheros de dispositivo en dev Es el sucesor de devfs y de hotplug lo que significa que maneja el directorio dev y todas las acciones del espacio de usuario al agregar o quitar dispositivos incluyendo la carga de firmwares UdevParte de systemdInformacion generalTipo de programaDevice FilesystemDesarrolladorGreg Kroah Hartman y Kay SieversLanzamiento inicialNoviembre de 2003Fecha de parchado2012LicenciaGPLv2Informacion tecnicaProgramado enCVersionesUltima version estable217 28 de octubre de 2014 6 anos 9 meses y 14 dias Serie systemdDevfsd y Device FilesystemUdevAsistencia tecnicaEnlacesSitio web oficial Repositorio de codigo editar datos en Wikidata Indice 1 Motivacion 2 Caracteristicas 2 1 Solo dispositivos conectados 2 2 No se usa mayor y menor 2 3 Permite dar nombre fijo 2 4 Avisa a los programas 2 5 Todo en espacio de usuario 2 6 Otras caracteristicas 3 Diferencias con devfs 4 Implementacion 4 1 Ejemplo de reglas 5 Autores 6 Enlaces externosMotivacion EditarEn un sistema Linux tradicional sin udev ni devfs en el directorio dev hay nodos de dispositivo creados para cada dispositivo conocido este o no en el sistema Se dice que es un conjunto de ficheros estatico ya que los nodos no cambian Ademas la forma de acceder a un periferico concreto no es siempre la misma ya que depende de que otros aparatos hay conectados si se conectan los discos A y B se llamaran disco1 y disco2 respectivamente Pero si esta solo un disco el B por ejemplo se llamara disco1 porque solo hay uno El B ha cambiado de nombre Este modelo de gestion de dispositivos da algunos problemas el directorio dev es enorme y dificil de manejar ya que incluye todos los dispositivos posibles los numeros mayor y menor que se asocian a cada dispositivo se estaban acabando los usuarios necesitan que cada dispositivo sea accesible de la misma manera no aceptaran que por conectar un disco USB al sistema tengan que reconfigurar la camara de video los programas necesitan poder detectar cuando se ha conectado o desconectado un dispositivo y cual es la entrada que se le ha asociado en devudev soluciona estos problemas sobre todo el de poder acceder a un dispositivo con un nombre siempre fijo Esta fue la razon por la que se hizo udev ya que antes estaba devfs que solucionaba alguno de estos problemas pero no todos vease seccion Diferencias con devfs Caracteristicas Editarudev resuelve los problemas anteriores de la siguiente forma Solo dispositivos conectados Editar udev mantiene en dev solo las entradas correspondientes a los dispositivos que hay conectados al sistema Asi se soluciona el problema del dev superpoblado No se usa mayor y menor Editar No se usa el numero mayor y menor para reconocer a cada dispositivo Puede funcionar incluso aunque esten elegidos al azar Por tanto no le afecta el que se acaben las combinaciones mayor menor asignables Permite dar nombre fijo Editar Permite dar un nombre fijo para cada dispositivo por ejemplo camara sin que este dependa de que otros dispositivos hay conectados ni del orden en que se han conectado Un disco duro por ejemplo se reconoce por el identificador de su sistema de ficheros el nombre del disco y el conector fisico en el que esta Avisa a los programas Editar Avisa mediante mensajes D BUS para que cualquier programa del espacio de usuario pueda enterarse cuando un dispositivo se conecta o desconecta esto es util para HAL Tambien permite a los programas consultar la lista de dispositivos conectados y la forma de acceder a cada uno Todo en espacio de usuario Editar udev hace que toda la politica de nombres de dispositivo este en espacio de usuario y no en el nucleo Esto hace posible que un programa cualquiera pueda decidir el nombre de un dispositivo por ejemplo basandose en sus caracteristicas No es necesario modificar el nucleo si no se esta conforme con el nombre que se le da a un dispositivo Otra ventaja de tener el demonio de udev udevd en espacio de usuario es que esta memoria se puede llevar a disco al espacio de intercambio a diferencia de la memoria de nucleo Esto lo hace apropiado para sistemas embebidos con poca memoria fisica Otras caracteristicas Editar udev respeta la forma de nombrar dispositivos definida en el LSB aunque permite que los usuarios usen otros nombres El proceso udevd ocupa poca memoria y no necesita ejecutarse siempre Esto tambien favorece a los sistemas embebidos y equipos poco potentes Diferencias con devfs Editardevfs tambien se hizo para solucionar algunos de los problemas originales pero no todos Los autores de udev explican en 1 en ingles las razones por las que udev es mejor que devfs Resumiendo devfs solo muestra en dev los dispositivos conectados al igual que udev devfs no soluciona el problema de los numeros mayor menor que se acaban ya que no permite que sean dinamicos devfs no permite dar un nombre fijo a cada dispositivo esta es la razon por la que se hizo udev devfs al igual que udev permite que los programas sepan cuando se conecta o desconecta un dispositivo mediante consultas a un proceso demonio en devfs la politica de nombres de dispositivo sigue dentro del nucleo no en los programas devfs no sigue el estandar de nombres definido en LSB devfs es pequeno pero se encuentra en espacio de nucleo que es memoria que no se puede llevar a discoImplementacion Editarudev se ejecuta mediante un demonio el proceso udevd que detecta cuando se ha conectado o desconectado un dispositivo del sistema Cuando pasa uno de estos eventos udev obtiene informacion de contexto subsistema del nucleo conector fisico usado nombre dado por el nucleo y tambien del propio dispositivo numero de serie fabricante Esta informacion la puede encontrar mediante los datos que hay en sys en donde esta montado el sistema de ficheros sysfs del que se encarga el nucleo version 2 6 y posteriores Un conjunto de reglas en etc udev rules d deciden que accion hay que hacer a partir de los datos obtenidos Lo que la regla hara sera probablemente dar un nombre al dispositivo crear el fichero de dispositivo apropiado y ejecutar el programa que se haya configurado para que acabe de hacer funcionar el dispositivo Las reglas pueden asociar un nombre fijo a un dispositivo pero tambien pueden llamar a un programa externo que de mas informacion sobre el dispositivo asi se puede conseguir un nombre mas especifico Ejemplo de reglas Editar Dos posibles reglas que dan un nombre fijo a dos impresoras distintas las dos conectadas por USB pero con un numero de serie distinto obtenido por sysfs BUS usb SYSFS serial W09090207101241330 NAME lp color BUS usb SYSFS serial HXOLL0012202323480 NAME lp plain Autores Editarudev fue desarrollado por Greg Kroah Hartman con ayuda de Dan Stekloff Kay Sievers y muchos otros Enlaces externos EditarEscribir reglas de udev en ingles Preguntas y respuestas sobre udev en ingles Guia de udev de Gentoo udev vs devfs en ingles Datos Q284236Obtenido de https es wikipedia org w index php title Udev amp oldid 134135700, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos