Zavaděč (program)

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

Zavaděč je v informatice speciální program, který je typicky součástí jádra operačního systému. Zavaděč je zodpovědný za umístění spouštěného programu do paměti počítače, přípravu na jeho spuštění a jeho následnou aktivaci.

Popis činnosti

Zavaděč zajišťuje načtení spustitelného souboru do uživatelského prostoru nově vznikajícího procesu. V současných systémech musí též nastavit mapu virtuální paměti procesu. +more Pokud spouštěný program používá dynamické knihovny, zajistí ještě vyvolání dynamického linkeru.

Zavaděč v Linuxu

V operačním systému Linux se používá pro spustitelný soubor formát ELF (dříve se používal a. +moreout). ELF obvykle obsahuje několik sekcí, které musí zavaděč postupně projít a jejich obsah správně interpretovat. Ověří strukturu spustitelného souboru, zjistí jeho formát a vyvolá příslušnou obslužnou rutinu . Rutina zjistí typ formátu a uvolní prostředky starého procesu. Následně je do paměti namapována spustitelná část souboru, je vytvořen a namapován datový segment (. bss) a halda. Pokud se jedná o program používající dynamické knihovny, je do paměti nahrán též dynamický linker. Na zásobník se zkopíruje se prostředí procesu, argumenty z příkazové řádky, identifikátory procesu ( tj. PID, PPID, skupina procesů…)Linux process credentials - viz man 7 credentials, [url=http://www. kernel. org/doc/man-pages/online/pages/man7/credentials. 7. html]dostupné též online[/url] a další informace z hlavičky ELF souboru. V tuto chvíli dojde ke skutečnému spuštění připraveného procesu a tím k přesunu do uživatelského prostoru.

Dynamickým linkerem je v Linuxu ld-linux. so. +more Je zodpovědný za zavedení (resp. namapování) dynamických knihoven do paměťového prostoru spouštěného procesu a uložení konkrétních adres na místo použitých symbolů (viz sémantická analýza a relokace).

Reference

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top