Project location is https://github.com/shajunxing/linux-purification-plan , continuously evolving.
Preface
Linux has never followed KISS. To ease my OCD, it must be purified. Why they all use absolute path? Why can’t I install two shandalone versions /linux1 /linux2 ? In Windows, I can put portable apps everywhere, even C compiler is portable. Why people keep on reinventing wheels to show off their pitiful abilities? Xorg, Wayland, GTK, QT… these split generates multiplicative associations between layers, disaster in software engineering. Some distributions such as Nix tried to solve problem, but sadly they became even more complix. I need real simple, not pretended.
To be honest, I also dislike Windows since XP. I imagine if it can be added from Validation OS by necessary parts: network, security, direct x, get rid of everything corresponding .net dwm, and add classic shell like Win95, that’s enough. But I also realized putting too much effort in is meaningless.
Under code-level, I’ve been researching for long. Best way is to start from elf execution mechanism: 1. Add “ld=” kernel parameter, all loading elf works will be left to ld, bypass PT_INTERP. 2. Modify musl ld, to support both static and dynamic linked elf. 3. .so searching rule will be limited to application location and PATH, remove everything else. I like MS-DOS’s simple, intuitive and flexible, pure autoexec.bat, pure PATH environment variable, whole levels are straight forward, no twists or turns. I want Linux also like this, get rid of fucking systemd, sysv, openrc … , make init as simple as autoexec.bat, everyone can edit it. I also want simple GUI, since kernel already provided drm/kms, /dev/input and alsa, get fuck off everything else, maybe tinywl is enough, just like Windows 3.x, plus some essential utilities, such as text editor, terminal emulator, calculator, web browser, multimedia player, that’s enough, fuck those flashy useless things.