Q:

OS (kernel) programmed in Java or in C

I'm going to start building operating system and I don't know which programming language to choose for kernel. My favorite language is Java but I know that all major operating systems (Windows, Linux, Mac OS) is programmed in C, moreover Java requires virtual machine. Does it would be much harder to program than Java-based OS than C-based OS? What are the advantages and disadvantages of each of these languages?

A:

http://wiki.osdev.org is an extremely useful site on that matter. It tells you how to build your toolchains, which language options that are available, and has some great example code.
Yvan

A:

I would humbly suggest that you truly learn a programming language before trying to build an operating system, after which you would realize in which languages you can or cannot write kernels in yourself. 
Programming languages such as Java simply does not offer the low-level routines necessary to create an os. You can implement your OS in c or c++. Unless you master bootstrapping code (read assembler) and a programming language such as c, it would be a good idea to reconsider a perhaps easier task. 
You could however emulate an OS by running it as a program in another OS, in which case you may experiment with any language of your choise. 

A:

Does it would be much harder to program than Java-based OS than C-based OS?

How would you write the hardware-level programming to handle interrupts in Java?

