3 ms·
Everyone should at least try writing their own OS. Not necessarily their own kernel, or even the lowest-level utilities - things like Fiasco.OC with Genode are
by vertex-four 10y ago
Everyone should at least try writing their own OS. Not necessarily their own kernel, or even the lowest-level utilities - things like Fiasco.OC with Genode are decent enough if you're not interested in register fiddling - but their own model for how things could work if they got to design a system for programmers and users to use from scratch.
Capability systems? Network transparent message passing? Dynamic load-balancing of running processes across machines? What if you tried to let users script their workflows in a less ad-hoc way than they can now? How about trying to replace the concept of a filesystem, at the same time as trying to encourage applications to share data with each other?
OS development research died a couple of decades ago, and now we have an entire generation of developers who believe the Linux/POSIX model to be the one true system. But IMHO, that's just a quirk of fate, and a local maxima, and it keeps people in the dark about alternative solutions to their problems. For example, capability system advocates will point out that their system almost implements Docker/containerization by default. There have been tons of experiments with efficient message-passing under microkernels which would likely benefit anyone attempting to design Yet Another IPC Framework in the Linux kernel. And so on and so forth.