Why NixOS

Every GNU/Linux user becomes an Arch one at some time, but not every Arch user becomes a Nix one.

Why

Imagine you are a hacker. Yes, that exact person who takes their place in the cafe, do their dirty work and gets out having their laptop given off to the nearest trash bin. So what’s next? You buy another thinkpad aaand.. There you go again; you have to bootstrap your new blackarch machine or something by typing the whole bunch of commands to set everything up again.1

«Phhh… This would be a piece of cake», you’d say. You’d even say you could bootstrap your Arch system in 15 minutes touch typing the commands while having eyes closed. And you would be right.

But what if you could insert your usb-stick and write the only command having everything set up in the same 15 minutes without any kind of interaction from your side? Excluding the need to partition a drive, setup boot loader, install and configure packages and so on. Just one command2, 15 minutes and you have your entire setup including a wm, a dm, a partitioned luks-encrypted drive, a browser with pre-installed extensions, an Emacs (or Vim, I’m sorry) and other packages with all of the configs reproduced.

Well, you presumably can. Such kind of systems are also called a reproducible ones. And one way to make reproducibility possible is to make entire system configuration declarative3.

There’re some of the distributions which have both of the principles implemented—including GNU/Guix, for example. But currently one of the most preferred by the majority of distro hackers is NixOS.

How

…To be continued.

Footnotes

  1. This is the most distant naive idea of who hackers are, but for the example, why not. The preferred definition of a hacker for me would be the one that could be looked for in Paul Graham essays.

  2. The only three commands, to be accurate; but I hope difference is not as significant.

  3. Declarative means that all of the configuration starting from disk partitioning and ending with chromium extensions to be installed is mirrored to the union of configuration files of the specific format. In this case, that’s a nix one.