Myślałem, że znam Linuxa… aż spróbowałem tej dystrybucji
Większość dystrybucji Linuksa ewoluuje. NixOS pojawia się, trzaska palcami i uprzejmie kwestionuje całe to założenie. Jeśli spędziłeś poważny czas przeskakując między Ubuntu, Fedora, Arch a jakimkolwiek eksperymentalnym ISO, które impulsownie pobrałeś po północy, prawdopodobnie czujesz, że znasz rytm już teraz. Instalujesz pakiety, modyfikujesz konfiguracje, coś psujesz, coś naprawiasz i udajesz, że awaria była budowaniem charakteru. Ta pamięć mięśniowa jest głęboka. I dokładnie dlatego NixOS wydaje się taki dziwny, gdy po raz pierwszy się z nim spotykasz.
Ponieważ to nie jest kolejna dystrybucja z czystymi ustawieniami domyślnymi i nieco opiniotwórczym instalatorem. NixOS to jeden z tych rzadkich projektów, który nie próbuje upiększać znanego doświadczenia Linuksa. Cicho wykonuje krok na bok i zadaje bardziej niewygodne pytanie: a co jeśli cały twój system operacyjny zachowywałby się jak coś, co można faktycznie opisać, odtworzyć i zbudować na żądanie?
To zazwyczaj moment, kiedy doświadczeni użytkownicy Linuksa odchylają się trochę do tyłu i patrzą z ciekawością.
NixOS traktuje cały twój system jak artefakt budowania
Tak, włącznie z częściami, których normalnie nie dotykasz
Większość systemów Linux rozwija się organicznie z czasem. Instalujesz coś, ponieważ tego potrzebujesz. Dostosowujesz konfigurację, ponieważ coś cię zirytowało. Sześć miesięcy później twój komputer działa w porządku, w większości, ale widać w nim słabą warstwę archeologiczną dawnych decyzji. Wszyscy tego doświadczyliśmy. NixOS patrzy na to powolne nagromadzenie „to miało sens w tamtym czasie” i w zasadzie mówi: nie, dziękuję.
Pod maską znajduje się menedżer pakietów Nix, który wykorzystuje funkcjonalne podejście do zarządzania oprogramowaniem. Pakiety znajdują się w unikalnie haszowanych katalogach, które kodują ich zależności, co dramatycznie redukuje klasyczne konflikty zależności, w które czasami wpadają tradycyjne menedżery pakietów. Zamiast zastępować rzeczy na miejscu i liczyć na najlepsze, Nix tworzy izolowane wersje, które mogą spokojnie współistnieć. Ta część jest już sprytna.
Ale prawdziwe oszołomienie umysłowe pochodzi z modelu systemu deklaratywnego. W NixOS nie kształtujesz stopniowo systemu poprzez setki drobnych mutacji. Opisujesz system, który chcesz mieć, w pliku konfiguracyjnym, a NixOS buduje go zgodnie z tym opisem. Jądro, usługi, pakiety, bootloader. Cały stos, traktowany mniej jak zwierzątko, a bardziej jak infrastrukturę.
Model deklaratywny zmusza cię do działania w sposób celowy
Co jest świetne, aż do momentu, gdy zdasz sobie sprawę, że oznacza to, że musisz działać celowo
W większości dystrybucji konfiguracja przebiega w sposób, w jaki przebiega życie: stopniowo, nieco chaotycznie i z dużym poleganiem na pamięci mięśniowej. Coś się psuje, naprawiasz to, coś cię irytuje, poprawiasz to, a system staje się twój poprzez długą ścieżkę drobnych decyzji.
Twój system znajduje się w /etc/nixos/configuration.nix, i za każdym razem, gdy uruchamiasz nixos-rebuild switch, maszyna przekształca się, aby odpowiadać temu, co zadeklarowałeś. Te same wejścia, te same wyjścia. Przynajmniej w teorii. Celem jest powtarzalność, a NixOS traktuje ten cel bardzo osobiście. To zmienia twoje nawyki, niezależnie od tego, czy to planowałeś, czy nie. Zaczynasz myśleć, zanim zainstalujesz. Zaczynasz dokumentować zmiany, ponieważ plik konfiguracyjny jest dosłownie źródłem prawdy. Przestajesz traktować system jak szufladę ze śmieciami i zaczynasz traktować go jak coś, co możesz potrzebować odbudować na innym komputerze w przyszłości.
Jeśli rozwijasz się dzięki uporządkowanej kontroli, to jest to fantastyczne. Jeśli twój zwykły sposób pracy obejmuje pewną improwizację późną nocą, może wystąpić krótki okres adaptacji, podczas którego ty i NixOS będziecie patrzeć na siebie w pokoju jak dwie silne osobowości negocjujące granice.
Historia wycofania jest miejscem, gdzie rzeczy stają się cicho imponujące
To jest ta część, która sprawia, że zmęczeni użytkownicy Linuksa unoszą brew
Każdy doświadczony użytkownik Linuksa ma swoją historię. Zazwyczaj zaczyna się od „ta aktualizacja powinna być w porządku” i kończy na kimś, kto przeszukuje Google na swoim telefonie, podczas gdy główny komputer obraża się w kącie. NixOS atakuje cały ten rodzaj bólu. Ponieważ każda zmiana w systemie jest tworzona jako własna generacja, aktualizacje są atomowe. Jeśli coś pójdzie nie tak podczas przebudowy, system zazwyczaj nie popada w post-aktualizacyjny niepokój. Poprzednia działająca generacja wciąż tam jest, siedząc spokojnie w menu startowym jak siatka bezpieczeństwa, o której zapomniałeś, że ją masz.
I tak, cofanie zmian jest dokładnie tak satysfakcjonujące, jak się wydaje. Nie jest magiczne ani idealne. Nadal możesz absolutnie coś zepsuć, jeśli tylko jesteś wystarczająco zdeterminowany i nawodniony kofeiną. Ale ton emocjonalny się zmienia. Porażki wydają się mniej katastrofalne, a bardziej… odwracalne. System zakłada bowiem, że jesteś człowiekiem i od czasu do czasu zbyt pewnym siebie. Ta filozofia projektowania uderza inaczej, gdy przeżyło się już wystarczająco wiele chaotycznych aktualizacji.
Dostosowywanie sięga głębiej niż zwykłe obietnice Linuksa
Nie tylko modyfikujesz system, ty go definiujesz
Większość dystrybucji chwali się dużymi możliwościami personalizacji. Zwykle oznacza to pliki konfiguracyjne, wybór pakietów, może weekend spędzony na kłótniach z menedżerem okien. NixOS działa na innej wysokości. Ponieważ system jest deklaratywny, możesz konfigurować usługi, zachowanie podczas uruchamiania, systemy plików, środowiska graficzne, moduły jądra i więcej z tej samej zunifikowanej warstwy konfiguracji. Chodzi tu mniej o nakładanie sobie poprawek jednych na drugie, a bardziej o opisanie kształtu maszyny, którą chcesz posiadać.
To otwiera naprawdę potężne możliwości. Powielanie konfiguracji na wielu maszynach przestaje być projektem na weekend i zaczyna wyglądać jak coś, co faktycznie można utrzymać, nie tracąc po drodze zdrowego rozsądku. Kosztem jest odpowiedzialność. NixOS zazwyczaj robi dokładnie to, co mu powiedziałeś. Jeśli coś zachowuje się dziwnie, odpowiedź zazwyczaj nie ukrywa się w jakimś tajemniczym zakątku systemu plików. Leży tam w Twojej konfiguracji, cicho czekając, aż to zauważysz.
To nie jest dystrybucja, którą instalujesz, oglądając jednocześnie YouTube
NixOS jest elegancki, potężny i technicznie fascynujący. Nie zależy mu jednak szczególnie na byciu przyjazną dystrybucją dla początkujących. Język Nix wymaga chwili, aby go zrozumieć. Model myślowy jest na tyle inny, że początkowo może sprawiać trudności. I chociaż dokumentacja znacznie się poprawiła, nadal napotkasz momenty, w których krzywa uczenia się wydaje się… celowa. Jeśli jesteś zupełnie nowy w Linuxie, istnieją bardziej przyjazne punkty startowe.
Ale jeśli jesteś takim użytkownikiem, który zaczął zauważać dryf konfiguracji, który zarządza więcej niż jedną maszyną, któremu zależy na odtwarzalnych środowiskach, lub który po prostu cieszy się, widząc, jak stare problemy są podchodzone z nowej perspektywy, NixOS zaczyna mieć niepokojąco duży sens. Spodziewaj się kilku chwil dezorientacji. Być może trochę mamrotania. Może jedna cicha wizyta w kuchni, aby przemyśleć swoje wybory.
NixOS nie próbuje zastąpić każdej przyjaznej dla początkujących dystrybucji na świecie i wcale nie musi. Rozwiązuje inną klasę problemów i jest bardzo świadomy swojej publiczności. Jeśli twoja obecna konfiguracja Linuksa jest stabilna, nudna i zachowuje się dokładnie tak, jak chcesz, nie ma tu żadnej nagłej potrzeby, ponieważ nudne systemy często są najlepsze. Ale jeśli kiedykolwiek złapałeś siebie na tym, że chciałbyś, aby twoje środowisko było łatwiejsze do odtworzenia, bezpieczniejsze w aktualizacji lub mniej podatne na powolne gromadzenie dziwactw w czasie, NixOS absolutnie warto wypróbować przez weekend.
Po prostu bądź w tym strategiczny.
Najpierw uruchom to w maszynie wirtualnej. Przeczytaj swoją konfigurację powoli. Daj swojemu mózgowi trochę czasu, aby przyzwyczaił się do deklaratywnego sposobu myślenia. Nie instaluj tego w żadnym wypadku na swojej jedynej maszynie produkcyjnej podczas nocnego przypływu pewności siebie i espresso.
Bo gdy NixOS w końcu zaskoczy, robi coś rzadkiego w świecie Linuksa.


