Definición
Este File system es una versión simplificada de un típico sistema de archivos unix-like. Existen diferentes sistemas de archivos y cada uno tiene ventajas y desventajas.
Para pensar en un file system hay que comprender dos conceptos fundamentales:
- El primero es la estructura de datos de un sistema de archivos. En otras palabras como se guarda la información en el disco para organizar los datos y metadatos de los archivos. El sistema de archivos VSFS emplea un simple estructura, que parece un arreglo de bloques.
- El segundo aspecto es el método de acceso, como se machean las llamadas hechas por los procesos, como open(), read(), write(), etc. en la estructura del sistema de archivos
Organización general
Lo primero que se debe hacer es dividir al disco en bloques, los sistemas de archivos simples, como este suelen tener bloques de un solo tamaño. Los bloques tienen un tamaño de
Datos
La versión del sistema de archivos debe ser la de una partición de
A la hora de armar un sistema de archivos una de las cosas que es necesario almacenar son los datos, de hecho la mayor cantidad de espacio ocupado en un file system es por los datos de usuarios. Esta región se llama por ende data region.
Otra vez en nuestro pequeño disco es ocupado por ejemplo por
Inodos
Como se ha visto anteriormente el sistema de archivos debe mantener información sobre cada uno de estos archivos. Esta información es la metadata y es de vital importancia ya que mantiene información como que bloque da datos pertenece a un determinado archivo, el tamaño del archivo, etc. Para guardar esta información en los sistemas operativos unix-like, se almacena en una estructura llamada Inodo.
Los inodos también deben ser guardarse en el disco, para ello se los guarda en una tabla llamada inode table que simplemente es un array de inodos almacenados en el disco.
Cabe destacar que los inodos no son estructuras muy grandes, normalmente ocupan unos
Alocación
El sistema de archivos tiene los datos (D) y los inodos (I) pero todavía nos falta. Una de las cosas que faltan es saber cuales inodos y cuales bloques están siendo utilizados o está libres. Esta estructura de alocación es fundamental en cualquier sistema de archivos. Existen muchos métodos para llevar este registro pero en este caso se utilizará una estructura muy popular llamada bitmap. Una para los datos data bitmap
otra para los inodos inode bitmap
.
Un bitmap es una estructura bastante sencilla en la que se mapea
Obviamente cada bitmap ocupa menos de
Super bloque
Se podrá observar que queda un único bloque libre en todo el disco. Este bloque es llamada Super bloque (S). El superbloque contiene la información de todo el file system, incluyendo:
- Cantidad inodos
- Cantidad de bloques
- Donde comienza la tabla de inodos
- Donde comienzan los bitmaps