Co je Linux a kde se používá
Linux je rodina svobodných operačních systémů založených na Linuxovém jádru a uživatelském prostoru pocházejícím primárně z projektu GNU. Díky modulární architektuře a otevřenému vývoji běží od embedded zařízení (routery, IoT, automotive) přes servery, superpočítače a cloud až po desktopové distribuce a mobilní platformy (Android).
Historie a licencování
- 1991: Linus Torvalds uvolňuje první verzi jádra pro architekturu x86.
- GNU nástroje poskytují shell, kompilátory a základní uživatelský prostor.
- Licence GPLv2: zajišťuje copyleft – modifikace jádra musí zůstat otevřené.
- Ekosystém vzniká kolaborací komunit, univerzit a firem (distribuce, ovladače, subsystémy).
Architektura jádra: monolit s moduly
Linuxové jádro je monolitické s možností dynamicky načítaných modulů (ovladače, souborové systémy, protokoly). Klíčové subsystémy:
- Správa procesů a plánovač (CFS): spravedlivé sdílení CPU, priority, affinity, NUMA.
- Správa paměti: stránkování, page cache, HugeTLB/THP, cgroups v2, memory compaction, zram/zswap.
- Vstupně-výstupní a bloková vrstva: multi-queue (blk-mq), I/O plánovače, io_uring pro nízkolatenční asynchronní I/O.
- Síťový stack: Netfilter/nftables, TC/Qdisc, XDP, eBPF hooky, tun/tap, WireGuard.
- Bezpečnost: DAC, POSIX ACL, Linux capabilities, LSM (SELinux, AppArmor), seccomp-bpf, integrita (IMA/EVM).
- Zařízení: udev, devtmpfs, subsystémy (USB, PCI, DRM/KMS, HID, ALSA).
- Virtualizace: KVM (hardwarová akcelerace), virtio/virtiofs, VFIO/IOMMU.
Boot proces: od firmwaru k uživatelskému prostoru
- Firmware (BIOS/UEFI) inicializuje hardware a předá řízení bootloaderu.
- Bootloader (GRUB/systemd-boot) načte kernel a initramfs.
- Kernel detekuje zařízení, připojí rootfs, spustí proces
PID 1. - Init systém (systemd, OpenRC, runit) startuje služby a cíle (targets/runlevels).
Distribuce a správa balíčků
- Debian/Ubuntu (APT, dpkg), RHEL/CentOS/Alma/Rocky/Fedora (DNF/RPM), SUSE (zypper/RPM), Arch (pacman), Alpine (apk, musl libc).
- Modely aktualizací: bodové vydání (point releases) vs. rolling release, LTS a enterprise podpora.
- Alternativy: Nix/Guix (deklarativní), Flatpak/Snap/AppImage (desktopové sandboxované aplikace).
Souborové systémy a správa úložišť
- Ext4: výchozí, žurnálování, stabilita.
- XFS: velké souborové systémy, paralelismus.
- Btrfs: copy-on-write, snapshoty, subvolume, send/receive, kontrolní součty, komprese.
- ZFS na Linuxu: COW, pokročilé RAID-Z, deduplikace (licenční specifika mimo jádro).
- LVM2: logické svazky, thin provisioning, snapshoty; mdadm pro softwarový RAID.
- F2FS: optimalizace pro flash/NAND paměti.
- Síťové souborové systémy: NFSv4, SMB3, 9p, CephFS, GlusterFS.
Síťování a bezpečnost provozu
- Konfigurace:
ip,ss,ethtool, systemd-networkd/NetworkManager, netplan. - Firewall a filtrování: nftables (nástupce iptables), firewalld, UFW; TC pro shaping/policing, fq_codel/cake proti bufferbloatu.
- Tunneling/VPN: WireGuard, IPsec, GRE/VXLAN/Geneve; bridging/bonding/LACP.
- Zero trust a identita: strongSwan, SSSD, Kerberos, PAM, FIDO2/U2F.
Init, služby a logování
- systemd: jednotky (units) – služby, sokety, časovače, integrace cgroups, cíle (targets), sandboxing (ProtectSystem, PrivateTmp, CapabilityBoundingSet).
- Journald a tradiční syslog (rsyslog, syslog-ng), rotace logů.
- Čas: chrony/systemd-timesyncd, NTP/PTP pro přesnou synchronizaci.
Virtualizace, kontejnery a orchestrace
- KVM/QEMU: plná virtualizace, libvirt/virsh, virtio, cloud-init.
- Namespaces a cgroups: izolace PID/NET/IPC/MNT/UTS/USER; řízení CPU/paměti/I/O.
- LXC/LXD a Docker/Podman: OCI image, overlayfs, rootless kontejnery.
- Kubernetes: CRI/CNI/CSI ovladače, kubelet, containerd/cri-o, síťová politika (Calico/Cilium), service mesh (Istio/Linkerd).
Bezpečnostní model
- DAC & ACL: vlastník/skupina/práva, POSIX ACL pro jemnozrnný přístup.
- Capabilities: granularizace privilegií root (např. CAP_NET_ADMIN).
- LSM: SELinux (kontextové politiky), AppArmor (profilování), Smack; auditd/auditctl.
- Sandboxing: seccomp-bpf, namespaces, Landlock, Flatpak portály, systémové MAC politiky.
- Aktualizace: livepatch (kpatch/kGraft), automatizace bezpečnostních oprav, reproducible builds.
- Šifrování: dm-crypt/LUKS2, fscrypt (per-file), TPM 2.0 integrace, FIDO2.
Vývojářský ekosystém
- Toolchain: GCC/Clang, glibc nebo musl, binutils, make/ninja, CMake/Meson.
- Jazyky: C/C++, Rust (rustc/LLVM, Rust-for-Linux), Go, Python, Java.
- Debugging & profiling: gdb/lldb, strace/ltrace, perf, eBPF (bcc/bpftrace), valgrind, systemtap.
- Distribuční build systémy: OBS (SUSE), Koji (Fedora/RHEL), Launchpad (Debian/Ubuntu).
Observabilita a výkon
- Metodika: měřit → analyzovat → optimalizovat; sledovat CPU, paměť, I/O, síť, latence.
- Nástroje: top/htop/atop, vmstat/iostat, sar, pidstat, perf record/report, bpftrace,
ss -tinap,ethtool -S. - Kernelové technologie: eBPF/XDP pro paketovou cestu, kprobes/tracepoints/uprobes, io_uring.
- Monitoring: Prometheus + node_exporter, Grafana, journald/rsyslog → Loki/ELK/OpenSearch.
Desktopová prostředí a grafický stack
- DE: GNOME, KDE Plasma, Xfce, Cinnamon, MATE; správci oken (i3, sway).
- Grafika: DRM/KMS v jádru, Mesa (OpenGL/Vulkan), Wayland (náhrada X.Org), PipeWire (audio/video).
- Správa balíků a sandbox: Flatpak (portály), Snaps; fontconfig, motivy/ikony.
Linux v cloudu a na serveru
- Cloud-native: immutable image, boot přes cloud-init/Ignition, systemd-timers pro plánované úlohy.
- SLA a spolehlivost: vysoká dostupnost (Pacemaker/Corosync), clustering, keepalived/VRRP, rozdělení rolí (control/data/storage).
- Bezstavové vs. stavové služby: databáze (PostgreSQL, MySQL, Redis), storage vrstvy (Ceph, Longhorn), loadbalancing (HAProxy, NGINX, Envoy).
Embedded, real-time a speciální use-casy
- Yocto/OpenEmbedded, Buildroot: custom obrazy pro zařízení.
- PREEMPT_RT: deterministické latence, izolace CPU, IRQ threading.
- Automotive/Industrial: AGL, CIP, OPC UA, TSN (Time-Sensitive Networking).
Tabulka: klíčové komponenty Linuxového systému
| Komponenta | Role | Typické nástroje |
|---|---|---|
| Jádro | Správa HW, plánování, paměť, bezpečnost | config, modprobe, sysctl, /proc, /sys |
| Init/logování | Start služeb, evidence událostí | systemd, journald, rsyslog |
| Balíčky | Instalace/aktualizace SW | apt/dnf/zypper/pacman/apk |
| Síť | Konektivita, firewall, QoS | ip, nmcli, nft, tc, wg |
| Úložiště | FS, LVM, RAID, šifrování | mkfs, lvm, mdadm, cryptsetup |
| Virtualizace | VM a kontejnery | kvm, qemu, libvirt, podman, docker |
| Observabilita | Měření a ladění | perf, bpftrace, sar, iostat |
Checklist: zavedení Linuxu v produkci
- Volba distribuce podle podpory, ekosystému a životního cyklu.
- Definice bezpečnostních politik (LSM, firewall, aktualizační okna, zálohování).
- Standardizace image (CIS benchmarky, hardening, minimální footprint).
- Automatizace (Ansible/Puppet/Salt, IaC – Terraform pro cloud, deklarativní konfigurace).
- Monitoring a logování (metriku + log + trace), alerting a SLO/SLI.
- Disaster recovery: zálohy, testy obnovy, dokumentace běžných operací (runbooks).
Tipy pro výkon a spolehlivost
- Oddělte kritické workloady pomocí cgroups, cpuset a NUMA politiky.
- Pro vysokou propustnost sítě zvažte XDP/eBPF, správnou velikost ring bufferů a offloadů.
- Pro nízkou latenci I/O použijte io_uring a moderní NVMe stack, zvažte fstrim a mount volby (noatime, lazytime).
- U workloadů citlivých na jitter nastavte IRQ affinity, CPU isolation a rtprio podle potřeby.
Best practices bezpečnosti
- Princip nejmenších oprávnění, bezrootové služby, capabilities místo plného root přístupu.
- Aktivní LSM (SELinux nebo AppArmor) v režimu enforcing, pravidelný audit logů.
- Oddělené mount pointy (
noexec,nodev,nosuid), read-only rootfs u kontejnerů/immutable buildů. - Rotace a patchování (kernel livepatch, automatizované bezpečnostní aktualizace v údržbových oknech).
- Ověřování integrity (AIDE, IMA), bezpečná správa tajemství (pass, sops, vault).
Závěr
Linux poskytuje robustní, škálovatelný a bezpečný základ pro moderní infrastrukturu – od mikrokontrolérů po globální clustery. Otevřený vývoj, široká nabídka distribucí a bohatý ekosystém nástrojů umožňují systém přizpůsobit specifickým požadavkům. Úspěšné nasazení stojí na disciplíně: standardizaci, automatizaci, měření a průběžném zabezpečení.



























