FHS

La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la versión revisada el 11 de mayo de 2022; la verificación requiere 1 edición .
FHS
Creador La Fundación Linux
publicado 14 de febrero de 1994
ultima versión
Sitio oficial wiki.linuxfoundation.org/…pathname.com/fhs/
_

FHS ( English  Filesystem Hierarchy Standard , “estándar de jerarquía del sistema de archivos”) es un estándar que unifica la ubicación de archivos y directorios con un propósito general en el sistema de archivos UNIX . La mayoría de los sistemas tipo UNIX actuales siguen estas reglas hasta cierto punto. Por ejemplo, una base de datos de usuario típica siempre se almacena en un archivo /etc/passwd.

La versión actual del estándar es 3.0, anunciada el 3 de junio de 2015.

hierPara obtener ayuda sobre el sistema de directorios utilizado en el sistema operativo, a veces hay un comandoman hier.

Información básica

El proceso de desarrollo de un estándar de jerarquía del sistema de archivos comenzó en agosto de 1993 con intentos de simplificar la estructura de directorios y archivos del sistema operativo GNU/Linux . El 14 de febrero de 1994, se lanzó FSSTND ( Filesystem Standard ), un estándar de sistema de archivos específico para GNU/Linux. Las versiones posteriores se publicaron el 9 de octubre de 1994 y el 28 de marzo de 1995.

A principios de 1996, la comunidad de desarrollo de BSD se unió al desarrollo de una nueva versión de FSSTND con el objetivo de desarrollar un estándar adecuado para todos los sistemas operativos similares a UNIX. El nombre del estándar se cambió a Filesystem Hierarchy Standard .

FHS cuenta con el respaldo de Free Standards Group  , una organización sin fines de lucro que incluye a los principales desarrolladores de software y hardware , como HP , Red Hat , IBM y Dell . Sin embargo, la mayor parte de los desarrolladores de distribución, incluidos los que forman parte del Free Standards Group, no siguen el estándar por completo. En particular, las rutas especialmente creadas por el grupo, como /srv, prácticamente no se usan en ningún lado. Algunos sistemas Linux rechazan el FHS y siguen su propio estándar, como GoboLinux .

Dado que FHS comenzó como una iniciativa de la comunidad de Linux, otros sistemas operativos UNIX y similares a UNIX lo ignoran por completo en favor de sus propios sistemas, que a veces están bastante extendidos. Por ejemplo, Mac OS X usa nombres como y /Library/junto con nombres de jerarquía UNIX tradicionales. /Applications//Users/

Estructura del directorio

En FHS, todos los archivos y directorios están dentro del directorio raíz, incluso si están ubicados en diferentes medios físicos. Sin embargo, es posible que algunos de los directorios solo estén presentes si se instala cierto software, como el sistema X Window . La mayoría de estos directorios existen en todos los sistemas operativos similares a UNIX y se usan de manera similar.

Descripción de la jerarquía de directorios según FHS
Catalogar Descripción
/ El directorio raíz que contiene toda la jerarquía de archivos.
/bin Utilidades básicas necesarias tanto en modo de usuario único como durante el trabajo normal para todos los usuarios (por ejemplo: cat , ls , cp ).
/boot Archivos de arranque (incluidos los archivos del gestor de arranque , kernel , initrd, System.map). A menudo se coloca en una sección separada .
/dev Archivos de dispositivos básicos (por ejemplo, /dev/null, /dev/zero).
/etc Archivos de configuración de todo el sistema (el nombre proviene del latín  etcétera ).
/etc/opt Archivos de configuración para /opt.
/etc/X11 Archivos de configuración de la versión 11 del sistema X Window .
/etc/sgml Archivos de configuración SGML .
/etc/xml Archivos de configuración XML .
/home Contiene los directorios de inicio del usuario , que a su vez contienen la configuración y los datos personales del usuario. A menudo se coloca en una sección separada.
/lib Las principales bibliotecas necesarias para ejecutar programas desde /biny /sbin.
/media Puntos de montaje para medios extraíbles como CD-ROM , DVD-ROM (descritos por primera vez en FHS-2.3 ).
/mnt Contiene sistemas de archivos montados temporalmente .
/opt Software adicional .
/proc Un sistema de archivos virtual que representa el estado del kernel del sistema operativo y los procesos en ejecución como archivos .
/root El directorio de inicio del usuario raíz .
/run Información sobre el sistema desde el momento en que se cargó, incluidos los datos necesarios para el funcionamiento de los demonios (ficheros pid, sockets UNIX, etc.) [4] .
/sbin Programas básicos del sistema para la administración y configuración del sistema, por ejemplo, init , iptables , ifconfig .
/srv Datos de los servicios proporcionados por el sistema (por ejemplo, www o ftp).
/sys Contiene información sobre dispositivos, controladores y algunas propiedades del kernel. [5]
/tmp Archivos temporales (ver también /var/tmp).
/usr Jerarquía secundaria para datos de usuario . Contiene la mayoría de las aplicaciones y utilidades de usuario utilizadas en el modo multiusuario. Se puede montar en red de solo lectura y compartir entre varias máquinas [6] .
/usr/bin Programas adicionales para todos los usuarios que no son necesarios en el modo de usuario único.
/usr/include Archivos de cabecera estándar .
/usr/lib Bibliotecas para programas ubicados en /usr/biny /usr/sbin.
/usr/local Jerarquía terciaria para datos específicos del host. Por lo general, contiene subdirectorios como bin, lib, share[7] .
/usr/sbin Programas de sistema adicionales (como demonios para varios servicios de red).
/usr/share Datos compartidos independientes de la arquitectura.
/usr/src Códigos fuente (por ejemplo, aquí están los códigos fuente del kernel).
/var Archivos modificables, como archivos de registro, archivos de correo temporales, archivos de cola de impresión .
/var/cache Caché de aplicaciones. Dichos datos se generan localmente como resultado de cálculos intensivos en recursos o operaciones de E/S. La aplicación debe poder regenerar estos datos. Estos archivos se pueden eliminar sin pérdida de datos.
/var/lib Información de estado. Datos permanentes que los programas cambian durante su trabajo (por ejemplo, bases de datos, metadatos del administrador de paquetes, etc.).
/var/lock Bloquear archivos indicando que algún recurso está ocupado.
/var/log Varios archivos de registro .
/var/mail Buzones de usuario.
/var/run El directorio para almacenar información sobre el sistema desde que se cargó actualmente está obsoleto. Puede convertirlo en una referencia a /run. El directorio se deja por compatibilidad con versiones anteriores de programas que aún usan el directorio /var/run[8] .
/var/spool Tareas en espera de ser procesadas (por ejemplo, colas de impresión, correos electrónicos no leídos o no enviados).
/var/spool/mail Ubicación de los buzones de los usuarios (en desuso).
/var/tmp Archivos temporales que deben guardarse entre reinicios.

Separación en directorios de sistema y de usuario

La separación en directorios de sistema (por ejemplo, /etc , /bin ) y de usuario es necesaria para los siguientes propósitos:

El directorio de inicio del superusuario (raíz) se encuentra en /root, no en /home/root, ya que la cuenta de superusuario está destinada únicamente a administrar el sistema operativo. Esto ayuda a mejorar la confiabilidad del sistema: /rootgeneralmente se encuentra en la misma partición que el sistema, lo que permite el mantenimiento y la configuración del sistema operativo al montar solo la partición raíz.

Notas

  1. https://refspecs.linuxfoundation.org/FHS_3.0/fhs-3.0.pdf
  2. https://refspecs.linuxfoundation.org/FHS_2.3/fhs-2.3.pdf
  3. https://www.pathname.com/fhs/pub/fhs-2.2.pdf
  4. 3.15. /run: datos variables en tiempo de ejecución . refspecs.linuxfoundation.org. Consultado el 19 de marzo de 2018. Archivado desde el original el 8 de marzo de 2018.
  5. /sys: sistema de archivos virtual de información del sistema y del núcleo . Estándar de jerarquía del sistema de archivos . Consultado el 4 de junio de 2017. Archivado desde el original el 1 de junio de 2017.
  6. Estándar de jerarquía del sistema de archivos Archivado el 25 de mayo de 2005 en Wayback Machine . 
  7. Históricamente y siguiendo estrictamente el estándar, /usr/locales un depósito de datos que debe almacenarse en el host local (a diferencia de /usr, que puede montarse en la red). Sin embargo, por lo general, /usrrara vez se monta de forma remota y, con /usr/localmayor frecuencia, se usa para instalar software y datos que no forman parte de la distribución (en este caso, /usrdebe contener programas y datos solo de la distribución estándar). Quizás en el futuro se modifique el estándar FHS para reflejar esta situación establecida.
  8. 5.13. /var/run: datos variables en tiempo de ejecución . refspecs.linuxfoundation.org. Fecha de acceso: 19 de marzo de 2018. Archivado desde el original el 4 de febrero de 2018.

Enlaces