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

Johann MacDonagh johann at macdonaghs.com
Mon Oct 30 18:58:12 EST 2006

Michael Schurter wrote:
> Brian Crowell wrote:
>> 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.
> The 2 stages sounds sensible: kernel and framework/platform/libraries.
> Personally I couldn't care less about a managed kernel, but I'd love to 
> help implement the rest of the stack.
> So where do we start?  Monix (Mono + Unix) doesn't seem to be a taken 
> name!  :)
> I could throw up svn, wiki, and mailing-list on my personal domain name 
> to get things started.  I hate to keep continuing this discussion on 
> mono-devel as its pretty OT.
> Perhaps Miguel to give some advice on the first steps to starting this 
> project as he's probably started more large-scale FOSS projects than
> anyone!
> -- 
> Michael Schurter
> _______________________________________________
> Mono-devel-list mailing list
> Mono-devel-list at lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-devel-list

Actually if it's all the same, I'd like to keep this operating system
separate from the Unix mentality. That's not to say we wouldn't borrow some
of Unix's ways of doing things, but there are certain things that would need
to be changed.

SharpOS.org isn't taken. Kind of shows both sides of the issue.

If there was enough brains behind this, then I wouldn't mind paying for some
shared hosting on a separate domain name. Set up a wiki (for brainstorming,
designing), svn, and perhaps some forums (I prefer them over mailing lists).
View this message in context: http://www.nabble.com/Re%3A--Mono-devel-list--Operating-System-in-C--Project-tf2349909.html#a7085656
Sent from the Mono - Dev mailing list archive at Nabble.com.

More information about the Mono-devel-list mailing list