====== Linux Kernel (Jádro Linuxu) ====== **Linux Kernel** je open-source jádro typu Unix, které v roce 1991 začal vyvíjet Linus Torvalds. Jádro samotné není celý operační systém, ale jeho "mozek". Zajišťuje, aby aplikace mohly využívat [[cpu|procesor]], paměť a periferie, aniž by se musely starat o technické detaily konkrétního hardwaru. ---- ====== Hlavní funkce jádra ====== Jádro plní čtyři kritické úlohy: 1. **Správa procesů:** Rozhoduje, který program bude v daný moment využívat [[cpu|procesor]] a na jak dlouho (tzv. plánování - scheduling). 2. **Správa paměti:** Přiděluje aplikacím části operační paměti ([[ram|RAM]]) a zajišťuje, aby jedna aplikace nepřepisovala data jiné aplikace (pomocí [[pointer|ukazatelů]] a virtuální paměti). 3. **Ovladače zařízení:** Funguje jako tlumočník mezi hardwarem (grafická karta, disk, klávesnice) a softwarem. 4. **Systémová volání (System Calls):** Poskytuje rozhraní, přes které aplikace žádají jádro o služby (např. "otevři tento soubor" nebo "odešli data na síť"). ---- ====== Architektura: Monolitické jádro ====== Linux je technicky **monolitické jádro**. To znamená, že celý operační systém (včetně ovladačů a souborových systémů) běží v jednom privilegovaném paměťovém prostoru. Moderní Linux však využívá **LKM (Loadable Kernel Modules)**: * Umožňuje přidávat nebo odebírat funkce (např. ovladač pro novou tiskárnu) za běhu systému bez nutnosti restartu. * Tím kombinuje rychlost monolitu s flexibilitou modulárního designu. ---- ====== Linux Kernel a Kontejnery ====== Právě v jádře Linuxu vznikly technologie, které umožnily revoluci v podobě [[container|kontejnerizace]] (Docker): * **Namespaces:** Jádro dovoluje izolovat pohled aplikace na systém (aplikace v kontejneru si myslí, že je v systému sama). * **Cgroups (Control Groups):** Jádro omezuje zdroje (kolik % CPU nebo kolik MB RAM může kontejner dostat). ---- ====== Verze a distribuce ====== Jádro je vyvíjeno celosvětovou komunitou pod licencí GPLv2. * **Mainline:** Nejnovější verze vyvíjená Linusem Torvaldsem a komunitou. * **LTS (Long Term Support):** Verze jádra, které jsou udržovány a záplatovány po dobu několika let (vhodné pro servery). Samotné jádro najdeme v tisících zařízení – od superpočítačů a serverů, přes telefony s Androidem, až po chytré ledničky a vesmírné sondy. ---- ====== Srovnání: Kernel Mode vs. User Mode ====== ^ Režim ^ Pravomoci ^ Co zde běží ^ | **Kernel Mode** | Úplný přístup k hardwaru. | Jádro, ovladače, správa paměti. | | **User Mode** | Omezený přístup, izolace. | Webový prohlížeč, hry, [[c++|aplikace]]. | Pokud v User Mode dojde k chybě, spadne jen jedna aplikace. Pokud dojde k chybě v Kernel Mode (tzv. **Kernel Panic**), celý systém se zastaví. ---- //Související pojmy: OS, CPU, RAM, Container, Docker, C++, Unix, Ovladač.//