En los sistemas operativos similares a Unix , un archivo de dispositivo o un archivo especial es una interfaz para un controlador de dispositivo que aparece en un sistema de archivos como si fuera un archivo normal . También hay archivos especiales en DOS , OS / 2 y Windows . Estos archivos especiales permiten que un programa de aplicación interactúe con un dispositivo utilizando su controlador de dispositivo a través de llamadas estándar del sistema de entrada / salida . El uso de llamadas al sistema estándar simplifica muchas tareas de programación y conduce a mecanismos de E / S consistentes en el espacio del usuario, independientemente de las características y funciones del dispositivo.
Los archivos de dispositivo generalmente proporcionan interfaces simples para dispositivos estándar (como impresoras y puertos serie), pero también se pueden usar para acceder a recursos únicos específicos en esos dispositivos, como particiones de disco . Además, los archivos de dispositivo son útiles para acceder a los recursos del sistema que no tienen conexión con ningún dispositivo real, como receptores de datos y generadores de números aleatorios .
Hay dos tipos generales de archivos de dispositivo en sistemas operativos similares a Unix, conocidos como archivos especiales de caracteres y archivos especiales de bloque . La diferencia entre ellos radica en la cantidad de datos que el sistema operativo y el hardware leen y escriben. Estos juntos pueden denominarse archivos especiales de dispositivo en contraste con las canalizaciones con nombre , que no están conectadas a un dispositivo pero tampoco son archivos ordinarios.
MS-DOS tomó prestado el concepto de archivos especiales de Unix, pero los renombró como dispositivos . [1] Debido a que las primeras versiones de MS-DOS no apoyaron un directorio de jerarquía, los dispositivos se distinguen de los archivos normales al hacer que sus nombres palabras reservadas , elegidos para un grado de compatibilidad con CP / M .
En algunos sistemas similares a Unix, la mayoría de los archivos de dispositivo se administran como parte de un sistema de archivos virtual tradicionalmente montado en /dev
, posiblemente asociado con un demonio de control, que monitorea la adición y eliminación de hardware en tiempo de ejecución, haciendo los cambios correspondientes en el sistema de archivos del dispositivo si eso es no lo hace automáticamente el kernel, y posiblemente invocando scripts en el sistema o en el espacio del usuario para manejar las necesidades especiales del dispositivo. Las implementaciones FreeBSD y DragonFly BSD han denominado devfs al sistema de archivos del dispositivo virtual y al demonio asociado devd . Linux utiliza principalmente una implementación de espacio de usuario conocida como udev , pero hay muchas variantes. Darwin , y los sistemas operativos como macOS basados en él, tienen un sistema de archivos de dispositivo puramente basado en kernel.
En los sistemas Unix que admiten el aislamiento de procesos chroot , como los contenedores Solaris , normalmente cada entorno chroot necesita el suyo propio /dev
; estos puntos de montaje serán visibles en el sistema operativo host en varios nodos del árbol del sistema de archivos global. Al restringir los nodos de dispositivo poblados en instancias chroot de /dev
, el entorno chroot puede imponer el aislamiento del hardware (un programa no puede interferir con hardware que no puede ver ni nombrar, una forma de control de acceso aún más fuerte que los permisos del sistema de archivos Unix ).
Contención de dispositivos de hardware administrados por MS-DOS (consulte TSR ) al hacer que cada archivo de dispositivo se abra de forma exclusiva. Una aplicación que intenta acceder a un dispositivo que ya está en uso se daría cuenta de que no podía abrir el nodo del archivo del dispositivo. Se implementa una variedad de semánticas de controladores de dispositivos en Unix y Linux con respecto al acceso concurrente . [2]
Sistemas Unix y similares a Unix
Los nodos de dispositivo corresponden a recursos que el kernel de un sistema operativo ya ha asignado. Unix identifica esos recursos por un número mayor y un número menor , [3] ambos almacenados como parte de la estructura de un nodo . La asignación de estos números se produce de forma única en diferentes sistemas operativos y en diferentes plataformas informáticas . Generalmente, el número mayor identifica al controlador del dispositivo y el número menor identifica un dispositivo en particular (posiblemente entre muchos) que el controlador controla: [4] en este caso, el sistema puede pasar el número menor a un controlador. Sin embargo, en presencia de asignación dinámica de números , este puede no ser el caso (por ejemplo, en FreeBSD 5 y posteriores).
Al igual que con otros tipos de archivos especiales, el sistema informático accede a los nodos del dispositivo mediante llamadas al sistema estándar y los trata como archivos informáticos normales. Existen dos tipos estándar de archivos de dispositivo; desafortunadamente, sus nombres son bastante contraintuitivos por razones históricas y, como resultado, las explicaciones de la diferencia entre los dos son a menudo incorrectas.
Dispositivos de personajes
Los archivos especiales de caracteres o los dispositivos de caracteres proporcionan acceso directo y sin búfer al dispositivo de hardware. No necesariamente permiten que los programas lean o escriban caracteres individuales a la vez; eso depende del dispositivo en cuestión. El dispositivo de caracteres para un disco duro, por ejemplo, normalmente requerirá que todas las lecturas y escrituras estén alineadas con los límites de los bloques y ciertamente no permitirá la lectura de un solo byte.
Los dispositivos de caracteres a veces se conocen como dispositivos sin formato para evitar la confusión que rodea al hecho de que un dispositivo de caracteres para una pieza de hardware basado en bloques generalmente requerirá programas para leer y escribir bloques alineados.
Bloquear dispositivos
Bloquear archivos especiales o bloquear dispositivos proporciona acceso en búfer a dispositivos de hardware y proporciona cierta abstracción de sus características específicas. [5] A diferencia de los dispositivos de caracteres, los dispositivos de bloque siempre permitirán al programador leer o escribir un bloque de cualquier tamaño (incluidos caracteres individuales / bytes) y cualquier alineación. La desventaja es que debido a que los dispositivos de bloque están almacenados en búfer, el programador no sabe cuánto tiempo pasará antes de que los datos escritos pasen de los búferes del kernel al dispositivo real, o de hecho, en qué orden llegarán dos escrituras separadas al dispositivo físico. Además, si el mismo hardware expone tanto los dispositivos de caracteres como los de bloque, existe el riesgo de que los datos se corrompan debido a que los clientes que utilizan el dispositivo de caracteres no conocen los cambios realizados en los búferes del dispositivo de bloque.
La mayoría de los sistemas crean dispositivos tanto de bloque como de caracteres para representar hardware como discos duros. FreeBSD y Linux notablemente no lo hacen; el primero ha eliminado el soporte para dispositivos de bloque, [6] mientras que el segundo crea solo dispositivos de bloque. En Linux, para obtener un dispositivo de caracteres para un disco, se debe usar el controlador "crudo", aunque se puede obtener el mismo efecto que abrir un dispositivo de caracteres abriendo el dispositivo de bloque con la O_DIRECT
bandera específica de Linux .
Pseudodispositivos
Los nodos de dispositivos en sistemas similares a Unix no necesariamente tienen que corresponder a dispositivos físicos . Los nodos que carecen de esta correspondencia forman el grupo de pseudodispositivos . Proporcionan varias funciones manejadas por el sistema operativo. Algunos de los pseudodispositivos más utilizados (basados en caracteres) incluyen:
- / dev / null - acepta y descarta todas las entradas escritas en él; proporciona unaindicación de fin de archivo cuando se lee.
- / dev / zero - acepta y descarta todas las entradas escritas en él; produce un flujo continuo de caracteres nulos (bytes de valor cero) como salida cuando se lee.
- / dev / full : produce un flujo continuo de caracteres nulos (bytes de valor cero) como salida cuando se lee y genera un Error ENOSPC ("disco lleno") al intentar escribir en él.
- / dev / random : produce bytes generados por el generador de números pseudoaleatorios criptográficamente seguro del kernel. Su comportamiento exacto varía según la implementación y, a veces, variantes como / dev / urandom o También se proporcionan / dev / arandom .
Además, los pseudodispositivos específicos de BSD con un La interfaz ioctl también puede incluir:
- / dev / pf - permite que los procesos del área de usuario controlen PF a través de un interfaz ioctl .
- / dev / bio - proporciona ioctl acceso a dispositivos que de otro modo no se encuentran como / dev nodos, utilizados por bioctl para implementar lagestión de RAID en OpenBSD y NetBSD .
- / dev / sysmon : utilizado por elmarco sysmon_envsys de NetBSDpara el monitoreo de hardware , al que se accede en el área de usuario a través de proplib (3) por el utilidad envstat . [7]
Creación de nodos
Los nodos son creados por la llamada al sistema mknod . El programa de línea de comandos para crear nodos también se llama mknod. Los nodos se pueden mover o eliminar mediante las habituales llamadas al sistema del sistema de archivos ( renombrar , desvincular ) y comandos ( mv , rm ).
Algunas versiones de Unix incluyen un script llamado makedev o MAKEDEV para crear todos los dispositivos necesarios en el directorio /dev
. Solo tiene sentido en sistemas a cuyos dispositivos se les asignan números mayores estáticamente (por ejemplo, mediante la codificación en su módulo de kernel).
Convenciones de nombres
Los siguientes prefijos se utilizan para los nombres de algunos dispositivos en la /dev
jerarquía, para identificar el tipo de dispositivo:
lp
: impresoras de línea (comparar lp )pt
: pseudo-terminales (terminales virtuales)tty
: terminales
Algunos prefijos adicionales se han vuelto de uso común en algunos sistemas operativos:
fb
: búfer de tramafd
: (plataforma) disquetes , aunque esta misma abreviatura también se usa comúnmente para referirse al descriptor de archivohd
: ("Clásico") controlador IDE (utilizado anteriormente para la unidad de disco duro ATA , unidades de disco óptico ATAPI , etc.)hda
: el dispositivo maestro en el primer canal ATA (generalmente identificado por el número mayor 3 y el número menor 0)hdb
: el dispositivo esclavo en el primer canal ATAhdc
: el dispositivo maestro en el segundo canal ATAhdd
: el dispositivo esclavo en el segundo canal ATA
parport
,pp
: puertos paralelos- Controlador NVMe
nvme0
: controlador de dispositivo del primer dispositivo registrado (dispositivo de caracteres)nvme0n1
: primer espacio de nombres del primer dispositivo registrado (dispositivo de bloqueo)nvme0n1p1
: primera partición del primer espacio de nombres del primer dispositivo registrado (dispositivo de bloque)
- Controlador MMC
mmcblk
: controlador de almacenamiento para medios MMC ( tarjetas SD , chips eMMC en computadoras portátiles, etc.)mmcblk0
: primer dispositivo registradommcblk0p1
: primera partición del primer dispositivo registrado
- Controlador SCSI , también utilizado por libATA ( controlador PATA / SATA moderno ), USB , IEEE 1394 , etc.
sd
: controlador de almacenamiento masivosda
: primer dispositivo registradosdb, sdc
, etc .: segundos, terceros, etc. dispositivos registrados
ses
: Controlador de cajasg
: capa SCSI genéricasr
: Controlador "ROM" (unidades de disco óptico orientadas a datos; scd es solo un alias secundario)st
: controlador de cinta magnética
tty
: terminalesttyS
: (plataforma) controlador de puerto seriettyUSB
: Convertidores de serie USB, módems, etc.
La lista canónica de los prefijos utilizados en Linux se puede encontrar en la Lista de dispositivos de Linux, el registro oficial de números de dispositivo asignados y /dev
nodos de directorio para el sistema operativo Linux. [8]
Para la mayoría de los dispositivos, este prefijo va seguido de un número que identifica de forma única al dispositivo en particular. En el caso de los discos duros, se utiliza una letra para identificar los dispositivos y va seguida de un número para identificar las particiones . Por lo tanto, un sistema de archivos puede "conocer" un área en un disco como /dev/sda3
, por ejemplo, o "ver" una sesión de terminal en red asociada con /dev/pts/14
.
En los discos que utilizan el registro de inicio maestro de PC típico , los números de dispositivo de la partición extendida primaria y opcional se numeran del 1 al 4, mientras que los índices de las particiones lógicas son del 5 en adelante, independientemente del diseño de las particiones anteriores (su extensión primaria La partición no necesita ser la cuarta partición en el disco, ni las cuatro particiones primarias tienen que existir).
Los nombres de los dispositivos no suelen ser portables entre diferentes variantes de sistemas similares a Unix, por ejemplo, en algunos sistemas BSD , los dispositivos IDE se denominan / dev / wd0, / dev / wd1, etc.
devfs
devfs es una implementación específica de un sistema de archivos de dispositivo en sistemas operativos similares a Unix, que se utiliza para presentar archivos de dispositivo. El mecanismo de implementación subyacente puede variar, según el sistema operativo.
Mantener estos archivos especiales en un sistema de archivos implementado físicamente (es decir, un disco duro) es un inconveniente y, como de todos modos necesita asistencia del kernel, surgió la idea de un sistema de archivos lógico de propósito especial que no se almacena físicamente.
Además, definir cuándo los dispositivos están listos para aparecer no es del todo trivial. El enfoque 'devfs' es que el controlador de dispositivo solicite la creación y eliminación de entradas 'devfs' relacionadas con los dispositivos que habilita y deshabilita.
Implementaciones
Sistema operativo | Sistema de archivos o software de gestión | Punto de montaje estándar | Autor | Notas |
---|---|---|---|---|
Linux 2.3.46pre5–2.6.17 | devfsd | /dev | Richard Gooch | Implementado completamente en el kernel. Obsoleto: se anima a los usuarios a migrar a udev y / o devtmpfs . |
Linux 2.5– | udev en cualquier fs, pero normalmente tmpfs | /dev | Greg Kroah-Hartman , Kay Sievers y Dan Stekloff | Implementado en gran parte en el espacio del usuario, la información del dispositivo se recopila de sysfs . Los archivos del dispositivo se pueden almacenar en un sistema de archivos de uso general convencional o en un sistema de archivos de memoria ( tmpfs ). |
Linux 2.6.32– | devtmpfs con o sin udev | /dev | Kay Sievers , Jan Blunck y Greg Kroah-Hartman | Un enfoque híbrido de kernel / espacio de usuario de un sistema de archivos de dispositivo para proporcionar nodos antes de que udev se ejecute por primera vez [9] |
Solaris | /devices | Microsistemas solares | Introducido con controladores dinámicos cargados en Solaris-2.1 | |
FreeBSD 2.0– | devfs | /dev | Poul-Henning Kamp | Implementado completamente en el kernel. |
DragonFly BSD 2.3.2– | devfs | /dev | Alex Hornung | Implementado completamente en el kernel. |
Mac OS | devfs | /dev | Apple Inc. | Implementado completamente en el kernel. |
HP-UX B.11.31 | devfs | /dev | HP | Implementado completamente en el kernel. |
Plan 9 | # | Laboratorios Bell | Implementado en el kernel. | |
Sistema operativo RISC | DeviceFS | Devices: | Computadoras Bellota | DeviceFS se inició en 1991 [10] y apareció por primera vez en RISC OS 3. Maneja varios dispositivos como archivos especiales, más comúnmente: Parallel, Serial, FastParallel y USB. El módulo SystemDevices implementa los pseudodispositivos como: Vdu, Kbd, Null e Printer. |
MS-DOS , PC DOS , DR-DOS | GRASA | \DEV (y /DEV ) | varios | Tal como se implementa en el kernel, los dispositivos de caracteres aparecen en el directorio virtual \ DEV y en cualquier directorio de disco. En MS-DOS / PC DOS 2.x, la directiva CONFIG.SYS AVAILDEV = FALSE se puede usar para forzar que los dispositivos existan solo en \ DEV. |
MagiC , MiNT , MultiTOS | U:\DEV [11] [12] | Sistemas de aplicación Heidelberg, Eric R. Smith, Atari Corp. | La unidad especial U: contiene un directorio DEV virtual, dentro del cual se pueden encontrar archivos de dispositivo. | |
Windows 9x | \\devices\ | Microsoft | ||
Windows NT | \\.\ | Microsoft | El \\.\ prefijo hace que las API de soporte accedan al espacio de nombres del dispositivo Win32 en lugar del espacio de nombres del archivo Win32. El propio espacio de nombres del dispositivo Win32 vive \Devices en el espacio de nombres de NT. |
PC DOS, TOS, OS / 2 y Windows
Un archivo de dispositivo es una palabra clave reservada que se utiliza en sistemas PC DOS , TOS , OS / 2 y Windows para permitir el acceso a determinados puertos y dispositivos.
MS-DOS tomó prestado el concepto de archivos especiales de Unix, pero los renombró como dispositivos . [1] Debido a que las primeras versiones de MS-DOS no admitían una jerarquía de directorios , los dispositivos se distinguían de los archivos normales haciendo que sus nombres fueran palabras reservadas . Esto significa que ciertos nombres de archivos estaban reservados para dispositivos y no deben usarse para nombrar nuevos archivos o directorios. [13] Los nombres reservados mismos fueron elegidos para ser compatible con los archivos "especiales" manejo de PIP
mando en CP / M . Había dos tipos de dispositivos en DOS: dispositivos de bloque (utilizados para unidades de disco) y dispositivos de caracteres (generalmente todos los demás dispositivos, incluidos los dispositivos COM y PRN). [14]
DOS usa archivos de dispositivo para acceder a impresoras y puertos. La mayoría de las versiones de Windows también contienen este soporte, lo que puede causar confusión al intentar crear archivos y carpetas con ciertos nombres, ya que no pueden tener estos nombres. [15] Las versiones 2.x de MS-DOS proporcionan el parámetro AVAILDEV
CONFIG.SYS que, si se establece en FALSE
, hace que estos nombres especiales solo \DEV\
estén activos si tienen el prefijo , lo que permite crear archivos ordinarios con estos nombres. [dieciséis]
GEMDOS , la parte similar a DOS de Atari TOS , admitía nombres de dispositivos similares a DOS, pero a diferencia de DOS, requería un carácter ":" al final (en DOS, esto es opcional) para identificarlos como dispositivos en lugar de nombres de archivo normales (por lo tanto " CON: "funcionaría tanto en DOS como en TOS, pero" CON "nombraría un archivo normal en TOS pero el dispositivo de consola en DOS). En MiNT y MagiC , una vista especial del sistema de archivos unificado similar a UNIX a la que se accede a través de la letra de la unidad "U:" también coloca los archivos del dispositivo en "U: \ DEV".
Palabra clave de dispositivo [15] | Usar como entrada | Usar como salida |
---|---|---|
ESTAFA | Recibe datos escritos hasta que se presiona ^ Z (Ctrl-Z). | Imprime datos en la consola. |
PRN [17] | N / A | Imprime texto en la impresora, normalmente redirigido a LPT1 o LST . A veces reconfigurable a otros dispositivos. [18] [19] [20] |
AUX (no en OS / 2 [17] ) | Lee datos de un dispositivo auxiliar, generalmente un dispositivo en serie como COM1 . A veces reconfigurable a otros dispositivos. [18] [19] [20] | Envía datos a un dispositivo auxiliar, generalmente un dispositivo en serie como COM1 . A veces reconfigurable a otros dispositivos. [18] [19] [20] |
NUL | Devuelve nulo o ningún dato. | Descarta los datos recibidos. |
CLOCK $ (todavía llamado CLOCK en algunas versiones de MS-DOS 2.11 [21] [18] [19] ) | N / A | N / A |
KEYBD $ (solo en MS-DOS multitarea ) | ? | ? |
KBD $ (solo en OS / 2 [17] ) | ? | ? |
PANTALLA $ (solo en MS-DOS multitarea y OS / 2 [17] ) | ? | ? |
PUNTERO $ (solo en OS / 2 [17] ) | ? | ? |
MOUSE $ (solo en OS / 2 [17] ) | ? | ? |
$ IDLE $ (solo en las familias DR-DOS (desde 5.0) y Multiusuario DOS (desde Concurrent DOS 386 )) | N / A | N / A |
CONFIG $ (solo en MS-DOS 7.0 y superior) | N / A | N / A |
LST (solo en 86-DOS y DOS 1.x, también en MS-DOS 2.11 de Hewlett-Packard para HP Portable Plus [18] [19] ) | No devuelve datos. | Envía datos a la impresora de línea. (LPT2 para MS-DOS 2.11 [18] [19] de Hewlett-Packard ) |
PLT (solo en MS-DOS 2.11 de Hewlett-Packard para HP Portable Plus [18] [19] ) | No devuelve datos. | Envía datos al trazador asignado . El dispositivo de trazador adjunto es reconfigurable. [18] [19] |
LPT1 , LPT2 , LPT3 y, a veces, LPT4 (en DR-DOS 7.02 y superior y algunas versiones de DOS multiusuario) | N / A | Envía datos al puerto paralelo seleccionado. |
COM1 , COM2 , COM3 , COM4 | Lee datos del puerto serie seleccionado. | Envía datos al puerto serie seleccionado. |
82164A (solo en MS-DOS 2.11 de Hewlett-Packard para HP Portable Plus [18] [19] ) | Redirige a COM2. | Redirige a COM2. |
Mediante la redirección de shell y las canalizaciones, los datos se pueden enviar o recibir desde un dispositivo. Por ejemplo, escribir lo siguiente enviará el archivo c:\data.txt
a la impresora:
TIPO c: \ data.txt> PRN
PIPE, MAILSLOT y MUP son otros dispositivos estándar de Windows. [22]
IOCS
El sistema operativo de 8 bits de las computadoras de bolsillo de Sharp , como la PC-E500 , PC-E500S, etc., consiste en un intérprete BASIC , un sistema de control de archivos (FCS) similar a DOS 2 que implementa un sistema de archivos rudimentario de 12 bits similar a FAT , y un sistema de control de entrada / salida (IOCS) similar al BIOS que implementa una serie de controladores de dispositivos de bloque y caracteres estándar, así como dispositivos de archivos especiales, incluidos STDO: / SCRN: (pantalla), STDI: / KYBD: (teclado), COM: ( E / S serie), STDL: / PRN: (impresora), CAS: (cinta de casete), E: / F: / G: (archivo de memoria), S1: / S2: / S3: (tarjeta de memoria), X: / Y: (disquete), SYSTM: (sistema) y NIL: (función). [23]
Ver también
- devfsd
- sysfs
- Tamaño de bloque
- Bloqueo
- Buffer
- Sistema de archivos
- Abstracción de hardware
- Red de área de almacenamiento
- Espacio de usuario
- Tipos de archivos Unix
- udev
Referencias
- ^ a b "Windows para trabajo en grupo: cómo VSHARE.386 gestiona el uso compartido de archivos" . Support.microsoft.com. 1999-09-22 . Consultado el 22 de enero de 2014 .
- ^ Corbet, Jonathan; Kroah-Hartman, Greg; Rubini, Alessandro (2005). "Control de acceso en un archivo de dispositivo". Controladores de dispositivos Linux, 3.ª edición . O'Reilly . Consultado el 28 de abril de 2017 .
El siguiente paso más allá de un dispositivo de apertura única es permitir que un solo usuario abra un dispositivo en múltiples procesos, pero permitir que solo un usuario tenga el dispositivo abierto a la vez.
- ^ Kernighan, Brian W .; Pike, Rob (1984). El entorno de programación UNIX . Prentice-Hall . pag. 66 . ISBN 0-13-937681-X.
- ^ Neil Brown (27 de octubre de 2010). "Fantasmas del pasado de Unix: una búsqueda histórica de patrones de diseño" . LWN.net . Consultado el 30 de marzo de 2014 .
- ^ "IEEE Std 1003.1, edición 2013" . Consultado el 24 de abril de 2014 .
- ^ "Manual de Arquitectura de FreeBSD" . Consultado el 7 de marzo de 2013 .
- ^ "usr.sbin / envstat / envstat.c" . Referencia cruzada BSD . NetBSD . Lay resumen .
- ^ Autoridad de Números y Nombres Asignados de Linux (2009-04-06). "Dispositivos asignados a Linux (versión 2.6+)" . Kernel de Linux (Documentation / devices.txt) . Archivado desde el original el 24 de abril de 2016 . Consultado el 8 de junio de 2013 .
- ^ "Driver Core: devtmpfs - / dev basado en tmpfs mantenido por el kernel" . LWN . Consultado el 10 de agosto de 2009 .
- ^ "Registro de cambios del Proyecto Black" . Consultado el 15 de mayo de 2016 .
- ^ "La unidad U: en MagiC" . 2016-03-28. Archivado desde el original el 15 de enero de 2017 . Consultado el 9 de enero de 2017 .
- ^ "FreeMiNT-Portal - mint.doc" . 2000-04-27. Archivado desde el original el 15 de enero de 2017 . Consultado el 9 de enero de 2017 .
- ^ "Evite crear nombres de archivo Macintosh que sean nombres de dispositivo NT" . Support.microsoft.com. 2006-11-01 . Consultado el 22 de enero de 2014 .
- ^ "atributos del dispositivo" . Stanislavs.org . Consultado el 22 de enero de 2014 .
- ^ a b "Los nombres de los controladores de dispositivos de MS-DOS no se pueden utilizar como nombres de archivo" . Revisión 2.0. Microsoft . 2003-05-12. KB74496, Q74496. Archivado desde el original el 21 de julio de 2012.
- ^ "Comandos indocumentados" . 4dos.info . Kevtronics. 2002-04-12 . Consultado el 16 de mayo de 2014 .
- ^ a b c d e f Referencia técnica del sistema operativo IBM / 2 - Familia de programación (PDF) . 1 (1ª ed.). IBM . Septiembre de 1987 [1986]. Archivado (PDF) desde el original el 3 de enero de 2017.
- ^ a b c d e f g h yo Hewlett-Packard - Manual de referencia técnica - Portable PLUS (1 ed.). Corvallis, Oregón, EE.UU .: Hewlett-Packard Company , División de ordenadores portátiles. Agosto de 1985. 45559-90001 . Consultado el 27 de noviembre de 2016 .
- ^ a b c d e f g h yo Hewlett-Packard - Manual de referencia técnica - Portable PLUS (PDF) (2 ed.). División de Computadoras Portátiles, Corvallis, Oregón, EE.UU .: Hewlett-Packard Company . Diciembre de 1986 [agosto de 1985]. 45559-90006. Archivado (PDF) desde el original el 28 de noviembre de 2016 . Consultado el 27 de noviembre de 2016 .
- ^ a b c Paul, Matthias R. (2 de octubre de 1997). "Caldera OpenDOS 7.01 / 7.02 Actualización Alpha 3 IBMBIO.COM README.TXT" . Archivado desde el original el 4 de octubre de 2003 . Consultado el 29 de marzo de 2009 . [1]
- ^ Paterson, Tim ; Microsoft (19 de diciembre de 2013) [1983]. "Microsoft DOS V1.1 y V2.0: /msdos/v20source/SKELIO.TXT, /msdos/v20source/HRDDRV.ASM" . Museo de Historia de la Computación , Microsoft . Consultado el 25 de marzo de 2014 .(Nota: si bien los editores afirman que esto sería MS-DOS 1.1 y 2.0, en realidad es SCP MS-DOS 1.25 y una mezcla de Altos MS-DOS 2.11 y TeleVideo PC DOS 2.11 ).
- ^ "REG: Entradas CurrentControlSet PARTE 2: SessionManager" . Support.microsoft.com. 2006-11-01 . Consultado el 22 de enero de 2014 .
- ^ Manual de referencia técnica PC-E500 (PDF) . Sharp Corporation , Grupo de sistemas de información, División de equipo personal. Marzo de 1990. p. 17. Archivado (PDF) desde el original el 14 de marzo de 2017 . Consultado el 14 de marzo de 2017 .
Otras lecturas
- Philip Streck (24 de septiembre de 2002). "devfs para Gestión y Administración" . Diario de Linux .
- Daniel Robbins (1 de octubre de 2001). "Parte 4: Introducción a devfs" . Subprocesos comunes: Guía avanzada del implementador del sistema de archivos . IBM.
- Daniel Robbins (1 de octubre de 2001). "Parte 5: Configuración de devfs" . Subprocesos comunes: Guía avanzada del implementador del sistema de archivos . IBM.
- Daniel Robbins (1 de octubre de 2001). "Parte 6: Implementación de devfs (usando el contenedor init)" . Subprocesos comunes: Guía avanzada del implementador del sistema de archivos . IBM.
- Doug Gilbert (22 de enero de 2001). "DEVFS y SCSI" .
- "3.3. Nombres de dispositivos en devfs" . El CÓMO del subsistema SCSI de Linux 2.4: Capítulo 3. Nombres y direcciones . Proyecto de documentación de Linux .
- "Guía del sistema de archivos del dispositivo" . Documentación de Gentoo Linux . Gentoo Foundation, Inc. Archivado desde el original el 21 de mayo de 2008 . Consultado el 19 de junio de 2008 .
- Mark Ellis (23 de septiembre de 2003). "Cómo utilizar la carga automática de módulos del kernel con devfs y devfsd" . Linux From Scratch Hints .
- Martial Daumas (18 de septiembre de 2003). "Cómo crear un comando mk_initrd básico que funcione bien con LFS y devfs" . Linux From Scratch Hints .
- Jeroen Coumans (19 de abril de 2003). "Cómo configurar devfs con su configuración LFS actual usando devfsd. Cómo puede usar devfs desde cero" . Linux From Scratch Hints .
- Tushar Teredesai (5 de marzo de 2003). "Usando devfs y devfsd" . Linux From Scratch Hints .