We're talking about two different things. I'm talking about OS components being written in managed vs unmanaged code. You're talking (I believe) about whether or not an OS has a first-class managed runtime for apps.
The article's author's assertion is that blindly using managed code in performance-critical components is a stupid idea, and I agree.
From the article, WinFS (the filesystem), Avalon (the UI compositor and renderer), and Windows Communication Foundations (networking) were all rewritten in the then-new/unstable C# for Vista.
Given that fate of the projects, I'd say history bears it out as being a stupid idea.
NeXT device drivers were written in Objective-C, check Driver Kit API.
The projects were killed by political reasons, not technical. Specially after what was being done with Midori, also killed by management, in spite of the technical achievements.
Ojective-C is a superset of C though. If you avoid the (dynamic dispatch) message passing, and if you construct/destruct objects manually, you're getting the same performance as C. It's trivial to move the performance-critical bits into the pure-C subset of objective-C.
You can't really do this with a managed (VM) language.
The article's author's assertion is that blindly using managed code in performance-critical components is a stupid idea, and I agree.
From the article, WinFS (the filesystem), Avalon (the UI compositor and renderer), and Windows Communication Foundations (networking) were all rewritten in the then-new/unstable C# for Vista.
Given that fate of the projects, I'd say history bears it out as being a stupid idea.