Nix files are Nix [function] expressions to declare and set your system; there are many options you can set for example. You just need to learn a few chapters of https://nixcloud.io/tour/ and https://nixos.org/manual/nix/stable/language/, also modularization using imports.
For user/de configuration, you can either do the usual way or use home-manager.
Basically all that. The unfinished part IMO is mostly for use in developer use cases, and that some ecosystems like JVM are not as well supported.
Can run yes, given that you have to spend some time learning Nix and NixOS specifics. I do that myself.
You either package the software if it is easy to do so—take a look a at nix-init which eases the process—or use Flatpack, containers, steam-run…
It all began with Nix software build system and package manager; they needee a way to build, compile software in a reproducible way. That is, if it builds on my machine, it should build on yours too given some constraints. Then they build a whole package repository for such sofware or package definitions, Nixpkgs, that can be build or retrieved using Nix package manager. Nixpkgs grew to be a repository for enabling runnig an GNU Linux OS on it: NixOS. It is declarative in the sense you write what it should contain like packages and behaves like system services. For example, see https://git.sr.ht/~misterio/nix-config.
Atomic in the sense that when you want to change system’s configuration or state, everything should suceed in that update, otherwise fails; it is everything or nothing. This enables storing previous and current system revisions, so can rollback to previous state.
Nix plus things like flakes, nix shell, enables a build inviroment akin to containers, but much better, correct, and flexible.
Haskell is just an ecossytem Nixpkgs support.
GNU has interviews and more clarifying all the way back to MIT AI lab, lisp machines the printers proprietary code triggering free software movement, etc.
Linux just happened because GNU hand’t developed a proper kernel yet; Linus wrote that himself on an mail to the Linux Kernel or Minix mailing list IIRC.
NixOS for declarative system configuration.
NixOS definitely. The disk encryption with keys you may need do that manually though.
For those saying NixOS has no commercial support, there is: https://nixos.org/community/commercial-support
Yes, for video files, needs to convert to MOV:
ffmpeg -i input.mp4 -c:v dnxhd -profile:v dnxhr_hq -pix_fmt yuv422p -c:a pcm_s16le -f mov output.mov
Not really… Many are just devs used to say Windows who happened to get to work in a linux environment.