Linked by Thom Holwerda on Tue 1st Jan 2008 21:50 UTC, submitted by William Lahti
.NET (dotGNU too) 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."
Order by: Score:
Very cool!
by suryad on Tue 1st Jan 2008 22:56 UTC
suryad
Member since:
2005-07-09

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?

Reply Score: 2

RE: Very cool!
by Aaron1 on Tue 1st Jan 2008 23:48 UTC in reply to "Very cool!"
Aaron1 Member since:
2006-01-19

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.

Reply Score: 3

RE: Very cool!
by Nelson on Tue 1st Jan 2008 23:50 UTC in reply to "Very cool!"
Nelson Member since:
2005-11-29

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.

Reply Score: 2

RE[2]: Very cool!
by fury on Wed 2nd Jan 2008 00:46 UTC in reply to "RE: Very cool!"
fury Member since:
2005-09-23

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.

Reply Score: 4

RE[3]: Very cool!
by Nelson on Wed 2nd Jan 2008 00:51 UTC in reply to "RE[2]: Very cool!"
Nelson Member since:
2005-11-29

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.

Reply Score: 2

RE[2]: Very cool!
by mrminnman on Wed 2nd Jan 2008 03:10 UTC in reply to "RE: Very cool!"
mrminnman Member since:
2006-06-27

"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....

Reply Score: 1

RE: Very cool!
by fury on Wed 2nd Jan 2008 00:50 UTC in reply to "Very cool!"
fury Member since:
2005-09-23

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?


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.

Reply Score: 7

v RE[2]: Very cool!
by Almafeta on Wed 2nd Jan 2008 06:00 UTC in reply to "RE: Very cool!"
RE[3]: Very cool!
by fury on Wed 2nd Jan 2008 06:03 UTC in reply to "RE[2]: Very cool!"
fury Member since:
2005-09-23

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.

Reply Score: 6

RE[4]: Very cool!
by pinky on Wed 2nd Jan 2008 11:34 UTC in reply to "RE[3]: Very cool!"
pinky Member since:
2005-07-15

>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

Reply Score: 3

v RE[5]: Very cool!
by vtolkov on Wed 2nd Jan 2008 18:11 UTC in reply to "RE[4]: Very cool!"
RE[6]: Very cool!
by sbergman27 on Wed 2nd Jan 2008 19:38 UTC in reply to "RE[5]: Very cool!"
sbergman27 Member since:
2005-07-24

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?

Reply Score: 4

v RE[4]: Very cool!
by wannabe geek on Thu 3rd Jan 2008 17:27 UTC in reply to "RE[3]: Very cool!"
RE[2]: Very cool!
by ebasconp on Wed 2nd Jan 2008 19:01 UTC in reply to "RE: Very cool!"
ebasconp Member since:
2006-05-09

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)?

Reply Score: 2

RE[3]: Very cool!
by suryad on Thu 3rd Jan 2008 00:43 UTC in reply to "RE[2]: Very cool!"
suryad Member since:
2005-07-09

Good question! But I think it could be cause you are all more knowledgeable in C# than Java?

Reply Score: 1

RE[4]: Very cool!
by fury on Thu 3rd Jan 2008 05:49 UTC in reply to "RE[3]: Very cool!"
fury Member since:
2005-09-23

Well, we just like C# more I think. Besides, there is already a project to create a Java OS called JNode.

Reply Score: 1

RE[2]: Very cool!
by andrewg on Thu 3rd Jan 2008 14:05 UTC in reply to "RE: Very cool!"
andrewg Member since:
2005-07-06

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

Reply Score: 2

Point?
by Sophotect on Tue 1st Jan 2008 23:16 UTC
Sophotect
Member since:
2006-04-26

Lisp Machines?
Smalltalk?
JNode?
SqueakNOS?

Reply Score: 3

RE: Point?
by butters on Tue 1st Jan 2008 23:47 UTC in reply to "Point?"
butters Member since:
2005-07-08

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?

Reply Score: 7

RE[2]: Point?
by Nelson on Tue 1st Jan 2008 23:52 UTC in reply to "RE: Point?"
Nelson Member since:
2005-11-29

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.

Reply Score: 1

v RE[2]: Point?
by Aaron1 on Tue 1st Jan 2008 23:55 UTC in reply to "Point?"
RE[3]: Point?
by Nelson on Wed 2nd Jan 2008 00:00 UTC in reply to "RE[2]: Point?"
Nelson Member since:
2005-11-29

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?

Reply Score: 3

RE[4]: Point?
by Aaron1 on Wed 2nd Jan 2008 01:57 UTC in reply to "RE[3]: Point?"
Aaron1 Member since:
2006-01-19

Good point. My bad. I should just leave it with the fact that I think it's great that people are trying new ideas.

Reply Score: 3

RE: Point?
by WereCatf on Wed 2nd Jan 2008 12:54 UTC in reply to "Point?"
WereCatf Member since:
2006-02-15

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

Reply Score: 2

Singularity
by PlatformAgnostic on Wed 2nd Jan 2008 05:27 UTC
PlatformAgnostic
Member since:
2006-01-02

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.

Reply Score: 3

I'm particularly fond...
by elektrik on Thu 3rd Jan 2008 14:17 UTC
elektrik
Member since:
2006-04-18

...of the "Pinky and the Brain" quote on the screen ;)

Reply Score: 1

C strings?
by como on Sat 5th Jan 2008 08:51 UTC
como
Member since:
2006-11-20

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?

Reply Score: 1