OS
Obsah
26 stránek
01 Základy
- Co dělá operační systém Zeptej se pěti lidí, co je operační systém, a čtyři popíšou plochu, ikonky a nabídku Start. Pátý řekne „Windows", což…
- Režim jádra a uživatelský režim Program, který dělí nulou nebo sáhne za konec pole, dostane SIGFPE nebo SIGSEGV a skončí. Stroj běží dál a ostatní…
- Systémová volání Napíšeš printf("ahoj\n") a vypadá to jako jedna funkce. Jsou to tři vrstvy: printf je formátovač, ten zavolá write…
- Přerušení a výjimky Zdá se, že systém se v cyklu pořád dokola dívá, jestli něco nepřišlo. Klávesa, paket, dokončený zápis.
- Architektury jádra V lednu 1992 poslal Andrew Tanenbaum do diskusní skupiny comp.os.minix příspěvek s nadpisem „LINUX is obsolete". Autor…
02 Procesy
- Procesy „Program" a „proces" se běžně používají zaměnitelně a je to zdroj nedorozumění, který se táhne až do produkce. Program…
- Vlákna „Přidám vlákna a bude to rychlejší." Tuhle větu najdeš ve stovkách návodů a platí jen za dvou podmínek, které si skoro…
- Přepínání kontextu Na osmi jádrech ti běží dvě stě procesů a všechny vypadají, že běží současně. Neběží. Procesor dělá v každém okamžiku…
- Plánování procesů Máš jeden procesor a dvě stě věcí, které chtějí běžet. Kompilace chce spoustu času a je jí jedno, kdy skončí. Přehrávač…
03 Souběh
- Kritická sekce a zámky Sdílená proměnná x je na začátku nula. Spustíš dvě vlákna, každé udělá tisíckrát x = x + 1. Na konci má být 2000.
- Semafory a monitory Semafor a mutex se v návodech pravidelně popisují jako dvě jména pro jednu věc: obojí čeká, obojí pouští dovnitř po…
- Uváznutí Vlákno A drží zámek 1 a potřebuje k práci ještě zámek 2. Vlákno B ve stejnou chvíli drží zámek 2 a potřebuje zámek 1…
- Meziprocesová komunikace Napíšeš ps aux | grep nginx a nepřijde ti na tom nic zvláštního. Přitom jsi právě spustil dva procesy s oddělenou…
04 Paměť
- Správa paměti Pustíš free -h na stroji s 16 GB paměti a ve sloupci free uvidíš 400 MB. První reakce bývá hledat, co paměť žere.
- Virtuální paměť a stránkování Spusť ten samý program dvakrát. Oba procesy přečtou adresu 0x400000 a každý dostane jiná data. Ani jeden o tom neví a…
- Výměnné algoritmy „Mám dost paměti, tak swap vypnu." Tuhle radu najdeš ve stovkách návodů a ve většině případů si tím uškodíš.
05 Soubory a zařízení
- Souborový systém Smažeš rm dvougigabajtový log, df -h ukáže pořád stejně volného místa a nginx, který ho měl otevřený, do něj zapisuje…
- Žurnálování a konzistence Přesuneš soubor do jiného adresáře. Na disku to znamená dvě změny: přidat záznam sem a odebrat ho tam. Disk umí zapsat…
- VFS a připojování Pusť cat na pět různých věcí: na soubor na NVMe disku, na soubor na USB klíčence naformátované na FAT, na soubor na…
- Vstup a výstup Zapíšeš gigabajt na disk a příkaz skončí za dvě vteřiny. Pět set megabajtů za vteřinu, sedí to na papíře i na…
- Uživatelé a práva „Root může všechno, ostatní skoro nic." Zní to jako poctivé shrnutí unixové bezpečnosti a vyvrátíš ho za deset vteřin.
06 Systém v provozu
- Start systému Zmáčkneš tlačítko a za dvacet vteřin máš přihlašovací obrazovku. Devětadevadesátkrát ze sta o tom nevíš nic a nemusíš.
- Virtualizace a kontejnery „Kontejner je odlehčený virtuální stroj." Tuhle větu najdeš i v oficiální dokumentaci a je nesprávná způsobem, který tě…
- Nástroje a diagnostika Server je pomalý. Devět lidí z deseti pustí top, podívá se na první řádek a řekne buď „procesor je vytížený", nebo…