Inodo

Inodo

En informática, un inodo, nodo-i o nodo índice es una estructura de datos propia de los sistemas de archivos tradicionalmente empleados en los sistemas operativos tipo UNIX como es el caso de Linux. Un inodo contiene las características (permisos, fechas, ubicación, pero NO el nombre) de un archivo regular, directorio, o cualquier otro objeto que pueda contener el sistema de ficheros.

El término "inodo" refiere generalmente a inodos en discos (dispositivos en modo bloque) que almacenan archivos regulares, directorios, y enlaces simbólicos. El concepto es particularmente importante para la recuperación de los sistemas de archivos dañados.

Cada inodo queda identificado por un número entero, único dentro del sistema de ficheros, y los directorios recogen una lista de parejas formadas por un número de inodo y nombre identificativo que permite acceder al archivo en cuestión: cada archivo tiene un único inodo, pero puede tener más de un nombre en distintos o incluso en el mismo directorio para facilitar su localización.

Contenido

Denominación

No existe una explicación clara para la denominación "inodo". Dennis Ritchie, precursor de UNIX lo explicó así:

Realmente, tampoco lo sé. Era simplemente el nombre que comenzamos a utilizar. "Índice" es lo mejor que se me ocurre, debido a la estructura algo inusual de un sistema de ficheros que almacenaba la información del acceso a los archivos como una lista plana en disco, dejando al margen toda la información jerárquica de los directorios. Así el número "i'" es un índice sobre la lista, el nodo "i" es el elemento seleccionado de la lista. (En la primera edición del manual se empleó la notación "i-nodo"; el guion fue desapareciendo poco a poco).

Estructura del inodo

El estándar POSIX establece un modelo de sistema de archivos que se ajusta al empleado en los UNIX tradicionales. Un archivo ordinario tendrá las propiedades siguientes:

  • El identificador de dispositivo del dispositivo que alberga al sistema de archivos.
  • El número de inodo que identifica al archivo dentro del sistema de archivos
  • La longitud del archivo en bytes.
  • El identificador de usuario del creador o un propietario del archivo con derechos diferenciados
  • El identificador de grupo de un grupo de usuarios con derechos diferenciados
  • El modo de acceso: capacidad de leer, escribir, y ejecutar el archivo por parte del propietario, del grupo y de otros usuarios.
  • Las marcas de tiempo con las fechas de última modificación (mtime), acceso (atime) y de alteración del propio inodo (ctime).
  • El número de enlaces, esto es, el número de nombres (entradas de directorio) asociados con este inodo.

El número de enlaces se emplea por el sistema operativo para eliminar el archivo del sistema de ficheros, tanto el inodo como el contenido, cuando se han borrado todos los enlaces y el contador queda a cero.

Ejemplo:

Estructura

Peculiaridades

El trabajar sobre un sistema de ficheros basado en inodos resulta al principio chocante para usuarios que no están habituados a él:

  • Si múltiples nombres están enlazados, o sea, asociados a un mismo inodo (lo que se denomina enlaces duros o simplemente enlaces) entonces todos los nombres son equivalentes entre sí. El que fue creado en primer lugar no tiene ningún estatus especial, al contrario de lo que ocurre con los enlaces simbólicos o con los denominados accesos directos donde todos dependen del nombre original.
  • Un inodo puede incluso no tener ningún enlace. Tal archivo sería eliminado del disco y sus recursos liberados para ser reasignados (el proceso normal de suprimir un archivo); pero, si algún proceso estuviera accediendo al archivo, puede seguir haciéndolo, y el archivo sólo será finalmente suprimido cuando la última referencia a él quede completamente cerrada. Esto afecta también a los archivos ejecutables, que de forma implícita permanecen abiertos por los procesos que los ejecutan. Por esta razón, cuando se actualiza un programa, se recomienda suprimir primero el viejo ejecutable y crear a continuación un nuevo archivo y un nuevo inodo para la versión actualizada, de modo que si la versión anterior estaba en ejecución en ese instante, pueda mantenerse temporalmente el archivo y continuar funcionando sin problemas.
  • Tradicionalmente, no era posible identificar un archivo abierto con el nombre de archivo que fue utilizado para abrirlo. El sistema operativo convertiría inmediatamente el nombre a un número de inodo y prescindiría del nombre. Eso implica que funciones de librería como getcwd() y del getwd() tendrían que husmear en los archivos de tipo directorio hasta localizar el número de inodo. Los sistemas SVR4 y Linux conservan información adicional para evitar esta dificultad.
  • Tradicionalmente, era posible hacer enlaces (enlaces duros) a directorios. Esto hacía que la estructura de directorios fuera un grafo dirigido en vez de un árbol. Se podía dar la paradoja de que un directorio fuera su propio padre. Los sistemas modernos prohíben generalmente este estado confuso.

Programación

Sistemas de archivos actuales, como por ejemplo ReiserFS, pueden evitar tener una tabla de inodos en el sentido tradicional, pero deben implementar mecanismos que reproduzcan externamente toda la funcionalidad de los inodos.

Los datos sobre el archivo contenidos en el inodo se pueden consultar desde un programa por medio de la llamada del sistema stat. En sistemas Linux la información queda recogida en una estructura de C del tipo struct inode, definido en el archivo de cabecera linux/fs.h.

Los sistemas derivados de BSD utilizan la denominación vnode; con la "v" en referencia al sistema de ficheros "virtual" que el núcleo del sistema operativo mantiene en memoria.

Consideraciones Prácticas

En muchos programas empleados por los administradores de sistemas UNIX se trabaja con los números de inodo para identificar archivos; es el caso de fsck o pfiles. Se presenta así la necesidad de traducir números de inodo en rutas y nombres de archivo y viceversa. Esto se consigue con la utilidad find empleando la opción -inum o con el propio ls y la opción apropiada que en muchas plataformas es -i.

Enlaces externos


Wikimedia foundation. 2010.

Игры ⚽ Нужно решить контрольную?

Mira otros diccionarios:

  • Inodo — En informática, especialmente en sistemas operativos de la familia Unix (Solaris,HP UX,AIX,GNU/LINUX etc),un inodo o Index Node es un apuntador a sectores especificos de disco duro en los cuales se encuentra la información del archivo, un inodo… …   Enciclopedia Universal

  • inodore — inodo/re o inodo/ro agg. privo di odore, senza odore, non odoroso CONTR. odoroso, profumato …   Sinonimi e Contrari. Terza edizione

  • Unix File System — El perro de sant roque no tiene rabo, por que Sergio Ramos se lo ha cortado Unix File System (UFS) es un sistema de archivos utilizado por varios sistemas operativos UNIX y POSIX. Es un derivado del Berkeley Fast File System (FFS), el cual es… …   Wikipedia Español

  • Ext2 — Saltar a navegación, búsqueda ext2 Desarrollador Rémy Card Nombre completo Second extended file system Introducido Enero de 1993 (Linux) Identificador de la partición Apple UNIX SVR2 (Apple Partition Map) 0x83 ( …   Wikipedia Español

  • JFFS2 — es un sistema de ficheros con soporte para transacciones especializado en memorias Flash, nace como sucesor de JFFS y será sucedido por JFFS3. Contenido 1 Características 1.1 Modificaciones respecto a JFFS 2 Desventajas …   Wikipedia Español

  • MINIX FS — ó MINIX file system Desarrollador(a) Comunidad Open Source Nombre completo MINIX file system Introducido (MINIX 3.1.2) Identificador de la partición Estructuras Contenido del directorio …   Wikipedia Español

  • AppArmor — Saltar a navegación, búsqueda AppArmor Desarrollador Novell Información general Sistema operativo Linux …   Wikipedia Español

  • Ext3 — Saltar a navegación, búsqueda ext3 Desarrollador Stephen Tweedie Nombre completo Third extended file system Introducido noviembre de 2001 (Linux 2.4.15) Identificador de la partición 0x83 (MBR) E …   Wikipedia Español

  • GID — Este artículo o sección necesita referencias que aparezcan en una publicación acreditada, como revistas especializadas, monografías, prensa diaria o páginas de Internet fidedignas. Puedes añadirlas así o avisar al …   Wikipedia Español

  • Tabla de inodos — Este artículo o sección necesita referencias que aparezcan en una publicación acreditada, como revistas especializadas, monografías, prensa diaria o páginas de Internet fidedignas. Puedes añadirlas así o avisar …   Wikipedia Español

Compartir el artículo y extractos

Link directo
Do a right-click on the link above
and select “Copy Link”