Operační systémy
Obsah Soubory
markdown

Home.md

4.5 kB 76 řádků Změněno Zobrazit na GitHubu Stáhnout
markdown
# Operační systémy, od jednoho bitu v procesoru nahoru Tahle wiki vznikla z toho, že se operační systémy vysvětlují buď jako seznam pojmů kzapamatování, nebo jako sada příkazů k opsání. Ani jedno nefunguje. Seznam pojmů ti neřekne,**proč ta věc vypadá zrovna takhle**, a příkaz opsaný z návodu ti neřekne, **co se stane,až přestane fungovat**. To druhé je přitom jediné, co v praxi doopravdy potřebuješ. Cílem je, aby po přečtení nešlo o magii. Abys věděl, co se skutečně děje, když program spadnea stroj běží dál, když `free` ukáže padesát megabajtů volné paměti a všechno je v pořádku,nebo když se dva slušně napsané programy zaseknou na sobě navzájem - a proč se to občas rozbije. Předpokládám nulové vstupní znalosti. Nepředpokládám ale nezájem: kde je něco komplikované,píšu to komplikovaně a vysvětluju, místo abych to zjednodušil do neužitečné metafory.Prostředí, o kterém se tu píše, je Linux na běžném x86-64 stroji. Kde se to jinde chovápodstatně jinak, je to napsané u toho. ## Jak to číst Pokud začínáš, jdi popořadě. Stránky na sebe navazují a každá staví na předchozích. Pokud něco hledáš, koukni do [slovníčku](Slovnicek), kde jsou zkratky a pojmy na jednom místě. Pokud máš rozbitý stroj a spěcháš, jdi rovnou na [nástroje a diagnostiku](Nastroje-a-diagnostika)a vrať se sem, až bude klid. Pokud si chceš jen zopakovat podstatné, sekce **„Co si odnést"** na konci hlubokých stránekjsou psané přesně na to. ## Základy Bez tohohle je zbytek jen sada receptů, které občas nefungují a ty nevíš proč. - **[Co dělá operační systém](Co-dela-operacni-system)** - dvě role, které si odporují, a proč to není ta plocha s ikonkami- **[Režim jádra a uživatelský režim](Jadro-a-uzivatelsky-rezim)** - jeden bit v procesoru, na kterém stojí celá ochrana. Nejdůležitější stránka celé wiki.- **[Systémová volání](Systemova-volani)** - jediné dveře do jádra a proč to není volání funkce- **[Přerušení a výjimky](Preruseni-a-vyjimky)** - jak se hardware dostane ke slovu, aniž by se ho někdo ptal- **[Architektury jádra](Architektury-jadra)** - monolit, mikrojádro, hybrid a co z toho vyhrálo kde ## Procesy a vlákna - **[Procesy](Procesy)** - co je vlastně spuštěný program, `fork`, `exec`, zombie a sirotci- **[Vlákna](Vlakna)** - co sdílejí, co ne, a kdy se opravdu vyplatí- **[Přepínání kontextu](Prepinani-kontextu)** - proč registry nejsou to drahé na celé operaci- **[Plánování procesů](Planovani-procesu)** - kdo dostane procesor, od FCFS po EEVDF ## Souběh a synchronizace - **[Kritická sekce a zámky](Kriticka-sekce-a-zamky)** - proč `x = x + 1` nejsou jedna operace- **[Semafory a monitory](Semafory-a-monitory)** - semafor není mutex, a klasické úlohy, na kterých je vidět proč- **[Uváznutí](Uvaznuti)** - čtyři podmínky, ze kterých stačí zrušit jednu- **[Meziprocesová komunikace](Meziprocesova-komunikace)** - roury, sdílená paměť, sokety a signály ## Paměť - **[Správa paměti](Sprava-pameti)** - adresní prostor procesu a proč `malloc` skoro nikdy nevrátí NULL- **[Virtuální paměť a stránkování](Virtualni-pamet-a-strankovani)** - adresa, kterou vidíš, není adresa v paměti- **[Výměnné algoritmy](Vymenne-algoritmy)** - LRU, clock, swap, thrashing a proč swap nevypínat ## Soubory a zařízení - **[Souborový systém](Souborovy-system)** - jméno souboru není soubor, i-uzly a odkazy- **[Žurnálování a konzistence](Zurnalovani-a-konzistence)** - co přežije výpadek proudu a co ne- **[VFS a připojování](VFS-a-montovani)** - jedna vrstva, která předstírá, že je všechno soubor- **[Vstup a výstup](Vstup-a-vystup)** - ovladače, DMA, page cache a tři vyrovnávací paměti, na které se zapomíná- **[Uživatelé a práva](Prava-a-uzivatele)** - devět bitů, setuid a proč jádro nezná jména ## Systém v provozu - **[Start systému](Start-systemu)** - od zapnutí po přihlašovací výzvu, a kde se to láme- **[Virtualizace a kontejnery](Virtualizace-a-kontejnery)** - proč kontejner není malý virtuální stroj- **[Nástroje a diagnostika](Nastroje-a-diagnostika)** - postup, tahák a čtyři otázky, které se ptáš vždycky- **[Slovníček](Slovnicek)** - zkratky a pojmy na jednom místě --- *Psáno v roce 2026 proti jádru řady 6.x. Principy se mění pomalu, čísla verzí rychle. Kde je něco vázané na konkrétní verzi nebo rok, je to u toho napsané.*