Linux Distro

= Idea for a linux distro =

I got frustrated about not being able to gopher:// links work on arch linux despite following "freedesktop" rules. So I started thinking about making a linux distro. I may not do it but i'll use this page for notes.

Ideas and Goals

 * Simplify /. I want / to be much simpler. I want a single /bin folder. a single /lib folder. etc. The FHS.
 * Atomic package upgrades. Use a nix/guix style store and have everything in /bin, /lib symlinks back into it, in order to implement atomic upgrades.
 * musl libc instead of glibc.
 * A better pid1. There is an anti-systemd trend at the moment but I do not feel the alternatives are better. I think we would need to implement a new init system.
 * Curated. There should be a good set of core packages work well together.
 * Integrate programming language package managers. Integrating these is essential. If you want to install a perl cpan library or a python pip thing that shouldn't be an issue, or brick your system. I have had bad experiences with this in the past. This needs to be a first class design as part of the OS. Look into the rvm/python virtualenv stuff too.
 * Config file management: The config files on your system should be tracked with git or something like that. It should be part of package definitions which config files a program uses.
 * Reproducible builds: We would like to use hash based addressing (IPFS or similar) for package distribution. To make this work out nicely in practice we would like packages to build reproducibly, the package should be a function of it's package definition. A user should be able to verify a build.

Negatives

 * No dbus
 * No systemd (too megalithic, and the developers have not cooperative with me), no openrc (painful to use in practice, POSIX shell script based systems carry over historical mistakes). Consider s6 instead.

Debates

 * static linking.

has positives and negatives. openssl updates roughly every 3 weeks, if statically linked that would force the web browser to be rebuilt, which can take hours. Is this really an argument against static linking or is it one against the quality of software engineering for web browsers?