ciao,
mi imbatto nel concetto del : link-loader
cosa e' costui ?
dove e' ?
grazie
ciao,
mi imbatto nel concetto del : link-loader
cosa e' costui ?
dove e' ?
grazie
e anche questo:
codice:man ld
Powered by Fedora & CentOS
Here I am, brain the size of a planet..
stiamo parlando della stessa cosa....
forse ho frainteso....
io parlo della frase che ho letto...
"
In realta` gli script possono sfruttare una funzionalita` peculiare del link-loader di Linux (che si trova comunque in tutti i sistemi unix-like), che oltre ad eseguire i programmi nel formato binario standard in grado di eseguire anche gli script, che vengono trattati esattamente allo stesso modo. Questi sono identificati dal link-loader come file di testo dotati di permesso di esecuzione la cui prima riga e` nella forma:
#!/bin/bash
in cui cioe` si trovano i caratteri “#!” seguiti dal pathname di un programma che faccia da
interprete. In tal caso il link-loader lancera` automaticamente il comando (con le opzioni che si possono specificare sempre sulla prima riga del file) dandogli come argomento il nome file stesso.
"
da questo libro:
http://www.thebags.it/linux/Amminist...e Piccardi.pdf
Tecnicamente non so nemmeno io come funzioni l'arcano. Semplicemente i file la cui prima riga inizia con "#!" vengono dati in pasto al comando subito seguente.
Esempio, i file python iniziano solitamente con
e in questo modo, quando sono eseguibili (chmod +x), è possibile lanciarli oltre che con "python script.py" anche con "./script.py"codice:#!/usr/bin/python
se ho capito bene...
quando digito una parola e batto l'invio dalla console:
- bash (se non e' un comando builting) chiama ld con il parametro del comando
poi
- ld se il comando e' un binario lo esegue
- ld se il file-comando inizia per #! esegue quello scritto dopo #!
grazie a Simone per la risposta:
"La cosa e` un po' piu` complicata, e va al di la' dei dettagli necessari
a chi fa amministrazione di sistema prt cui li non e` trattata (per
alcuni dettagli puoi leggere il terzo capitolo di Gapil,
gapil.truelite.it), ma per essere breve: l'uso del link-loader e` uno
dei compiti che toccano alla system call exec del kernel, che e` quella
che tutti i programmi, shell compresa, usano quando devono far eseguire
un altro programma; per cui la risposta e` che e` la shell che si
accorge se il comando e` built in o no e se no esegue una exec, il resto
tocca ad exec e a tutto quello che ci sta attorno (l'esecuzione del
codice di ld e` una di queste cose).
Ciao
Simone
"