>>95
Now that you've bumped it, I feel compelled to respond to some posts:
>>60
Nonsense, you can write it in whatever language you want, as long as you extend the language to be able to emit lower-level code too (such as asm), or link to asm somehow. The usual idea when writing an OS in a language that was not originally meant to be used for such purposes is to simply extend it to have a low-level layer library, possibly something for emitting assembly code for the target platform, and preferably a native compiler for your language. Others have also tried doing this in another way: compile to bytecode, and make the VM that interpreters or JITs that bytecode, or even make a CPU(or program a microcoded CPU) whose machine code is the same as the bytecode. It's also true that some languages may be badly designed and unsuitable for OS design(I shudder at the thought of a PHP OS for example), but most well-designed languages should be usable with some extensions.
>>82
Well designed
real macros aren't really that slow, and compile times tend to be reasonable, and unlike edit,compile&link languages, languages which have
real macros usually allow you to dynamically recompile any function you want, which makes the cost considerably smaller. It also makes live patching of the OS, kernel or any application a painless procedure - no more bringing down the system to do updates.