Enlaces simbólicos (soft) y hard en Linux

Hoy vamos a ver la diferencia entre los enlaces simbólicos o “soft” y los enlaces duros o “hard”:

Symbolic Link Hard links Unix

En la imagen se puede observar que la tabla de inodos está en un espacio del disco duro reservado, lo que nos lleva al concepto de inodos en un sistema de ficheros. Cada inodo(*) contiene la información necesaria para identificar unívocamente un fichero o directorio en el disco, más concretamente, permite identificar dónde están los datos del fichero o directorio en el disco.

El enlace duro o hard link es un enlace directo al mismo inodo (N1) que apunta el fichero. Cuando borramos un fichero, la caja “file” en el esquema, el sistema operativo borra el enlace al inodo del mismo. Desconocido el inodo no se puede acceder a la información del fichero  (lo hemos borrado). Sin embargo, si creamos previamente un “hard link” no perdemos el acceso al inodo y en consecuencia el acceso a los datos de fichero. Ej:

ln data_file my_hard_link

rm -fr data_file

cat my_hard_link  —–> ¡Podemos leer los datos!

El enlace blando o soft link es un enlace a otro inodo (N2) en la tabla de inodos. Este inodo apunta a unos datos de enlace al fichero, la caja “file” en el esquema. Ahora si borramos el fichero, aunque mantengamos el soft link, es imposible acceder a los datos del fichero, de ahí que sea “blando”. Es el funcionamiento habitual de los enlaces a ficheros, que si son borrados no pueda accederse desde ningún enlace.

ln -s data_file my_soft_link

Si quieres saber cómo aumentar la tabla de inodos:

https://principiatechnologica.com/wp-content/uploads/2013/12/04/tabla-de-inodos-de-un-sistema-de-ficheros-como-aumentarla/

(*) El concepto de inodo es difuso. El Dr. Dennis Ritchie fue el creador principal de idea. 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).

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *