Archivo de dispositivo

archivo especial usados en los sistemas operativos
(Redirigido desde «Mknod»)

Los archivos de dispositivos o ficheros de dispositivos (en inglés device files) son archivos especiales usados en casi todos los sistemas operativos derivados de Unix y también en otros sistemas.

Captura de pantalla del administrador de archivos Konqueror en alemán mostrando el directorio /dev con archivos de dispositivos.

Archivos de dispositivos en Unix y GNU/Linux

editar

En los sistemas operativos Unix y GNU/Linux un archivo de dispositivo es un archivo especial estandarizado en Filesystem Hierarchy Standard que se establece en el directorio /dev (en el caso de Solaris en /devices) en cuyos subdirectorios se establece un contacto con dispositivos de la máquina, ya sean reales, como un disco duro, o virtuales, como /dev/null. Esta flexibilidad capaz de abstraer el dispositivo y considerar solo lo fundamental, la comunicación, le ha permitido adaptarse a la rapidez de los cambios y a la variación de dispositivos que ha enriquecido a la computación.

El archivo de dispositivo representa al dispositivo para comunicarlo con programas que se ejecutan en la máquina. No es un archivo propiamente dicho, sino que el usuario lo ve como un archivo. Para ello, debe existir un driver apropiado para el dispositivo.

Por ejemplo, el programa de edición de imágenes GIMP puede acceder al escáner a través del archivo de dispositivo /dev/scan.

Existen varios tipos de dispositivos:

Los nombres de los archivos de dispositivos dependen del sistema operativo.

Dispositivos orientados a bloques

editar

Dispositivos orientados a bloques transmiten datos en bloques (paquetes) y por esa razón son usados a menudo para la transmisión paralela de datos. Estos dispositivos utilizan el búfer de datos del sistema operativo.

Ejemplo de archivos de dispositivos orientados a bloques
Nombre del archivo Significado
fd0 1. disquetes
hda IDE-disco duro o IDE-CD-ROM-Lector conectado al 1. enchufe Master
hdb IDE-disco duro o IDE-CD-ROM-Lector conectado al 1. enchufe Slave
hda1 1. primera partición de disco del primer IDE-disco duro
hda15 15.  partición lógica del 1. disco duro IDE
ad0 IDE-disco duro conectado al 1. enchufe Master (FreeBSD)
ad1 IDE-disco duro conectado al 1. enchufe Slave (FreeBSD)
ad0s1 1. Slice del primer disco duro IDE (FreeBSD)
ad0s15 15. Slice del primer disco duro IDE (FreeBSD)
ad0s1a 1. partición en el 1. Slice del 1. disco duro IDE (FreeBSD)
ad0s1b 2. Partición en el 1. Slice del 1. disco duro IDE (FreeBSD)
acd0 IDE-CD-ROM-Lector en el 1. enchufe Master (FreeBSD)
acd1 IDE-CD-ROM-Lector en el 1. enchufe Slave (FreeBSD)
sda SCSI-disco duro (portátil), con el menor SCSI-ID (Linux)
sdb SCSI-disco duro (portátil) con el siguiente SCSI-ID (Linux)
sda1 1.  Partición del primer disco duro (portátil) SCSI
sda15 11.  partición lógica del primer disco duro (portátil) SCSI
da0 Disco duro (portátil) SCSI, con la menor SCSI-ID (FreeBSD)
da1s2e 5. partición en el 2. slice del 2. disco duro (portátil) SCSI (FreeBSD)
scd0 1. lector SCSI-CD-ROM
cd0 1. lector SCSI-CD-ROM (FreeBSD)
cCtTdDsS en el controlador SCSI con la SCSI-ID=T, el disco duro y en él el Slice (Solaris)
cdrom Enlace simbólico al Lector de CD-ROM

Dispositivos orientados a caracteres

editar

Dispositivos orientados a caracteres transmiten solo un Bit o solo un Byte a la vez, es decir, utilizan la transmisión serial de datos, sin usar buffer.

Ejemplos de archivos de dispositivos orientados a caracteres
Nombre del archivo Significado
ttyS0 1. Puerto serie, antiguamente el teclado del terminal
lp0 1. Puerto paralelo
lp1 2. puerto paralelo
ttyX Enlace simbólico para un Pseudoterminal
usbdev1.1 Archivo de dispositivo para aparatos con USB
mouse Enlace simbólico al ratón

La tarjeta de red, por ejemplo Ethernet, ISDN, no es contactada a través de archivos de dispositivo, sino a través de TCP/IP, aunque existen archivos de dispositivo para aplicaciones especiales como Netlink Device, D-Channel, etc.

Dispositivos orientados a sockets

editar

Un socket de Internet no es un archivo de dispositivo, sino una forma de comunicación entre procesos.

Ejemplos de dispositivos orientados a sockets
Nombre del archivo Significado
/dev/log Socket de syslog
/dev/gpmdata Socket de GPM-Mouse-Multiplexor
/dev/printer Socket para el protocolo de impresión en red de Berkeley

Archivos de dispositivos virtuales

editar

Un caso especial son los archivos virtuales con los cuales no se comunica con un dispositivo real.

Ejemplos para archivos de dispositivos virtuales
Nombre del archivo Significado
/dev/null acepta entrada de datos sin producir respuesta
/dev/zero produce un flujo de ceros, cada uno de 8 bits, (en C: '\000')
/dev/random produce números aleatorios o por lo menos secuencias pseudoaleatorias criptográficamente fuertes. (en el primer caso puede tratarse de un dispositivo real que recoge variables externas como temperatura, posición del ratón, código de las últimas teclas pulsadas, etc, para generar el número.)
/dev/urandom produce secuencias pseudoaleatorias de menor aleatoriedad que /dev/random pero no produce bloqueos.
/dev/loopX
(X toma valores 0,1,2,3,...)
Dispositivos de bloques virtuales que apunta a un fichero. Permiten dar a un fichero la apariencia de ser un disco duro para el resto del sistema.[1]

devfs es una implementación específica de un sistema de archivos de dispositivos en sistemas operativos similares a Unix, que se utiliza para presentar archivos de dispositivos. El mecanismo subyacente de implementación puede variar, según el sistema operativo.

Mantener estos archivos especiales en un sistema de archivos implementado físicamente, como un disco duro, es inconveniente y, como de todos modos necesita la asistencia del kernel, surgió la idea de un sistema de archivos lógico de propósito especial que no se almacena físicamente.

Definir cuándo los dispositivos están listos para aparecer no es trivial. El enfoque de devfs es que el controlador del dispositivo solicite la creación y eliminación de entradas de devfs relacionadas con los dispositivos que habilita y deshabilita.

Véase también

editar

Referencias

editar
  1. Creando dispositivos loop con losetup. bitbang.es. 27 de marzo de 2013.

Enlaces externos

editar