Spouštění programů

Transkript

Spouštění programů
Spouštění programů
Mgr. Josef Horálek
Spouštění programů
= Po vytvoření procesu obvykle následuje spouštění
programu
= K tomu slouží systémové volání execve(), který lze
použít přímo a nebo využít řadu pomocných funkcí, které
nám poskytuje standardní knihovna, které toto volání
obalují případně zjednodušují jeho použití
Josef Jan Horálek FIM Univerzita Hradec Králové | Spouštění programů
Jak jádro spouští program
= Scénář je následující:
Otevření souboru s programem
Výběr procesoru pro start
Kontrola a nastavení oprávnění
Načtení hlavičky programu
Zkopírování parametrů (argumenty programu a proměnné
prostředí)
= Vyhledání odpovídajícího handleru podle hlavičky
= Zavolání handleru k vlastnímu spuštění
= Pokud něco selhalo, úklid a vrácení výsledku programu
=
=
=
=
=
Josef Jan Horálek FIM Univerzita Hradec Králové | Spouštění programů
Spouštění binárních programů
typu ELF
=
=
=
=
=
=
=
=
=
=
Kontrola formátu
Zjištění ELF interpretu
Otevření souboru interpretu
Kontrola konzistence souboru
Úklid po předchozím programu
Namapování nového programu do paměti
Příprava pro spuštění nového programu
Zavedení interpretu
Příprava tabulek formátu EFL
Předání kontroly interpretu
Josef Jan Horálek FIM Univerzita Hradec Králové | Spouštění programů
Handler binfmt_misc
= Jde o velmi univerzální handler, umí detekovat různé
formáty a nakládat s nimi odpovídajícím způsobem.
= Pomocí něho můžeme spouštět např. :
= Javovské třídy (prostřednictvím JVM)
= Programy pro jiný OS (např. windows)
= Různé dokumenty, obrázky, zvukové soubory
Josef Jan Horálek FIM Univerzita Hradec Králové | Spouštění programů
Handler binfmt_misc
= Celá funkce je podobná jako u handleru pro skripty (tedy
tak, že se spustí něco jiného a tomu se předá daný
soubor), rozdíl je však v tom, jak se sekundárně
spouštěný program vybírá.
= Handler je implementován tak, že se navenek tváří jako
speciální souborový systém – ten se musí před použitím
připojit – obvykle
/proc/sys/fs/binfmt_misc
Josef Jan Horálek FIM Univerzita Hradec Králové | Spouštění programů
Spouštěcí domény
= Linux umožňuje spouštět i programy, které byly
zkompilovány pro jiný operační systém splňující standard
POSIX.
= Jádro obsahuje mechanismus, který umisťuje programy
pro určitý OS do tzv. spouštěcí domény (execution
domain). Každá doména má v jádřa svoji strukturu
exec_domain. Obsahující informace potřebné pro
úspěšné spuštění z této domény jako je ahndelr pro
systémová volání, mapování signálů, chyb, socketů atd.
Josef Jan Horálek FIM Univerzita Hradec Králové | Spouštění programů
Děkuji za pozornost…

Podobné dokumenty

Procesor

Procesor Procesor se při práci hodně zahřívá a proto musí být chlazen. Na procesor se umisťuje chladič procesoru. Chladič se skládá z pasivní části (žebrování) a aktivní (větráček).

Více

Síťové rozhraní.

Síťové rozhraní. většina portů z /etc/services je používána pomocí socketů např. telnet, ftp, rlogin, ...

Více

Hackerspace Pardubice

Hackerspace Pardubice Velmi úzce svázán s procesorem cílového počítače

Více

VÝUKOVÝ MATERIÁL

VÝUKOVÝ MATERIÁL (paměť, místo na disku, vyhrazený čas procesoru a podobně). • Garbage collector – automatický odstraňovač dynamicky alokovaného prostoru dále již nepoužívaných objektů. • Registr – paměť o malé vel...

Více

Grafická uživatelská rozhraní

Grafická uživatelská rozhraní GUI - Graphical User Interface umožňuje snadno a pohodlně ovládat počítač a dobře se orientovat v informacích původně pouze CLI (Command Line Interface) - ovládání pomocí příkazové řádky z...

Více

eshaperr - 3DReshaper

eshaperr - 3DReshaper Odevzdávejte a sdílejte výsledky vašich projektů s prohlížečem 3DReshaper, který je k dispozici zdarma na www.3dreshaper.com!

Více