1. Introducción a los Sistemas de Archivos
Los sistemas de archivos son un componente esencial de cualquier sistema operativo, proporcionando una estructura organizada para el almacenamiento y acceso a la información. Esta sección introduce los conceptos fundamentales y la importancia de los sistemas de archivos.
Conceptos Fundamentales
- Archivo: Es un mecanismo de abstracción que proporciona una manera de almacenar información en el disco y leerla posteriormente. Es una abstracción porque oculta al usuario y a los programas los detalles acerca de cómo y dónde se almacena la información, y cómo funcionan los discos duros en realidad.
- Directorio o Carpeta: Es un contenedor virtual en el que se almacena una agrupación de archivos informáticos y otros subdirectorios, atendiendo a su contenido, a su propósito o a cualquier criterio que decida el usuario. Los archivos y directorios se visualizan de forma jerárquica en lo que se conoce como “árbol de directorios”.
- Explorador o Gestor de Archivos: Los usuarios administran el sistema de archivos a través de un programa informático denominado “explorador o gestor de archivos”. Dicho programa proporciona una interfaz gráfica de usuario (GUI) a través de la cual los usuarios pueden acceder a los programas y a los datos almacenados en archivos de distinto tipo.
- Directorio Raíz: Es el primer directorio o carpeta en una jerarquía. Contiene todos los subdirectorios de la jerarquía. Un único directorio raíz generalmente representa la totalidad de un disco.
Los archivos son administrados por el sistema operativo. La manera en que se estructuran, denominan, abren, utilizan, protegen, implementan y administran son aspectos fundamentales en el diseño de sistemas operativos. La parte del sistema operativo que trata con los archivos se conoce como sistema de archivos y es el tema central de este documento.
Desde el punto de vista del usuario, el aspecto más importante de un sistema de archivos es su apariencia; es decir, qué constituye un archivo, cómo se denominan y protegen los archivos, qué operaciones se permiten con ellos, cuál es la apariencia del árbol de directorios y cuestiones similares de la interfaz.
Por otro lado, los implementadores de sistemas operativos están interesados en la forma en que se almacenan los archivos y directorios, cómo se administra el espacio en el disco y cómo hacer que todo funcione con eficiencia y confiabilidad.
2. El Sistema de Archivos desde la Perspectiva del Usuario
Para un usuario, los archivos son contenedores que agrupan un conjunto de información relacionada bajo un mismo nombre. El tipo de información que guardan estará definido por su creador. Aparte de su nombre y sus datos, un archivo tiene ciertos atributos; por ejemplo, la fecha y hora de la última modificación, su tamaño, etc.
Organización y Acceso
Para poder acceder a los archivos con facilidad, todos los sistemas operativos proporcionan formas de organizar los nombres de archivos mediante directorios.
Nombres de Archivo y Rutas
El árbol de directorios para Windows y MS-DOS es único para cada partición. Por ejemplo, del directorio raíz “C:\” cuelga el árbol de directorios de la partición C, del directorio raíz “D:\” el de la partición D, etc.). En cambio, en Linux/UNIX existe un único árbol de directorios; es decir, los árboles de directorios de las demás particiones se ‘montan’ sobre algún directorio ya existente de la partición que contiene el sistema. Para referirnos a un archivo o directorio dentro del árbol de directorios, el usuario puede especificar el nombre absoluto, es decir, la ruta completa desde el directorio raíz al archivo, o el nombre relativo, es decir, la ruta a partir del directorio de trabajo actual al archivo.
3. El Sistema de Archivos desde la Perspectiva Interna
Ahora es el momento de cambiar del punto de vista que tiene el usuario acerca del sistema de archivos, al punto de vista del implementador.
3.1. Implementación de Archivos
Probablemente la cuestión más importante al implementar el almacenamiento de archivos sea mantener un registro acerca de qué bloques de disco van con qué archivo.
Para ello, el sistema operativo asocia cada archivo con una estructura de metadatos, que lista los atributos y las direcciones de disco de los bloques del archivo.
Estas “estructuras de metadatos” sirven como mapas para acceder a la información del archivo en los dispositivos de almacenamiento. En Linux/UNIX a estas estructuras de datos se las conoce como nodos-I y en Windows como registros MFT.
3.2. Implementación de Directorios
Un directorio se implementa con una ‘estructura de metadatos‘ similar, que relaciona de forma unívoca el nombre de usuario de un archivo y la dirección del registro MFT (en Windows) o número de inodo (en Linux) del mismo. Dicha estructura contiene tantas entradas como archivos y subdirectorios son accesibles a través de este.
3.3. Implementación de una Partición
Una partición es una división lógica en una unidad de almacenamiento.
Al formatear una partición se crean una serie de estructuras que conforman el sistema de archivos. El tipo y número de estructuras de metadatos contenidas en una partición de disco varían de un sistema operativo a otro. A menudo, el sistema de archivos contendrá algunos de los elementos clave:
Elementos Clave de una Partición
- Bloque de Arranque (VBR): Contiene un programa encargado de cargar el sistema operativo contenido en esa partición. Por uniformidad, cada partición se inicia con un bloque de arranque aunque no contenga un sistema operativo instalado en ella (además, podría contener uno en el futuro).
- Superbloque: La información contenida en el superbloque indica al sistema operativo las características del sistema de archivos, dónde se encuentran los distintos elementos del mismo y cuánto ocupan. La información típica en el superbloque incluye un número mágico para identificar el tipo de sistema de archivos, el tamaño de un bloque, el número de bloques que contiene el sistema de archivos y otra información administrativa clave.
- Información acerca de los bloques libres: Esta sección podría ir seguida de los nodos-I o registros MFT, un conjunto de estructuras de datos, una por archivo, que contienen toda la información sobre el archivo.
- Bloques de Datos: Por último, el resto del disco contiene los bloques de datos donde se guardan los datos efectivos de los archivos.
3.4. Particionado de Disco
La mayoría de los discos y unidades USB se pueden dividir en una o más particiones, con sistemas de archivos independientes en cada partición. El sector 0 del disco se conoce como el MBR (Master Boot Record; Registro Maestro de Arranque) y se utiliza para arrancar la computadora. El final del MBR contiene la tabla de particiones, que proporciona las direcciones de inicio y fin de cada partición.
Una de las particiones en la tabla se marca como activa. Al arrancar la computadora, el BIOS lee y ejecuta el código almacenado en la primera parte del MBR. Este programa, en primer lugar, localiza la partición activa, lee su primer bloque, conocido como bloque de arranque, y lo ejecuta. El programa en el bloque de arranque carga el sistema operativo contenido en esa partición.
