Filesystem Hierarchy Standard

El estándar de jerarquía del sistema de archivos (en inglés Filesystem Hierarchy Standard, también conocido por sus siglas FHS) es una norma que define los directorios principales y sus contenidos en el sistema operativo GNU/Linux y otros sistemas de la familia Unix. Se diseñó originalmente en 1994 para estandarizar el sistema de archivos de las distribuciones de Linux, basándose en la tradicional organización de directorios de los sistemas Unix. En 1995 se amplió el ámbito del estándar a cualquier Unix que se adhiera voluntariamente.

Visión general 
El proceso de desarrollo de una jerarquía de sistema de archivos estándar comenzó en agosto de 1993 con un esfuerzo enfocado a reestructurar el archivo y la estructura Linux. El FSSTND (Estándar del Sistema de Archivos), un estándar de la jerarquía del sistema de archivos específico del sistema operativo Linux, fue liberado el 14 de febrero de 1994. Revisiones posteriores fueron liberadas el 9 de octubre de 1994 y el 28 de marzo de 1995.

A principios de 1996, el objetivo de desarrollar una versión más exhaustiva del FSSTND para direccionar no sólo a Linux, sino a otros sistemas derivados de UNIX, fue adoptado con la ayuda de miembros de la comunidad de desarrollo de BSD. Por consiguiente, un concentrado esfuerzo fue realizado para centrarse en hechos que fueran generales para los sistemas derivados de UNIX. En reconocimiento a esta amplitud del alcance, el nombre del estándar fue cambiado Estándar de Jerarquía del Sistema de Archivos, o FHS para abreviar.

El FHS es mantenido por el Grupo de Estándares Libres (Free Standards Group, hoy The Linux Foundation), una organización no lucrativa conformada por los principales vendedores de software y hardware, tales como: HP, Red Hat, IBM y Dell. 

De todos modos, la gran mayoría de las distribuciones Linux, incluyendo aquellas desarrolladas por los miembros del Grupo de Estándares Libres (Free Standars Group), no siguen este estándar propuesto. En particular, caminos (path), expresamente creados por los redactores del FHS, como por ejemplo /srv/, no es usado extensamente. Algunos sistemas Linux rechazan el FHS en favor de un enfoque diferente, como es el caso de GoboLinux.

Desde que FHS comenzó como una iniciativa Linux, otros sistemas operativos derivados de UNIX, generalmente la han ignorado en favor de sus propios sistemas, los cuales a veces varían ampliamente. Por ejemplo, Mac OS X usa nombres como /Applications/, /Library y /Users/ junto con la jerarquía de directorios tradicional de UNIX.

Estructura de los directorios 
En UNIX y sistemas similares como BSD, GNU/Linux, todos los archivos y directorios aparecen bajo el directorio raíz, /, aun cuando se encuentren en distintos dispositivos físicos.

La mayoría de estos directorios existe en todos los sistemas operativos tipo UNIX, y generalmente son usados de igual forma; sin embargo, las descripciones presentes aquí son aquellas que son usadas específicamente por el FHS, y no son consideradas obligatorias por otras plataformas GNU/Linux.

Estructura de los directorios general 

En el sistema de ficheros de UNIX (y similares), existen varias sub-jerarquías de directorios que poseen múltiples y diferentes funciones de almacenamiento y organización en todo el sistema. Estos directorios pueden clasificarse en:
 Estáticos: Contiene archivos que no cambian sin la intervención del administrador (root), sin embargo, pueden ser leídos por cualquier otro usuario. (/bin, /sbin, /opt, /boot, /usr/bin...)
 Dinámicos: Contiene archivos que son cambiantes, y pueden leerse y escribirse (algunos solo por su respectivo usuario y el root). 
Contienen configuraciones, documentos, etc. Para estos directorios, es recomendable una copia de seguridad con frecuencia, o mejor aún, deberían ser montados en una partición aparte en el mismo disco, como por ejemplo, montar el directorio /home en otra partición del mismo disco, independiente de la partición principal del sistema; de esta forma, puede repararse el sistema sin afectar o borrar los documentos de los usuarios. (/var/mail, /var/spool, /var/run, /var/lock, /home...)
 Compartidos: Contiene archivos que se pueden encontrar en un ordenador y utilizarse en otro, o incluso compartirse entre usuarios.
 Restringidos: Contiene ficheros que no se pueden compartir, solo son modificables por el administrador. (/etc, /boot, /var/run, /var/lock...)

Especificando los directorios definidos por FHS 

Mapa conceptual que ejemplifica un sistema tipo UNIX, con sus discos, particiones y algunos directorios (subjerarquías).

Las flechas de color gris, señalan los directorios que no están en el mismo disco duro o partición que el directorio raíz (/), sin embargo, son parte de la misma jerarquía. 

Los sistemas similares a UNIX suelen requerir un mínimo de dos particiones para funcionar (/ y swap). No obstante, en el ejemplo, el directorio (o subjerarquía) /home también posee su propia partición en el disco. Esto quiere decir que el sistema puede reinstalarse sin que los usuarios pierdan sus configuraciones y documentos personales, sin embargo, una partición exclusiva para /home es opcional. 

La partición swap no tiene asignado ningún directorio en la jerarquía, ya que su propósito es servir al sistema un espacio de intercambio que se utiliza cuando la memoria RAM este llena. 

En el mapa aparece también un disco extraíble (quizá un pendrive), el cual no es indispensable para el sistema. Este disco extraíble posee un directorio dentro del directorio /media; todo lo que se guarde en ese directorio (/media/disk), se estará guardando en dicho disco extraíble. Incluso, cualquier subjerarquía, incluso la misma jerarquía, puede guardarse en un disco extraíble, en vez de un disco duro. 

Por ejemplo: la subjerarquía /tmp puede montarse en otro disco u otra partición del mismo disco, al igual que cualquier otro directorio de la jerarquía, o incluso la misma partición de intercambio (swap). En los sistemas tipo UNIX, cualquier directorio (subjerarquía) puede tener su propio disco o partición asignado. Hay que tener en cuenta, que todos los discos, particiones, dispositivos y terminales que reconoce el núcleo, pueden ser monitoreados o identificados a través de algunos archivos especiales presentes en la sub-jerarquía /dev.

Notas y referencias

Véase también 

 Jerarquía del sistema de archivos en GoboLinux

Enlaces externos 
 Página principal del estándar FHS
 Proyecto de traducción al español del estándar FHS

Unix
Sistemas de archivos de Linux
Estándares informáticos