En cuestión de no muchos años, Linux pasó de ser un proyecto estrictamente personal de Linus Torvalds hasta convertirse en un esfuerzo mundial que incluye a miles de colaboradores y a formar un sistema operativo robusto junto con las utilidades del proyecto GNU. Con este crecimiento se hizo necesaria la estandarización del sistema de archivos en Linux. De esta manera nació lo que hoy conocemos como el estándar de jerarquía del sistema de archivos (más comúnmente llamado FHS, del inglés Filesystem Hierarchy Standard), el cual es un documento que detalla el propósito de los directorios en un sistema Linux moderno.
Descripción del estándar de jerarquía del sistema de archivos
Las ventajas principales de contar con un estándar a la hora de organizar los directorios en un sistema Linux son las siguientes:
- Los desarrolladores de aplicaciones no necesitan modificarlas para funcionar en distintas distribuciones.
- Los usuarios que llegan a aprender la estructura de directorios en una distribución no necesitan de mayores esfuerzos para utilizar otra. Salvo algunos casos puntuales en los que diferentes distribuciones agregan sus propios subdirectorios, no hay gran diferencia estructural de una distribución a otra.
En la Fig. 1 podemos ver el listado de subdirectorios dentro del directorio raíz (/):
Algunos de los más interesantes son:
- /bin contiene los archivos ejecutables correspondientes a los comandos que todos los usuarios del sistema pueden utilizar.
- En /boot podemos encontrar los archivos necesarios para el arranque del sistema (incluyendo el propio kernel).
- Dentro de /dev aparecen los identificadores de dispositivos, tanto de almacenamiento (/dev/sda1, por ejemplo) como de entrada / salida (por ejemplo, /dev/tty1, la cual representa la primera terminal de usuario).
- /home es el lugar donde encontraremos los directorios personales de cada usuario (/home/gabriel, por ejemplo).
- /root es el directorio personal del usuario root. No debe confundirse con el directorio raíz (/), del cual /root es hijo.
- En /sbin podemos hallar los archivos ejecutables correspondientes a las utilidades necesarias para arrancar el sistema y para solucionar problemas en o mantener el sistema de archivos.
- /usr contiene toda una jerarquía propiamente dicha dentro de sí, y mayormente consiste en otros archivos de comandos (en modo de sólo lectura) accesibles por todos los usuarios del sistema.
- /var contiene subdirectorios y archivos variables, sujetos a cambios permanentes (como por ejemplo, el registro de logs del sistema o del funcionamiento de procesos).
(Descripción tomada parcialmente del documento del FHS v3, actualizado en Junio de 2015).
Los directorios mencionados anteriormente contienen otros subdirectorios, cuyo propósito también se explica en el FHS. La introducción que hemos compartido en este post es un buen comienzo para poder entender el estándar de jerarquía del sistema de archivos.
Les invito a que le peguen una mirada al archivo y dejen cualquier pregunta que tengan a través del formulario de comentario que aparece al pie de estas líneas. ¡Hasta el próximo post!