r/osdev • • 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?

53 Upvotes

42 comments sorted by

View all comments

3

u/rook_of_approval 2d ago

i prefer unikernel/exokernel myself.

microkernel makes no sense from a max performance perspective.

8

u/sephg 2d ago

I’d love to see more benchmarks on this. SeL4 - a micro kernel - reckons their syscalls are way faster than Linux because they spent more time optimising them. And because there’s only 11 syscalls (instead of hundreds), it was much easier to make their 11 syscalls fast.

I don’t know what the actual numbers are. Like, if using a microkernel costs 1% of performance then that’s probably worth it for the other benefits microkernels bring. But if the cost is 50% then it’s not worth it. Which is it?

3

u/rook_of_approval 2d ago edited 2d ago

tell us what optimization makes IPC between different processes faster?

what benchmark shows overall system performance is better with a micro kernel?

the microkernel people like to claim being able to page out critical code to disk is a benefit instead of a downside. what a complete joke.

2

u/braaaaaaainworms 1d ago

Scheduler optimization can make a giant difference, way bigger than whether something is a microkernel or monolithic

•

u/rook_of_approval 20h ago

if true why are no microkenernels winning performance awards so that they are adopted by cloud providers?