Losarchivos de dispositivos oficheros de dispositivos (en inglésdevice files) sonarchivos especiales usados en casi todos lossistemas operativos derivados deUnix y también en otros sistemas.
En los sistemas operativosUnix yGNU/Linux un archivo de dispositivo es un archivo especial estandarizado enFilesystem Hierarchy Standard que se establece en el directorio/dev
(en el caso deSolaris en/devices
) en cuyos subdirectorios se establece un contacto con dispositivos de la máquina, ya sean reales, como undisco 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 undriver apropiado para el dispositivo.
Por ejemplo, el programa deedición de imágenesGIMP puede acceder alescáner a través del archivo de dispositivo /dev/scan.
Existen varios tipos de dispositivos:
c
–character devices:dispositivos orientados a caracteresb
–block devices:dispositivos orientados a bloquess
–socket devices:dispositivos orientados a socketsLos nombres de los archivos de dispositivos dependen del sistema operativo.
Dispositivos orientados a bloques transmiten datos en bloques (paquetes) y por esa razón son usados a menudo para latransmisión paralela de datos. Estos dispositivos utilizan elbúfer de datos del sistema operativo.
Nombre del archivo | Significado |
---|---|
fd0 | 1. disquetes |
hda | IDE-disco duro o IDE-CD-ROM-Lector conectado al 1. enchufeMaster |
hdb | IDE-disco duro o IDE-CD-ROM-Lector conectado al 1. enchufeSlave |
hda1 | 1. primerapartició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 elC° controlador SCSI con la SCSI-ID=T, elD° disco duro y en él elS° Slice (Solaris) |
cdrom | Enlace simbólico al Lector de CD-ROM |
Dispositivos orientados a caracteres transmiten solo unBit o solo unByte a la vez, es decir, utilizan latransmisión serial de datos, sin usar buffer.
Nombre del archivo | Significado |
---|---|
ttyS0 | 1. Puerto serie, antiguamente el teclado delterminal |
lp0 | 1. Puerto paralelo |
lp1 | 2. puerto paralelo |
ttyX | Enlace simbólico para unPseudoterminal |
usbdev1.1 | Archivo de dispositivo para aparatos conUSB |
mouse | Enlace simbólico alratón |
Latarjeta de red, por ejemploEthernet,ISDN, no es contactada a través de archivos de dispositivo, sino a través deTCP/IP, aunque existen archivos de dispositivo para aplicaciones especiales como Netlink Device, D-Channel, etc.
Unsocket de Internet no es un archivo de dispositivo, sino una forma decomunicación entre procesos.
Nombre del archivo | Significado |
---|---|
/dev/log | Socket desyslog |
/dev/gpmdata | Socket de GPM-Mouse-Multiplexor |
/dev/printer | Socket para el protocolo de impresión en red de Berkeley |
Un caso especial son los archivos virtuales con los cuales no se comunica con un dispositivo real.
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 | producenúmeros aleatorios o por lo menossecuencias pseudoaleatoriascriptográ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 | producesecuencias 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 operativossimilares 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.