3 ms·
The bigger issue with kernels is that they are, as you say, close to the hardware. That makes them harder to do in higher level languages (you need something to
by likpok 18y ago
The bigger issue with kernels is that they are, as you say, close to the hardware. That makes them harder to do in higher level languages (you need something to run on...). However, it is possible to do, for example Singularity.
Personally, I think that the "kernel" will begin to be a smaller and smaller part of the OS. More like L4 et al, as the performance costs become smaller (L4 is already pretty good).
Eventually, C might become the old assembly; you need a small amount of it to get started, but once you've boostrapped, you can live in higher-level code.
- tptacek 18y agoI don't think proximity to the hardware is a big issue (we do a lot of hardware work --- at the interrupt-handler, polling-MSRs, hard-timer level --- and we take pains to stay in Ruby, an incredibly slow language. I think the issue is first performance (you can't context switch fast enough in a high-level language, and more importantly the concept of a context switch in most OSs is kind of tuned to the C language), and the second is universality; you want the lowest common denominator in the kernel.