[Mono-dev] [Mono-devel-list] Operating System in C# Project

Brian Crowell mono-devel at fluggo.com
Mon Oct 30 14:05:43 EST 2006


jmacdonagh wrote:
> Glad to see I'm not the only one interested in ths. I've also toyed around
> with this idea for some time. I began looking at traditional operating
> system development to learn a little more.

What interests me most about this is a C# program as a first-class citizen, or really, every API in the system being not only available, but *designed for* managed programs.

I think a good example of that can be found in Microsoft's DirectX, which we were just discussing. Compare Managed DirectX to XNA. The differences are big. XNA exposes, for the most part, the very same APIs, but in a much more intuitive and friendly manner than Managed DirectX.

You could consider fully object-oriented operating systems, where the design of the API is every bit as important as its concept. You could organize the system around safe plug-ins, each providing some service to the whole, such as a windowing system, file systems, etc., but which are most importantly *as easy to write as implementing an interface or an abstract base class.*

I'd be very interested in participating on design of such a thing. I've been trying to teach myself good object-oriented design over the years, and I think I would have some good input to give past the initial problem of booting such an environment.

Perhaps the project could be approached in two stages? Half where we boot the managed environment, and half where we assume the managed environment. You could design and implement these independently of each other. You could even design a set of classes to emulate the kernel on top of an ordinary runtime, for the purposes of unit testing. One strategy I've become fond of, especially where components and unit testing come into play, is generous use of the IServiceProvider interface; if components accessed kernel objects this way (or a similar way, where you ask for a base class but not a specific implementation), they would neither need to know or care whether they're using the real thing or not.

Several thoughts. Exciting stuff.

--Brian



More information about the Mono-devel-list mailing list