NixOS introduction

NixOS, “The purely functional Linux distribution”, takes a very innovative approach to system configuration.

In classical distributions, configuration files are scattered around /etc with a different syntax each, and once you built your dream server configuration, you are afraid of forgetting something by starting over. NixOS solves this by a configuration.nix file that defines your complete system. Using this config, it is possible to manage a machine easily: You define the packages you need, the system services to start, or the user accounts to exist declaratively.

The NixOS options are written in the Nix language. For most software - MySQL, PHP, KDE, Kodi, … - there already exists a module. Sometimes though, you need to write your own or even need to create your own package. Fortunately, this is rather easy. The Nix package collection needs to be cloned, there you add your package, submit a PR and are that’s it.

NixOS is very reliable: If you want to, you can roll back the whole system with its configuration to an earlier version. Like Gentoo, NixOS has switches and knobs to turn a package’s features on or off. The “staging” channel is not as up-to-date and extensive as Arch Linux’ package collection, but still fairly cutting-edge.

If you want to know more, check out the homepage and the manual.