3 ms·
> Millions of lines of kernel, all of which have to be made preemptable. ~90% of those are device drivers, which you'd still need with a microkernel if you wan
by creshal 3y ago
> Millions of lines of kernel, all of which have to be made preemptable.
~90% of those are device drivers, which you'd still need with a microkernel if you want it to run or arbitrary hardware.
- dontlaugh 3y agoBut crucially, drivers in a microkernel run in user space and are thus pre-emptible by default. Then the driver itself only has to worry about dealing with hardware timing when pre-empted.
- creshal 3y agoSure, but who's going to write the driver in the first place? Linux's "millions of lines of code" are a really underappreciated asset, there's tons of obscure hardware that is no longer supported by any other actively maintained OS.
- dontlaugh 3y agoI also don't see how we could transition to a microkernel, indeed.
- naasking 3y agoThe very first "hypervisors" were actually microkernels that ran Linux as a guest. This was done with Mach on PowerPC/Mac systems, and also the L4 microkernel. That's one way. The only downside of course, is that you don't get the isolation benefits of the microkernel for anything depending on the Linux kernel process.