Interakce software s OS

Aby software běžící v OS mohl nějakým způsobem interagovat se zařízením – například interagovat s pamětí, s disky, reagovat na stisk klávesnice, musí využít funkce nebo události operačního systému.

Obecně se těmto funkcím říká syscalls, já těmto funkcím říkám nízkoúrovňové funkce a události OS.

Proč „nízko-úrovňové“? Mno…protože těch úrovní může být víc. K tomu se dostaneme později.

V různých OS jsou nízkoúrovňové funkce implementovány odlišně. Ve Windows je jeden kompaktní balík funkcí kterému se říká Win32 API. V Linuxu to není jeden kompaktní balík ale hromada funkcí různě rozházených v Linuxové dokumentaci, souhrnně se těmto funkcím říká syscalls. Taky to zesložiťuje fakt, že Linuxů je víc.

Vztah mezi OS a uživatelskými aplikacemi

Nízko-úrovňové události jsou prostě jen operačním systémem zpracovaná přerušení procesoru. Software v OS má možnost se na tyto události „navěsit“ a díky tomu zprostředkovaně reagovat na události jako je například pohyb myši nebo stisk klávesnice.

Prostředí OS z pohledu software

Software který běží na nějakém OS jako třeba Windows a Linux zpravidla vůbec neví, kde zrovna běží.

OS před softwarem schovává konkrétní složitosti daného zařízení a místo toho vytváří úplně nové koncepty. Podívej se na tabulku níže. V této kapitole jsem pojmenoval nízko-úrovňové funkce a události OS, v následujících kapitolách vysvětlím další pojmy.

ZařízeníCo vidí osco vidí software běžící v os
Fyzická RAM paměťFyzická RAM paměť
Kernel space
User space
Virtuální paměť
HDD/SSD diskyHDD/SSD disky
NTFS, FAT32, ext3, ext4…
Souborový systém
USB zařízeníUSB zařízení
Ovladače
Nízko-úrovňové
funkce a události OS
Fyzická jádra procesoruFyzická jádra procesoru
Scheduler, procesy, vlákna
Context switch
Vlákna
Co vidí OS a co vidí software

Shrnutí

  • Software interaguje s počítačem skrz nízkoúrovňové funkce OS
  • Počítač interaguje se software skrz nízkoúrovňové události OS. Toto jsou jen delegovaná přerušení procesoru.