Toon posts:

NixOS - onderschat revolutionair

Pagina: 1
Acties:

Acties:
  • +11Henk 'm!

  • terabyte
  • Registratie: September 2001
  • Laatst online: 10-06 22:27

terabyte

kan denken als een computer

Topicstarter
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.

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 configuratiebestandjes

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).

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]


Acties:
  • 0Henk 'm!
  • Pinned

  • terabyte
  • Registratie: September 2001
  • Laatst online: 10-06 22:27

terabyte

kan denken als een computer

Topicstarter
amx schreef op zaterdag 7 maart 2020 @ 11:43:
inderdaad interessante openingpost. Persoonlijk (niet aanvallend bedoeld) had ik de pakkende inzet fijner gevonden als er direct een samenvatting wordt gegeven van waarom NixOS volgens jou de heilige graal is.

Ik vermoed dat ik het niet helemaal snap, maar in welk opzicht is dit handiger dan bijvoorbeeld (recenter) Ubuntu Snap, of Flatpak, of is dat helemaal niet waarom nix package manager handiger, of intuitiever is? Voor de doorsnee applicaties dan.

[edit]

bronvermeldingen naar andere websites die wel vermelden waarom NixOS revolutionair zijn, overtuigen ook sneller
Bedankt voor de feedback. OP is nog works in progress, wat je ziet is de eerste versie, dus ik ga het nog zeker aanvullen.

Maar dan komt ook meteen (mijn) grote probleem: het kunnen zien waarom het revolutionair is en het leven makkelijk maakt (tov alle andere distros en Windows en Mac), is dat het een probleem oplost die veel mensen niet meer als probleem zien vanwege de vele workarounds. Het is dus een fundamentele oplossing voor een (voor normale gebruikers) onzichtbaar probleem. En het is voor mij dus moeilijk uit te leggen dat het een probleem oplost terwijl je het probleem niet eens ziet :-)

Het grote voordeel voor pure eindgebruikers is dat je systeem na een upgrade niet meer kapot kan gaan, en je altijd terug kunt naar een werkende vorige versie. Het maakt het ook makkelijker om (als niet-root-gebruiker) extra software te installeren zonder dat het ander software in de weg zit.

Maar, als je developer bent, of systeembeheerder, dan heb je vast van docker e.d. gehoord om dedicated omgevingen op te zetten, en daar shined Nix het meest, omdat al die extra tools niet meer nodig zijn (omdat het probleem in Nix fundamenteel is opgelost - dus je hebt geen oplossing nodig voor een niet-bestaand probleem)

[Voor 3% gewijzigd door terabyte op 07-03-2020 13:45]


Acties:
  • +2Henk 'm!
  • Pinned

  • FRidh
  • Registratie: Januari 2004
  • Laatst online: 08-08 07:49
Een wat ouder blog artikel waar in beschreven wordt waarom je Nix/NixOS/NixOps wilt in plaats van Puppet/Chef/Ansible en Docker.
https://www.domenkozar.co...ugh-and-we-can-do-better/

Ik wil even benadrukken dat het belangrijk is om Nix en NixOS apart te zien. De ene is de package manager welke je op alle Linux distro's kan installeren alsmede Darwin/OSX (en er is een onofficiele versie voor Android, geen idee of dat werkt). De andere is een operating systeem waarbij niet alleen pakketten worden beheerd met Nix, maar ook de kernel, systemd en alle andere services. Er zijn community leden die andere OS'en hebben gebouwd rondom Nix.

Ook wel leuk project om te volgen is Mobile NixOS: NixOS op je mobieltje :)
https://mobile.nixos.org/
Mede vanwege de geweldige cross-compilatie ondersteuning in Nixpkgs is het ook relatief gezien makkelijker om daarmee aan de slag te gaan.

Ecosysteem

Officieel
- Nix is de package manager
- Nixpkgs is de package set
- NixOS is een operating system welke bestaat uit packages en services. Zelfde repo als nixpkgs
- Hydra is een CI oplossing
- NixOps voor het uitrollen van netwerken bestaande uit NixOS systemen
Onofficieel
- Hercules is een commerciel alternatief voor Hydra
- Morph is een alternatief voor NixOps
- Lading tooltjes voor het omzetten van allerlei lock files (Poetry (Python), NPM, Cargo, ...) naar Nix pakketten.

Nixpkgs

- heeft recepten voor pakketten
- heeft recepten voor services (NixOS)
- tools voor het bouwen van VM images en uitvoeren van VM via KVM als een "bouw" stap.
- NixOS system testing gebaseerd op de VM tools
- generieke bouwers voor Python, Rust, Java, ...
- 1000-en Python pakketten welke met elkaar werken
- enorm veel Machine Learning / Scientific computing pakketten inclusief ondersteuning voor Cuda en MKL
- ...

Research is to see what everybody else has seen, and to think what nobody else has thought - Albert Szent-Györgyi

Pagina: 1



Nintendo Switch (OLED model) Apple iPhone SE (2022) LG G1 Google Pixel 6 Call of Duty: Vanguard Samsung Galaxy S22 Garmin fēnix 7 Nintendo Switch Lite

Tweakers vormt samen met Hardware Info, AutoTrack, Gaspedaal.nl, Nationale Vacaturebank, Intermediair en Independer DPG Online Services B.V.
Alle rechten voorbehouden © 1998 - 2022 Hosting door True

Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee