NixOS is a GNU/Linux distribution that uses the Nix package management system, known for its functional approach. It is a unique and innovative Linux distribution that offers users high levels of reliability, reproducibility, and flexibility.
One of the most notable features of NixOS is that the entire system, including the kernel, system services, configuration files, and more, is built by a Nix expression in a deterministic and repeatable way. This means that it is very easy to roll back to a previous configuration if something goes wrong since configuration changes are non-destructive.
Upgrading a configuration is also very safe since the realization of the configuration is not stateful, which is a result of being purely functional. Additionally, NixOS enables multi-user package management where any user can install software through the same mechanisms that the administrator uses, making it more accessible than other package managers such as RPM.
Furthermore, one of the key advantages of NixOS is that it allows us to verify that Nix packages are truly pure. This is because Nix prevents undeclared dependencies between packages in the Nix store, but when you run Nix on an existing OS, such as SUSE Linux, Nix cannot prevent a build script from calling programs in /bin. If there is no /bin, such a build script will fail.
While NixOS may not yet be suitable for production use, it already works quite well. Currently, all software is managed by Nix, and there is no /bin, /sbin, /lib, /usr, etc. (except for a symlink /bin/sh to Bash in the Nix store). Everything is stored in /nix/store, and almost everything in /etc is a symlink to files in the Nix store generated by Nix expressions.
The system configuration is parameterized with a Nix expression that describes the configuration of your particular system, and a single top-level Nix expression builds the entire system configuration. The command nixos-rebuild builds and activates a new system configuration, and the Grub boot menu allows instant rollbacks.
Additionally, NixOS provides automatic hardware detection where the boot process loads kernel modules for all known PCI devices. It also supports software RAID, LVM, and currently runs on 32-bit and 64-bit x86 machines. Finally, it also supports popular desktop environments like KDE and parts of Gnome.
Overall, NixOS is an interesting project with a lot of potential, and it will be exciting to see how it develops in the future.
Version 0.1pre10563: N/A