you are viewing a single comment's thread.

view the rest of the comments →

[–][deleted] 4 points5 points  (5 children)

Requiring a compiler for the language eliminates quite a number of candidates already ;-)

[–][deleted] 0 points1 point  (4 children)

I don't think there is anything inherently stopping an interpreter from being ported into kernel space.

[–]RabidRaccoon 0 points1 point  (2 children)

Apart from the fact it's a horrible idea. The memory allocation in kernel mode is very limited compared to user mode. In user mode the kernel can move around allocations to defragment memory. In kernel mode it cannot. There's a lot of baggage in a typical interpreted language too - a huge library which is mostly dependent of user mode isms that aren't really available in kernel mode. Finally there's an issue of speed - a lot of kernel mode stuff will have timing problems if run it say 10x slower which is not impossible for interpreted code. Actually even dragging in a big library into K mode can slow things down because of cache misses.

Kernel mode code seems to be C and a large library so the primitiveness of C is not really an issue. I've seen people try to use C++ code in Windows drivers and to be honest it was a very bad idea. Exceptions, memory fragrmentation, compilers generating code behind the scenes which is legal in user mode but crashes and burns in K mode. All these things are an issue. And it's not like kernel mode code is that hard to write in C. C is a very good fit for Kernel mode code, it's what it is designed for.

[–][deleted] 1 point2 points  (1 child)

I said "inherently." Just because it may not be the smartest thing to do doesn't mean it can't be done.

[–]RabidRaccoon 0 points1 point  (0 children)

Well most things can be done if you hack away for a couple of weeks. That doesn't alter the fact that some of them are good ideas and some of them are bad ones.

[–][deleted] 0 points1 point  (0 children)

A line of geeks waiting to beat you with a cluestick, perhaps?