• 4 Posts
  • 165 Comments
Joined 1 year ago
cake
Cake day: September 29th, 2023

help-circle





  • Different person, but I’ll try to explain some of what I know.

    Traditional Linux:

    • read/write root and usr
    • only one version of a program can exist*
    • packages are available immediately after install
    • packages are imperative (you tell it what to do, it does that)
    • files swapped in place (can lead to issues like kernel modules missing or Firefox not opening new tabs until restart)

    *you might have python3.8 and python3.9, but those must be created as different packages using different paths in /usr

    NixOS, Guix:

    • declarative package management (basically config file and exactly these packages are installed)
    • usr and parts of root read-only (afaik)
    • packages symlinked to usr
    • multiple versions of packages kept locally (though not all active necessarily)
    • will keep using old package until restart/reboot, therefore not breaking on updates. New instances of a program can use the new package
    • easy to roll back due to multiple versions kept

    Immutable OS (haven’t seen one mentioned by OP, but it’s a category):

    • often imperative package management
    • using snapshots or multiple root partitions for easy rollbacks
    • read-only root and usr
    • packages might only be available after a reboot (depends on implementation and if system packages or something else like Flatpak, which doesn’t need a reboot, are used)

    SerpentOS:

    • experimental distro (ie stuff might change)
    • imperative package manager
    • packages installed to separate tree, but swapped live. Basically A/B root of an Immutable system that doesn’t require a reboot (according to the explaination in the latest blog post)

    Not sure why ClearLinux is on that list of special distros and I don’t know half of the rest so yeah. Hope this explains some of it?