Ik gebruik sinds 1998 Linux, en volgens mij heb ik nu eindelijk de heilige graal op het gebied van Linux distro's gevonden: NixOS.
zie: nixos.org

Totaal verbazingwekkend is dat, ondanks dat buiten Tweakers om NixOS inderdaad gezien wordt als een grote innovatie, op Tweakers zelf 0 aandacht aan is besteed (0 hits op voorpagina), terwijl dit OS al sinds medio 2005 bestaat. Met deze topic wil ik NixOS in de schijnwerpers zetten, en aandacht besteden aan de verschillende use-cases die met NixOS op een hele elegante manier worden opgelost.
Declaratief, dus op basis van jouw definitie van hoe jouw ideale setup eruit ziet, zorgt NixOS dat jij die ideale configuratie hebt. Na een wijzing kun je altijd terug naar de vorige state. Kapotte systemen na upgrades, conflicterende packages, etc. kunnen daardoor niet voorkomen.
Onder de motorkop gebruik Nix een functionele programmeertaal waarmee je je systeem of configuratie kunt definieeren. Feitelijk bestaat jouw systeem uit een hoop Lego-blokjes die je inelkaar zet op de manier die voor jou ideaal is. De lego-blokjes (derivations) passen goed op elkaar, omdat de wetten van het functioneel programmeren (bijv. functiecompositie) ook in Nix gelden.
Nix is bedacht door een Nederlander, Dr. Eelco Dolstra, een informaticus die aan de Universiteit Utrecht op NixOS is gepromoveerd.
Voor diegenen die geinteresseerd zijn in de wetenschap achter NixOS, het proefschrift is hier te lezen:
https://nixos.org/~eelco/pubs/phd-thesis.pdf
Nix is dus niet het resultaat van een uit de hand gelopen uitprobeersel, het heeft een wetenschappelijke basis. Er is ontzettend goed over nagedacht, en dat merk je in het gebruik (als je bijvoorbeeld je eigen 'derivations' gaat definieren).
- Als je softwareontwikkelaar bent, kun je een project-specifieke configuratie maken, de voor collega's reproduceerbaar is (dus met de juiste libraries, tools en altijd de juiste versies voor dat project) - zonder dat het conflicteerd met andere projecten of je eigen systeem. Van vervuiling door libraries zal dus nooit meer sprake zijn. Altijd een schone werkomgeving!
- Voor Devops is het ook een hemel, Je kunt ook met Nix containers maken voor services (docker is dus niet meer nodig). Sowieso zijn allerlei producten die configuraties managen ook niet meer nodig (zoals Ansible) omdat dit juist een basisfunctie is van Nix
- Je hoeft je bestaande Linux distro niet op te geven, je kunt ook de Nix package manager gebruiken (dus Nix zonder OS) om de voordelen onder je eigen user account te ervaren
Dit beschouw ik overigens niet als nadeel van Nix zelf. Voorbeeld: Quantumcomputing is ook anders en zal daardoor een steile leercurve hebben, maar dat is niet de schuld van quantum computing, maar van het feit dat men het nog niet gewend is.
(Ik nodig anderen uit om deze openingpost uit te breiden/te verbeteren)
Heb jij NixOS al ontdekt?
zie: nixos.org

Totaal verbazingwekkend is dat, ondanks dat buiten Tweakers om NixOS inderdaad gezien wordt als een grote innovatie, op Tweakers zelf 0 aandacht aan is besteed (0 hits op voorpagina), terwijl dit OS al sinds medio 2005 bestaat. Met deze topic wil ik NixOS in de schijnwerpers zetten, en aandacht besteden aan de verschillende use-cases die met NixOS op een hele elegante manier worden opgelost.
Wat is Nix?
NixOS is een Linux distributie, met een package manager die het mogelijk maakt om jouw configuratie (systeem, maar ook home directory, of projecten) declaratief te maken, in plaats van op te bouwen uit een sequentie van commando's en configuratiebestandjesDeclaratief, dus op basis van jouw definitie van hoe jouw ideale setup eruit ziet, zorgt NixOS dat jij die ideale configuratie hebt. Na een wijzing kun je altijd terug naar de vorige state. Kapotte systemen na upgrades, conflicterende packages, etc. kunnen daardoor niet voorkomen.
Onder de motorkop gebruik Nix een functionele programmeertaal waarmee je je systeem of configuratie kunt definieeren. Feitelijk bestaat jouw systeem uit een hoop Lego-blokjes die je inelkaar zet op de manier die voor jou ideaal is. De lego-blokjes (derivations) passen goed op elkaar, omdat de wetten van het functioneel programmeren (bijv. functiecompositie) ook in Nix gelden.
Nix is bedacht door een Nederlander, Dr. Eelco Dolstra, een informaticus die aan de Universiteit Utrecht op NixOS is gepromoveerd.
Voor diegenen die geinteresseerd zijn in de wetenschap achter NixOS, het proefschrift is hier te lezen:
https://nixos.org/~eelco/pubs/phd-thesis.pdf
Nix is dus niet het resultaat van een uit de hand gelopen uitprobeersel, het heeft een wetenschappelijke basis. Er is ontzettend goed over nagedacht, en dat merk je in het gebruik (als je bijvoorbeeld je eigen 'derivations' gaat definieren).
Wat kun je er mee?
Je kunt het gebruiken als zeer robuuste besturingssysteem (in plaats van... Debian, arch, of whatever), zowel geschikt voor desktop als server. Dan heb je al veel van de voordelen, maar je kunt er nog veel mee:- Als je softwareontwikkelaar bent, kun je een project-specifieke configuratie maken, de voor collega's reproduceerbaar is (dus met de juiste libraries, tools en altijd de juiste versies voor dat project) - zonder dat het conflicteerd met andere projecten of je eigen systeem. Van vervuiling door libraries zal dus nooit meer sprake zijn. Altijd een schone werkomgeving!
- Voor Devops is het ook een hemel, Je kunt ook met Nix containers maken voor services (docker is dus niet meer nodig). Sowieso zijn allerlei producten die configuraties managen ook niet meer nodig (zoals Ansible) omdat dit juist een basisfunctie is van Nix
- Je hoeft je bestaande Linux distro niet op te geven, je kunt ook de Nix package manager gebruiken (dus Nix zonder OS) om de voordelen onder je eigen user account te ervaren
Nadelen
Nix is anders. Daardoor heeft het een steile leercurve. Als je niet bekend bent met het declaratief of functioneel denken, zul je een mentale shift moeten maken. Dat maakt het moeilijk, maar wat je er voor terugkrijgt is onbetaalbaar (in vrijheid en tijdswinst).Dit beschouw ik overigens niet als nadeel van Nix zelf. Voorbeeld: Quantumcomputing is ook anders en zal daardoor een steile leercurve hebben, maar dat is niet de schuld van quantum computing, maar van het feit dat men het nog niet gewend is.
(Ik nodig anderen uit om deze openingpost uit te breiden/te verbeteren)
Heb jij NixOS al ontdekt?
[ Voor 12% gewijzigd door terabyte op 01-06-2022 22:04 . Reden: video ]