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>