table of contents
ld.so(8) | System Manager's Manual | ld.so(8) |
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¶
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>
1998. március 14. |