More explanation:

A language like Java and .NET compile to Intermediate Language that only a Just in time compiler can read. A CPU cant understand that language so it needs something else to work between the JIT and the CPU..hence the OS kernel.