Systémová volání Mgr. Josef Horálek



Podobné dokumenty
Přidělování paměti I Mgr. Josef Horálek

Základní ovládání aplikace

Rozdělení operačních systémů

Management procesu II Mgr. Josef Horálek

Lekce 9 IMPLEMENTACE OPERAČNÍHO SYSTÉMU LINUX DO VÝUKY INFORMAČNÍCH TECHNOLOGIÍ JAZYK C

Operační systémy. Tomáš Hudec.

Přednáška. Vstup/Výstup. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

Šifrování/Dešifrování s použitím hesla

MANUÁL K OVLÁDÁNÍ POČÍTAČOVÉHO SYSTÉMU PRO KMENOVÉ PÁSOVÉ PILY

Architektura počítače

Principy činnosti sběrnic

LED_007.c Strana: 1/5 C:\Michal\AVR\Výukové programy\archiv\ Poslední změna: :01:48

RC-300. U ivatelská pøíruèka. Instalaèní firma: Servisní telefon: Datum Počet stran Číslo dokumentu 11/ PU-RC-3-01-C

Implementace systémů HIPS: historie a současnost. Martin Dráb

Manuál k užívání aplikace Monitoringrejstriku.cz

Správa procesů a vláken Mgr. Josef Horálek

1 Podrobná specifikace Yunifly Datasheet

Pro přirozené spojení okna s domem

CORE 230 Vac ŘÍDÍCÍ JEDNOTKA PRO 1 MOTOR IDEÁLNÍ PRO KŘÍDLOVÉ, POSUVNÉ NEBO HYDRAULICKÉ MOTORY

PES lib (C + PASCAL) KNIHOVNY KOMUNIKAÈNÍCH FUNKCÍ 03/ PESlib KOMUNIKAČNÍ KNIHOVNY C, PASCAL 03/ stran 1

Bezpečnostní poplašný systém GSM-01LED T505. Návod k použití

MANUÁL SMART-MQU. 1. Úvod. 2. Fyzické provedení přenosové sítě.

Uživatelský manuál XF 300

RE8USB modul s 8 vstupy a 8 výstupy ovládaný z USB

Uživatelský manuál. Vnitřní videojednotka s pamětí

HRUBÝ NÁVRH SYSTÉM NA KONTROLU STAVU POHYBOVÝCH PLOCH LETIŠŤ V ČESKÉ REPUBLICE PRO PŘIPRAVOVANOU AGENDU ÚCL (etapa I)

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ , 5.1 a 5.2 8/14

Univerzální dálkové ovládání CV 150-2



MS WINDOWS I. řada operačních systémů firmy Microsoft *1985 -? Historie. Práce ve Windows XP. Architektura. Instalace. Spouštění

Uživatelský manuál JA-60 Comfort

E.C.S. řada nová generace obrat o 360 ( Systém vyvinut ve Florencii v r.2009 )

DM4.3 odmagnetovací modul

Příručka k programu Wkasa Obchodní verze

Uživatelská příručka pro program

Velmi dlouhá doba pohotovosti až 25 dní Možnost externího napájení z USB portu v PC Možnost volit nepřetržité nahrávání nebo nahrávání detekcí zvuku

Centralis Uno RTS. Řídicí jednotka s integrovaným přijímačem DO. 1. Technické údaje. Centralis Uno RTS

Příručka k programu Wkasa Restaurační verze

Bezpečnostní poplašný systém GSM-03 T511. Návod k použití

PROGRAMOVÁNÍ MIKROPOČÍTAČŮ CVIČENÍ 10

setup() { I = 0; } loop() { I = I + 1; }

PROGRAMOVÁNÍ ŘÍDÍCÍCH SYSTÉMŮ

Návod k administraci e-learningové platformy

Přerušovací systém s prioritním řetězem

Regulátor Komextherm PA-5

enos dat rnici inicializaci adresování adresu enosu zprávy start bit átek zprávy paritními bity Ukon ení zprávy stop bitu ijíma potvrzuje p

UŽIVATELSKÁ PŘÍRUČKA PC Verze 1.0

InTouch 8.0 Subsystém distribuovaných alarmů

Objektově orientované technologie Dynamický náhled Stavový diagram. Pavel Děrgel, Daniela Ďuráková

Principy operačních systémů. Lekce 7: Souborový systém

K1PLUS OTT AND-5 4K DI-WAY AND-5 OTT H.265 HEVC 4K

52ASWCUNI. Univerzální rozhraní k ovládání autorádia prostřednictvím tlačítek na volantu. Montážní příručka

Přerušení POT POT. Přerušovací systém. Přerušovací systém. skok do obslužného programu. vykonávaný program. asynchronní událost. obslužný.

Eberspächer Praha s.r.o. Náchodská 116/ Praha 9 Tel.: cz-info@eberspaecher.com

Instrukce pro montáž, obsluhu a údržbu

Pro správnou funkci jednotky je třeba aktivovat lithiovou baterii vytažením plastového pásku na pravé horní straně ovládacího panelu jednotky. Baterie

Obsah. Část I Začínáme s jazykem AppleScript

Automatický přenos dat z terminálů BM-Finger

Řídící jednotka AirBasic 2

ÚAMT FEKT VUT. mikroprocesor Rabbit. Diplomová prá ce. Tomá škreuzwieser. Brno

Program Computer Setup

Jednoduchý bezdrátový ovladač XWL Maus

PROVOZNÍ A INSTALAČNÍ INSTRUKCE

Návod k používání ZEROLINE 60 OBSAH

Digitální osciloskop S2X100 OSCILOSKOPY.COM

Instalujeme a zakládáme databázi Oracle Database 11g

RE5USB programovatelné USB relé s integrovaným watchdogem ( RE5 ) Základní vlastnosti

Statistica, kdo je kdo?

Principy operačních systémů. Lekce 2: Správa paměti

OBSAH. Balení obsahuje: VYSVĚTLENÍ POJMŮ ZPROVOZNĚNÍ ZAŘÍZENÍ

Mobilní aplikace SmartLift


UŽIV ATELSKÁ PŘÍRUČKA

PŘEVODNÍK SNÍMAČE SIL NA USB PRO ZOBRAZENÍ V PC DSCUSB. KRÁTKÁ PŘÍRUČKA PRO OBSLUHU A KONFIGURACI Revize červenec 2014

environmentálních rizik a ekologických škod

Architektury CISC a RISC, uplatnění v personálních počítačích

LTC 8500 Modulární maticové přepínače a řídicí systémy Allegiant

Výpočet v módu jádro. - přerušení (od zařízení asynchronně) - výjimky - softvérové přerušení. v důsledku událostí

TIPES ČASTO KLADENÉ DOTAZY

Strojový kód. Instrukce počítače

Nový VRF systém. Řídicí systém. Divize technické podpory

Obslužný software. vizualizaci zařízení

FLYTEC PREHLED...2 KLÁVESNICE... 2 FIREMNÍ STRATEGIE... 2 NASTAVENÍ VÝŠKOMERU Výškomer 2 (ALT2)...4 NASTAVENÍ VÝŠKOMERU 2...

Uživatelská příručka ClinkMe

Externí filtrová kola pro kamery G2, G3 a G4

Profesionální 5-stupňová autonabíječka BENTON BX-3 - Návod k použití

Operační systém z hlediska procesu Mgr. Josef Horálek

Systém ovládání VRF. Konstrukční princip systému VRF. Nový systém ovládání venkovních jednotek F5MSDC. Nový systém ovládání vnitřních jednotek F5MSDC

Skříň zevnitř. ventilátorem ven ze skříně. Dobrá cirkulace vzduchu v počítačové skříni je velmi

(1) Dálkový ovladač. Návod k obsluze RMT-DSLR Sony Corporation

Hudební přehrávač. mivvy record M5 UŽIVATELSKÝ MANUÁL

Technologie počítačových sítí 1. cvičení

Laboratorní zdroj - 6. část

Helios RED a Internetový obchod

PROPOJENÍ OBJEDNÁVEK s GOOGLEM

MANUÁL UŽIVATELE PRO MONTÁŽ, OBSLUHU A ÚDRŽBU - VARIANTA 3 SYSTÉM ZEMNĚNÍ RE-DI-GO

Elektronická časomíra SH3

NÁVOD K POUŽITÍ Dělený klimatizační systém

Transkript:

Systémová volání Mgr. Josef Horálek

Systémová volání = Systémová volání = volání jádra = základní komunikace aplikačních programů s jádrem = Tvůrce programu obvykle oddělen vrstvou standardní knihovny nepotřebuje tedy znát přesné chování je však dobré je pochopit

Základní princip = Jak vypadá vztah uživatelský proces jádro? = Jedná se o dva rozdílné světy: = uživatelský proces běží ve svém adresním prostoru (instrukce i data) a vykonává kód programu = někdy potřebuje službu, kterou pro něj vykoná jen jádro systémové volání

Základní princip Příklad: Zjištění a nastavení parametrů zařízení funkce ioctl (). int ioctl (int fd, unsigned long request, ); Podle konkrétní hodnoty požadavku má volání dva či tři argumenty. V jádře pak vypadá prototyp fce např. takto: Long (*unlocked_ioctl)(struct file *filp, unsigned int cmd, unsigned long arg);

Základní princip = Můžeme nyní zanedbat odlišné datové typy a další detaily pak se jedno volání funkce transformuje na jiné. = V čem se tedy systémové volání liší od běžné funkce? = V tom, že leží právě na hranici této transformace.

Jak to funguje - například ioctl() 1. Uloží se aktuální obsah registrů 2. Do registrů se uloží číslo systémového volání a parametry 3. Předá se řízení jádru (přepnutí do režimu jádra a začne vykonávat jeho kód) 4. Podle čísla volání se vyhodnotí, jaká funkce v jádře se zavolá 5. Protože jde o volání spojené s otevřeným souborovým deskriptorem, najde se odpovídající objekt souboru

Jak to funguje - například ioctl() 6. Podle objektu souboru se zavolá příslušná výkonná funkce v ovladači 7. Ve výkonné funkci se provede vše potřebné a na konci se vrátí výsledek 8. Do registru se uloží výsledek operace 9. Řízení se předá zpět programu resp. Standardní knihovně (uživatelský režim) 10. Výsledek se přenese z registru do paměti 11. Obnoví se uložený stav registrů

Schéma systémového volání Uživatelský prostor Aplikace Argumenty Volání funkce Návratová hodnota Prostor jádra Číslo volání argumenty Standardní knihovna Systémová volání Registry procesoru Návratová hodnota Jádro

Do režimu jádra a zpět = Jak vlastně probíhá předání řízení jádru a opětovné předání zpět? = Dvě metody (platformě závislé): = speciální instrukce = přerušení

Přerušení = Starší metoda (pro i386) Široké použití Pomalejší = Volající proces způsobí softwarové přerušení (platforma x86 nejčastěji 0x80) = Začne se obsluhovat, procesor přepnut do režimu jádra provádí kód jádra = Po skončení je obnoven stav procesoru přepnut do uživatelského režimu

Speciální instrukce = Nevyužívá přerušení = Instrukce sysenter sama zajistí přepnutí do režimu jádra = Nastaví registry (CS, EIP atd.) a předá řízení kódu jádra = Na závěr se vykoná instrukce sysexit, která připraví registry pro návrat a přepne do uživatelského režimu

Reakce na výsledek = Systémové volání končí opuštěním jádra a předáním výsledku přes registr. = Konkrétní hodnoty závisí na potřebách volající aplikace, existuje však několik základní možností: = Úspěšně zakončené volání, které nepřenáší zpět žádnou konkrétní hodnotu, vrací nulu (0) = Úspěšně zakončené volání, které přenáší návratovou hodnotu, vrací tuto hodnotu. (obecně jakákoli hodnota obvykle nezáporná) = Neúspěšně zakončené volání vrací zápornou hodnotu odpovídající kódu chyby

Přerušené volání = Často nastává situace, kdy je vykonáván kód uvnitř implementace systémového volání a v tu chvíli přijde signál, na který se musí reagovat. = V toto chvíli mohou nastat tři základní situace: = Systémové volání je buď krátké, nebo se nachází již blízko svého konce, tedy nemusí již na nic čekat. Pak se volání normálně dokončí a vrátí standardní výsledek.

Přerušené volání = Volání bylo přerušeno na začátku, resp. V situaci, kdy buď nebyly v systému provedeny žádné změny, nebo byly provedeny bezpečně reverzibilní změny. Tato situace se řeší opuštěním jádra a vrácením hodnoty ERESTARTSYS, -ERESTARTNOHAND, ERESTARTNOINTR. = K přerušení volání došlo v situaci, kdy již byly provedeny nevratné změny v systému, například byl do zařízení odeslán manipulační příkaz. Situace se řeší opuštěním jádra s návratovou hodnotu EINTR. Nejdříve se samozřejmě musí systém dostat do konzistentního stavu.

Přerušené volání = ERESTARTSYS volání bude opět restartováno; výjimkou je případ, kdy byl signál explicitně obsloužen a neměl nastaven příznak SA_RESTART. Tehdy nastane přerušení volání a návrat do programu = ERESTARTNOHAND volání bude restartováno vždy, když není signál explicitně obsloužen uživatelskou rutinou = ERESTART_RESTARTBLOCK podobná situace s použitím jiného volání

Informace o modulech = ERESTARTNOINTR volání se restartuje za každých okolností = EINTR volání se vždy přeruší NE ANO ERESTARTNOINTR ERESTARTNOHAND ERESTARTSYS EINTR ERESTART_RESTART BLOCK Explicitní obsluha Explicitní obsluha Explicitní obsluha SA_RESTART volání se restartuje volání se přeruší volání se restartuje (specifickým způsobem)

Krátce o oprávnění procesu = Systémová volání obecně představují potenciální hrozbu pro běžící systém volání, která něco nastavují nebo mění, mohou obecně do běžícího systému zasáhnout negativním způsobem na ostatní běžící procesy, uživatelská data nebo systém.

Krátce o oprávnění procesu = Pro oprávnění se využívá model založený na právech definovaných pro určitou třídu operací tvz. capabilities. = Jako příklad můžeme uvést: = CAP_CHOWN - právo měnit vlastníka souboru = CAP_KILL právo poslat cizímu porcesu signál = CAP_NET_BIND_SERVICE právo používat privilegované porty = CAP_SYS_TIME právo nastavit systémový čas = CAP_SYS_ADMIN právo k různým operacím souvisejícím se správou systému = atd.

Krátce o oprávnění procesu = Jak to funguje? = Zjednodušeně můžeme říci, že se ovladač nebo jiná součást jádra dotáže, zda má proces potřebnou kvalifikaci. = Jak proces kvalifikaci získá? = nefunguje dědění;předávání; uložení v atributech souborů = Cesta: prosec spuštěný s právy root zbaví všechny procesy kvalifikací kromě těch, které potřebuje. = Pak změní uživatele, pod nímž běží, se zachováním aktuálních kvalifikací.

Děkuji za pozornost