6 ms·
Well, the micro kernel delusion is about the same as the micro services delusion. Modularity is a good thing when it applies to code and either irrelevant or de
by cjfd 8y ago
Well, the micro kernel delusion is about the same as the micro services delusion. Modularity is a good thing when it applies to code and either irrelevant or detrimental when it is attempted to be applied to executables.
- 0815test 8y agoI don't think this is right, the point of microkernels is that kernel space vs. executables is a desirable protection boundary. It's not obvious that we are consistently making the right choices as to what to run in kernel vs. userspace, and sometimes moving some subsystems across the divide is the sensible choice, e.g. as with userspace filesystems or even userspace network stacks.
- bitwize 8y agoSome Amiga diehards await the day when we all realize that virtual memory and process isolation are passing fads, and go back to setting interrupt vectors and walking kernel data structures directly in RAM like real programmers did on the Amiga back in the day. What they don't realize is that Amigas crashed a lot more than they remember. If you value speed above all else, modularity is detrimental. If you value security or robustness, modularity helps you design components in such a way that one component's failure doesn't bring down the whole system, or compromise data being worked on by other components.
- 0815test 8y ago> Some Amiga diehards await the day when we all realize that virtual memory and process isolation are passing fads, and go back to setting interrupt vectors and walking kernel data structures directly in RAM like real programmers did on the Amiga back in the day. You mean, like a unikernel? I don't think anyone has tried to write a modern desktop stack that runs within a unikernel, as the Amiga OS did (parts of the desktop widget interface were even hardwired in ROM) but it can't be that hard if you can get useful language-based guarantees.
- bitwize 8y agoWell, there is AROS, but language guarantees don't stop a rogue binary from bringing the whole system down. For that you want ISA guarantees, and then you're talking a moddern OS. Unikernels only make sense when the entire application of the system is defined AOT.
- swiley 8y agoThat really doesn't sound so bad if the applications are small and everyone can see the sourcecode. That's not the way amiga software was though heh.
- aidenn0 8y agoI know I've seen a design for mostly-single-address-space OS that use a VM just for running untrusted binaries. I think it was from someone working on one of the EROS successors, but not sure. I've also seen proof-carrying code proposed as an alternative; binaries must carry proof that they do not exceed certain capabilities and the proof is verified before they are run.
- snvzz 8y agoKeep in mind Linus thoughts on microkernels made sense in 1991, with first generation microkernels. Then Liedtke's L4 happened, spawning the 2nd generation based on the principle of minimality. This changed the situation. We're currently in the 3rd generation (with capabilities), its main representative being seL4, and the current landscape bears no resemblance to that of 1991. With google's financial muscle behind fuchsia, operating systems will only get more interesting thereon.