Managed Operating Systems

time to read 2 min | 232 words

Here is something that caught by surprise. Sharp OS and Cosmos OS are two operating systems written in C#.

That is not something that you traditionally do with managed languages. So far I have had a look at Sharp OS source code, which seems nice, although I am taken aback by the amount of unsafe code that is there. Of course, it is not like there is much choice in the matter.

I was particularly amused by the implementation on inline assembly:

image

But other pieces of the code are make me feel that I am looking at some... other language:

image

You can take the kernel out of C, but you can't get the C out of the kernel, I would say.

I took a brief look at the Cosmos code as well, and it is not significantly different. The way both projects go about building kernels with managed languages is to do IL -> assembly translation at some point, and then run that.

Very interesting concept, although one that I have an academic interest at only. At least until they both get a viable TCP/IP stack and I can start using them as embedded systems. Until then, I think that a stripped down Linux + Mono would do the trick fairly well.