Workstation online OnWorks Linux e Windows

Logo

Hosting online gratuito per workstation

<Precedenti | Contenuti | Succ.>

Collegamenti simbolici

Mentre ci guardiamo intorno, è probabile che vedremo un elenco di directory con una voce come questa:



lrwxrwxrwx 1 radice radice 11 2007-08-11 07:34 libc.so.6 -> libc-2.6.so

lrwxrwxrwx 1 radice radice 11 2007-08-11 07:34 libc.so.6 -> libc-2.6.so


Notare come la prima lettera dell'elenco è "l" e la voce sembra avere due nomi di file? Questo è un tipo speciale di file chiamato a collegamento simbolico (noto anche come a collegamento morbido or collegamento simbolico). Nella maggior parte dei sistemi Unix-like è possibile avere un file referenziato con più nomi. Anche se il valore di questo potrebbe non essere ovvio, è davvero una caratteristica utile.

Immaginate questo scenario: un programma richiede l'uso di una risorsa condivisa di qualche tipo contenuta in un file chiamato "foo", ma "foo" ha frequenti modifiche di versione. Sarebbe bene includere il numero di versione nel nome del file in modo che l'amministratore o altra parte interessata possa vedere quale versione di "foo" è installata. Questo presenta un problema. Se cambiamo il nome della risorsa condivisa, dobbiamo rintracciare ogni programma che potrebbe usarlo e cambiarlo per cercare un nuovo nome di risorsa ogni volta che viene installata una nuova versione della risorsa. Non sembra affatto divertente.

Qui è dove i collegamenti simbolici salvano la giornata. Supponiamo di installare la versione 2.6 di "pippo", che ha il nome file "pippo-2.6" e quindi creare un collegamento simbolico chiamato semplicemente "pippo" che punta a "pippo-2.6". Ciò significa che quando un programma apre il file "foo", in realtà sta aprendo il file "foo-2.6". Ora tutti sono felici. I programmi che si basano su "pippo" possono trovarlo e possiamo ancora vedere quale versione effettiva è installata. Quando è il momento di aggiornare a "foo-2.7", aggiungiamo semplicemente il file al nostro sistema, eliminiamo il collegamento simbolico "foo" e ne creiamo uno nuovo che punti alla nuova versione. Questo non solo risolve il problema dell'aggiornamento della versione, ma ci permette anche di mantenere entrambe le versioni sulla nostra macchina. Immagina che "foo-2.7" abbia un bug (accidenti a quegli sviluppatori!) E dobbiamo tornare alla vecchia versione.


Ancora una volta, eliminiamo semplicemente il collegamento simbolico che punta alla nuova versione e creiamo un nuovo collegamento simbolico che punta alla vecchia versione.

L'elenco delle directory sopra (da / lib directory di un sistema Fedora) mostra un collegamento simbolico chiamato "libc.so.6" che punta a un file di libreria condiviso chiamato "libc-2.6.so". Ciò significa che i programmi che cercano "libc.so.6" otterranno effettivamente il file "libc-2.6.so". Impareremo come creare collegamenti simbolici nel prossimo capitolo.


Il miglior sistema operativo cloud computing su OnWorks: