SharpOS 0.0.1 has been released. “The SharpOS project is aimed at writing an operating system in 100% C#. This originally proved to be a problem of nearly philosophical proportions because C# is a managed language, and by nature isn’t designed for such low-level uses as developing an operating system kernel. Please note that although our goal is to create an operating system in C#, the infrastructure we have created allows kernels to be written in any language that targets the Common Intermediate Language bytecodes and exposes pointers and unsafe code.”
Being a geek this project totally appeals to me. I wonder what happened to the OS that was supposed to be written in Java…I would like to know though isnt this something that Microsoft already attempted through Singularity?
Java OS: http://jnode.org/
I think the focus of Singularity was to create a more reliable OS by stronger isolation of processes. I’m sure it’s much more complicated than that.
Yes, and Singularity is much more advanced and has many different areas of research being made in it.
Writing a Managed Kernel is only the beginning, there is a much greater potential for a rich experience. It’s still an area of active research, so it’s pretty neat that these guys were able to at the very least boot a kernel written in C#.
Now, according to my reading the kernel isn’t managed per-say, it seems like they translate the IL to x86 and execute that. It doesn’t bring the benefits of managed code.
For now, yes, managed code is not actually supported, but that is our goal. As you can imagine, doing the project the way we are doing it does not lend to expedient development at least for this early stage. Our next milestone focuses on implementing object support and all the things that that entails.
Yea, I hope I didn’t come off as trying to downplay the project. It’s still very impressive, and a step in the right direction.
“It doesn’t bring the benefits of managed code.”
Did I miss the point of Singularity? i.e. that the IL can be analyzed and given a safety rating. i.e. if the IL never dereferences pointers itself and uses safe API’s, then the driver, etc…, can be labeled safe.
there are a lot of other nice things that can happen too….
Thank you for your interest! Yes, Singularity is similar to SharpOS, but unfortunately Singularity is not open source (or shared source for that matter), and it also makes use of a runtime written in a non-CLR language. They also created a special version of C# for the project. We are free software, and we strive to use tools/languages that are already mature and freely available.
Erm… according to your wiki, you use the GPL. Unless that page was false, that makes SharpOS open source software, not free software.
The distinction is important, and you’re apt to get ganked here on OSnews for less ^^;
Actually by “free software” I meant free as in freedom, and yes, that is what GNU and other _free software supporters_ call software covered by GPL.
>Actually by “free software” I meant free as in freedom, and yes, that is what GNU and other _free software supporters_ call software covered by GPL.
Not only GPL licensed software is Free Software. BSD, X11, MIT, Apache,… licensed software is Free Software too.
BTW: Why have you added a linking exception to the GPL?
Edited 2008-01-02 11:40
Even more, I wouldn’t name GPL software “free as speech”, because the license implies too many restrictions on its use. It is rather “free as cheese”.
Use whatever license you prefer for your own works if you choose to release them. Respect the choices of others. And please refrain from trying to stir up a flame war here. There are so many *constructive* ways in which we can all interact. Why waste time and energy fostering conflict and bad feelings?
“Erm… according to your wiki, you use the GPL. Unless that page was false, that makes SharpOS open source software, not free software. ”
Smacks of … yeah, you got it.
DNFTT
😉
Kudos for your fascinating work!
I have a question… (not politics, please) Why did you choose C# instead of Java [technically, they both provides similar features and architecture] (and Java is getting open)?
Good question! But I think it could be cause you are all more knowledgeable in C# than Java?
Well, we just like C# more I think. Besides, there is already a project to create a Java OS called JNode.
Except that Singularity and SharpOS are not that similar. The only thing they have in common are the CLR and C# except Singularity is written in Singh# which is C# with extensions that make writing OS’s in C# possible.
The architecture is different. The three things that stand out are:
– Software Isolated Processes (SIP)
– Contract based Channels
– Manifest Based programs
Lisp Machines?
Smalltalk?
JNode?
SqueakNOS?
D!! Why aren’t any of these pie-in-the-sky hobbyist projects developing an OS in D? It’s a native, C-compatible language that supports inline assembly, imperative, object-oriented, and template meta-programming styles with concurrency and serialization primitives, built-in unit test framework, and other goodies. If you’re going to write an OS kernel in a very high-level language, then why not go with one that compiles to native machine code?
It’s all a matter of choice, the ultimate purpose of a managed Operating System isn’t the language it’s written in. It’s the advantages of managed code vs native code.
It could target any language which compiles to IL, but the key is in what you do with these advantages at the kernel level.
There’s a lot of potential, and the people working on Singularity have published a few papers outlining some of the advantages.
I doubt I will ever use this however I think it great that people do this and other projects. Trying new ideas is where true innovation (not the MS type) comes from.
Maybe you’re forgetting that Microsoft has been doing this for about a year with Singularity?
Seriously, Microsoft is not even MENTIONED in this article. Why the flame bait?
Good point. My bad. I should just leave it with the fact that I think it’s great that people are trying new ideas.
IMHO the point is to have fun and just to prove that something like this is possible. There doesn’t need to be any more reason than that, you know. Besides, this is a great challenge and for those who like mental challenges programming an OS is most likely pretty darn fun and interesting! I won’t touch this SharpOS myself but I think this is a fantastic proof-of-concept and I wish all the luck to the devs :3
I think this is a great project and it’s perfectly fair to compile IL down to native code. That’s in fact what the .NET JIT does. AFAIK, .NET never interprets IL… it’s always compiled to x86, x64, IA-64, PPC, or ARM. Singularity is based on a different compiler system than the CLR… it compiles everything down to machine code ahead of time and there’s a lot of work being done in that group to continue the theorem-proving properties of the compiler into the native code layer.
I hope this project does well and leverages the work done by Mono and the other open-source .NET runtimes.
…of the “Pinky and the Brain” quote on the screen
I see they use C-style NULL terminated strings there and a lot of unsafe code to deal with these strings. Doesn’t it bring back all the security/safety implications typical for C code? The how is 100% C# in this case better wrt security than a plain C code?