Obsah

Operační systém NixOS

NixOS je nezávislá Linuxová distribuce, která zásadně mění způsob, jakým je operační systém spravován, konfigurován a aktualizován. Na rozdíl od tradičních distribucí (jako je Ubuntu, Debian nebo Arch Linux) je NixOS postaven na deklarativním a funkcionálním modelu správy systému.

Celý operační systém – včetně jádra, ovladačů, systémových služeb, uživatelských účtů a nainstalovaných aplikací – je definován v jediném konfiguračním souboru. Srdcem celého systému je balíčkovací manažer Nix.

Hlavní pilíře NixOS

NixOS stojí na třech základních principech, které z něj dělají unikátní nástroj pro vývojáře, systémové administrátory a nadšence do DevOps:

1. Deklarativní konfigurace

V běžném Linuxu konfigurujete systém imperativně: zadáváte příkazy jako `apt install nginx`, ručně upravujete soubory v `/etc` a spouštíte služby přes `systemctl`. V NixOS napíšete požadovaný stav systému do souboru `/etc/nixos/configuration.nix` (pomocí programovacího jazyka Nix) a systém se podle toho sám sestaví.

Příklad konfigurace (zapnutí SSH a instalace balíčků):

{ config, pkgs, ... }:
 
{
  boot.loader.systemd-boot.enable = true;
  networking.hostName = "nix-server";
 
  services.openssh.enable = true;
 
  environment.systemPackages = with pkgs; [
    vim
    git
    htop
  ];
 
  users.users.anna = {
    isNormalUser = true;
    extraGroups = [ "wheel" ]; # Povolení sudo
  };
}

2. Izolace a neměnnost (Immutability)

V NixOS neexistují standardní adresáře jako `/bin`, `/sbin`, `/lib` nebo `/usr/bin` plné sdílených knihoven. Všechny balíčky jsou uloženy v izolovaných adresářích uvnitř Nix store (adresář `/nix/store`).

Každá položka v Nix store má unikátní název začínající kryptografickým hashem (např. `/nix/store/h323ms…-git-2.40.0/`). Tento hash se počítá ze všech vstupů, které byly použity k sestavení balíčku (zdrojový kód, verze překladače, závislosti). Díky tomu je vyloučeno tzv. „závislostní peklo“ (Dependency Hell) – různé aplikace mohou bezproblémově používat různé verze stejné knihovny.

3. Atomické aktualizace a rollbacky

Když změníte konfiguraci a aplikujete ji příkazem `nixos-rebuild switch`, NixOS vytvoří novou generaci systému. Původní generace ale zůstává nedotčená.

Výhody a nevýhody

Výhody:

Nevýhody:

Pokročilé koncepty: Flakes a Home Manager

Moderní ekosystém NixOS se opírá o dva populární komunitní nástroje:


Související články:

Tagy: linux distribuce nixos nix devops configuration_management immutability