Hi everyone!

I saw that NixOS is getting popularity recently. I really have no idea why and how this OS works. Can you guys help me understanding all of this ?

Thanks !

  • featherfurl
    link
    fedilink
    arrow-up
    19
    ·
    edit-2
    1 year ago

    Here’s the straightforward version of why I use it:

    1. The entire state of your operating system is defined in a config file, and changes are made by changing the config file. This makes it super easy to reproduce your exact system many times and to know where all the many different configuration elements that describe your system are located.

    2. Updates are applied atomically, so you don’t have to worry about interrupting the update process and if it fails, the previous state of your system is still bootable. By default every time you change something, you get another option in the boot menu to roll back to.

    3. Making container-like sub systems is super easy when you’re familiar with nix, so you can have as many different enclaves as you like for different software versions, development environments, desktop setups, whatever without taking a performance hit. Old versions of stuff are very accessible without breaking your new stuff.

    4. The package manager has a lot of software and accessing nonfree stuff is straightforward. Guix looks rad, but nix ended up being the more practical compromise for my usecase. I didn’t want to have to package a heap of software the moment I made the switch.

    • tetris11
      link
      fedilink
      arrow-up
      7
      ·
      1 year ago

      You forgot to mention: cross-compiling binaries for other architectures has never been so easy. You can even make them static builds.

      It’s breathed new life into my old synology NAS which is stuck on an old Linux 3 kernel.

    • SolemnAttic@feddit.de
      link
      fedilink
      arrow-up
      5
      ·
      1 year ago

      This very much. I used to have lots of unchecked config and state files everywhere on Arch. Now everything is checked in and wiped on boot so if something breaks after a reboot i know what broke.

      Like how the opengl rendering did due to nixpkgs version differences