47
Immutable Operating Systems: Yay or Nay?
(lemmy.world)
From Wikipedia, the free encyclopedia
Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).
Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.
Community icon by Alpár-Etele Méder, licensed under CC BY 3.0
I use NixOS, which is kind of a middle thing. The OS is generally immutable, except through one central config. This allows to tweak the OS to exactly the way you want it, whilst preventing any accidental changes and allowing atomic rollbacks.
Learning Nix configuration syntax is a bit of a bump in the road, but once you've got that it's smooth sailing
How long did it take you to migrate from the distribution before and what's your experience in this space in general?
I like the idea of a declarative configuration, but I find it hard to justify when Ansible has the potential to do the job 99% as effectively.
Also, what do you feel are the most "killer features" in nixOS?
I've recently switched over to NixOS in gradual rollouts to my systems:
Stage 0 (~2h):
Stage 1 (~3d):
Stage 2 (~4d):
Stage 3 (~7d):
Stage 4 (~21d):
Stage 4.5:
Stage 5 (~6d):
Stage 6 (tbd):
Edit 1 (added personal experience): I'm a computer science student and have been using *nix as a daily driver for half a decade, my previous daily driver was arch for about two years. I spend ~1000h/y coding on non-University or Work related projects. I'm at a point where I can typically pick up a the basics of a new language in two to three weeks and write simple programs with it -> library/specific knowledge comes with usage.
Nix(OS)'s biggest killer feature for me is that I never had to update, wait for updates or fix updates after setting up the modules properly and getting CI set up for my git repo -> all systems are build before the update is rolled out, if the build fails, the update won't be rolled out. Systems decide for themselves when to update and how they should handle them (i.e. server vs. desktop).
That goes for all my systems: Laptop, PC, Servers and VMs
Thanks for the insights :) I appreciated
From my point of view, the strength of NixOS compared to sensible is not that it does the stuff you declared in your configuration. It's knowing that the description is complete and your system does nothing else (because it's basically selectively built at boot). Sure, some options have implications that might not be visible at first glance, but nothing can hide in the long term. You have no such guarantee with Ansible.
Ansible is a good solution, but it doesn't do as much as nix on NixOS.