NixOS je nezavisna Linux distribucija zasnovana na jedinstvenom konceptu: celokupan sistem se konfiguriše i vodi preko deklarativnog koda.

Umesto da ručno izmenjuješ fajlove u /etc, instaliraš pakete preko tradicionalnih package manager-a (apt, pacman, dnf) i pamtiš šta si sve podesio, u NixOS-u sve definišeš unutar jednog glavnog fajla — /etc/nixos/configuration.nix.

Evo ključnih stubova na kojima počiva NixOS:

1. Deklarativna konfiguracija (Sistem kao kod)

U NixOS-u u konfigurasijskom fajlu pišeš šta želiš da tvoj sistem sadrži. Na primer, definišeš korisnike, mrežne postavke, koji grafički interfejs koristiš i listu svih aplikacija. Kada izmeniš fajl, pokreneš komandu:

Bash

sudo nixos-rebuild switch

NixOS tada analizira tvoj kod i dovodi sistem u tačno definisano stanje.

2. Imutabilnost i /nix/store

Tradicionalni Linux distribuira fajlove po standardnim folderima (/usr/bin, /lib, /etc). NixOS to radi potpuno drugačije:

  • Svi paketi i verzije se čuvaju u /nix/store u posebnim read-only folderima čija imena sadrže jedinstveni hash (npr. /nix/store/h3d8g...-python-3.11).
  • Nema konflikta zavisnosti (Dependency Hell): Dve različite aplikacije mogu bez problema koristiti potpuno različite verzije iste biblioteke.
  • Zbog ovoga, korenski sistem je praktično imutabilan (nepromenljiv) i zaštićen od slučajnog kvarenja.

3. Atomske nadogradnje i Instant Rollback (Atomski skokovi i vraćanje unazad)

Svaki put kada primeniš novu konfiguraciju, NixOS kreira novu generaciju sistema.

  • Ako ažuriranje pokvari neki drajver ili aplikaciju, ne moraš da popravljaš sistem.
  • Tokom podizanja sistema (u boot loader-u) možeš jednostavno izabrati prethodnu generaciju u kojoj je sve radilo.
  • Sistem možeš vratiti unazad i jednom komandom:Bashsudo nixos-rebuild switch --rollback

4. Reproducibilnost (Isti sistem na više mašina)

Ako želiš da preslikaš svoj kompletno podešen operativni sistem (sa svim aplikacijama, podešavanjima za Vim, Git, mrežnim parametrima i fontovima) na potpuno novu mašinu ili laptop:

  • Dovoljno je da kopiraš svoj configuration.nix (ili Nix Flake) na novu mašinu i pokreneš build.
  • Dobićeš 100% identifikacija identičan sistem bez ručnog instaliranja i podešavanja.

Kome je NixOS namenjen (i koje su mu mane)?

Prednosti:

  • Fantastičan za napredne korisnike, Developere, DevOps inženjere i SysAdmin-e.
  • Nemoguće je “slomiti” sistem do mere da se ne može vratiti u radno stanje za par sekundi.
  • Idealan za upravljanje serverima i reprodukciju identičnih okruženja za razvoj.

Mane:

  • Strma kriva učenja: Zahteva učenje Nix jezika (funkcionalni jezik za konfiguraciju).
  • Odstupanje od Linux standarda (FHS): Klasični binarni fajlovi preuzeti sa interneta (koji očekuju /bin/bash ili /lib64) neće raditi “out of the box” bez Nix pakovanja ili kontejnera/shell-a (poput steam-run ili nix-ld).

Leave a Reply

Your email address will not be published. Required fields are marked *