la importancia de los enlaces simbólicos en GNU/Linux

fundamentos GNU/Linux fun-gnu


enlace-simbolicoEn GNU/Linux, un enlace, es un medio para proporcionar varias identidades a un archivo. Es similar a los “accesos directos” en Windows, o a los “alias” de Mac OS.
En Linux existen dos tipos de enlaces: los enlaces de referencia (hard links) y los enlaces simbólicos (soft links).

La sintaxis es: ln [opciones] origen enlace

ln por defecto crea un enlace de referencia.

ejemplos:

ln foto-original.jpg foto-enlace-ref

Esto crea un enlace de referencia al archivo original. Podemos ver que los dos archivos son idénticos. Realmente, son sólo dos “entradas lógicas” del sistema de archivos para llamar al mismo verdadero archivo “físico”, con el mismo número de nodo índice. Podemos verlo haciendo un “ls -li

$ ls -li
17306230 -rw-r–r– 3 juan users 305964 abr 30 15:51 foto-original.jpg
17306230 -rw-r–r– 3 juan users 305964 abr 30 15:51 foto-enlace-ref

la opción -li de ls hace que veamos un presentación larga y que al principio nos muestre el número del nodo índice del archivo. Vemos que en este caso es el mismo para “foto-original.jpg” y para su enlace de referencia “foto-enlace-ref“, esto es 17306230, lo que significa que en la escritura física del disco son realmente un único archivo. Para borrarlo, hay que borrar las dos entradas que tenemos (nuestros archivos foto-original.jpg y foto-enlace-ref).

con la opción -s, ln creará un enlace simbólico.

ln -s foto-original.jpg foto-enlace-simbolico

$ ls -li
17306230 -rw-r–r– 3 juan users 305964 abr 30 15:51 foto-original.jpg
17306230 -rw-r–r– 3 juan users 305964 abr 30 15:51 foto-enlace-ref
17306231 lrwxrwxrwx 1 juan users 17 may 1 11:32 foto-enlace-simbolico -> foto-original.jpg

vemos ahora, que lo que se ha creado es un enlace simbólico que tiene su propio número de nodo índice “17306231”. Este archivo es sólo una llamada al original, y podemos ver que no tiene el mismo tamaño, ni los mismos permisos:

$ ls -lh
-rw-r–r– 3 juan users 299K abr 30 15:51 foto-original.jpg
-rw-r–r– 3 juan users 299K abr 30 15:51 foto-enlace-ref
lrwxrwxrwx 1 juan users 17 may 1 11:32 foto-enlace-simbolico -> foto-original.jpg

tanto el archivo original como su enlace de referencia pesan 299K, mientas que el enlace simbólico sólo 17.

Para borrar el archivo original hay que borrarlo directamente a él, si borro el enlace simbólico no le afecta. Y si borro el archivo original, el enlace simbólico no se borra, pero no funcionará, pues estará truncado.

Los enlaces simbólicos son un tipo especial de archivo que contiene un nombre de archivo, es un puntero entre sistemas de archivos (o en el mismo sistema) a bajo nivel. Un enlace simbólico puede apuntar a un archivo en un sistema de archivos independiente (cosa que los enlaces de referencia no pueden hacer), por ejemplo de la raíz (/) a home (/home), en el caso de que home esté montado en una partición distinta (como suele suceder).

la opción -l de ls, nos muestra a donde apunta un enlace simbólico:

$ ls -l
lrwxrwxrwx 1 juan users 17 may 1 11:32 foto-enlace-simbolico -> foto-original.jpg

La importancia de los enlaces simbólicos en GNU/Linux es evidente. Ejemplos:

– los scripts de inicio de System V (Sys V) utililizan enlaces simbólicos en los archivos el modo de ejecución para lanzar servicios.

– en Systemd, los archivos de /etc/systemd/system/ son enlaces simbólicos a /usr/lib/systemd/system/ que activan los servicios.

– el archivo /etc/localtime (que determina la zona horaria del sistema), no es otra cosa que un enlace a /usr/share/zoneinfo/Continente/tu-ciudad. (esto es así en ARCH u OpenSuse, no por ejemplo en Debian).

– en la raíz de un sistema Arch o Manjaro, los directorios /bin, /sbin, /lib y /lib64 no son verdaderos directorios como en Debian u OpenSuse, sino meros enlaces simbólicos a /urs/bin y /usr/lib con el fin de unificar los binarios en /usr.

GNU/Linux es inconcebible sin cientos de enlaces simbólicos que permiten mantener la coherencia del sistema de archivos, así como cierta estandarización entre distros que facilita el trabajo de los programadores. Todos los programas llaman a bibliotecas, que serían inencontrables sin un buen sistema de enlaces simbólicos.

La vida, es un mero enlace simbólico a la eterna Nada.

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s