ext2 | |
---|---|
Desarrollador | Tarjeta Remy |
sistema de archivos | Segundo sistema de archivos extendido |
Día de entrega | Enero de 1993 ( Linux ) |
etiqueta de volumen |
Apple_UNIX_SVR2 ( mapa de particiones de Apple ) 0x83 ( registro de arranque maestro ) EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 ( GPT ) |
Estructura | |
Contenido de la carpeta | Mesa |
Colocación de archivos | Mapa de bits (espacio libre), Tabla ( metadatos ) |
Malos sectores | Tabla (usa la misma tabla que para los archivos) |
Restricciones | |
Tamaño máximo de archivo | 16GB - 2TB _ |
Máximo de archivos | 10 18 |
Longitud máxima del nombre de archivo | 255 bytes |
Tamaño de volumen máximo | 2-32 TB |
Caracteres válidos en los títulos | Cualquier byte excepto NULL y '/' |
Capacidades | |
Propiedades | Hora de modificación (mtime), hora de modificación de metadatos (ctime), última hora de acceso (atime) |
Rango de fechas | 14 de diciembre de 1901 - 18 de enero de 2038 |
Precisión de almacenamiento de fecha | 1 segundo |
Derechos de acceso | POSIX |
Compresión de fondo | no (disponible a través de parches) |
Cifrado de fondo | No |
SO compatible | Linux , BSD , Mac OS X (a través de IFS ) |
Second Extended File System (literalmente: "segundo sistema de archivos extendido" ), abreviado ext2 (a veces ext2fs ) es el sistema de archivos del kernel de Linux . Fue desarrollado por Remy Card para reemplazar el ext . En términos de velocidad y rendimiento, puede servir como punto de referencia en las pruebas de rendimiento del sistema de archivos . Por lo tanto, en las pruebas de velocidad de lectura y escritura secuencial realizadas por Dell TechCenter , el sistema de archivos ext2 supera a ext3 y solo es inferior al más moderno ext4 en la prueba de lectura [1] .
La principal desventaja de ext2 (y una de las razones por las que funciona tan bien) es que no es un sistema de archivos de diario . Se eliminó en el sistema de archivos ext3 , la próxima versión del sistema de archivos extendido , que es totalmente compatible con ext2. Pero para ssd, esto es más bien una ventaja, ya que prolonga la vida útil del disco. Esta es la razón principal por la que EXT2 todavía es compatible con Anaconda y Ubiquity.
El sistema de archivos ext2 todavía se usa en tarjetas flash y unidades de estado sólido (SSD), ya que la falta de registro en diario es una ventaja cuando se trabaja con unidades que tienen un límite en la cantidad de ciclos de escritura.
En sus inicios, Linux usaba el sistema de archivos Minix OS . Era bastante estable, pero seguía siendo de 16 bits y, como resultado, tenía un límite estricto de 64 MB por partición. También había una limitación en la longitud máxima de un nombre de archivo: era de 14 caracteres. Estas y otras limitaciones fueron el impulso para el desarrollo del " Extended File System " ( Sistema de archivos extendido en inglés ), resolviendo dos de los principales problemas de Minix. El nuevo sistema de archivos se introdujo en abril de 1992 . Ext amplió los límites de tamaño de archivo a 2 gigabytes [2] y estableció un límite de nombre de archivo de 255 bytes.
Sin embargo, todavía había muchos problemas sin resolver: no había soporte para acceso separado, marcas de tiempo para modificación de datos. Fueron estos problemas los que inspiraron la creación de la siguiente versión del sistema de archivos extendido ext2 ( English Second Extended File System ), desarrollado en enero de 1993 . ext2 también implementó ACL compatibles con POSIX y atributos de archivo extendidos .
El gráfico que describe la jerarquía de directorios del sistema de archivos ext2 es una red. El motivo de esta organización es que un archivo se puede incluir en varios directorios a la vez.
Todos los tipos de archivos tienen nombres simbólicos. En los sistemas de archivos organizados jerárquicamente se utilizan comúnmente tres tipos de nombres : simple, compuesto y relativo. ext2 no es una excepción. Las restricciones de un nombre simple son que su longitud no debe exceder los 255 bytes, y el nombre no debe contener un carácter NUL ni una barra inclinada . Las restricciones sobre el carácter NUL están relacionadas con la representación de cadenas en lenguaje C , y sobre el carácter de barra, porque se utiliza como carácter separador entre directorios.
El nombre completamente calificado es una cadena de nombres simbólicos simples de todos los directorios a través de los cuales pasa la ruta desde la raíz hasta el archivo dado . En un sistema de archivos ext2 , un archivo puede estar en varios directorios y, por lo tanto, tener varios nombres completos; aquí es válida la correspondencia "un archivo - muchos nombres completos". En cualquier caso, el nombre completo identifica el archivo de forma exclusiva.
Los atributos de un sistema de archivos ext2 son:
Los atributos de los archivos no se almacenan en directorios, como se hace en varios sistemas de archivos simples , sino en tablas especiales . Como resultado, un directorio tiene una estructura muy simple que consta de solo dos partes: un número de inodo y un nombre de archivo.
Al igual que con cualquier sistema de archivos UNIX , los siguientes componentes se pueden distinguir en ext2:
Todo el espacio de partición del disco se divide en bloques de tamaño fijo que son múltiplos del tamaño del sector : 1024, 2048, 4096 u 8192 bytes. El tamaño del bloque se especifica al crear un sistema de archivos en una partición de disco. Un tamaño de bloque más pequeño ahorra espacio en el disco duro, pero también limita el tamaño máximo del sistema de archivos. Todos los bloques tienen números de serie. Para reducir la fragmentación y la cantidad de movimientos del cabezal del disco duro al leer grandes conjuntos de datos, los bloques se combinan en grupos de bloques.
El concepto básico de un sistema de archivos es un inodo, o inodo ( nodo de información ) . Esta es una estructura especial que contiene información sobre los atributos y la ubicación física de un archivo. Los inodos están organizados en una tabla que se encuentra al comienzo de cada grupo de bloques.
El superbloque es el elemento principal del sistema de archivos ext2 . Contiene información general sobre el sistema de archivos:
El superbloque tiene 1024 bytes desde el inicio de la sección. El siguiente bloque después del superbloque contiene la tabla de descriptores globales: una descripción de los grupos de bloques, que es una matriz que contiene información general sobre todos los grupos de bloques en la sección.
La salud del sistema de archivos depende directamente de la integridad del superbloque. El sistema operativo crea varias copias de seguridad del superbloque en caso de que la partición esté dañada . El indicador de estado es utilizado por el sistema operativo para determinar el estado actual del sistema de archivos. Si el sistema de archivos está montado para lectura, entonces el indicador de estado indicará que el sistema de archivos está limpio (estado "limpio"). Si el sistema de archivos está montado para lectura y escritura, entonces el indicador de estado se llena con información de que el sistema de archivos está en uso (estado "no limpio"), y después de desmontar el sistema de archivos, el indicador de estado debe indicar nuevamente la integridad de el sistema de archivos [3] . El indicador de estado ayuda a identificar posibles daños en el sistema de archivos. Por ejemplo, si la alimentación de la computadora se apagó inesperadamente, el indicador de estado indicaría un cierre incorrecto del sistema de archivos. La próxima vez que se inicie la computadora, el sistema operativo tendrá que verificar si hay errores en el sistema de archivos si el indicador de estado no indica la integridad del sistema de archivos.
Todos los bloques en una partición ext2 se combinan en grupos de bloques. Para cada grupo, se crea una entrada separada en la tabla de descriptores globales, que almacena los parámetros principales:
Un mapa de bits de bloque es una estructura, cada bit de la cual indica si el bloque correspondiente está asignado a algún archivo. Si el bit es 1, entonces el bloque está ocupado. El mapa de bits de inodos realiza una función similar, que muestra qué inodos están ocupados y cuáles no. El kernel de Linux , utilizando la cantidad de inodos que contienen directorios, intenta distribuir uniformemente los inodos de directorio en grupos e intenta mover los inodos de archivo al grupo con el directorio principal si es posible. Todo el espacio restante, indicado en la tabla como datos , se reserva para almacenar archivos.
Los directorios pueden contener otros directorios o archivos dentro de ellos. Físicamente, un directorio es un archivo especial que contiene entradas de longitud arbitraria. Cada entrada almacena los siguientes datos [3] :
Esta organización del directorio le permite almacenar nombres de archivo largos sin desperdiciar espacio en disco.
Cuando el sistema operativo intenta encontrar la ubicación de un archivo (o directorio) en el disco, carga el contenido de cada directorio especificado en la ruta del archivo (o directorio) en la memoria para encontrar el inodo del siguiente directorio especificado en el ruta [3] por nombre . El recorrido del directorio continúa hasta que se encuentra el archivo o directorio deseado.
El sistema de direccionamiento de datos es uno de los componentes más importantes del sistema de archivos. Es ella quien le permite encontrar el archivo deseado entre los muchos bloques vacíos y ocupados en el disco .
El sistema de archivos ext2 utiliza el siguiente esquema de direccionamiento de bloques de archivos. Para almacenar la dirección del archivo, se asignan 15 campos, cada uno de los cuales consta de 4 bytes . Si el archivo cabe en 12 bloques, los números de los grupos correspondientes se enumeran directamente en los primeros doce campos de la dirección. Si el tamaño del archivo supera los 12 bloques, el siguiente campo contiene la dirección del clúster en el que se pueden ubicar los números de los siguientes bloques del archivo. Por lo tanto, el campo 13 se utiliza para el direccionamiento indirecto.
Con un tamaño de bloque máximo de 4096 bytes, el clúster correspondiente al campo 13 puede contener hasta 1024 números de bloque siguientes en el archivo. Si el tamaño del archivo supera los 12+1024 bloques, se utiliza el campo 14, que contiene la dirección de un grupo que contiene 1024 números de grupo, cada uno de los cuales hace referencia a 1024 bloques del archivo. Aquí se utiliza el direccionamiento indirecto doble. Finalmente, si el archivo contiene más de 12+1024+1048576 bloques, entonces el último campo 15 se usa para el triple direccionamiento indirecto.
Este sistema de direccionamiento permite, con un tamaño de bloque máximo de 4096 bytes, tener archivos de más de 2 TB .
Sistemas de archivos ( lista , comparación ) | |||||||
---|---|---|---|---|---|---|---|
Disco |
| ||||||
Distribuido (red) | |||||||
Especial |
|