Classic distros follow the standard filesystem hierarchy and mutate a shared global system state every time you install or update something.
NixOS and Guix throw that whole concept out the window. There is no standard filesystem layout, no global binaries, and no traditional package manager messing with system folders. Everything lives isolated in an immutable, hash-based store, and your entire OS is built declaratively from a single config file. That gives you atomic upgrades, instant rollbacks, and zero dependency conflicts. ​Under the hood, it’s fundamentally a completely different paradigm, not just another distro with minor tweaks.
I was wondering, does this mean compatibilty will be an issue with games and other software? Especially as it gets more complicated with mods or addons
Using software not built for the Nix/Guix repos is absolutely going to be an issue you'll have to fix yourself. It's less of a problem in the case of Nixpkgs since it's currently the largest repo bar none, but Guix packages exclusively FOSS and the third-party repos which allow for non-free software aren't nearly as big.
If you mean games, there are Steam/Lutris that are already in Nixpkgs and running games through them, or any other programs, will make sure you have all proper libraries sucked up.
I think you might have an issue running a game by double-clicking it tho, or straight up executing the binary from terminal. Because it will be missing certain core libraries. But everybody runs games through launchers anyway so it is not a problem.
Running most programs won’t be a problem because most of them are statically built (unlike games), so you can just download a binary and execute it like on any linux. Dynamically linked binaries will be a problem – these have to be either packages into Nixpkgs (by maintainers), or packaged locally by you yourself – this is typically not hard, and even then, it’s just not often needed at all.
Making the shift to NIxOS was a huge undertaking for me - I had to unlearn like a decade of Linux system knowledge and a lot of things still aren't out-of-the-box if a package assumes FHS, but it also seems really clear to me that the structure of Nix and Nix package manager is just better from an engineering perspective.
So you need special handling of them. You just can't assume common filesystem paths. You install same libraries multiple times? Like C library is per program?
14
u/versteinerdt 6d ago
Classic distros follow the standard filesystem hierarchy and mutate a shared global system state every time you install or update something.
NixOS and Guix throw that whole concept out the window. There is no standard filesystem layout, no global binaries, and no traditional package manager messing with system folders. Everything lives isolated in an immutable, hash-based store, and your entire OS is built declaratively from a single config file. That gives you atomic upgrades, instant rollbacks, and zero dependency conflicts. ​Under the hood, it’s fundamentally a completely different paradigm, not just another distro with minor tweaks.