Hacker News new | ask | show | jobs
by sudhirc 696 days ago
I am not sure why nobody talks about the fundamental flaw in the design of the operating systems. Monolithic kernels were chosen at a time when CPU context switching was a serious penalty on the performace.

So IMHO isn't it time to rethink this idea of putting every single shit into the kernel space?

In other words Linus won then, and its now time to think about Tanenbaum too.[0]

[0] https://en.wikipedia.org/wiki/Tanenbaum%E2%80%93Torvalds_deb...

3 comments

The overhead of context switching is — if anything — higher in relative terms.

I wonder if it would be possible to make an OS that uses an inter-process communication primitive that works like io_uring to mitigate this overhead.

> The overhead of context switching is — if anything — higher in relative terms.

Why that is the case when we have faster CPU, RAM, and SSDs etc.

There are solutions in monolithic kernels for writing safe kernel space code now too. eBPF has been a thing for a while now (https://ebpf.io/what-is-ebpf/) and while it might not be as safe as microkernel it's available now and it works on both Windows and Linux.

I think a big question is why are things like CrowdStrike still written in raw C++ Kernel code? Is it the limitations of eBPF? Is it stagnations of the tech stack at these companies?

Thanks for the pointer. I will give it a read later on. If I understood correctly, eBPF is a guard rail for writing relatively bug free code. But it will still run in the processor[0] ring 0 which essentially is the same level as the kernel itself.

[0] https://en.wikipedia.org/wiki/Protection_ring

CrowdStrike uses eBPF on Linux but Windows doesn't support eBPF.
Perhaps it's not sufficiently complete yet for CrowdStrike to use it, but Microsoft has been developing eBPF support for Windows since 2019:

https://github.com/microsoft/ebpf-for-windows/

So 2025 will be the year of GNU Hurd on desktop?