Compartir a través de


La evolución de los sistemas de archivos

Antes de que los equipos se desarrollaran para funcionar en sistemas operativos de disco, cada equipo se creó para ejecutar una única aplicación propietaria, que tenía un control completo y exclusivo de toda la máquina. La aplicación escribiría sus datos persistentes directamente en un disco, o tambor, mediante el envío de comandos directamente al controlador de disco. La aplicación era responsable de administrar las ubicaciones absolutas de datos en el disco, asegurándose de que no se sobrescribía los datos ya existentes. Puesto que solo una aplicación se estaba ejecutando en el equipo en cualquier momento, esta tarea no era demasiado difícil.

La llegada de los sistemas informáticos que podían ejecutar más de una aplicación requería un mecanismo para asegurarse de que las aplicaciones no escriben sobre los datos de los demás. Los desarrolladores de aplicaciones abordaron este problema mediante la adopción de un único estándar para distinguir los sectores de disco en uso de los que estaban libres al marcarlos en consecuencia. A tiempo, estos estándares se fusionan para convertirse en un sistema operativo de disco, que proporcionó varios servicios a las aplicaciones, incluido un sistema de archivos para administrar el almacenamiento persistente. Con la llegada de un sistema de archivos, las aplicaciones ya no tenían que tratar directamente con el medio de almacenamiento físico. En su lugar, simplemente le dijeron al sistema de archivos que escribir bloques de datos en el disco y dejar que el sistema de archivos se preocupe por cómo hacerlo. Además, el sistema de archivos permitió a las aplicaciones crear jerarquías de datos a través de una abstracción conocida como directorio. Un directorio no solo podría contener archivos, sino también otros directorios, que a su vez podrían contener sus propios archivos y directorios, etc.

El sistema de archivos proporcionó un único nivel de direccionamiento indirecto entre las aplicaciones y el disco, y el resultado fue que cada aplicación vio un archivo como una única secuencia contigua de bytes en el disco aunque el sistema de archivos realmente almacenase el archivo en sectores no ambiguos. La direccionamiento indirecto liberó a las aplicaciones de tener que realizar un seguimiento de la posición absoluta de los datos en un dispositivo de almacenamiento.

En la actualidad, prácticamente todas las API del sistema para la entrada y salida de archivos proporcionan aplicaciones para escribir información en un archivo plano. Las aplicaciones ven este archivo como una única secuencia de bytes que puede crecer tan grande como sea necesario hasta que el disco esté lleno. Durante mucho tiempo, estas API han sido suficientes para que las aplicaciones almacenen su información persistente. Las aplicaciones han hecho innovaciones significativas en cómo se ocupan de una única secuencia de información para proporcionar características como ahorros incrementales "rápidos".

Sin embargo, en un mundo de objetos de componentes, el almacenamiento de datos en un solo archivo plano ya no es eficaz. Al igual que los sistemas de archivos surgen de la necesidad de que varias aplicaciones compartan el mismo medio de almacenamiento, por lo que, ahora, los objetos de componente requieren un sistema que les permita compartir el almacenamiento dentro del marco conceptual de un único archivo. Aunque es posible almacenar los objetos independientes mediante el almacenamiento de archivos planos convencional, si uno de los objetos aumenta de tamaño, o si simplemente agrega otro objeto, es necesario cargar todo el archivo en la memoria, insertar el nuevo objeto y, a continuación, guardar todo el archivo. Este proceso puede llevar mucho tiempo.

La solución proporcionada por COM es implementar un segundo nivel de direccionamiento indirecto: un sistema de archivos dentro de un archivo. El almacenamiento de archivos planos requiere que se manipule una secuencia contigua grande de bytes en el disco a través de un único identificador de archivo con un único puntero de búsqueda. Por el contrario, el almacenamiento estructurado COM define cómo tratar una entidad de sistema de archivos única como una colección estructurada de dos tipos de objetos ( almacenamientos y secuencias) que actúan como directorios y archivos.