Operační systémy 13. Knihovny, spustitelné soubory

Slides:



Advertisements
Podobné prezentace
Školení MS Word 2007 pro začátečníky RNDr. Milan Zmátlo MěÚ Třebíč, říjen 2011 Vzdělávání v eGON centru Třebíč Tento.
Advertisements

Datové schránky v praxi Lukáš Jelínek
Petr Krčmář Virtualizace (především linuxová) InstallFest 2011.
Mobilní aplikace Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Jitka Vlčková. Dostupné z Metodického portálu ISSN
Počítačové sítě 8. Využití sítí © Milan Keršlágerhttp:// Obsah: ● sdílení v sítích.
Překladače 2. Vnitřní struktura překladače © Milan Keršlágerhttp:// Obsah: ● činnost.
POČÍTAČOVÉ VIRY A ANTIVIROVÉ PROGRAMY. Viry a antivirové programy VIR program, který se dokáže sám šířit bez vědomí uživatele. pro množení se vkládá do.
OPERAČNÍ SYSTÉMY Část 3 – správa procesů Zpracovala: Mgr. Marcela Cvrkalová Střední škola informačních technologií a sociální péče, Brno, Purkyňova 97.
Úvod do Delphi - 1.hodina OB21-OP-EL-KON-DOL-M-4-006A Orbis pictus 21. století.
Globální adresace na Internetu Vazební síťové prostředky (uzly) Směrování Adresný plán.
Formáty souborů (neboli typ souboru) obvykle určuje význam dat v elektronickém souboru. Existuje množství různých formátů, přizpůsobených pro ukládání.
Technologie počítačů 4. Sběrnice © Milan Keršlágerhttp:// Obsah: ● ISA, EISA, VL-BUS,
Počítačové viry VY_32_INOVACE_10_10_Počítačové viry Šablona 32.
Síťové operační systémy OB21-OP-EL-KON-DOL-M Orbis pictus 21. století.
Počitačová bezpečnost - je obor informatiky, který se zabývá zabezpečením informací v počítačích (odhalení a zmenšení rizik spojených s používáním počítače).
Název školy ZÁKLADNÍ ŠKOLA, JIČÍN, HUSOVA 170 Číslo projektu CZ.1.07/1.4.00/ Číslo a název klíčové aktivity 3.2 Inovace a zkvalitnění výuky prostřednictvím.
Univerzitní informační systém III., Lednice 2004 Vývoj a koncepce nového univerzitního webu Ondřej Kudlík
Postup modelování Kateřina Růžičková. Postup modelování Rozhodnutí modelovat Definice problému Existence modelu, pro daný problém Identifikace modelu.
Unix a Internet 6. DHCP a DNS
Architektura operačních systémů
Počítačová bezpečnost 2. Bezpečnost v OS
Spuštění programu (10).
Nadpis prezentace Zdeněk Tišl
Počítačová bezpečnost Cvičení 2: Procesy a oprávnění
Základní pojmy pro práci s OS Windows
Výukový materiál zpracován v rámci projektu
Systémové databáze v SQL Serveru
Počítačové sítě 16. IPv6 Obsah: původ IPv6, IPv6 adresa a její zápis
Uspořádání dat na disku
Počítačová bezpečnost 2. Bezpečnost v OS
Software počítače – opakování
Operační systémy Hardwarové prostředky využívané počítačem
COM – Práce s objektovým modelem jiné aplikace
Operační systémy Soubory a adresáře
Operační systémy soubory, zkratky
Batové dávky Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Vojtěch Mrózek. Dostupné z Metodického portálu ISSN: ,
OPERAČNÍ SYSTÉMY Část 1 – úloha OS Zpracovala: Mgr. Marcela Cvrkalová
Inf Operační systémy a jejich funkce
Správa paměti - úvod Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Libor Otáhalík. Dostupné z Metodického portálu ISSN: 
UNIX 10. Procesy © Milan Keršláger
Překladače 9. Generování cílového kódu
Financováno z ESF a státního rozpočtu ČR.
Struktury.
Vedoucí odboru strategického rozvoje města Vsetín
Operační systémy 13. Knihovny, spustitelné soubory
Počítačová bezpečnost 2. Bezpečnost v OS
TÉMA: Počítačové systémy
Inf Ovládání operačního systému
JEdit Open source programování – – Marek Bílý.
Financováno z ESF a státního rozpočtu ČR.
Souběh Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Libor Otáhalík. Dostupné z Metodického portálu ISSN: 
Dlouhodobý záměr vzdělávací a vědecké, výzkumné, vývojové a inovační, umělecké a další tvůrčí činnosti pro oblast vysokých škol na období Petr.
Překladače 6. Sémantická analýza
ZÁKLADNÍ ŠKOLA, JIČÍN, HUSOVA 170 Číslo projektu
Výukový materiál zpracován v rámci projektu
1. ročník oboru Mechanik opravář motorových vozidel
Číslo projektu CZ.1.07/1.4.00/ Název sady materiálů
Překladače Zápis programu
UNIX 10. Procesy Obsah: algoritmus, program, proces, thread
Instalace OS Linux Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Libor Otáhalík. Dostupné z Metodického portálu ISSN: 
Typy Oken, Zobrazení a Konfigurace
PHP - Personal Home Page
Materiál byl vytvořen v rámci projektu
Remote login.
Nádherné prezentace navrhnete a předvedete snadno a s jistotou.
Analýza informačního systému
Procesy – základní pojmy
Hromadné dokumenty opakující se pro kolekci osob
Digitální učební materiál
Informatika Počítačové viry.
Transkript prezentace:

Operační systémy 13. Knihovny, spustitelné soubory © Milan Keršláger 05.07.2018 http://www.pslib.cz/ke/slajdy http://creativecommons.org/licenses/by-nc-nd/3.0/

Knihovní funkce soustředění funkcí do knihovny snaha o opakované použití kódu první úspěšný pokrok v Pascalu tzv. unity v jazyce C je standardní knihovna (libc) zjednodušuje jazyk, standardizuje šířeji jazyk nemusí být klíčová slova pro I/O apod. problém API, ABI, chyb v knihovních funkcích rozhraní se může měnit

Typy knihoven statické knihovny soubory s příponou .a knihovna se po překladu „přilepí“ k programu obstarává tzv. linker dynamické knihovny soubory s příponou .so (ve Windows DLL) program obsahuje jen seznam knihoven a funkcí při spuštění musí loader zavést též knihovnu bez knihovny program nefunguje knihovna v paměti sdílena mezi více procesy

Dynamické knihovny možnost relokace neví se, kde v adresním prostoru bude místo problém zejména IA-32 (jen 4, resp. 2 GiB) zavaděč rozhodne při startu programu snaha o maximalizaci sdílení knihoven nemusí být možné – kolize s knihovnou, kódem nejvýhodnější rozložení lze vypočítat Linux: prelink, Windows: Microsoft při kompilaci DLL oboje relokace na vhodnou adresy předem zrychlení startu (některých) programů

Loader zavaděč programu do paměti poměrně komplikovaná úloha zejména ve spojitosti s dynamickými knihovnami velký měnící se počet, netriviální optimalizace výsledku typicky samostatný (speciální) program kontrola oprávnění a nároků programu vyřešení nedefinovaných symbolů (+ preload) nakopírování programu a knihoven do paměti nastavení sdílené paměti pro knihovny (cizí, vlastní) předání argumentů z příkazového řádku inicializace registrů a sok na začátek (_start)

Dynamic loading knihovna se zavádí až za běhu programu pomocí speciální funkce nezajišťuje OS, ale sám program rozhoduje programátor modularizace programů problém: co když se knihovna změní za běhu programu?

PIC a PIE Position Independent Code funguje na jakékoliv adrese nepotřebuje tedy relokaci (resp. modifikaci) vyžadována podpora instrukcí s relativní adresou v CPU využíváno u knihoven Position Independent Executable v Linuxu bezpečnostní opatření kód je nahrán na „náhodnou“ adresu na IA-32 silně omezené množství cílových adres ztěžuje některé útoky (přepsání zásobníku)

Spustitelný soubor program ve vykonatelné podobě typicky soubor se strojovým kódem různé formáty (ELF, EXE, ...) též bytecode (Java) nebo skript (interpretace) specifické odlišení od ostatních souborů unixové systémy: nastaveno oprávnění „spustitelný“ Windows: přípona .EXE, .COM atd. specifický obsah pro danou platformu, architekturu systémová volání, instrukční sada, metadata → ABI (binární rozhraní) → též Wine na Linuxu

ELF Executable and Linkable Format původně pro Unix System V jako definované ABI 1999 – zvoleno pro unixové systémy spustitelné soubory, sdílené knihovny, object kód, core flexibilní a rozšiřitelný formát hlavička, segmenty, sekce, data není vztažen k jedné architektuře Linux, PlayStation, Nintendo, OpenVMS, ... nástroje: readelf, objdump, file

EXE Executable několik variant DOS (MZ, NE), Windows (NE, LX, PE), OS/2 (LE, LX) mnoho dalších interních variant, ale i komprimované atd. Windows EXE má na začátku MZ, který vypíše zhruba: „Tento program nelze spustit v prostředí DOSu“ kromě metadat a kódu i další data („resources“) ikony, bitmapy, fonty, HTMl dokument, ... sekce pro různé platformy (viz výše) PE – Portable Executable modifikovaný unixový COFF formát

DLL implementace sdílených knihoven též přípony .OCX (ActiveX control), .DRV (ovladač) stejný formát, jako EXE → PE verze není součástí názvu problémy koexistence různých verzí → DLL hell Microsoft neposkytuje správu, aktualizace atd. snadno sdílitelné mezi stejnými aplikacemi nesnadno sdílitelné mezi různými aplikacemi COM model rozšiřuje koncept DLL knihoven volání funkce v DLL knihovně (jako dlopen v POSIXu) rozšířeno na volání mezi procesy nebo i mezi počítači