hello!
well, i'm still new to singularity and haven't read all of the papers & docs completely, so don't mind me asking questions that maybe have been answered somewhere else yet... plus, i haven't got that much experience in kernel design & programming, admittetly. especially not for a kernel that follows such an untraditional approach in design like singularity does.
so, as far as i get it, the managed part of singularity is written in three languages (c#, spec#, and sing#), or better: one language (c#) and two "dialects" of it (spec# and sing#). now my question is: are things like spec# and sing# really needed to write a managed os? i know, it's a very elegant way to use and express the dynamic and functionality of channels, for example, directly in high-level language - but these "extensions" to the language are rather proprietary and not standardized. what about expressing these semantics in standard c#? would that be much more difficult to accomplish?
what i've been thinking is that singularity maybe is going a step too far on the language level. i know, this is research, but i'd love to see a managed os written in a managed language like c# without any extensions to reach that goal.