¿Cómo funcionan los inodos de Linux?

Si ha estado usando Linux el tiempo suficiente, habrá visto el término «inodos». Es algo que aparecerá de vez en cuando, pero no afecta lo que estás haciendo. Aquí explicaremos qué son los inodos y cómo funciona.

¿Qué es Inodes?

En una biblioteca, todos los libros están organizados por género, nombre del autor o grupo de edad de la audiencia. Si desea ubicar un thriller de «Bobby Daniels», debe caminar directamente a la sección de suspenso y comenzar a buscar nombres de autores que comiencen con «B». Al igual que una biblioteca, todos los archivos en un sistema Linux están organizados para una recuperación y uso eficientes. Inode es una entidad que ayuda a organizar archivos dentro de un sistema Linux.

¿Qué son los metadatos de archivos?

Digamos que tenemos un archivo llamado «sample.txt» que contiene los datos «hola».

Este archivo tiene algunos datos e información relevante, como el tamaño del archivo, los permisos, la propiedad del usuario y del grupo, las marcas de tiempo de creación / acceso / modificación, el recuento de enlaces, etc. Toda esta información se conoce colectivamente como metadatos del archivo.

que es Inode - metadatos de archivo

¿Qué son los sistemas de archivos?

En un dispositivo de almacenamiento como un disco duro, una partición se formatea como un sistema de archivos antes de que se utilice para el almacenamiento de archivos. Un sistema de archivos es el bibliotecario del disco duro. Formalmente, es un conjunto de estructuras de datos y algoritmos que funcionan en conjunto para almacenar metódicamente archivos en la partición.

Las particiones en los sistemas Linux se formatean con frecuencia con EXT4. También están disponibles para su uso otros sistemas de archivos como B-Tree File System (BTRFS), Reiser File System, ZFS, etc.

Atarlos todos juntos

Inode es una estructura de datos en Ext4 que contiene todos los metadatos de un archivo.

Inode en detalles

Por supuesto, habría numerosos archivos en un sistema de archivos. Como lo adivinó, cada archivo tendría su propio inodo. Para identificar de forma única los inodos, cada inodo está numerado.

¿Cómo sería la numeración de inodos?

Los números de inodos en un sistema de archivos comienzan desde 1. Los primeros diez inodos están reservados para uso del sistema. Los archivos de usuario tienen sus metadatos almacenados desde el inodo 11. Todos los inodos están cuidadosamente apilados en una tabla de inodos.

Mesa inode

Una entrada en la tabla Inode tendría un tamaño de 256 bytes. Para un archivo, Linux organiza de forma inteligente todos los metadatos en 256 bytes. Además, un inodo para un archivo también tendría información sobre en qué parte del sistema de archivos se encuentran los datos del archivo. Recuerde: solo los metadatos del archivo se almacenan en el inodo.

En relación :  Los 5 usos principales de las tijeras en Minecraft

El número total de inodos en un sistema de archivos depende del espacio disponible y del número de archivos que se pueden almacenar en la partición.

¿Cómo se asignan y desasignan los inodos?

A medida que el usuario agrega archivos a un sistema de archivos recién formateado, los inodos que comienzan desde 11 se asignan para contener los metadatos del archivo.

Existe otra estructura de datos llamada «Mapa de bits de inodo» para rastrear el estado de asignación de un inodo. Es una colección de bits que actúa como mapa.

Consideremos ocho bits en el mapa de bits de inodos para indicar el estado de asignación de los inodos 11 a 18 como se muestra en la tabla siguiente. Un valor de 1 en el mapa de bits significa que se asigna un inodo, es decir, se utiliza para contener los metadatos de un archivo. Un valor de 0 en el mapa de bits significa que el inodo no está en uso actualmente. Aquí, podemos ver que el inodo 17 está en uso.

Mapa de bits de inode

En caso de que se elimine el archivo que tiene sus metadatos en el inodo 17, su estado de mapa de bits correspondiente se volverá 0, lo que indica que está libre para ser utilizado por otro archivo.

Tabla de mapa de bits de inode

¿Cómo ver el número de inodo de un archivo?

Hay dos maneras de hacer esto.

El primero es usar ls comando con –i cambiar, seguido del nombre de un archivo. El primer campo en la salida es el número de inodo que tiene los metadatos de «sample.txt».

Inodo 7

La misma información se puede obtener utilizando el stat comando seguido del nombre del archivo.

Inodo 8

Para ver el número total de inodos disponibles para una partición, df El comando se puede usar con -i cambiar.

Inodo 9

En la partición “/ dev / sda4”, 404754480 inodos están disponibles para su uso, de los cuales solo se usan 359044 inodos.

Conclusión

Por naturaleza, la tabla Inode apila los metadatos de todos los archivos meticulosamente en inodos, junto con información sobre la ubicación de los datos del archivo. Todo lo que hemos discutido sobre los inodos de Linux es simplemente la punta del iceberg. Para obtener más información sobre su funcionamiento interno, puede echar un vistazo a esta Enlace.