7 ms·
All of these optimizations for microkernels would accelerate monolithic kernels as well. What seems to be very much missing from presentations like this is a re
by iofj 11y ago
All of these optimizations for microkernels would accelerate monolithic kernels as well. What seems to be very much missing from presentations like this is a reason that these would accelerate microkernels more then they would accelerate monolithic kernels.
I do wonder if we could do the opposite of microkernels. A microkernel would be free if it was running a (pre/recompiled ?) VM and things like memory mapping/protection/... would be compiled into user programs before execution. After this these could run without any actual user/kernel space isolation and just eliminate things system call overhead entirely.
- carussell 11y agohttps://en.wikipedia.org/wiki/Singularity_%28operating_system%29#Security_design https://en.wikipedia.org/wiki/Singularity_%28operating_syste...
- iofj 11y agoHeh, I just realized I unwittingly made the "sufficiently smart compiler" argument. The only reason a library OS would outperform a non-library OS is that software can do things faster than hardware. This compiler/VM would have to outperform the cpu at executing ... cpu instructions, which is never going to happen, or it would have to optimize better than the hardware can. In theory this is possible, in practice, in low-level optimized piece of software, like the kernel, this is never true. This just can't work, at least for the next few decades, but potentially forever.
- KMag 11y agoThis isn't the opposite of microkernel design. Such a "library OS", where the OS provides dynamically linkable libraries that provide OS services have been researched, often seen as microkernels taken to the extreme. See the Exokernel from MIT as one example.
- iofj 11y agoI've actually run linux as a "library OS". You can actually run it with MMU support disabled on x86. Worked fine. Compiled a little C program to overwite the interrupt table, ran it, and the whole computer crashed instantly. Weird.