NÉV¶
ld.so/ld-linux.so - dinamikus linker és betöltő
LEÍRÁS¶
ld.so betölti a program futtatásához szükséges
megosztott könyvtárakat (library), előkészíti a
program futtatását, majd futtatja. Minden Linux program hiányos
és futási időben további linkelést igényel,
hacsak a fordításkor nem volt megadva az
ld -static
kapcsolója.
A program futtatásához szükséges megosztott
könyvtárakat megadott sorrendben keresi meg a rendszer az
alábbi helyeken:
- o
- Az LD_LIBRARY_PATH környezeti
változóban levő elérési út, (illetve az
LD_AOUT_LIBRARY_PATH az a.out formátumú programokhoz).
Kivétel, ha a végrehajtható állomány setuid vagy
setgid bitje be van állítva, mert ekkor ezt a környezeti
változót nem veszi figyelembe.
- o
- A cache fájl (/etc/ld.so.cache), amely azoknak
a könyvtáraknak a listáját tartalmazza, amelyeket a
rendszer előzőleg megtalált a kiegészített
elérési úton.
- o
- Az alapértelmezett elérési út az
/usr/lib, és utána a /lib.
KÖRNYEZETI VÁLTOZÓK¶
- LD_LIBRARY_PATH
- Azoknak az könyvtáraknak (directory) a
listája vesszőkkel elválasztva, amelyekben a rendszer az
ELF megosztott könyvtárakat keres futási időben.
Hasonló a PATH környezeti változóhoz.
- LD_PRELOAD
- Ebben a környezeti változóban kell megadni
azoknak az ELF megosztott könyvtáraknak a nevét
´whitespace´ karakterekkel elválasztva, amelyeket az
összes többi megosztott könyvtár előtt kell
betölteni. Ezáltal elérhető, hogy a többi
megosztott könyvtárban levő függvények helyett az
itt megadottakban szereplőket használja a program.
- LD_AOUT_LIBRARY_PATH
- Azoknak a könyvtáraknak a listája
vesszőkkel elválasztva, amelyekben az a.out megosztott
könyvtárakat keresi a rendszer futási időben.
Hasonló a PATH környezeti változóhoz.
- LD_AOUT_PRELOAD
- Ebben a környezeti változóban kell megadni
azoknak az a.out megosztott könyvtáraknak a nevét
´whitespace´ karakterekkel elválasztva, amelyeket az
összes többi megosztott könyvtár után kell
betölteni. Ezáltal elérhető, hogy a többi
megosztott könyvtárban levő függvények helyett az
itt megadottakban szereplőket használja a program.
- LD_NOWARN
- Nem figyelmeztet ha az a.out könyvtárak kisebb
(minor) verziószáma eltér.
- LD_KEEPDIR
- A betöltendő a.out megosztott
könyvtárak nevében nem hagyja figyelmen kívül a
könyvtár (directory) nevét. Nem javasolt ennek a
lehetőségnek a használata.
FÁJLOK¶
- /lib/ld.so
- a.out dinamikus linker és betöltő
- /lib/ld-linux.so.*
- ELF dinamikus linker és betöltő
- /etc/ld.so.cache
- Ez a fájl azoknak a könyvtáraknak
listáját tartalmazza, amelyekben a megosztott
könyvtárakat kell keresni. Tartalmazza továbbá a
lehetséges megosztott könyvtárak rendezett
listáját.
- /etc/ld.so.preload
- A fájl a program betöltése előtt
betöltendő ELF megosztott könyvtárak
´whitespace´ karakterrel elválasztott listáját
tartalmazza.
- lib*.so*
- megosztott könyvtárak
LÁSD MÉG¶
ldd(1),
ldconfig(8).
HIBÁK¶
Pillanatnyilag az
ld.so semmilyen módon nem tudja a
betöltött könyvtárat kirakni (unload), és megkeresni
a könyvtár kompatíbilis vagy újabb verzióját.
Az
ld.so csak azokra a végrehajtható fájlokra
működik, amelyeket a libc 4.4.3-as vagy magasabb
verziójával fordították.
SZERZŐK¶
David Engel, Eric Youngdale, Peter MacDonald, Hongjiu Lu, Linus Torvalds, Lars
Wirzenius és Mitch D'Souza (nem feltétlenül ebben a
sorrendben).
MAGYAR FORDÍTÁS¶
Tímár András <timar_a@freemail.hu>