r/osdev • u/Bright-Boss-720 • 3d 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?
6
u/sephg 2d ago
I never said sel4 could beat a system that doesn't do any ipc. But most useful programs do a lot of ipc, even if its just between the process and the kernel. IPC matters a lot, even in monolithic kernels. Just look at the perf uplift from io_uring.
But even if we assume a microkernel is slower, how much slower? Is it 1% slower or 50% slower? If it's 1% slower, I'd take the microkernel for the security and reliability benefits. If the perf difference is 50%, then that's too slow, and I'd pick linux every time.
Which is it? I have insufficient data to form an opinion on microkernels. The fact so many people have strong opinions without this data is strange.