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 !

    • quaddo@kbin.social
      link
      fedilink
      arrow-up
      6
      ·
      1 year ago

      Thanks for this, it was definitely a nice overview. Not the first time I’d heard of NixOS, but I do seem to be seeing more frequent and more substantial discussions of it.

      What I’m getting from all this, is that it looks to be a great way to set up reproducible desktop environments. And servers too, I suppose.

      What I’m not getting from this: a compelling reason to switch from established players like RHEL and Ubuntu in combination with cloud-init and Terraform and the likes of Chef/Puppet/Ansible/Salt to spin up a cluster in the cloud, reconfigure, tear down, etc.

      In case anyone is misreading me: this is not a dig at NixOS. It definitely looks interesting. Like, to the point that I’ll at least spin up a VM on my Manjaro laptop and see whether I should perhaps consider wiping and reinstalling with NixOS. The “configuration through code” is extremely appealing here.

      My concern here is corporate inertia. And before anyone gets gets ready to launch a diatribe about how corporations don’t decide what the best tech is, I will agree with you. I’ve been around a while, and excitedly watched as Unix ramped up and displaced platforms like VAX/VMS and AOS/VS, using smaller and faster hardware. Then along came Linux and the battle for which distros would dominate.

      As for configuration through code, I’ve been keeping a keen eye on things (tinkering when it’s been possible to do so) since the days of cfengine and Jumpstart. I used to share this site with anyone that would listen to me; it’s dated now, but the underlying principles are (were?) solid: http://infrastructures.org/

      So for now, I think I’ll have to limit my professional NixOS usage to tinkering and potentially useful side projects. For personal usage? Yeah, it might become my daily driver, but I need to find the time to tinker.

      I will say that I’m presently involved in an effort to test something out that has my company’s product available using rpm-tree. Not my decision, this is all being driven by a customer that has a lot of clout; they really, really want to use rpm-tree. It’s proven to be a bit onerous at times.

      What this NixOS discussion has managed to do for me is to have me wondering whether a NixOS approach would have worked out better; my sense is that yeah, maybe it would have. But my feelings here might simply be the result of “woo, shiny new object”, which has definitely colored my opinions of things in my career of ~35 years. Something that I’ve had to restrain my excitement over, pending corporate sanity checks.

      • count0@lemmy.dbzer0.com
        link
        fedilink
        arrow-up
        1
        ·
        1 year ago

        Great points and perspective!

        I think NixOS at this point is great to know and have an eye on for new projects that happen to require some preconfigured OS “underneath”. I wouldn’t think about migrate existing, working infrastructure into NixOS either, ‘just because’.

        • quaddo@kbin.social
          link
          fedilink
          arrow-up
          1
          ·
          edit-2
          1 year ago

          It occurred to me that NixOS might have a hard time doing something like this:

          • create a 6 node Docker Swarm cluster, where 3 of the nodes are managers

          I can see NixOS doing a fine job of templating a standard build that includes the Docker engine. But working out which one gets to init the swarm, which ones get to join as managers, which ones get to join as workers? Yeah, that’s probably better off left to something like Ansible.

          • Atemu
            link
            fedilink
            arrow-up
            1
            ·
            1 year ago

            It occurred to me that NixOS might have a hard time doing something like this:

            • create a 6 node Docker Swarm cluster, where 3 of the nodes are managers

            You must’ve misunderstood. This sort of thing is exactly what NixOS excels at!

            In the Nixpkgs CI, we often spin up multiple VMs in a single test to ensure things like networking between machines work as expected, all using relatively straight forward NixOS primitives.

            I do not believe Docker Swarm specifically is supported (it’s a proprietary platform, so community interest understandably isn’t very high) but near same configurations with small differences are trivial to do with NixOS modules and they are a generic mechanism (can even be used to i.e. configure Android images and many other things).

            I can see NixOS doing a fine job of templating a standard build that includes the Docker engine.

            Note that NixOS’ module system is far far more powerful than simple templating.

    • Clairvoidance@kbin.social
      link
      fedilink
      arrow-up
      4
      ·
      edit-2
      1 year ago

      Having the option to have multiple versions of a dependency without needing to have duplicates of the same version alá flatpak seems like it should’ve been a no-brainer on any linux distro.
      With that said I’m very comfortable with my current system, so definitely not until I get majorly fucked by my life-choices
      Definitely sounds like a competent player in comparison to most distros though.
      And I feel like the terminal isn’t as big a barrier as everyone makes it out to be (part of why I say that is because I think the entire concept of “beginner friendly distros” only makes the terminal seem more impenetrable through that wording)
      All-in-one config is definitely something I would’ve hoped Arch had as well, and as a bonus I would love a system that kept all things related to the user in /home (I’m not completely sure Nix does but I may as well throw that in) (homed does not do that as it still has entities outside of /home that you better back up, in fact you’ll risk being locked out of your user if you don’t)