What would you differently, if you could redesign Linux userland from scratch?
Prompted from a similar discussion at lobsters (and i am copying the text verbatim)
If we kept Linux the kernel exactly as it is today, but redesigned
everything in userland from scratch (the init system, the filesystem
hierarchy, the shell, libc, packaging, configuration, dbus, polkit, PAM,
etc.), what would you do differently, and why?
here is the link to the original lobsters post: https://lobste.rs/s/ko5i9y/if_you_could_redesign_linux_userland_from
I'd use:
- Nitro instead of systemd
- musl instead of glibc
- LLVM/clang instead of gcc
- uutils instead of GNU coreutils
- apk as a package manager
- r/o filesystem in a virtual A/B configuration for immutability and instant-reboots (no post-update reboot delays unlike rpm-ostree).
- A minimal Rust-based WM/DE similar to XFCE/LabWC but with user-friendly GUI config and sane defaults, with zero GTK and Qt components.
- Ideally all GUIs will be coded in something fast and minimal, like e-GUI. Ideally the entire system will be free of bloat like GTK/Qt/Electron/Javascript crap, and anything that uses it will be containerised.
I'd have init as a JavaScript runtime, probably some fork of Node that's been rewritten in a memory-safe language like Ada or Rust, and everything else in the system as JavaScript or, preferably, TypeScript programs. Basically, start from scratch and do it more safely and better. Like Android tried to but more modern.
replace bash with qbasic
Isn't Android somewhat like that?