El Estándar de jerarquía del sistema de archivos ( FHS ) define la estructura y el contenido del directorio en las distribuciones de Linux . [1] Es mantenido por la Fundación Linux . La última versión es 3.0, lanzada el 3 de junio de 2015. [2]
Estado | Publicado |
---|---|
Año iniciado | 14 de febrero de 1994 |
Ultima versión | 3.0 3 de junio de 2015 |
Organización | Fundación Linux |
Dominio | Estructura de directorios |
Abreviatura | FHS |
Sitio web | Sitio web oficial Sitio web oficial (Histórico) |
Las distribuciones de Linux (y otros sistemas operativos) pueden cumplir voluntariamente con la FHS. El proyecto Freedesktop.org , con su Especificación de directorio base XDG, introdujo variables para que los usuarios pudieran configurar la jerarquía del sistema de archivos de una computadora . [3] [ contradictorio ]
Estructura de directorios
En el FHS, todos los archivos y directorios aparecen en el directorio raíz /
, incluso si están almacenados en diferentes dispositivos físicos o virtuales. Algunos de estos directorios solo existen en un sistema en particular si se instalan ciertos subsistemas, como el sistema X Window .
La mayoría de estos directorios existen en todos los sistemas operativos similares a Unix y generalmente se usan de la misma manera; sin embargo, las descripciones aquí son las que se utilizan específicamente para FHS y no se consideran autorizadas para plataformas distintas de Linux.
Directorio | Descripción |
---|---|
| La raíz de la jerarquía principal y el directorio raíz de toda la jerarquía del sistema de archivos. |
| Binarios de comandos esenciales que deben estar disponibles en modo de usuario único , incluso para activar el sistema o repararlo, [4] para todos los usuarios (por ejemplo, cat , ls , cp ). |
Archivos del cargador de arranque (por ejemplo, kernels , initrd ). | |
Los archivos de dispositivo (por ejemplo, /dev/null , /dev/disk0 , /dev/sda1 , /dev/tty , /dev/random ). | |
| Archivos de configuración de todo el sistema específicos del host . Ha habido controversia sobre el significado del nombre en sí. En las primeras versiones del Documento de implementación de UNIX de Bell labs, |
| Archivos de configuración para paquetes de complementos que se almacenan en /opt . |
| Archivos de configuración, como catálogos, para software que procesa SGML . |
| Archivos de configuración para el sistema X Window , versión 11. |
| Archivos de configuración, como catálogos, para software que procesa XML . |
| Los directorios de inicio de los usuarios , que contienen archivos guardados, configuraciones personales, etc. |
| Bibliotecas esenciales para los binarios en /bin y /sbin . |
| Bibliotecas esenciales de formato alternativo. Por lo general, se utilizan en sistemas que admiten más de un formato de código ejecutable, como los sistemas que admiten versiones de 32 y 64 bits de un conjunto de instrucciones . Dichos directorios son opcionales, pero si existen, tienen algunos requisitos. |
| Puntos de montaje para medios extraíbles como CD-ROM (aparecieron en FHS-2.3 en 2004). |
| Sistemas de archivos montados temporalmente . |
| Paquetes de software de aplicación complementarios . [8] |
| Sistema de archivos virtual que proporciona información sobre el proceso y el kernel como archivos. En Linux, corresponde a un montaje procfs . Generalmente, generado y poblado automáticamente por el sistema, sobre la marcha. |
| Directorio de inicio para el usuario root . |
| Datos variables en tiempo de ejecución: información sobre el sistema en ejecución desde el último arranque, por ejemplo, usuarios actualmente conectados y demonios en ejecución . Los archivos de este directorio deben eliminarse o truncarse al comienzo del proceso de inicio, pero esto no es necesario en los sistemas que proporcionan este directorio como un sistema de archivos temporal ( tmpfs ). |
| Binarios del sistema esenciales (por ejemplo, fsck , init , route ). |
| Datos específicos del sitio servidos por este sistema, como datos y scripts para servidores web, datos ofrecidos por servidores FTP y repositorios para sistemas de control de versiones (aparecieron en FHS-2.3 en 2004). |
| Contiene información sobre dispositivos, controladores y algunas funciones del kernel. [9] |
| Directorio para archivos temporales (ver también /var/tmp ). A menudo, no se conserva entre reinicios del sistema y puede estar muy restringido en tamaño. |
| Jerarquía secundaria para datos de usuario de solo lectura; contiene la mayoría de los ( múltiples utilidades) y aplicaciones de usuario. Debe ser de solo lectura y para compartir. [10] [11] |
| Binarios de comandos no esenciales (no se necesitan en el modo de usuario único ); para todos los usuarios. |
| Archivos de inclusión estándar . |
| Bibliotecas para los binarios en /usr/bin y /usr/sbin . |
| Bibliotecas de formato alternativo (por ejemplo, /usr/lib32 para bibliotecas de 32 bits en una máquina de 64 bits (opcional)). |
| Jerarquía terciaria para datos locales, específicos de este host. Típicamente tiene más subdirectorios (por ejemplo, bin , lib , share ). [NB 1] |
| Binarios del sistema no esenciales (por ejemplo, demonios para varios servicios de red ). |
| Datos (compartidos) independientes de la arquitectura. |
| Código fuente (por ejemplo, el código fuente del kernel con sus archivos de encabezado). |
| X Window System , versión 11, versión 6 (hasta FHS-2.3, opcional). |
| Archivos variables: archivos cuyo contenido se espera que cambie continuamente durante el funcionamiento normal del sistema, como registros, archivos de cola y archivos temporales de correo electrónico. |
| Datos de la caché de la aplicación. Estos datos se generan localmente como resultado de cálculos o E / S que requieren mucho tiempo. La aplicación debe poder regenerar o restaurar los datos. Los archivos almacenados en caché se pueden eliminar sin pérdida de datos. |
| Información estatal. Datos persistentes modificados por los programas mientras se ejecutan (por ejemplo, bases de datos, metadatos del sistema de empaquetado, etc.). |
| Bloquear archivos. Archivos que realizan un seguimiento de los recursos actualmente en uso. |
| Archivos de registro. Varios registros. |
| Archivos de buzón. En algunas distribuciones, estos archivos pueden estar ubicados en el archivo obsoleto /var/spool/mail . |
| Datos variables de paquetes complementarios que se almacenan en /opt . |
| Datos variables en tiempo de ejecución. Este directorio contiene datos de información del sistema que describen el sistema desde que se inició. [12] En FHS 3.0, |
| Cola para tareas que esperan ser procesadas (por ejemplo, colas de impresión y cola de correo saliente). |
| Ubicación obsoleta para los buzones de correo de los usuarios. [14] |
| Archivos temporales que se conservarán entre reinicios. |
Cumplimiento de FHS
La mayoría de las distribuciones de Linux siguen el Estándar de jerarquía del sistema de archivos y lo declaran como su propia política para mantener el cumplimiento de FHS. [15] [16] [17] [18] GoboLinux [19] y NixOS [20] proporcionan ejemplos de implementaciones de sistemas de archivos que no cumplen intencionalmente.
Algunas distribuciones generalmente siguen el estándar, pero se desvían de él en algunas áreas. El FHS es un "estándar de seguimiento", por lo que documenta las prácticas comunes en un momento determinado. Por supuesto, los tiempos cambian y los objetivos y necesidades de distribución exigen experimentación. Algunas desviaciones comunes incluyen:
- Las distribuciones modernas de Linux incluyen un
/sys
directorio como un sistema de archivos virtual ( sysfs , comparable a/proc
, que es un procfs ), que almacena y permite la modificación de los dispositivos conectados al sistema, [21] mientras que muchos sistemas operativos tradicionales similares a Unix utilizan/sys
como símbolo enlace al árbol de fuentes del kernel . [22] - Muchos sistemas modernos similares a Unix (como FreeBSD a través de su sistema de puertos ) instalan paquetes de terceros
/usr/local
, mientras mantienen el código considerado parte del sistema operativo en formato/usr
. - Algunas distribuciones de Linux ya no diferencian entre
/lib
y/usr/lib
y tienen/lib
enlaces simbólicos a/usr/lib
. [23] - Algunas distribuciones de Linux ya no diferencian entre
/bin
y/usr/bin
y entre/sbin
y/usr/sbin
. Pueden enlazar simbólicamente/bin
a/usr/bin
y/sbin
a/usr/sbin
. Otras distribuciones optan por consolidar las cuatro, vinculándolas simbólicamente a/usr/bin
. [24]
Las distribuciones modernas de Linux incluyen un /run
directorio como un sistema de archivos temporal ( tmpfs ), que almacena datos de tiempo de ejecución volátiles, siguiendo la versión 3.0 de FHS. De acuerdo con la versión 2.3 de FHS, dichos datos se almacenaron en /var/run
, pero esto fue un problema en algunos casos porque este directorio no siempre está disponible en el arranque temprano. Como resultado, estos programas han tenido que recurrir a engaños, como el uso /dev/.udev
, /dev/.mdadm
, /dev/.systemd
o /dev/.mount
directorios, a pesar de que el directorio del dispositivo no está destinado a tales datos. [25] Entre otras ventajas, esto hace que el sistema sea más fácil de usar normalmente con el sistema de archivos raíz montado como de solo lectura. Por ejemplo, a continuación se muestran los cambios que hizo Debian en su versión Wheezy de 2013: [26]
/dev/.*
→/run/*
/dev/shm
→/run/shm
/dev/shm/*
→/run/*
/etc/*
(archivos grabables) →/run/*
/lib/init/rw
→/run
/var/lock
→/run/lock
/var/run
→/run
/tmp
→/run/tmp
Historia
FHS fue creado como FSSTND (abreviatura de "Estándar de sistema de archivos" [27] ), basado en gran medida en estándares similares para otros sistemas operativos similares a Unix. Ejemplos notables son estos: la descripción hier (7) del diseño del sistema de archivos, [28] que ha existido desde el lanzamiento de la Versión 7 de Unix (en 1979); el SunOSsistema de archivos (7) [29] y su sucesor, el Solarissistema de archivos (5) . [30] [31]
Historial de versiones
Versión | Fecha de lanzamiento | Notas |
---|---|---|
1.0 | 1994-02-14 | FSSTND [32] |
1.1 | 1994-10-09 | FSSTND [33] |
1.2 | 1995-03-28 | FSSTND [34] |
2.0 | 1997-10-26 | FHS 2.0 es el sucesor directo de FSSTND 1.2. El nombre del estándar se cambió a Estándar de jerarquía del sistema de archivos. [35] [36] [37] |
2.1 | 2000-04-12 | FHS [38] [39] [40] |
2.2 | 2001-05-23 | FHS [41] |
2.3 | 2004-01-29 | FHS [42] |
3,0 | 2015-05-18 | FHS [43] |
Leyenda: Versión antigua Versión anterior, aún mantenida Ultima versión |
Ver también
- Estructura de directorios de Unix
- Estándar de compatibilidad binaria de Intel (iBCS)
Notas
- ^ Históricamente y estrictamente de acuerdo con el estándar,
/usr/local
es para datos que deben almacenarse en el host local (a diferencia de los/usr
que pueden montarse en una red). La mayor parte del tiempo/usr/local
se utiliza para instalar software / datos que no formanparte de la distribución estándar del sistema operativo (en tal caso,/usr
solo contendría software / datos que forman parte de la distribución estándar del sistema operativo). Es posible que en el futuro se cambie el estándar FHS para reflejar esta convención de facto.
Referencias
- ^ "Estándar de jerarquía del sistema de archivos - Wiki de Debian" . wiki.debian.org . Consultado el 6 de julio de 2016 .
- ^ "Lanzamiento de FHS 3.0" . 3 de junio de 2015.
- ^ Especificación del directorio base de XDG , freedesktop.org, consultado: 2021-05-15.
- ^ "hier (7) - Página de manual de Linux" . man7.org . Consultado el 6 de enero de 2021 .
- ^ J. DeFelicc (17 de marzo de 1972). "E.0". Versión preliminar del documento de implementación de UNIX (PDF) . pag. 8. OMI.1-1.
- ^ "/ etc: configuración del sistema específico del host" . Estándar de jerarquía del sistema de archivos 2.3 . Consultado el 18 de febrero de 2016 .
- ^ Definir - / etc? , Publicado por Cliff, 3 de marzo de 2007 - Slashdot.
- ^ "/ opt: paquetes de software de aplicación complementarios" . Estándar de jerarquía del sistema de archivos 2.3 . Consultado el 18 de febrero de 2016 .
- ^ "/ sys: sistema de archivos virtual de información del kernel y del sistema" . Estándar de jerarquía del sistema de archivos 3.0 . Consultado el 4 de junio de 2017 .
- ^ "Capítulo 4. La jerarquía / usr" . Estándar de jerarquía del sistema de archivos 2.3 .
- ^ "Capítulo 4. La jerarquía / usr, sección 4.1 Propósito" . Estándar de jerarquía del sistema de archivos 3.0 .
- ^ "/ var / run: datos variables en tiempo de ejecución" . Estándar de jerarquía del sistema de archivos 2.3 .
- ^ "5.13. / Var / run: datos variables en tiempo de ejecución" . Estándar de jerarquía del sistema de archivos 3.0 .
- ^ "Estándar del sistema de archivos" (PDF) . Fundación Linux. pag. 5.11.1.
- ^ Guía de referencia de Red Hat sobre la estructura del sistema de archivos .
- ^ SuSE Linux Enterprise Server Administration, cursos autorizados de Novell, por Jason W. Eckert, Novell; Curso de Tecnología, 2006; ISBN 1-4188-3731-8 , ISBN 978-1-4188-3731-0 .
- ^ Política de Debian sobre el cumplimiento de FHS .
- ^ Descripción general del árbol del sistema de archivos de Ubuntu Linux - Documentación comunitaria de Ubuntu.
- ^ Hisham Muhammad (9 de mayo de 2003). "El árbol de Unix repensado: una introducción a GoboLinux" . Consultado el 4 de octubre de 2016 .
- ^ Dolstra, E .; Löh, A. (septiembre de 2008). NixOS: una distribución de Linux puramente funcional (PDF) . ICFP 2008: XIII Congreso Internacional ACM SIGPLAN sobre Programación Funcional . Victoria, Columbia Británica, Canadá. págs. 367–378.
- ^ "5.3 Acerca del sistema de archivos virtual / sys" . docs.oracle.com . Oráculo. Archivado desde el original el 8 de julio de 2016 . Consultado el 8 de julio de 2016 .
- ^ Lehey, Greg (mayo de 2003). The Complete FreeBSD: Documentation from the Source (Cuarta ed.). O'Reilly Media, Incorporated. págs. 188, 609. ISBN 9780596005160. Consultado el 8 de julio de 2016 .
- ^ Allan McRae. "Arch Linux - Noticias: El directorio / lib se convierte en un enlace simbólico" . archlinux.org . Archivado desde el original el 9 de septiembre de 2014 . Consultado el 14 de diciembre de 2019 .
- ^ Allan McRae. "Arch Linux - Noticias: Los binarios se mueven a / usr / bin y requieren una intervención de actualización" . archlinux.org . Archivado desde el original el 10 de septiembre de 2014 . Consultado el 15 de diciembre de 2019 .
- ^ Lennart Poettering (30 de marzo de 2011). "¿Qué hace este directorio / run en mi sistema y de dónde viene?" . [email protected] (lista de correo).
- ^ "ReleaseGoalsRunDirectory" . Wiki de Debian .
- ^ "Página de preguntas frecuentes de FSSTND" . Consultado el 10 de mayo de 2016 .
- ^ - Manual de información miscelánea de FreeBSD .
- ^ Página de manual de SunOS 4.1.3 para el sistema de archivos (7) , con fecha del 10 de enero de 1988 (de la biblioteca de páginas de manual de FreeBSD).
- ^ - Manual de referencia de estándares, entornos y macros de Solaris 10 .
- ^ "Página de manual del sistema de archivos - Páginas de manual de Solaris 10 11/06" . Archivado desde el original el 4 de julio de 2007 . Consultado el 15 de octubre de 2011 .
- ^ "Índice de /pub/Linux/docs/fsstnd/old/fsstnd-1.0/" . Ibiblio.org . Consultado el 16 de octubre de 2012 .
- ^ "Índice de /pub/Linux/docs/fsstnd/old/fsstnd-1.1/" . Ibiblio.org . Consultado el 16 de octubre de 2012 .
- ^ "Índice de / pub / Linux / docs / fsstnd / old /" . Ibiblio.org . Consultado el 16 de octubre de 2012 .
- ^ "Anuncio de FHS 2.0" . Pathname.com . Consultado el 16 de octubre de 2012 .
- ^ Quinlan, Daniel (14 de marzo de 2012) [1997], "Anuncio de FHS 2.0" , BSD, Linux, Unix e Internet - Investigación de Kenneth R. Saborio , San José, Costa Rica: Kenneth R. Saborio, archivado desde el original en 5 de marzo de 2016 , consultado el 18 de febrero de 2016.
- ^ "Índice de / pub / Linux / docs / fsstnd /" . Ibiblio.org . Consultado el 16 de octubre de 2012 .
- ^ "Anuncio FHS 2.1" . Pathname.com . Consultado el 16 de octubre de 2012 .
- ^ "Lanzamiento de FHS 2.1" . Lists.debian.org. 13 de abril de 2000 . Consultado el 16 de octubre de 2012 .
- ^ Quinlan, Daniel (12 de abril de 2000). "Estándar de jerarquía del sistema de archivos - Versión 2.1, Grupo estándar de jerarquía del sistema de archivos" (PDF) . Tutoriales de Acadia Linux . Wolfville, Nueva Escocia, Canadá: Jodrey School of Computer Science, Acadia University . Consultado el 18 de octubre de 2012 .
- ^ Russell, oxidado ; Quinlan, Daniel, eds. (23 de mayo de 2001). "Estándar de jerarquía del sistema de archivos - Grupo de estándar de jerarquía del sistema de archivos final de la versión 2.2" (PDF) . Estándar de jerarquía del sistema de archivos . Consultado el 18 de febrero de 2016 .
- ^ Russell, oxidado ; Quinlan, Daniel; Yeoh, Christopher, eds. (28 de enero de 2004). "Estándar de jerarquía del sistema de archivos - Grupo estándar de jerarquía del sistema de archivos" (PDF) . Consultado el 29 de noviembre de 2014 .
- ^ Yeoh, Christopher; Russell, oxidado; Quinlan, Daniel, eds. (19 de marzo de 2015). "Estándar de jerarquía del sistema de archivos" (PDF) . La Fundación Linux . Consultado el 20 de mayo de 2015 .
enlaces externos
- Inicio oficial del Estándar de jerarquía del sistema de archivos (FHS) en The Linux Foundation
- Textos de especificaciones completos
- objectroot : una propuesta para una nueva jerarquía de sistemas de archivos, basada en principios de diseño orientado a objetos
- La jerarquía de nombre de archivo estándar con puntos, otra jerarquía muy diferente (utilizada en cLIeNUX) ( espejo )
- - Manual del programador de Linux - Descripción general, convenciones y miscelánea