Linked by Thom Holwerda on Wed 30th Jan 2008 23:30 UTC, submitted by obsethryl
OSNews, Generic OSes "C# has been a language with a mixed history but precise goals. Although the C# language definition is for some time an ISO standard, only a part of the Base Class Library, which contains the fundamental functions that are used by all C# programs (IO, User Interface, Web services, etc) is also standardized. Parts of the BCL have been patented by Microsoft, but that has not deterred developers from attempts at implementing the components that are standardized, in various forms (Mono and affiliated projects). What happens when you go beyond that? What happens when outside the language, you start to implement not a mere application platform, but an entire operating system around it? Brace yourselves, because there is not only Microsoft Research who has done this with Singularity, but at least two other projects doing the same; and they are doing this under opensource terms. A system based around a C# Kernel. In this article, we are looking at one of the two, Cosmos by asking Scott Balmos and Chad Hower about the project they are involved in."
Thread beginning with comment 298635
To read all comments associated with this story, please click here.
.Not
by shiva on Thu 31st Jan 2008 12:28 UTC
shiva
Member since:
2007-01-24

What is the problem with C++ or C and why use a Microsoft-only framework/language (yes, Mono is not a complete and viable alternative for non-windows operating systems) ?

RE: .Not
by BluenoseJake on Thu 31st Jan 2008 13:00 in reply to ".Not"
BluenoseJake Member since:
2005-08-11

Because they can? It might prove useful, fun or just educational. I certainly like doing some things just because I can.

Reply Parent Bookmark Score: 1

RE: .Not
by google_ninja on Thu 31st Jan 2008 18:08 in reply to ".Not"
google_ninja Member since:
2006-02-05

The problem is that C and C++ are obsolete languages that are a pain to work with. Thats like saying why use python when we have a perfectly good fortran?

And mono is a complete and viable solution for non-windows operating systems. If you don't think it is, I seriously doubt you have ever used it.

Reply Parent Bookmark Score: 5

RE[2]: .Not
by bnolsen on Thu 31st Jan 2008 19:04 in reply to "RE: .Not"
bnolsen Member since:
2006-01-06

Trolling ?
How are c/c++ obsolete languages?

'c' is arguably still the best "high level assembly" language out there.

Reply Parent Bookmark Score: 1

RE: .Not
by sbalmos on Thu 31st Jan 2008 20:26 in reply to ".Not"
sbalmos Member since:
2008-01-31

Despite the comment threads already going on, there are a few reasons why C/C++ isn't being used:

1) To prove it's possible to write a CLR-based OS
2) The fact that an OS based around a memory-safe language and runtime is inherently more safe. You eliminate the majority of normal bug openings (buffer overflows especially). And without needing to use segments and separate CPU privilege levels, you don't have to do context switches.
3) Most interesting to me is that by distributing code in a bytecode form, you get platform independence without having to distribute source. Device manufacturers can write a driver, distribute in bytecode, and not have to compile for every architecture, kernel version, etc. Nor do they have to distribute source, which somewhat protects trade secret interests (I know, bytecode can be easily reverse-engineered. But it's a "see no evil" effort, in my opinion).

Hope that made vague sense.

Reply Parent Bookmark Score: 2

RE[2]: .Not
by illuminus on Thu 31st Jan 2008 21:03 in reply to "RE: .Not"
illuminus Member since:
2008-01-02

Makes perfect sense. Between Cosmos, SharpOS ( http://www.sharpos.org/ ), and JNode ( http://www.jnode.org/ ), I think we all have a bright future ahead of us.

We won't even have to make the mistakes of eternal backwards compatibility that Windows makes, because we can efficiently emulate other OS' ABIs using OOP abstractions and opcode recompiling.

All hail open-source. Hallowed be the architects.

Reply Parent Bookmark Score: 1

RE: .Not
by tomcat on Fri 1st Feb 2008 07:21 in reply to ".Not"
tomcat Member since:
2006-01-06

What is the problem with C++ or C and why use a Microsoft-only framework/language


First, C# isn't a "Microsoft-only framework/language". It's a public ECMA standard. See mono-project.com.

Second, C# has a lot of draws over C/C++: lower complexity, platform-independence, garbage collection (no more leaked pointer references), consistent advanced language features (ie. threading, exceptions, events, timing, delegates, templates, etc), rapid prototyping, JIT compilation (and support for on-the-fly compilation of classes).

Third, I don't think it's a question of "Why use C# over C/C++?" but, rather, "Why use C# over Java?" Computer languages are just abstractions. Java and C# can be reduced to native code just as readily as C/C++, and they contain all of the necessary constructs to write an operating system. Java and C# are both up to the task. I'm not sure why the project chose C#; except, of course, that tool support for C# is very good with Visual Studio (I don't care for Eclipse--just my personal preference).

(yes, Mono is not a complete and viable alternative for non-windows operating systems) ?


I totally disagree. Not sure how you formed this conclusion, but you're wrong. Mono is an excellent open source implementation of C#.

Reply Parent Bookmark Score: 2