PDA

Visualizza la versione completa : link-loader questo sconosciuto


sacarde
19-09-2007, 17:06
ciao,
mi imbatto nel concetto del : link-loader

cosa e' costui ?

dove e' ?


grazie

francofait
19-09-2007, 17:34
http://www.computer-dictionary-online.org/?q=linker

kruskaiev
19-09-2007, 17:40
e anche questo:

man ld

sacarde
19-09-2007, 17:49
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/Amministrare GNU Linux - Simone Piccardi.pdf

vortex87
19-09-2007, 18:02
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


#!/usr/bin/python

e in questo modo, quando sono eseguibili (chmod +x), possibile lanciarli oltre che con "python script.py" anche con "./script.py"

sacarde
19-09-2007, 22:23
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 #!

sacarde
21-09-2007, 08:29
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

"

Loading