De Wikipedia, la enciclopedia libre
Saltar a navegación Saltar a búsqueda
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 que fue diseñado e implementado 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 , ya 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 conduzcan lo complementó en este rol 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 usa Unix como un nombre genérico para referirse tanto al sistema operativo Unix original como a sus muchos similares .

Principios [ editar ]

El sistema de archivos aparece como un árbol de directorios con raíces . [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 denota la raíz de su árbol del sistema de archivos), dichos volúmenes pueden se monta en un directorio, causando árbol del sistema de archivos del volumen que aparezca como ese directorio en el árbol más grande. [1] Se indica 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 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 sin nombre). Varios nombres en el sistema de archivos pueden hacer referencia al mismo archivo, una característica denominada vínculo físico . [1] Los rasgos matemáticos de los enlaces físicos hacen que el sistema de archivos sea un tipo limitado de gráfico acíclico dirigido , aunque los directoriostodavía forman un árbol, ya que por lo general pueden no estar vinculados. (Como se concibió 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 ruta. [2] )

Tipos de archivos [ editar ]

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] El Berkeley Software Distribution (BSD) y System V cada agregado tipo un archivo para ser utilizado para la comunicación entre procesos : BSD añadieron sockets , [3] mientras System V añadió FIFO archivos .

BSD también agregó enlaces simbólicos (a menudo denominados "enlaces simbólicos") a la gama 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 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]

Diseño de directorio convencional [ editar ]

Existen ciertas convenciones para localizar 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, los derivados y los 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 es parte de la Especificación Única de UNIX , existen varios intentos para estandarizar (partes de) ella, como la Interfaz Binaria de Aplicación del Sistema V , el Estándar de Compatibilidad Binaria de Intel , el Entorno del 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 [ editar ]

  • Btrfs
  • ext2
  • ext3
  • ext4
  • Estándar de jerarquía del sistema de archivos
  • MARTILLO
  • JFS (sistema de archivos)
  • Sistema de archivos Unix
  • Sistema de archivos Veritas
  • ZFS

Referencias [ editar ]

  • Este artículo incorpora material del artículo de Citizendium " Sistema de archivos Unix ", que está bajo la licencia Creative Commons Attribution-ShareAlike 3.0 Unported pero no bajo la GFDL .
  1. ^ a b c d e Ritchie, DM ; Thompson, K. (julio de 1978). "El sistema de tiempo compartido 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. ↑ a b 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. ↑ a b Leffler, Samuel J .; McKusick, Marshall Kirk ; Karels, Michael J .; Quarterman, John S. (octubre de 1989). El diseño e implementación del sistema operativo 4.3BSD UNIX . 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. ^ a b 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 de hier (7) para 2.9.1 BSD" .
  10. ^ "página de manual hier (7) para ULTRIX 4.2" .
  11. ^ "Página de manual de 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?" . Revista de Linux . Consultado el 13 de noviembre de 2014 .
  14. ↑ a b c d e Kernighan, Brian W .; Pike, Rob (1984). El entorno de programación UNIX . Prentice Hall. págs.  63–65 . Bibcode : 1984upe..book ..... K .
  15. ^ a b Ritchie, Dennis. "Notas de Unix de 1972" . Consultado el 14 de enero de 2018 .
  16. System V Application Binary Interface Edition 4.1 (18 de marzo de 1997)
  17. ^ MD McIlroy (1987). Un lector de Unix de investigación: extractos comentados del Manual del programador, 1971–1986 . CSTR 139, Bell Labs.
  18. ^ "Capítulo 7. sendmail" . Administración de instalaciones de red de UNICOS / mp . Cray . Consultado el 14 de septiembre de 2013 .
  19. ^ "revisión 44 de la especificación fhs" .