BSD vs. macOS vs. Linux

BSD vs. macOS vs. Linux

Tři světy s jedním dědictvím Unixu

BSD, macOS a Linux sdílejí kořeny v Unixu, ale liší se ve filozofii, licencování, architektuře jádra, ekosystému i provozních nástrojích. macOS staví na projektu Darwin (XNU + userland převážně z BSD), BSD představuje rodinu samostatných systémů (FreeBSD, OpenBSD, NetBSD), zatímco Linux je jádro, kolem kterého vznikají distribuce (Debian, Fedora, Arch, Ubuntu aj.). Porozumění rozdílům je zásadní při volbě platformy pro servery, vývoj, bezpečnost či desktop.

Historie a rodokmen

  • BSD – vychází z původního Berkeley Software Distribution (70.–90. léta); dnešní větve: FreeBSD (výkon, síť, storage), OpenBSD (bezpečnost, auditovaná základna), NetBSD (portovatelnost, široké HW spektrum).
  • macOS – komerční OS Apple. Základ tvoří open-source Darwin (jádro XNU, launchd, části BSD userlandu) plus proprietární vrstvy (Aqua, AppKit, Core* frameworky) a uzavřené integrace.
  • Linux – jádro vytvořené Linusem Torvaldsem (1991). Okolo jádra vznikají distribuce s vlastním balíčkováním, init systémem, desktopem a politikami.

Licencování a dopady na ekosystém

  • BSD licence – permisivní (minimální omezení). Umožňuje začlenit kód do proprietárních produktů bez povinnosti publikovat změny (např. části BSD v macOS, síťové zásobníky v komerčních zařízeních).
  • GPL/LGPL (Linux, glibc) – copyleft: modifikace šířené dále musí zůstat otevřené (u LGPL pro knihovny je mírnější). Podporuje otevřený vývoj, ale brání uzavíraní odvozenin.
  • Proprietární vrstvy (macOS) – uzavřené GUI, služby, ovladače; otevřené jádro Darwin lze studovat, ale celý OS je uzavřený.

Architektura jádra a systémových vrstev

  • BSD jádra – monolitická s modulárností (kloadable modules), tradiční VM, VFS, vyspělý síťový stack; FreeBSD přidává jails, ZFS integraci a moderní SMP scheduler.
  • XNU (macOS)hybridní jádro: Mach mikrojádro (IPC, plánování, paměť) + BSD vrstva (POSIX, síť, procesy) + I/O Kit (ovladače v C++). Nad tím launchd jako jediný init a správce služeb.
  • Linux – monolitické jádro s dynamickými moduly, cgroups/namespaces (kontajnery), eBPF pro bezpečné sondy v jádře, rozsáhlá podpora ovladačů v upstreamu.

Uživatelský prostor a nástroje

Všechny systémy poskytují POSIX nástroje, ale detaily se liší:

  • BSD userlandrc skripty, pf firewall (OpenBSD/FreeBSD), klasické utilitiy s „BSD dialektem“ přepínačů.
  • macOS – POSIX nástroje kombinované s Apple specifiky (launchctl, scutil, diskutil, codesign, spctl), zjednodušená správa služeb přes launchd.
  • Linux – často systemd (správa jednotek), GNU coreutils s mírně odlišnou syntaxis (např. sed, tar), bohatý výběr utilit dle distribuce.

Inicializace a správa služeb

  • BSD – tradičně /etc/rc a rc.d, v některých případech podpora runit/jiných initů; jednoduchost a čitelnost.
  • macOSlaunchd (plisty), sjednocuje init, cron i socket activation; úzká integrace s GUI a sandboxy.
  • Linux – převažuje systemd (journald, timers, cgroups integrace), alternativy (OpenRC, runit) v menšině.

Síťové subsystémy

  • BSD – reputace kvalitního TCP/IP stacku, pf firewall, dummynet traffic shaping; FreeBSD využíván v routerech, load balancerech a storage appliance.
  • macOS – síť vychází z BSD vrstvy, správa přes systémové frameworky (NetworkExtension) a nástroje (networksetup).
  • Linuxiptables/nftables, tc shaping, pokročilé směrování (iproute2), masivní ekosystém pro SDN, eBPF/XDP pro vysokorychlostní filtry.

Souborové systémy a storage

  • BSDZFS (FreeBSD: first-class občan), snapshoty, klony, send/receive; UFS2 pro jednodušší scénáře.
  • macOSAPFS (nativní šifrování, snapshoty, klony), dříve HFS+. Silná integrace s Time Machine a FileVaultem.
  • Linuxext4 (stabilní default), XFS (velké systémy), Btrfs (snapshoty, subvolumes, send/receive), ZFS dostupné jako modul mimo upstream.

Balíčkovací systémy a distribuce softwaru

  • BSD – binární pkg a Ports (build ze zdrojů) s jemnou kontrolou nad volbami.
  • macOS – App Store pro sandboxované GUI aplikace; komunitní správci: Homebrew (brew), MacPorts, Conda pro data science.
  • LinuxAPT (Debian/Ubuntu), DNF (Fedora/RHEL), pacman (Arch), univerzální formáty Flatpak/Snap/AppImage.

Bezpečnostní modely a hardening

  • OpenBSD – důraz na formální audit, pledge/unveil, bezpečné defaulty, LibreSSL, minimalizace útokové plochy.
  • FreeBSDjails (lehké izolace), Capsicum capability framework, Mandatory Access Control moduly.
  • macOSSystem Integrity Protection (SIP), App Sandbox, Gatekeeper, notarizace, povinné podepisování jaderných rozšíření (nově system extensions), TCC pro přístup k citlivým zdrojům.
  • LinuxSELinux/AppArmor, seccomp, namespaces/cgroups, integrita jádra (lockdown), eBPF LSM hooky; bezpečnost se liší dle distribuce.

Virtualizace a izolace

  • BSDjails (procesy sdílejí jádro, izolované FS/NET), hypervizor bhyve (FreeBSD), lehké a efektivní pro hosting a multitenancy.
  • macOSHypervisor.framework pro virtualizaci, kontejnery se typicky provozují přes VM (Docker Desktop spouští Linux VM), silné aplikační sandboxy.
  • Linux – nativní namespaces + cgroups (Docker, Podman, Kubernetes), LXC/LXD, KVM pro plnou virtualizaci.

Desktop a vývojářské frameworky

  • BSD – nativní desktop není hlavní fokus; lze použít KDE, GNOME, Xfce; časté serverové/embedded nasazení.
  • macOS – GUI Aqua, frameworky Cocoa/AppKit, SwiftUI, nástroje Xcode; špičková integrace s ekosystémem Apple.
  • Linux – volitelná desktopová prostředí (GNOME, KDE Plasma, Cinnamon aj.), široká nabídka toolchainů (GCC/Clang, CMake, Ninja), DevOps-first prostředí.

Kompatibilita, ABI a spouštění cizích binárek

  • BSD – FreeBSD má Linuxulator (zachytávání Linux syscalls) pro běh mnoha linuxových binárek; stabilní ABI mezi minor verzemi.
  • macOS – přechod z x86_64 na ARM64 (Apple Silicon) s Rosetta 2 emulací; užší kontrola nad ABI, starší rozšíření jádra postupně nahrazena system extensions.
  • Linux – ABI stabilita v user-space (glibc), kernel ABI pro moduly se nemrazí (vyžaduje rebuild modulů), široká kompatibilita knihoven.

Výkon a škálování

  • FreeBSD – efektivní síťové I/O (netmap), ZFS performance pro storage, stabilní latence v síťových appliance.
  • macOS – optimalizace pro hardware Apple (SoC, GPU, Neural Engine), výborný single-node desktopový výkon, méně vhodný jako generický serverový OS.
  • Linux – dominantní v cloudu a HPC; škálování na tisíce jader, NUMA optimalizace, obrovský výběr plánovačů a I/O stacků.

Správa hardwaru a ovladače

  • BSD – menší množství ovladačů než Linux, ale stabilní a kvalitně auditované; některé enterprise karty (NIC, HBA) s výbornou podporou.
  • macOS – ovladače kurátorované Applem; skvělé pro zařízení Apple, omezené pro generický hardware.
  • Linux – nejširší HW podpora, rychlé přebírání novinek (GPU, akcelerátory), upstream-first model.

Vývojová zkušenost a nástroje

  • BSD – konzistentní základní systém (jádro + userland z jednoho zdroje), Ports pro jemné volby, čisté POSIX prostředí.
  • macOS – Unixový shell (zsh), Command Line Tools/Xcode, snadný cross-platform vývoj (Swift, Obj-C, C/C++), Homebrew pro open-source toolchainy.
  • Linux – de facto standard pro serverový a cloud-native vývoj (containers, systemd, cgroups), CI/CD a infrastruktura jako kód primárně míří na Linux.

Praktické důsledky pro použití

  • Servery a cloud – Linux dominuje díky kontejnerům, KVM, orchestrace (Kubernetes). FreeBSD se uplatňuje v síťových appliance, storage a CDN.
  • Desktop/Notebook – macOS exceluje v UX, kreativních a vývojářských nástrojích; Linux je vysoce přizpůsobitelný, vhodný pro DevOps a open-source workflow; BSD spíše pro specializace.
  • Bezpečnost – OpenBSD pro bezpečné defaulty, macOS s důrazem na integritu systému a podpisy, Linux s bohatým výběrem LSM (SELinux/AppArmor) a sandboxů.

Rozdíly v příkazech a správě

  • Síť – BSD/macOS: ifconfig, pfctl; Linux: ip, nft/iptables.
  • Služby – BSD: service foo start, rc skripty; macOS: launchctl load/unload; Linux: systemctl.
  • Disky – macOS: diskutil; Linux: lsblk, blkid, mount; FreeBSD: gpart, zpool/zfs.

Ekosystém a komunita

  • BSD – menší, ale vysoce odborné komunity; důraz na kvalitu a konzistenci základního systému.
  • macOS – oficiální dokumentace Apple + aktivní OSS komunita kolem Homebrew/MacPorts; uzavřenější směrem k nízkoúrovňovým změnám.
  • Linux – masivní open-source základna, rychlé vydávání kernelu a balíků, diverzita distribucí pro odlišné use-cases.

Case studies: typické volby

  • High-performance CDN nebo storage appliance – FreeBSD kvůli ZFS, jails a síťové efektivitě.
  • Vývoj multiplatformních aplikací a mobilní vývoj iOS/macOS – macOS díky Xcode, simulátorům a Apple toolchainům.
  • Cloud-native microservices – Linux s Kubernetes, containers a bohatým DevOps ekosystémem.

Závěr: jak vybírat mezi BSD, macOS a Linuxem

Volba závisí na prioritách: pokud je klíčová otevřenost a cloud-native, povede často Linux; pokud bezpečné defaulty a jednoduchost základního systému, dává smysl BSD (zejména FreeBSD/OpenBSD); pokud uživatelské prostředí, integrace s hardwarem Apple a vývoj pro ekosystém Apple, vyhraje macOS. Přestože sdílejí unixové kořeny, jejich odlišná filozofie se projevuje v každodenní administraci, vývoji i nasazení.

Pridaj komentár

Vaša e-mailová adresa nebude zverejnená. Vyžadované polia sú označené *