Sistemas operativos modernos
El sistema de archivos Linux El sistema de archivos inicial de Linux era el de MINIX. Sin embargo, dado que ese sistema li mitaba los nombres de archivo a 14 caracteres (para ser compatible con UNIX Versión 7), y que el tamaño máximo de los archivos era de 64 MB, hubo interés por tener mejores sistemas de ar chivos desde un principio. La primera mejora fue el sistema de archivos Ext, que permitía nom bres de archivo de 255 caracteres y archivos de 2 GB, pero era más lento que el sistema de archivos de MINIX, por lo que la búsqueda continuó durante algún tiempo. Al final se inven tó el sistema de archivos Ext2 con nombres de archivo largos, archivos grandes y mejor desem peño, y ése se ha convertido en el principal sistema de archivos. No obstante, Linux sigue reconociendo más de una docena de sistemas de archivos que usan el sistema de archivos NFS (que se describe en la siguiente sección). Cuando Linux se enlaza, se pregunta cuáles sistemas de archivos deben incorporarse al kernel. Es posible cargar en forma dinámica otros sistemas en forma de módulos durante la ejecución, si es necesario. Ext2 es muy similar a Berkeley Fast File System, con algunas diferencias menores. La orga nización de disco de Ext2 se muestra en la figura 10-35. En vez de usar grupos de cilindros, que casi no tiene sentido dadas las geometrías de disco virtual actuales, divide el disco en grupos de bloques sin tomar en cuenta las fronteras de cilindro. Cada grupo de bloques principia con un superbloque, que indica cuántos bloques y nodos-i hay, y da el tamaño de bloque, etc. Luego viene el descriptor de grupo, que contiene información acerca de la ubicación de los mapas de bits, el número de bloques libres y de nodos-i en el grupo, y el número de directorios en el gru po. Esta información es importante porque Ext2 intenta repartir los directorios de manera uni forme en todo el disco. ArranGrupo de Grupo de Grupo de Grupo de Grupo de que bloques 0 bloques 1 bloques 2 bloques 3 bloques 4 Super bloque Descriptor de grupo Mapa de bits de bloques Mapa de bits de nodos-i Nodos-i Bloques de datos Figura 10*35. Organización dei sistema de archivos Ext2 de Linux. Dos mapas de bits llevan el control de los bloques libres y los nodos-i libres, respecfiva mente. Cada mapa ocupa un bloque. Con bloques de 1 KB, este diseño limita un grupo de blo ques a 8192 bloques y 8192 nodos-i. Lo primero es una restricción real, pero lo segundo no lo es en la práctica. Luego vienen los nodos-i mismos. Cada nodo-i ocupa 128 bytes, el doble del tamaño de los nodos-i estándar de UNIX (figura 10-32). El espacio adicional se usa como si gue: en lugar de 10 direcciones de bloque directas y tres direcciones de bloque indirectas, Li nux permite 12 direcciones directas y tres indirectas. Además, las direcciones se han extendido de 3 bytes a 4 para poder manejar particiones de disco de más de 2^4 bloques (16 GB), lo cual ya era un problema en UNIX. Además, se reservan campos para apuntadores a listas de con-
RkJQdWJsaXNoZXIy MjI4NDcx