I'm trying to understand how NixOS differs conceptually from a more traditional distribution. For example, instead of installing GRUB manually and editing /etc/default/grub, would I declare the relevant package and set options such as boot.loader.grub in the NixOS configuration? Similarly, instead of running systemctl enable for a service, would I enable it through a systemd service option in the configuration? Is it accurate to think of NixOS configuration as a unified interface that abstracts the details of individual Linux subsystems?
3 Answers
Under the hood, Nix evaluates your configuration into derivations. Those derivations describe packages, generated files, service definitions, and their dependencies, which are stored in the Nix store and linked into the active system. Modules provide the convenient high-level interface, but you can inspect their declarations to see what they generate, and you can define lower-level systemd units yourself when no specialized module exists.
Broadly, yes: the NixOS configuration is a single declarative entry point for describing the desired state of the machine. Modules can configure boot loaders, services, users, networking, packages, and much more. For example, enabling the GRUB module can install and configure GRUB, while enabling a service module can generate the corresponding systemd unit and make it persistent across rebuilds. You usually do not need to add the package separately when the module already manages it; modules often expose a package option if you need a different package or version.
The important distinction is that NixOS abstracts configuration and system state, not the entire runtime environment. A rebuild applies the declared configuration, but systemd is still running underneath. You can continue to use commands such as systemctl and journalctl to inspect, test, or temporarily change the running system. Changes made only at runtime generally disappear after the next rebuild or reboot unless you also represent them in the Nix configuration.

Related Questions
Can't Load PhpMyadmin On After Server Update
Redirect www to non-www in Apache Conf
How To Check If Your SSL Cert Is SHA 1
Windows TrackPad Gestures