Jak nahrát .so knihovnu a jak vlastně funguje?
n_petr na seznam.cz
n_petr na seznam.cz
Pátek Duben 29 12:42:32 CEST 2005
Můžete mi prosím vysvětlit, jak manuálně nahrát .so soubor a jak vlastně
.so soubory fungují a k čemu jsou? Díval jsem se na google a moc moudrý
z toho nejsem.
- .so a .a jsou něco jako knihovny nebo moduly či ovladače?
Pochopil jsem následující:
*) Vše se řídí přes /etc/ld.so.conf, kde jsou zřejmě adresáře, ze
kterých se tahají .so knihovny
1) Pokud je v seznamu adresář /usr/lib64 natáhnou se i rekurzivně .so
knihovny, které jsou např. v /usr/lib64/sane?
2) Jaký je přesně rozdíl mezi .so (dynamickou) a .a (statickou)
knihovnou? (uvažujme kernel 2.6.x, pokud na to je 2.4.x jinak)
3) Které knihovny se kdy a proč natahují do systému? Po startu PC nebo
až je zavolá nějaký program?
4) Co je vůbec zač ta knihovna? Vypadá navenek jako ELF binární soubor
(spustitelný program).
5) Pokud je .so (.a) knihovna něco jako ovladač (.ko), jde na ní udělat
nějaký odkaz, aby se dala natáhnout pomocí "modprobe" (případně "insmod")?
6) Když mám .so knihovnu jde nějak překonvertovat na .a knihovnu a taky
opačně, t.j. z .a na .so?
Objevil jsem příkaz ldconfig, ld, ldd, ld.so, ale moc jsem nepochopil na
co přesně jsou.
ldconfig -p mi vylistuje, jaké jsou asi natažené v paměti knihovny
ldconfig -v mi natáhnul zřejmě všechny knihovny z ld.so.conf asi do paměti
ldconfig -l /usr/lib64/knihovna.so ... by měl asi nahrát knihovnu, ale s
jakými parametry?
ldd --print mi vypíše, jaké jsou asi natažené v paměti knihovny
Pochopil jsem správně použití příkazů? Jakými příkazi je ještě možné .so
a .a knihovny obsluhovat a hlavně je s chtěnými parametry nahrávat do
paměti (pokud se do paměti vůbec nahrávají nebo kam)?
Děkuji mockrát
Petr Novák
n_petr na seznam.cz
PS: Pokud víte o nějakém pěkném a srozumitelném článku o o .so a .a
souborech, rád si ho přečtu.
Další informace o konferenci Linux