Inspired by Jeff's reply to Christopher's post about small operating systems, I decided to pin down what little I know, in the hope that it may be useful.
gemini://gem.librehacker.com/gemlog/starlog/20231019-0.gmi
gemini://gemini.sh0.xyz/log/2023-11-07_re_small_operating_systems.gmi
I have been using Un*x type operating systems since at least 1990. Privately I have always been using some sort of GNU/Linux system, Debian for the most part. But I have gotten a growing, albeit faint feeling, that Linux (both the kernel and the distribution ecosystem) is increasingly facing the risk to drown due to its own weight.
Linux the kernel is a big project, it carries quite a bit of baggage around (like why are network interfaces fundamentally different from items represented by device files?). The things that make me very uncomfortable are eBPF (which seems to be a virtual machine inside the kernel, running with kernel privileges) and the integration of Rust (I'm afraid of the day when I do need a rust compiler to just compile the kernel). I will readlily admit that Linux the kernel is a phantastic piece of software, and it has helped me time and time again to get my things done --- including but not limited to typing this post. I'm just a bit uneasy about the things mentioned.
Linux the ecosystem of countless distributions is a lot bigger, several orders of magnitude, I guess. However: When I started to use Linux (Suse 6.3) the whole thing fit comfortably onto a system with diskspace less than 1 GiB. I switched to Debian potato a bit later on that same machine. If I try to install Debian today, even without a big GUI management system (just with xorg and i3), I need several GiB of diskspace just for the operating system. Of course using tex-live or KiCAD eats away on diskspace fast, and of course 100 GiB of disk space is readlily available today --- but it makes me wonder.
In my (maybe not so humble) opinion the quest to make things work automatically, always, wherever, accompanied by the quest to make things look really cool and pretty --- both add to the neccessary disk space and cpu cycles quite a bit. Again, I am extremely grateful for all those restless souls producing all those little and big wonders, which together form my current Linux workstation. But I feel a bit uneasy about the complexity and the mindboggling size of it all.
So once in a while I set out to scan the visible to me web for efforts to radically size down, and still make me feel comfortable on such a system. Now "small" has very different meanings to different people, so for me a useful system would have the equivalents of bash and emacs plus a webbrowser, of course.
https://en.wikipedia.org/wiki/Comparison_of_BSD_operating_systems
https://www.gnu.org/software/hurd/
At FOSDEM there has been a developer room dedicated to microkernel systems for several years now. These talks offer a lot of information and insight, and I can only recommend to scan the archives.
https://fosdem.org/2023/schedule/event/microkernel2023/
https://github.com/managarm/managarm
https://en.wikipedia.org/wiki/Plan_9_from_Bell_Labs
https://github.com/contiki-os/contiki
https://github.com/contiki-ng/contiki-ng
https://en.wikipedia.org/wiki/INMOS_Transputer
Writing an operating system from scratch is possible for a person. Producing something that can be used daily even only for its creator is a big effort. There are probably many such projects, e.g. VSTa (Valencia's Simple Tasker). Check out the list of operating systems on wikipedia for more inspiration. And lastly, search for "small linux" on distrowatch, you will find Redox, Risc OS, ReactOS, and many more.
https://en.wikipedia.org/wiki/VSTa
https://en.wikipedia.org/wiki/List_of_operating_systems
Cheers,
~ew