However, I'm not convinced that our OSs can't be much, much simpler. You can, almost reasonably, use DOS as a daily driver still. I have very fond memories of DOS because it was simple. Even as late as the early 2000s, if you wanted something like a MAME cabinet you'd often use DOS. You just plop some application and data folders onto a disk with like 4 system files and you were pretty much done.
Where is today's DOS? I suppose it's Linux, which is orders of magnitude more complicated (especially once you start talking about a GUI) and even Linus admits it has become quite bloated. I personally think we can do a lot better and I've been toying with the idea of putting something together because I'm just so sick of modern computing's bullshit.
PS: If anyone is aware of an organized effort towards this goal that already exists, please let me know.
I like your rule-of-thumb that you should not need a package manager.
Muratori has a theory that USB has made the OS scene complex (https://www.youtube.com/watch?v=kZRE7HIO3vk&t=1350s).
Two other things - the browser and TCP/IP.
Goal: a system where you can fit the whole stack in your head, yet participate in a networked world.
Approach A. Outline a reference hardware platform. Port NetBSD or minix3 or plan9. Then simplify. e.g if unix, get rid of users and groups, get rid of x, get rid of package mgmt, get rid of nfs. You could bootstrap this in qemu.
Approach B. Establish an alternate browser. Something like gopher, but with async events between the 'page' and the user. This allows for chat and form manipulation. You can send non textual content through this async link - video, audio. Codecs are a trap, they lead to pkg management and complexity. How to stop proliferation?
Unfortunately the only way to deal with that is to give up on the idea of running on a majority of existing PC hardware and target only a small subset of commodity hardware. Ideally it would all be open, to ensure it isn't going anywhere for a while, but sadly there is no such system.
I'm glad to see I'm not the only one who thinks Users and Groups are the wrong abstraction for systems like this.
2. about web: too bad that design-addict webdev community bloated it. But wish someone make a simpler, faster & straightforward web as portable app platform with few nice commercial qualities...
3. About OS: OS need not be bloated if it isn't running behind popularity by satisfying everyone's remote needs. ( source: plan9, suckless, busybox )...
2. No disagreement here.
3. Unfortunately it still kinda does, because drivers. Two of the ones you listed sit on top of the Linux kernel, which even Linus thinks has become bloated.
Linux above: You need a hypervisor. See L4 or Genode.
Linux below: See unikernels.
An alternative would be targeting a single set of hardware that's likely to be around a really long time. I'd be ok with that and something like a Raspberry Pi, but only if all the hardware was open. Of course, then you're in more of a 68k Mac space where hardware choices are extremely limited.
I think we are talking about a different niche.
If so, no need to think in terms of catch-up. Rather: work out the design values of this niche.
Lots of ideas, but this thread is already deep. I have created #dinghy on irc.freenode.org, would be interested to discuss further.
If you want simple nowadays, boot a Linux kernel into busybox. It'll boot almost as fast as DOS but you'll have all the crazy modern amenities like 64 bit support and network drivers.
You don't even need a package manager. You could just unpack a GCC binary and compile all the junk you want yourself.
Still, AppImage is an attempt to bring sanity to the garbage fire of the Linux Desktop. I'd rather have a system that wasn't a garbage fire to begin with.
You seriously say this in an era when Electron exists? You'd be hard pressed to waste more resources by simply not having deduped libraries.
> Package-based distributions concern themselves with this a lot
Yes, and they end up causing a lot more headache than they ever save because of it.