Co je Linux

Kernel, distra, GNU — jak Linux vznikl a jak zapadá.

Linux je jádro operačního systému — program, který sedí mezi tvým hardwarem a vším ostatním a rozhoduje, kdo dostane procesor, paměť a přístup k disku. Sám o sobě není „celý systém": to, co si stáhneš a nainstaluješ (Fedora, Ubuntu, Debian…), je distribuce — jádro Linux + hromada programů okolo. Až pochopíš tenhle rozdíl, přestane ti dávat hlavu spoustu zmatků.


Pár pojmů na úvod

  • Kernel (jádro) = srdce systému. Spravuje hardware (CPU, paměť, disky, síť) a rozděluje ho mezi programy. „Linux" je technicky jen tohle.
  • Distribuce (distro) = kernel Linux + shell + nástroje + balíčkovací systém + (často) grafické prostředí, sbalené dohromady. Fedora, Debian, Ubuntu, Arch — všechno jsou distra nad stejným jádrem.
  • GNU = sada základních nástrojů (shell, ls, cp, kompilátor…), bez kterých by kernel byl k ničemu. Proto se puristicky říká „GNU/Linux".
  • Open source = zdrojový kód je veřejný, smíš ho číst, měnit i šířit. Proto existuje tolik dister.
  • User space vs kernel space = kód běží buď v chráněném režimu jádra (plný přístup k hardwaru), nebo v „user space" (běžné programy, izolované, musí o vše požádat jádro).

Odkud se Linux vzal (v kostce)

  • Unix (1969, Bell Labs) — praotec. Zavedl myšlenky, které Linux dědí dodnes: všechno je soubor, malé nástroje spojované rourami, textová konfigurace. Byl ale komerční a zavřený.
  • GNU (1983, Stallman) — projekt na svobodnou náhradu Unixu. Vznikly nástroje, ale chybělo jádro.
  • Linux (1991, Linus Torvalds) — student ve Finsku napsal vlastní jádro „jen tak pro zábavu" a uvolnil ho. Spojení GNU nástroje + Linux jádro dalo kompletní svobodný systém.

💡 Proto Android, servery v cloudu, chytré televize, routery i superpočítače můžou běžet na „Linuxu" a vypadat úplně jinak — sdílejí jádro, liší se vším okolo.


Jak to do sebe zapadá

Program nikdy nesahá na hardware přímo. Když chce číst soubor nebo poslat data po síti, požádá jádro přes tzv. syscall (systémové volání). Jádro požadavek ověří (máš práva?), provede a vrátí výsledek. Tahle hranice je celý základ bezpečnosti i stability: spadlý program neshodí jádro.


Proč tolik distribucí a která

Distra se liší hlavně balíčkovacím systémem, rychlostí vydávání a filozofií:

  • Debian / Ubuntu (balíčky .deb, apt) — stabilní, obrovská komunita, výchozí volba serverů.
  • Fedora / RHEL / Rocky (balíčky .rpm, dnf) — novější technologie, blízko „enterprise" světu.
  • Arch (pacman, rolling release) — vždy nejnovější, postav si to sám, skvělá dokumentace (wiki).

🚩 Nehoň „nejlepší distro". Pro učení je jedno, kterou zvolíš — koncepty jsou stejné napříč všemi (procesy, práva, systemd, síť). Rozdíly jsou hlavně v tom, jak se instaluje software.


Co znamená „všechno je soubor"

Unixová myšlenka, kterou Linux dovádí do extrému: disky, procesy, síťová zařízení i systémové informace se tváří jako soubory. Klávesnice je soubor, ze kterého čteš. Disk je soubor, do kterého zapisuješ. Informace o běžícím procesu najdeš jako soubory v /proc. Díky tomu na úplně různé věci stačí stejné nástroje (cat, >, grep) — což uvidíš v dalších kapitolách pořád dokola.


Failure modes — časté omyly začátečníků

  • „Linux = jen příkazová řádka." Má i grafiku (KDE, GNOME); terminál je jen nejmocnější rozhraní.
  • „Linux nemá viry, takže je neprůstřelný." Má menší plochu útoku, ale bezpečnost stojí na aktualizacích, právech a konfiguraci — ne magicky sama.
  • „Distro X je nejlepší." Záměna nástroje za koncept. Naučíš se principy a přeskočíš mezi distry snadno.
  • „Když něco nejde, přeinstaluju systém." Windows reflex. V Linuxu skoro vždy najdeš proč to spadlo (logy, journald) a opravíš to cíleně.

🛠️ Cvičení

  1. Zjisti, na čem jedeš. Najdi příkaz, který ti vypíše název a verzi tvé distribuce, a jiný, který ti ukáže verzi jádra. (Nápověda: /etc/os-release, uname.) Proč jsou to dvě různé věci?
  2. Kernel vs distro vlastními slovy. Vysvětli kamarádovi na jednu větu rozdíl mezi „Linux" a „Ubuntu". Kde je v tom GNU?
  3. Najdi proces jako soubor. V /proc je pro každý běžící proces složka pojmenovaná jeho číslem (PID). Zkus tam nahlédnout a vysvětli, jak to souvisí s „všechno je soubor".
  4. Vyber si distro a zdůvodni. Pro tři situace (domácí server, pracovní notebook, učení do hloubky) navrhni distro a řekni proč — podle balíčkování a filozofie, ne podle vzhledu.
Náčrt řešení — rozbal, až si cvičení zkusíš sám
  1. Distro vs jádro — distribuci zjistíš z /etc/os-release (např. cat /etc/os-release), verzi jádra příkazem uname -r (celé uname -a). Jsou to dvě věci, protože stejné jádro (uname) můžou sdílet různé distribuce a naopak jedna distribuce dostává novější jádra v čase. Pozor: „verze systému" (Fedora 44) ≠ „verze jádra" (6.x).
  2. Kernel vs distro — „Linux" je jen jádro (spravuje hardware a procesy); „Ubuntu" je distribuce = jádro Linux + GNU nástroje (shell, ls, cp…) + balíčkovač + prostředí, sbalené dohromady. GNU dodává tu „obal" kolem jádra. Pozor: bez userlandu (GNU) je holé jádro k ničemu.
  3. Proces jako soubor — v /proc/<PID>/ najdeš např. status, cmdline, fd/ (otevřené soubory). Není to skutečná složka na disku, ale „okno" jádra vystavené jako soubory — přesně ukázka „všechno je soubor": na čtení stavu procesu stačí cat, žádné speciální API. Pozor: /proc je virtuální, po rebootu se generuje znovu.
  4. Výběr distra — domácí server: Debian (stabilní, dlouhá podpora); pracovní notebook: Fedora nebo Ubuntu (novější HW podpora, velká komunita); učení do hloubky: Arch (postavíš si to ručně, pochopíš každý kus, skvělá wiki). Pozor: rozhoduj podle balíčkování/filozofie a podpory, ne podle vzhledu — ten si nastavíš.

🧠 Otázky & odpovědi

Jaký je rozdíl mezi Linuxem a distribucí?

Linux je jádro — program, co spravuje hardware, paměť a procesy. Distribuce je celý balík: jádro Linux + shell a userland nástroje (GNU) + balíčkovací systém + často grafické prostředí, sbalené a odladěné dohromady (Fedora, Debian, Ubuntu…). Když někdo řekne „nainstaloval jsem Linux", myslí tím skoro vždy distribuci. Koncepty (procesy, práva, systemd) jsou přitom napříč distry stejné.

Co znamená, že v Linuxu je všechno soubor?

Že Linux vystavuje i věci, které nejsou obyčejná data — disky, procesy, síťová zařízení, systémové informace — jako soubory, ze kterých se dá číst a do kterých se dá zapisovat. Díky tomu na spoustu různých věcí stačí stejné nástroje (cat, >, grep, less) místo speciálního API pro každou. Uvidíš to celým kurzem: /proc pro procesy, /dev pro zařízení, /sys pro nastavení jádra.

Proč nesahají programy na hardware přímo?

Kvůli bezpečnosti a stabilitě. Program běží v „user space" a kdykoli potřebuje hardware (číst disk, poslat data po síti), požádá jádro přes systémové volání (syscall). Jádro požadavek ověří (máš práva?) a provede. Tahle hranice zajišťuje, že spadlý nebo zlomyslný program neshodí celý systém ani nesáhne na cizí data — může jen to, co mu jádro dovolí.

Kterou distribuci si mám vybrat na učení?

Skoro na tom nezáleží — principy jsou stejné. Praktická rada: Fedora nebo Ubuntu pro pohodlný start (novější hardware podpora, velká komunita, hodně návodů). Kdo chce rozumět každému kousku, ať zkusí Arch (postavíš si systém ručně a jeho wiki je nejlepší dokumentace v Linux světě). Neztrácej čas hledáním „té nejlepší" — vyber jednu, nauč se koncepty, a přeskok jinam pak zvládneš za odpoledne.