Estructura del sistema de archivos GNU/Linux

+1
+3
-1

Un sistema Linux reside bajo un árbol jerárquico de directorios muy similar a la estructura del sistema de archivos de plataformas Unix.

Originariamente, en los inicios de Linux, este árbol de directorios no seguía un estándar cien por cien, es decir, podíamos encontrar diferencias en él de una distribución a otra.

Todo esto hizo pensar a cierta gente* que, posteriormente, desarrollarían el proyecto FHS (Filesystem Hierarchy Standard, o lo que es lo mismo: Estándar de Jerarquía de Sistema de Ficheros) en otoño de 1993.

FHS se define como un estándar que detalla los nombres, ubicaciones, contenidos y permisos de los archivos y directorios, es decir, un conjunto de reglas que especifican una distribución común de los directorios y archivos en sistemas Linux.

Como se ha mencionado, se creo inicialmente para estandarizar la estructura del sistema de archivos para sistemas GNU/Linux y más tarde, en torno al año 1995, también para su aplicación en sistemas Unix.

FHS no es más que un documento guía, es decir, cualquier fabricante de software independiente o cualquier persona que decida crear una nueva distribución GNU/Linux, podrá aplicarlo o no a la estructura del sistema de archivos, con la ventaja de que si lo integra en el sistema, el entorno de éste será mucho más compatible con la mayoría de las distribuciones.

Es importante saber que el estándar FHS es en cierto modo flexible, es decir, existe cierta libertad en el momento de aplicar las normas. De ahí que existan en la actualidad leves diferencias entre distribuciones GNU/Linux.

Objetivos principales de FHS

Presentar un sistema de archivos coherente y estandarizado.
Facilidad para que el software prediga la localización de archivos y directorios instalados.
Facilidad para que los usuarios prediga la localización de archivos y directorios instalados.
Especificar los archivos y directorios mínimos requeridos.

El estándar FHS está enfocado a

Fabricantes de software independiente y creadores de sistemas operativos, para que establezcan una estructura de ficheros lo más compatible posible.
Usuarios comunes, para que entiendan el significado y el contendido de cada uno de los elementos del sistema de archivos.
Además, FHS manifiesta algunas diferencias entre varios tipos de archivos que puede haber en el sistema:

Archivos compartibles y no compartibles.
Ficheros que son propios de un host determinado y, archivos que pueden compartirse entre diferentes host.

Ejemplo:

Archivos compartibles: los contenidos en /var/www/html (que es el DocumentRoot por defecto del servidor Web Apache. Donde se almacena inicialmente el index.html de bienvenida).
Archivos no compartibles: los contenidos en /boot/grub/ (Subdirectorio donde se ubican los ficheros del gestor de arranque GRUB).
Archivos estáticos y variables.
Ficheros que no cambian sin la interacción de un administrador del sistema y, archivos que cambian sin la interacción de un administrador del sistema.

Para comprender mejor estos dos tipos, imaginemos los ficheros log (archivos de bitácora) del sistema. Estos cambian sin la intervención del administrador; en consecuencia estos son del tipo variables.

Los demás archivos son estáticos. No cambian su contenido ni tamaño a menos que lo autorice el administrador del sistema (o sea el propio quien lo modifique, por supuesto).

o Archivos estáticos: /etc/password, /etc/shadow.

o Archivos variables: /var/log/messages (log de mensajes generados por el kernel del sistema).
El sistema de archivo de Linux sigue todas las convenciones de Unix, lo cual significa que tiene una estructura determinada, compatible y homogénea con el resto de los sistemas Unix. Al contrario que en Windows o MS-DOS el sistema de archivos en cualquier sistema Unix no está ligado de una forma directa con la estructura del hardware, esto es, no depende de si un determinado ordenador tiene 1, 2 o 7 discos duros para crear las unidades c:, d: o m:.

Todos el sistema de archivos de Linux tiene un origen único la raíz o root representada por /. Bajo este directorio se encuentran todos los ficheros a los que puede acceder el sistema operativo. Estos ficheros se organizan en distintos directorios cuya misión y nombre son estándar para todos los sistemas Linux.



http://i.imgur.com/wYDOZ4g.jpg

/ Raíz del sistema de archivos.
· /dev Contiene ficheros del sistema representando los dispositivos que estén físicamente instalados en el ordenador.

· /etc Este directorio esta reservado para los ficheros de configuración del sistema. En este directorio no debe aparecer ningún fichero binario (programas). Bajo este deben aparecer otros dos subdirectorios:
· /etc/X11 Ficheros de configuración de X Window

· /etc/skel Ficheros de configuración básica que son copiados al directorio del usuario cuando se crea uno nuevo.

· /lib Contiene las librerías necesarias para que se ejecuten los programas que residen en /bin (no las librerías de los programas de los usuarios).

· /proc Contiene ficheros especiales que o bien reciben o envían información al kernel del sistema (Se recomienda no modificar el contenido de este directorio y sus ficheros).

· /sbin Contiene programas que son únicamente accesibles al superusuario o root.

· /usr Este es uno de los directorios más importantes del sistema puesto que contiene los programas de uso común para todos los usuarios. Su estructura suele ser similar a la siguiente:

· /usr/X11R6 Contiene los programas para ejecutar X Window.

· /usr/bin Programas de uso general, lo que incluye el compilador de C/C++.

· /usr/doc Documentación general del sistema.

· /usr/etc Ficheros de configuración generales. /usr/include Ficheros de cabecera de C/C++ (.h).

· /usr/info Ficheros de información de GNU. /usr/lib Librerías generales de los programas.

· /usr/man Manuales accesibles con el comando man (ver más adelante).

· /usr/sbin Programas de administración del sistema. /usr/src Código fuente de programas.

Existen además de los anteriores otros directorios que se suelen localizar en el directorio

· /usr, como por ejemplo las carpetas de los programas que se instalen en el sistema.

· /var Este directorio contiene información temporal de los programas (lo cual no implica que se pueda borrar su contenido, de hecho, ¡no se debe hacer!)