stringtranslate.com

Sistema de archivos Unix

Disposición del sistema de archivos Unix versión 7 : subdirectorios de "/" y "/usr"
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 en ser diseñada e implementada por Ken Thompson en la primera versión experimental de Unix, fechada en 1969. [ 2]

Al igual que 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 numerosos 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 complementaron en esta función 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 similares .

Principios

El sistema de archivos aparece como un árbol raíz de directorios. [1] En lugar de direccionar 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 denota la raíz de su árbol de sistema de archivos), dichos volúmenes se pueden montar 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] La raíz de todo el árbol se denota /.

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

Los directorios de Unix no contienen archivos. En su lugar, contienen los nombres de los archivos emparejados 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 no el nombre). Múltiples nombres en el sistema de archivos pueden hacer referencia al mismo archivo, una característica denominada enlace duro . [1] Las características matemáticas de los enlaces duros 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 enlazados de forma dura. (Como se concibió originalmente en 1969, el sistema de archivos de Unix se usaría de hecho como un gráfico general con enlaces duros a directorios que proporcionarían navegación, en lugar de nombres de ruta. [2] )

Tipos de archivos

El sistema de archivos original de Unix 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 añadieron cada uno un tipo de archivo para ser utilizado en la comunicación entre procesos : BSD añadió sockets , [3] mientras que System V añadió archivos FIFO .

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

Disposición de directorio convencional

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

Los detalles de la disposición de directorios han variado con el tiempo. Aunque la disposición del sistema de archivos no forma parte de la Single UNIX Specification , existen varios intentos de estandarizar (partes de) la misma, como la System V Application Binary Interface , el Intel Binary Compatibility Standard , el Common Operating System Environment y el Filesystem Hierarchy Standard (FHS) de Linux Foundation . [13]

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

Véase también

Referencias

  1. ^ abcde Ritchie, DM ; Thompson, K. (julio de 1978). "El sistema de tiempo compartido de UNIX". Bell System Tech. 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 de Unix. Conf. sobre diseño de lenguajes y metodología de programación.
  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, UC 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 miscelánea de FreeBSD
  8. ^ hier(7)  –  Manual de información miscelánea de OpenBSD
  9. ^ "página de manual hier(7) para BSD 2.9.1".
  10. ^ "página de manual hier(7) para ULTRIX 4.2".
  11. ^ "página de manual hier(7) 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?". Linux Journal . 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..book.....K.
  15. ^ de Ritchie, Dennis. "Notas sobre 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. ^ MD McIlroy (1987). "Un lector de Unix para investigación: extractos comentados del Manual del programador, 1971-1986" (PDF) . Bell Labs. CSTR 139.
  18. ^ "Capítulo 7. sendmail". Administración de instalaciones de red UNICOS /mp . Cray . Consultado el 14 de septiembre de 2013 .
  19. ^ "fhs-spec revisión 44".