stringtranslate.com

sistema de archivos unix

Diseño del sistema de archivos Unix versión 7 : subdirectorios de "/" y "/usr"
Una descripción general del diseño de un sistema de archivos Unix

En Unix y los sistemas operativos inspirados en él, el sistema de archivos se considera un componente central del sistema operativo. [1] También fue una de las primeras partes del sistema diseñada e implementada por Ken Thompson en la primera versión experimental de Unix, fechada en 1969 . [2]

Como en otros sistemas operativos, el sistema de archivos proporciona almacenamiento y recuperación de información, y una de varias formas de comunicación entre procesos , en el sentido de que los muchos programas pequeños que tradicionalmente forman un sistema Unix pueden almacenar información en archivos para que otros programas puedan leerlos, aunque las tuberías lo complementó en este papel a partir de la Tercera Edición . Además, el sistema de archivos proporciona acceso a otros recursos a través de los llamados archivos de dispositivo que son puntos de entrada a terminales , impresoras y ratones .

El resto de este artículo utiliza Unix como nombre genérico para referirse tanto al sistema operativo Unix original como a sus muchos sistemas similares .

Principios

El sistema de archivos aparece como un árbol de directorios raíz . [1] En lugar de abordar volúmenes separados, como particiones de disco , medios extraíbles y recursos compartidos de red, como árboles separados (como se hace en DOS y Windows : cada unidad tiene una letra de unidad que indica la raíz de su árbol de sistema de archivos), dichos volúmenes pueden montarse en un directorio , lo que hace que el árbol del sistema de archivos del volumen aparezca como ese directorio en el árbol más grande. [1] Se denota la raíz de todo el árbol /.

En el Bell Labs Unix original , era habitual una configuración de dos discos, donde el primer disco contenía programas de inicio, mientras que el segundo contenía archivos y programas de los usuarios. Este segundo disco se montó en el directorio vacío nombrado usren el primer disco, lo que provocó que los dos discos aparecieran como un sistema de archivos, con el contenido del segundo disco visible en /usr.

Los directorios de Unix no contienen archivos. En cambio, contienen los nombres de los archivos junto con referencias a los llamados inodos , que a su vez contienen tanto el archivo como sus metadatos (propietario, permisos, hora del último acceso, etc., pero sin nombre). Varios nombres en el sistema de archivos pueden hacer referencia al mismo archivo, una característica denominada vínculo físico . [1] Las características matemáticas de los enlaces físicos hacen que el sistema de archivos sea un tipo limitado de gráfico acíclico dirigido , aunque los directorios aún forman un árbol, ya que normalmente no pueden estar vinculados. (Como se imaginó originalmente en 1969, el sistema de archivos Unix se usaría de hecho como un gráfico general con enlaces físicos a directorios que proporcionan navegación, en lugar de nombres de rutas. [2] )

Tipos de archivo

El sistema de archivos Unix original admitía tres tipos de archivos: archivos ordinarios, directorios y "archivos especiales", también denominados archivos de dispositivo. [1] Berkeley Software Distribution (BSD) y System V agregaron cada uno un tipo de archivo para usar en la comunicación entre procesos : BSD agregó sockets , [3] mientras que System V agregó archivos FIFO .

BSD también agregó enlaces simbólicos (a menudo denominados "enlaces simbólicos") a la variedad de tipos de archivos, que son archivos que hacen referencia a otros archivos y complementan los enlaces físicos. [3] Los enlaces simbólicos se modelaron a partir de una característica similar en Multics , [4] y se diferencian de los enlaces físicos en que pueden abarcar sistemas de archivos y que su existencia es independiente del objeto de destino. Otros sistemas Unix pueden admitir tipos de archivos adicionales. [5]

Diseño de directorio convencional

Existen ciertas convenciones para ubicar algunos tipos de archivos, como programas, archivos de configuración del sistema y directorios de inicio de los usuarios . Estos se documentaron por primera vez en la hier(7) página de manual desde la Versión 7 de Unix ; [6] Las versiones posteriores, derivados y clones suelen tener una página de manual similar. [7] [8] [9] [10] [11] [12]

Los detalles del diseño del directorio han variado con el tiempo. Aunque el diseño del sistema de archivos no forma parte de la especificación única de UNIX , existen varios intentos de estandarizarla (partes de ella), como la interfaz binaria de aplicaciones System V , el estándar de compatibilidad binaria Intel , el entorno de sistema operativo común y la Fundación Linux . s Estándar de jerarquía del sistema de archivos (FHS). [13]

A continuación se ofrece una descripción general generalizada de las ubicaciones comunes de archivos en un sistema operativo Unix:

Ver también

Referencias

  1. ^ ABCDE Ritchie, DM ; Thompson, K. (julio de 1978). "El sistema de tiempo compartido UNIX". Tecnología del sistema de campana. J.57 (6): 1905-1929. CiteSeerX  10.1.1.112.595 . doi :10.1002/j.1538-7305.1978.tb02136.x.
  2. ^ ab Ritchie, Dennis M. (1979). La evolución del sistema de tiempo compartido Unix. Metodología de programación y diseño de lenguajes Conf.
  3. ^ ab Leffler, Samuel J .; McKusick, Marshall Kirk ; Karels, Michael J .; Quarterman, John S. (octubre de 1989). El diseño y la implementación del sistema operativo UNIX 4.3BSD . Addison-Wesley . ISBN 978-0-201-06196-3.
  4. ^ McKusick, Marshall Kirk; et al. "Un sistema de archivos rápido para Unix" (PDF) . Freebsd.org . CSRG, Universidad de California en Berkeley . Consultado el 16 de noviembre de 2016 .
  5. ^ stat(2)  –  Manual del programador de Linux – Llamadas al sistema
  6. ^ ab hier(7) -  Manual del programador de Unix versión 7
  7. ^ hier(7)  -  Manual de información diversa de FreeBSD
  8. ^ hier(7)  -  Manual de información diversa de OpenBSD
  9. ^ "página de manual hier(7) para 2.9.1 BSD".
  10. ^ "página de manual hier(7) para ULTRIX 4.2".
  11. ^ "hier(7) página de manual para SunOS 4.1.3".
  12. ^ hier(7)  -  Manual del programador de Linux : descripción general, convenciones y miscelánea
  13. ^ George Kraft IV (1 de noviembre de 2000). "¿Dónde instalar mis productos en Linux?". Diario de Linux . Consultado el 13 de noviembre de 2014 .
  14. ^ abcde Kernighan, Brian W .; Pike, Rob (1984). El entorno de programación UNIX . Prentice Hall. págs. 63–65. Bibcode : 1984upe..libro.......K.
  15. ^ ab Ritchie, Dennis. «Notas Unix de 1972» . Consultado el 14 de enero de 2018 .
  16. ^ Interfaz binaria de aplicación System V Edición 4.1 (18 de marzo de 1997)
  17. ^ Doctor en Medicina McIlroy (1987). "Un lector de Research Unix: extractos comentados del Manual del programador, 1971-1986" (PDF) . Laboratorios Bell. CSTR 139.
  18. ^ "Capítulo 7. enviar correo". UNICOS /mp Administración de Instalaciones de Redes . Cray . Consultado el 14 de septiembre de 2013 .
  19. ^ "revisión 44 de especificaciones fhs".