I am mostly a Linux guy, and I've been following development on Linux for a while now. I do use Windows occasionally for stuff like games, but I do all my development on Linux so I'm not really well versed on Microsoft's development terminology. From what I understand, an "OS" is simply a kernel, and userland is where all the API's are (the C library etc.)
Longhorn will not be a fully managed OS, but will for a large degree be built on managed code. All new APIs will be managed.
I do not quite understand what "managed code" means, but I deduce that it's some kind of run-time that resembles JVM and is part of .NET (which is still a very fuzzy concept to me). What I want to know is, is any of the new Windows kernel going to be using this? How do you write kernel code with some kind of "managed run-time"?
I have never seen a .NET application before, but I somehow imagine it to be kinda like Java. My experience with Java is that it is slow, buggy and crash-prone (and I strongly suspect the VM is to blame) and does not compare even the slightest with a nice compiled C program. To think that most of an entire OS is going to be based on "managed code" makes me dubious as to the stability of the eventual product.
I'm sorry if I sound naive, but that's the impression I get personally from "managed code". Bad vibes, perhaps due to my traumatic Java experiences. I'd like to be proved wrong though.