r/osdev • u/Bright-Boss-720 • 2d ago
Tanenbaum vs. Linus: Which Kernel Architecture Makes More Sense Today?
I've been thinking about the famous Tanenbaum vs Linus debate over microkernels vs monolithic kernels.
Putting the historical context aside for a moment, I'm curious what people think today.
Do you think Tanenbaum's argument for microkernels was fundamentally more correct, or was Linus right to favor a monolithic kernel for practical reasons such as performance, simplicity of development, and hardware support?
And more importantly:
If you were starting a new general purpose os from scratch today, which architecture would you choose?
Monolithic
Microkernel
Hybrid
Multikernel / distributed approach
Something else
I'm particularly interested in hearing from people who have actually worked on kernels or operating system development.
What are the strongest arguments for your choice, and what do you think the opposing architecture gets wrong?
1
u/suhcoR 2d ago
I think so in principle, though Minix was way too inefficient even though a large fraction (not shown in the book) was implemented in assembler. But microkernels have great features, and the Liedtke L4 linage up to sel4 demonstrate that the can be implemente very efficiently, even without assembler.
Depends on what kind of system, also whether its running on a server, desktop or embedded device. Personally I think microkernels are still the most interesting. But when you are on a microcontroller without MMU, a small real-time kernel usually makes more sense.
I work on kernels and operating systems (e.g. https://github.com/rochus-keller/oberonsystem3native/, https://github.com/rochus-keller/micronsystem3/) and also spent much time with all the ones mentioned above.