Slashdot Mirror


'Cosmo' — a C#-Based Operating System

Billly Gates writes "A new operating system called Cosmo has been developed, written entirely in C#. It shows the naysayers you can write a full OS kernel without C. So far, you need Visual Studio to compile and run it, as Mono is not supported. However, the source code can be compiled with the Express editions of Visual Studio. The project plans to add VB.NET support soon."

406 comments

  1. Full Kernel without C* by Pete+Venkman · · Score: 0

    *Visual Studio required

    1. Re:Full Kernel without C* by ge7 · · Score: 1

      It's only required because those developing Mono can't be arsed to make their implementation up-to-date.

    2. Re:Full Kernel without C* by SanityInAnarchy · · Score: 1

      s/can't be arsed/don't have the resources.

      Given that Microsoft keeps adding stuff to C# and .NET, and that they aren't exactly contributing to Mono, it's not really surprising that things are the way they are. It may technically be better than Wine, especially if you explicitly target Mono, but that's essentially what we're dealing with here.

      --
      Don't thank God, thank a doctor!
    3. Re:Full Kernel without C* by ge7 · · Score: 0

      But wasn't open source supposed to solve that? You know, anyone can contribute and so on.. or are you saying that proprietary software development model works better in some situations?

    4. Re:Full Kernel without C* by Requiem18th · · Score: 0

      But Mono is 100% compatible with .NET, Miguel de Icaza told me so! /troll

      See, Mono is mostly a wasted effort. I mean I can see the need for an OSS C# compiler runtime, but it is always going to be an uphill battle.

      --
      But... the future refused to change.
    5. Re:Full Kernel without C* by makomk · · Score: 1

      Microsoft have the advantage that they know what's going to be in C# and .Net way before Mono and they can design their features based on what's easiest for them to implement on Windows starting from their .Net implementation, whereas Mono has to play catch-up...

    6. Re:Full Kernel without C* by DaleGlass · · Score: 2

      If you're going to replicate an existing project you're always going to be behind it, whether you follow an open or closed development model.

      Now, Mono could (and does) add functionality MS doesn't offer, creating exactly the same situation in the opposite direction, assuming the Mono additions become desirable enough that MS would want to keep parity.

    7. Re:Full Kernel without C* by symbolset · · Score: 1

      This is actually very insightful. First let me applaud this very important beginning step.

      The goal is for the end-user to be able to port their apps and data to a new architecture. We have known that this is required for continuous IT operations over transformative tech innovations since at least the 1970s.

      To achieve the end user must be able to cross-compile the OS, compiler and tools to the new target platform. And when the target is booted, the apps compiled and the data ported over, the end user must be in a position to do it again.

      Anything less than this is a trap that relies on others to provide the ability to adapt to change of underlying hardware.

      End users don't have to actually use this facility. But it must be present and proven to avoid the trap of dependence on the ability and benevolence of others.

      --
      Help stamp out iliturcy.
    8. Re:Full Kernel without C* by rtfa-troll · · Score: 0, Troll

      More specifically, Microsoft can wait for any design decision that Mono does differently from them, work out the implications of that design decision; add something big, related to that design decision so that the design decision is committed then add something which is compatible with Microsoft's design decision but opposed to Mono's decision. The fact that Mono succeeds at all in copying much of .Net and in not ceasing to exist, even when it's parent company, Novell, is bought out is a real sigh of the strength of the open source methodology.

      --
      =~ s,(.*),<sarcasm>$1</sarcasm>,g if any_point_you_wish();
    9. Re:Full Kernel without C* by ae1294 · · Score: 1

      *Visual Studio required

      Looks like Visual Studio 6 might work in wine...
      http://appdb.winehq.org/objectManager.php?sClass=application&iId=892

    10. Re:Full Kernel without C* by Anonymous Coward · · Score: 0

      Open Source works better when there's interest. Who in the open source world (i.e. NON Microsoft) cares enough about C#? Why bother when you have C,C++,Shell, perl, python, ruby, lisp,scheme, OCaml, Haskell, hell even Java although to be honest about how the Java community is run, why bother with Java either?

      What does C# provide that's compelling enough for open source people to disregard the source of the language and it's past rude and evil behavior? It's not speed since C covers that. It's not object oriented since C++/python/ruby cover those. It's not regular expressions since it's hard to compete with Perl and nigh well impossible to beat Perl on this. Portability? Not going to beat Posix.

      The only person who cares enough about C# is Miguel De Icaza and it became clear a looooong time ago that he just wants to reinvent the Windows experience, but *better* than WIndows on.... Windows?

    11. Re:Full Kernel without C* by m50d · · Score: 1

      Why bother when you have C,C++,Shell, perl, python, ruby, lisp,scheme, OCaml, Haskell, hell even Java although to be honest about how the Java community is run, why bother with Java either?

      Because Java gets you a huge supply of proven libraries without any native code. Because the tools for packaging, dependency management and building are better than anything else around. I hate writing Java, but having used it in a corporate setting I can see why its been so successful.

      --
      I am trolling
    12. Re:Full Kernel without C* by SanityInAnarchy · · Score: 2

      What does C# provide that's compelling enough for open source people to disregard the source of the language and it's past rude and evil behavior?

      If past rude and evil behavior of the corporation which spawned a language is a reason to avoid the language, WTF are you doing using C?

      It's not speed since C covers that. It's not object oriented since C++/python/ruby cover those.

      Well, not all at once, though. C++ has OO, but it's a pain to use. Ruby's OO is awesome, but the language is very slow compared to C++, or even to C#. So, it's a nice mix of non-painful OO and programming in general (with garbage collection, closures, etc) and decent performance.

      It's also cross-platform in principle (if you stick to the subset that works in both Mono and .NET), and it runs in a multi-language VM which makes it easy to tie multiple languages together.

      Java is really the only competitor there -- Parrot would in theory be better, but there aren't enough languages actively targeting it. And even in Java, I still have to choose. I remember writing a one-off program in JRuby (so it could use some Java libraries), and after several attempts to optimize it to where it would run in less than several days, I rewrote it wholesale in Java. It was more painful to write, but it ran in minutes instead of days. If C# is better to program in than Java, that's already a win for cases where I care about performance.

      I mean, listen to yourself:

      It's not regular expressions since it's hard to compete with Perl and nigh well impossible to beat Perl on this.

      I'd argue Ruby does a decent job of ripping Perl off here, but regardless... Perl has regexes. It also has a really twisted OO system -- elegant in its own way, but I don't know why you'd choose that if you have alternatives. It has ugly syntax, even when you know what you're doing. Anti-patterns are the default -- like, say, ignoring errors unless you explicitly handle them.

      The point is that C# is actually a decent language in a lot of these ways all at once. I don't know about you, but I use regexes, closures, objects, and complex enough data-structures that garbage collection would be nice -- so I use Ruby, but having that plus performance would also be nice.

      Portability? Not going to beat Posix.

      How about portability without distributing source? For that, you need something like LLVM, at least.

      Don't get me wrong, I still use Ruby, Java, and C instead, and I've made a point of not learning C#. I've worked as a web developer, so I'm used to hopping between languages. But it would be nice to not have to do that.

      --
      Don't thank God, thank a doctor!
    13. Re:Full Kernel without C* by SanityInAnarchy · · Score: 1

      Because the tools for packaging, dependency management and building are better than anything else around.

      Have to disagree here. To be fair, I haven't actually built Java packages myself, but trying to get a Java library installed (with all dependencies) is much more annoying than installing a Ruby gem.

      --
      Don't thank God, thank a doctor!
    14. Re:Full Kernel without C* by m50d · · Score: 2

      If you're trying to install a java library system-wide you're doing it wrong; yes having each program package its dependencies is frustratingly wasteful, but it makes sure behaviour is consistent and reproducible.

      --
      I am trolling
    15. Re:Full Kernel without C* by kiddygrinder · · Score: 1

      Open or closed is irrelivant, paying developers to do work is what matters, especially when most people don't care about or are openly distrustful of the project.

      --
      This is a joke. I am joking. Joke joke joke.
    16. Re:Full Kernel without C* by Pete+Venkman · · Score: 1

      Exactly. At least projects like Haiku are self-hosting.

    17. Re:Full Kernel without C* by Anonymous Coward · · Score: 0

      Isn't that why god made Python?

    18. Re:Full Kernel without C* by dakameleon · · Score: 2

      Too bad Visual Studio 6 was the last VS before .NET.

      --
      Man who leaps off cliff jumps to conclusion.
    19. Re:Full Kernel without C* by Lokitoth · · Score: 2

      Until he explains why he made whitespace into a control character, I refuse to accept him as anythying remotely divine.

    20. Re:Full Kernel without C* by spauldo · · Score: 3, Informative

      If past rude and evil behavior of the corporation which spawned a language is a reason to avoid the language, WTF are you doing using C?

      I'd argue that the reason isn't that the language was created by a rude and evil corporation, but that it is controlled by a rude and evil corporation.

      AT&T may have created C, but it didn't control it in any meaningful way. Yeah, the standard for years was "whatever the AT&T compiler will compile", but AT&T as a company didn't care about it. They weren't allowed to sell software because of the monopoly agreement they had with the government. By the time they were allowed to sell it, the cat was already out of the bag, and they focused their efforts on the whole SysV vs. BSD war.

      Microsoft views .NET as a tool for lock-in. They intentionally sabotaged Java on Windows for years while they played catchup - hence why Java never really caught on as a language for full applications. Java's no better, really - Sun tried the same thing, more or less.

      I'm not saying that you shouldn't use C# or Java or whatever - I don't really care. Just bear in mind these languages were not designed with the goal of creating programs - they were designed to control programmers.

      --
      Those who can't do, teach. Those who can't teach either, do tech support.
    21. Re:Full Kernel without C* by Mongoose+Disciple · · Score: 2

      Why bother when you have C,C++,Shell, perl, python, ruby, lisp,scheme, OCaml, Haskell, hell even Java although to be honest about how the Java community is run, why bother with Java either?

      None of those (excepting Java, which you also disdain) is especially good for writing the kind of internal custom apps that any company of any size has hundreds of.

      Which, maybe isn't an area you care about, but in my market there's way more good pay / good benefits / good working conditions work of that kind out there than there are people to do it.

      Anything I've written this year, I could write in C or C++, for example. It wouldn't have been as good as fast (which is important, because a day of paying me costs more than all the Microsoft licenses my work will use), but it could be done. Business tends to care about good and fast a lot more than open standards or the assorted advantages (and there are advantages, I don't deny that) of open source.

    22. Re:Full Kernel without C* by thanasakis · · Score: 1

      Perl has regexes. It also has a really twisted OO system -- elegant in its own way, but I don't know why you'd choose that if you have alternatives. It has ugly syntax, even when you know what you're doing. Anti-patterns are the default -- like, say, ignoring errors unless you explicitly handle them.

      This criticism that used to apply 15 years ago, but is not really relevant anymore. The Perl community has gone to great lengths to address these things.

      For OO, nowadays there is Moose, which is an excellent and extremely capable OO framework for Perl. Please check it out if you like.

      For the anti-patterns, please note that strict mode is now the default on Perl 5.14 and I cannot think of a modern library ignoring errors by default. The error ignoring behavior is there for a bunch of built-in stuff that needs to maintain compatibility with old code, but you can, and are encouraged to, include the autodie pragma to change even that behavior.

      About the syntax, it's probably a matter of personal taste, so I can't say anything about that. But I believe that personal taste doesn't have to do with whether you know what you're doing or not.

      Lastly, writing Perl doesn't mean that your code has to be ugly and error-prone. May I suggest Damian Conway's Perl Best Practices, which IMHO is an excellent book with recommended coding practices.

      Hope this helps!...

    23. Re:Full Kernel without C* by SomeStupidNickName12 · · Score: 1

      Mono in the C# world is no different to OpenJDK or GCJ in the java world - they will always be second class citizens and as you put it have an uphill battle.

    24. Re:Full Kernel without C* by julesh · · Score: 1

      Why bother when you have C,C++,Shell, perl, python, ruby, lisp,scheme, OCaml, Haskell, hell even Java

      Because C# is a different language to all of these, and has a different feature set from all of these, and therefore is at least for some applications better than all of these.

      C: C# is object-oriented. This has been shown to be a serious advantage for most types of software development over traditional structured programming.
      C++: C# is garbage-collected. This has been shown to reduce development time, complexity and number of defects in many cases over manual memory management.
      Shell: C# is compiled to native code for execution, therefore is substantially higher performance.
      perl, python, ruby: C# is a statically typed language, which has been shown to allow numerous programming errors to be caught at compile time rather than during testing, which is a clear win in many cases
      lisp, scheme, OCaml, Haskell: C# is a procedural language, which most programmers are better able to identify with, so is more accessible to mid- and junior- level programmers, meaning you don't have to hire ace teams in order to work with it
      Java: While Java is the most similar language to C# on this list, C# has numerous features that Java lacks, some of which are quite important to many programmers (closures, generics that actually work rather than just being a compile-time hack that introduce substantial limitations, anonymous functions, dynamic type inference to simplify variable definition, etc.)

      The point is that a language isn't just one feature. It's a collection of features that place it in a multi-dimensional space occupied by all languages. And many problems are more easily solved in certain areas of that space than others, so the more languages you have at your disposition the better.

    25. Re:Full Kernel without C* by Tim+C · · Score: 1

      They intentionally sabotaged Java on Windows for years while they played catchup

      I'd be interested in hearing more about this, if you have any info to hand. I know that they added Windows-specific classes into the java.* package hierarchy (which is why Sun sued them), but that was less sabotaging the language on Windows so much as trying to tie apps to Windows. (So sabotaging not Java, but the "run anywhere" goal.)

    26. Re:Full Kernel without C* by VGPowerlord · · Score: 1

      Because the tools for packaging, dependency management and building are better than anything else around.

      Have to disagree here. To be fair, I haven't actually built Java packages myself, but trying to get a Java library installed (with all dependencies) is much more annoying than installing a Ruby gem.

      Apache Maven was built to solve this exact problem, and it does so extremely well... even if I do hate designing projects for it.

      --
      GLaDOS for President 2016! "Well here we are again. It's always such a pleasure." -- GLaDOS, 2011
    27. Re:Full Kernel without C* by godefroi · · Score: 1

      I wish to subscribe to your newsletter, and all that.

      --
      Karma: Poor (Mostly affected by lame karma-joke sigs)
    28. Re:Full Kernel without C* by VGPowerlord · · Score: 1

      Mono in the C# world is no different to OpenJDK or GCJ in the java world - they will always be second class citizens and as you put it have an uphill battle.

      OpenJDK is the base for the Oracle-branded Java JDK, not a second-class citizen like you imply. On the other hand, GCJ and Kaffe have an uphill battle.

      --
      GLaDOS for President 2016! "Well here we are again. It's always such a pleasure." -- GLaDOS, 2011
    29. Re:Full Kernel without C* by TemporalBeing · · Score: 1

      More specifically, Microsoft can wait for any design decision that Mono does differently from them, work out the implications of that design decision; add something big, related to that design decision so that the design decision is committed then add something which is compatible with Microsoft's design decision but opposed to Mono's decision. The fact that Mono succeeds at all in copying much of .Net and in not ceasing to exist, even when it's parent company, Novell, is bought out is a real sigh of the strength of the open source methodology.

      And the determinism of certain people paid by Microsoft to continue Microsoft's propaganda in the case of Mono and .NET. (Look at the investors in the company that is now supporting Mono and you'll see what I mean. There is very little in means of contribution to Mono outside of that company.)

      --
      Truth is like the sun. You can shut it out for a time, but it ain't goin' away. - Elvis Presley (source: imdb.com)
    30. Re:Full Kernel without C* by TemporalBeing · · Score: 1

      They intentionally sabotaged Java on Windows for years while they played catchup

      I'd be interested in hearing more about this, if you have any info to hand. I know that they added Windows-specific classes into the java.* package hierarchy (which is why Sun sued them), but that was less sabotaging the language on Windows so much as trying to tie apps to Windows. (So sabotaging not Java, but the "run anywhere" goal.)

      Can't quote specifics, but go see the Sun v. Microsoft court documents. True, it was ultimately settled (so there's probably a lot of stuff hidden as a result), but there'll be a good kernel of information there to get you started.

      --
      Truth is like the sun. You can shut it out for a time, but it ain't goin' away. - Elvis Presley (source: imdb.com)
    31. Re:Full Kernel without C* by Tetsujin · · Score: 1

      Until he explains why he made whitespace into a control character, I refuse to accept him as anything remotely divine.

      The explanation is out there and it's pretty basic: whitespace is almost always used to indicate program structure anyway, so why have that and separate syntax? Why not have the visual cues we use to read program structure be the same ones used by the computer to interpret program structure?

      (Of course, it does mean one can't write loops and such in a single line, even where it makes sense to do so. I don't think it's a perfect approach, but it does make a certain amount of sense.)

      --
      Bow-ties are cool.
    32. Re:Full Kernel without C* by spauldo · · Score: 1

      Microsoft included a JRE with Windows (I don't remember what version) that was crippled and slow. This allowed Windows users to run Java applets (this was when applets were the main focus of Java), but they ran like crap.

      The main point was to encourage developers to use ActiveX, which was IE-only. If they had just not included a JRE, then users would be prompted to install one, just like with Flash or any other plugin. By including a crippled version, users would think the problem was with the website.

      --
      Those who can't do, teach. Those who can't teach either, do tech support.
    33. Re:Full Kernel without C* by elrous0 · · Score: 1

      They intentionally sabotaged Java on Windows for years

      I've got a news flash for you. Java on the Apple OS always sucked balls too.

      --
      SJW: Someone who has run out of real oppression, and has to fake it.
    34. Re:Full Kernel without C* by spauldo · · Score: 1

      At the time all this was going on, no one cared about MacOS. Apple's market share was in the toilet, and even their core users were switching to windows-based systems.

      Sun focused Java development on Solaris and Windows, with some support for Linux (remember Blackdown?). They probably, like many of us, expected Apple to go the way of Commodore or Be. Add to that the fact that MacOS had a significantly different programming environment than Windows or Unix (no real preemptive multitasking, core libraries not based around C/C++, etc.) and you'd see why no one would want to put much effort into porting such a massive piece of software like Java.

      --
      Those who can't do, teach. Those who can't teach either, do tech support.
    35. Re:Full Kernel without C* by SanityInAnarchy · · Score: 1

      And here, again, Ruby wins. Bundler is a way to have gems installed system-wide, and managed/updated during development with dependency handling and everything else you'd expect of a good package manager, but precisely the correct version will be enabled in each app at runtime.

      Essentially, it means that it's trivially easy to tell your app "Hey, go depend on (and download) the latest version of all libraries you're using." It just records those versions, all the way down, so that at deploy time, you can tell it "Install exactly what we had installed on my dev machine when all our tests passed."

      The only configuration you as a developer need to set up is a tiny config file, written in Ruby -- check out the sample Gemfile on the Bundler homepage. Seriously, look at it -- tiny. I never want to go back to XML bloat again!

      And rvm means I can trivially have a separate set of gems per Ruby version, which is where I actually do want duplication -- nokogiri will depend on and use very different things in MRI vs JRuby. Since rvm tends to install new Rubies by at least downloading if not compiling them from scratch, it will provide you with a Ruby that's more or less consistent across Unices, let alone distros.

      All these things can be installed per-user, but they can also be installed to the entire system. So you get the best of both worlds -- reproducible behavior, but I can type 'bundle update' and roll all dependency versions forward, or add a line and type 'bundle install' to add a new library.

      The downside to all of the above is that everything I just said is really about installing stuff on a Unix machine, likely a production server. For desktop apps, Java has a much more easily portable system, since you can't trust the user to have anything sane at the system level. (Of course, when users do, it'd be nice to have a Debian package or something.)

      --
      Don't thank God, thank a doctor!
    36. Re:Full Kernel without C* by SanityInAnarchy · · Score: 1

      That does help, but even if I grant everything you said, it implies that Perl is approaching Ruby in terms of features I care about, and performance is still going to be python or worse. So I think my point about why C# is interesting still stands.

      A few more points that would likely still irritate me about perl:

      • It's actually weakly typed, not dynamically typed. The number of values which can be 'true' or 'false' is a bit absurd -- the string '0' and the number 0 are false, the empty string is false but a string containing a single space is true...
      • It's annoying to require semicolons, and prefixing each variable. Not a deal-breaker, just annoying.
      • Unless something's changed, any OO-ish or data-structure-ish syntax is obnoxious. Depending on the type of variable you have (reference or value), you can either just use brackets, or the deref-arrow and then brackets.
      • It's GC'd, but it's reference-counted GC. This isn't necessarily a win against a real GC in terms of performance, and it's definitely a lose in terms of subtle memory leaks.
      • Is there finally a decent interactive Perl shell yet? I love IRB, python, and REPLs in general -- it's how I learn a language. There's probably something on CPAN, but I know I find it mildly annoying every time I want to just check if I have the right syntax for a single line, I end up running it under perl -e.
      • Too many keywords and global functions in the standard libraries. Especially with CPAN, a lot of that stuff could go away.

      But everything you've said will be helpful if I am forced into Perl again. It'd be nice for it to be a decent language, instead of "Well, it's an improvement on C."

      --
      Don't thank God, thank a doctor!
    37. Re:Full Kernel without C* by thanasakis · · Score: 1

      Just to be clear, I didn't say anything about C#. As a matter of fact, I agree that C# IS interesting in many pleasant ways.

  2. Old news by Anonymous Coward · · Score: 3, Informative

    There haven't been any updates to the site in many months. Dead links left and right.

    1. Re:Old news by Anonymous Coward · · Score: 0

      Yeah, its not exactly new...the Code Project page for it is dated ~ a year ago, but it is active. Dead links??? with the exception of the screen shots I saw no dead links. Not to left or right.

    2. Re:Old news by burisch_research · · Score: 1

      There haven't been any updates to the site in many months. Dead links left and right.

      Last release was a year ago. From http://www.gocosmos.org/index.en.aspx :

      Aug 3, 2010 - MS5 released
            There are bugs! - But we didn't want to hold MS5 any longer since MS4 was released 9 months ago.

      That's 13 months without a release. And this is news how?

      This is brought to you by Chad Z. Hower, a.k.a. "Kudzu", of ICS (Dephi Internet Connection Suite) fame, and other things.

      --
      char*f="char*f=%c%s%c;main(){printf(f,34,f,34);}";main(){printf(f,34,f,34);}
    3. Re:Old news by Anonymous Coward · · Score: 0

      The website is very out of date. Check the Codeplex and CodeProject sites instead. CodeProject has recent articles showing a debugger inline VS while running Cosmos in VMWare. Codeplex has very frequent check ins.

      http://cosmos.codeplex.com

      Check out this debugger:
      http://www.codeproject.com/KB/cs/CosmosAsmDebuggerPreview.aspx

      Also Chad wasn't ICS, he was Indy....

    4. Re:Old news by dzfoo · · Score: 1

      This is brought to you by Chad Z. Hower, a.k.a. "Kudzu", of ICS (Dephi Internet Connection Suite) fame, and other things.

      ICS is from Francois Piette. Chad made Indy, the competing component suite. I wouldn't imagine any of them begin happy about the confusion.

                -dZ.

      --
      Carol vs. Ghost
      ...Can you save Christmas?
  3. Re:but... by Anonymous Coward · · Score: 0

    Does IL run linux?

  4. Can't even get the name right by Pete+Venkman · · Score: 4, Informative

    The project is called Cosmos.

    1. Re:Can't even get the name right by Samantha+Wright · · Score: 2, Funny

      Just when you thought Slashdot couldn't get any worse.

      Sorry, Venkman, I'm terrified beyond the capacity for rational thought.

      --
      Bio questions? Ask me to start a Q&A journal. Computer analogies available for most topics!
    2. Re:Can't even get the name right by dkleinsc · · Score: 1

      Yeah, when I first read the headline, I was thinking an OS named "Cosmo" was geared towards 50 new ways to please your man.

      --
      I am officially gone from /. Long live http://www.soylentnews.com/
    3. Re:Can't even get the name right by martin-boundary · · Score: 1

      When I read the headline, I just thought "Gosh, I hope the filesystem isn't called Newman!"

    4. Re:Can't even get the name right by syousef · · Score: 1

      The project is called Cosmos.

      Did it cost Billions and Billions?

      --
      These posts express my own personal views, not those of my employer
    5. Re:Can't even get the name right by arth1 · · Score: 1

      Yeah, when I first read the headline, I was thinking an OS named "Cosmo" was

      ... obviously made with Cosmo Create
      (Copyright 1997 Silicon Graphics Inc.).

    6. Re:Can't even get the name right by Anonymous Coward · · Score: 0

      Which makes it even worse my private written OS is called COSMOS :S

  5. Without C? by tomalpha · · Score: 1

    What's the C# runtime written in?

    1. Re:Without C? by Anonymous Coward · · Score: 0

      Look up bootstrapping.
      Look up Java for an example.

    2. Re:Without C? by Zamphatta · · Score: 1

      Well it's written in C# of course.

    3. Re:Without C? by iggymanz · · Score: 1

      Even microsoft doesn't write their OS in C#

    4. Re:Without C? by Anonymous Coward · · Score: 0

      Look up "Singularity" at Microsoft Labs and/or "Midori" elsewhere. They've done it, they just won't do it for Windows, there's a difference.

    5. Re:Without C? by icebraining · · Score: 2

      Actually, kind of. Singularity is (mostly) written in Sing#, which is an extension of C#.

    6. Re:Without C? by scottbomb · · Score: 2

      According to this MS dev, they do (although not entirely):

      "We use almost entirely C, C++, and C# for Windows. Some areas of code are hand tuned/hand written assembly."

      Source: http://social.microsoft.com/Forums/en-US/windowshpcacademic/thread/65a1fe05-9c1d-48bf-bd40-148e6b3da9f1

    7. Re:Without C? by UnknowingFool · · Score: 2

      Correction: Even MS hasn't released a commercial OS written entirely in C#. I'm sure in MS development somewhere, there are some development OSs that are written partially or all in C# but none have made it as a sellable product yet that is written entirely in C#.

      --
      Well, there's spam egg sausage and spam, that's not got much spam in it.
    8. Re:Without C? by Anonymous Coward · · Score: 0

      What's your point? Additionally, this isn't *really* bootstrapping, since the .Net framework is required to be running the entire time the C#-based OS is running, and ultimately handles most of the low-level functionality.

    9. Re:Without C? by Tomato42 · · Score: 0

      From what I read about Singularity and Midori they are doing exactly the same fundamental mistake as with NT.

      They assume drivers are secondary to OS code. In reality, over 50% of Linux code are drivers, current drivers, without legacy code. The main OS code (scheduler, signal passing, etc.) is less than 10%, bump it to 20% if you want to get architecture dependent code. Somehow I don't see writing drivers in C#, or any other manged language. MS themselves tell that well over half of bluescreens on Vista come from bugs in drivers, usually the graphical ones.

    10. Re:Without C? by Anonymous Coward · · Score: 0

      from the homepage

      Cosmos includes a compiler (IL2CPU, which is part of Cosmos) that reads the input file (usually the shell) and Cosmos libraries and compiles the resulting IL to x86 code.

      doesn't look like they use the C# runtime. they just compile IL.... so there's maybe some things you can't do with it (reflection? anonymous types?)
      looks to be that they did it just for fun

    11. Re:Without C? by Anonymous Coward · · Score: 0

      You can write the runtime in C# if you have a compiler that's able to translate that C# code into binary form. So the runtime is written in C# but compiled statically to machine code.

    12. Re:Without C? by rev0lt · · Score: 1

      That's why drivers should be secondary to the OS code. In Vista and Windows 7, most drivers run in userspace, so if a driver crashes, it won't take down the whole operating system. The NT line of operating systems and its descendants use a hybrid kernel, while Linux is a traditional monolythic kernel. Linux is usually praised by its drivers "out of the box", but I've yet to see a windows machine crash with the supplied drivers, and I've had problems with some of the half-assed incomplete funcionality provided by linux kernel drivers.

    13. Re:Without C? by Anonymous Coward · · Score: 1

      According to this MS dev, they do (although not entirely):

      No, they don't.

      "We use almost entirely C, C++, and C# for Windows. Some areas of code are hand tuned/hand written assembly."

      Which is completely meaningless, like calling a car muffler a miniature jet engine. All that means is that some of the bundled components that ship on the Windows install CDs are written in C#, not that C# is used in the Kernel, drivers or system services. Frankly, I don't consider Wordpad or Windows Media Player or any of the other crap that comes with Windows to be "part of the OS", it's just bundled software that could be written in anything, like BASIC or COBOL, for all we know (or care).

    14. Re:Without c? by WorBlux · · Score: 1

      The have a compiler that makes machine code from the intermediate language representation.

    15. Re:Without C? by SplashMyBandit · · Score: 1

      Which is just as well. For my devices the Windows drivers seem to crash an awful lot (compared to using stuff on Mac OS X or Linux, in my humble experience of late). This is not Microsoft's fault, just the model where third parties write drivers and never bother to maintain them after 6 months in many cases.

    16. Re:Without C? by Lokitoth · · Score: 1

      If I remember correctly, one can compile a .NET project without taking a dependency on mscorlib, though you would have severe limitations in the types you have available until you implement it. You have access to pointer arithmetic inside unsafe {} blocks; I would not consider boostrapping from the bootloader into the kmain() method via assembly too big a deal, since you essentially have that problem with all higher-level languages (and inline assembly is still assembly).

    17. Re:Without C? by Lokitoth · · Score: 1

      Consider reading a bit deeper into the project papers - in Singularity/Midori the drivers are implemented in Sing#/Spec#.

      Most of driver-crash bluescreens in Vista, IIRC, were due to driver problems in storage and chipset drivers. The only time a video driver bug can bring down the system (Vista/7) is if it fails to restart and stay in good state several times, at which point the OS gives up, and bugchecks. It was XP (and before) that kept on being brought down by the video drivers.

    18. Re:Without C? by Lokitoth · · Score: 1

      In fact, once you implement the base runtime services, and a custom version of ngen.exe (and the assembly loader) you can implement the rest of the runtime in real IL, and ngen it, rather than using a custom compiler that gets rid of the common type system.

    19. Re:Without C? by Xest · · Score: 1

      The C# language exists separately from the CLR. You don't need a runtime if you have a compiler that compiles C# straight into x86 instructions or whatever.

    20. Re:Without C? by Anonymous Coward · · Score: 0

      They've written a C# -> native code translater in C#. They use this to translate the system to native code so that it can run without a virtual machine.

      Unfortunately, to get this to do anything useful, they need a machine interface, which can't be implemented in C#, so they've implemented a system for implementing methods of C# classes in assembly language, which kind-of violates their "pure C#" message.

    21. Re:Without C? by julesh · · Score: 1

      They're rewriting their own C# runtime in C#, based on an MSIL-to-native-code compiler and some extensions that allow them to embed assembly language code into C# classes.

    22. Re:Without C? by julesh · · Score: 1

      Additionally, this isn't *really* bootstrapping, since the .Net framework is required to be running the entire time the C#-based OS is running, and ultimately handles most of the low-level functionality.

      Have you not thought to ask how they're getting the framework to run without an operating system to run on? They're not just loading MS's DLLs and executing them without Windows, which would likely be *very* hard, they're reimplementing and bootstrapping using a MSIL->native compiler.

    23. Re:Without C? by julesh · · Score: 1

      The advantage of an OS based on a typesafe language is that the distinctions between kernel and non-kernel components become less important. External driver processes will run in the same memory space as the kernel, and can share objects with the kernel, meaning the traditional performance problems don't exist. Yet the possibility of stopping and restarting a driver (because it is a separate process) remains. This means that driver bugs under such an OS should be recoverable as long as the driver's init process can effectively reset the hardware state (which should be trivial in most cases). It really is the best of both worlds: you get Linux-like performance with stability more like you'll find in research systems like Minix.

      Also: you talk about including the drivers in the kernel, then start talking about graphics drivers. You do know that most graphics interfacing under Linux is done by the X server, not the kernel, don't you? For most desktop users, framebuffers are not in common use except during startup and shutdown.

    24. Re:Without C? by julesh · · Score: 1

      they just compile IL.... so there's maybe some things you can't do with it (reflection? anonymous types?)
      looks to be that they did it just for fun

      Having done similar stuff with Java, reflection and anonymous types should still work fine. The only thing that didn't work properly under my Java compiler was messing around with ClassLoaders: all your code had to be linked ahead of time. So stuff like Mock Object libraries (which programmatically generate new classes at runtime) won't work. There are ways around this, though, as long as you can make your compiler fast enough for use at runtime, or are happy to write a stub layer that allows your compiled objects to interact with interpreted ones.

    25. Re:Without c? by danish94 · · Score: 1

      Is it publicly available? (link?)

    26. Re:Without C? by DanTheStone · · Score: 1

      My Windows 7 work machine was crashing (full blue-screen at least 5 times a day) regularly for a few weeks due to bad network drivers. It took Intel way too long to come out with a fix.

    27. Re:Without C? by Anonymous Coward · · Score: 0

      The guy quoted is not a developer, he is a PUM (Product Unit Manager). He also doesn't work in the core kernel team. I think his group (HPC) doesn't report to Steven Sinofsky, but is in the separate Server organization, so you could argue that he doesn't even work on Windows.

    28. Re:Without c? by WorBlux · · Score: 1

      The describe it (IL2CPU) here http://cosmos.codeplex.com/wikipage?title=Technology&referringTitle=Home , but I'm not sure it it's available as a seperate package.

    29. Re:Without C? by rev0lt · · Score: 1

      Are you shure your network controller is actually from Intel?

    30. Re:Without C? by rev0lt · · Score: 1

      I'm not saying I haven't had any problems with Windows drivers, just not with those bundled with Windows itself. I've had lots of issues (with several machines, different Windows versions and printer models) with HP - so much I've stopped buying any printer from HP, for example.

    31. Re:Without C? by iggymanz · · Score: 1

      HA, look at all the parrots chirping "singularity".....it is NOT written in C#, has C and assembly for its lowest levels (of course), is NOT production worthy, is basically a school science project. You can't write a serious operating system in C#

    32. Re:Without C? by iggymanz · · Score: 1

      which isn't C#, and besides relies on C and assembly at its core (same as a few other quite popular OS, eh?)

    33. Re:Without C? by iggymanz · · Score: 1

      you haven't put Windows on cutting-edge hardware then, certain HP blades and proliant crashed with windows unless "smart start" used which put in special drivers

    34. Re:Without C? by rev0lt · · Score: 1

      It is also usual to put those "special" drivers on Linux upon install. Or to set some BIOS flags so Linux can actually boot. Server stuff uses a lot of custom hardware designed for a specific series, so it's not uncommon to have to provide extra drivers from the manufacturer upon install. Desktop hardware is a whole different game - the base schematic is usually the same, with some performance enhancements. I've yet to find a working desktop that has driver problems with windows.

    35. Re:Without c? by danish94 · · Score: 1

      Is this compiler publicly available? (link?). Any more info on this would be helpful (name so I can google it..)

  6. open source but by rubycodez · · Score: 2, Insightful

    What good is an open source OS if it requires me to purchase proprietary products to change or compile it? that's not freedom, that's just extension of Microsoft marketing campaign. And what about threat of Microsoft someday saying things built with their tools have Microsoft IP in them?

    1. Re:open source but by Anonymous Coward · · Score: 0

      What good is an open source OS if it requires me to purchase proprietary products to change or compile it? that's not freedom, that's just extension of Microsoft marketing campaign. And what about threat of Microsoft someday saying things built with their tools have Microsoft IP in them?

      The express version of visual studio is free. You do not have to pay anything.

    2. Re:open source but by ninetyninebottles · · Score: 2

      What good is an open source OS if it requires me to purchase proprietary products to change or compile it? that's not freedom, that's just extension of Microsoft marketing campaign. And what about threat of Microsoft someday saying things built with their tools have Microsoft IP in them?

      The express version of visual studio is free. You do not have to pay anything.

      Are you implying Windows is free now, or Visual Studio runs on other OS's? Or is it that you just did not think through the dependencies?

    3. Re:open source but by starfishsystems · · Score: 2, Insightful

      "The express version of visual studio is free. You do not have to pay anything."

      Still closed. Still proprietary. Still encumbered by patents. Stil useless for the basis of operating system development.

      --
      Parity: What to do when the weekend comes.
    4. Re:open source but by iggymanz · · Score: 1

      oh goody, I'll load that right up on my Debian 6 xfce desktop. or would my openbsd 4.9 server be better? oh wait. Guess I need that free as in liberty and beer Microsoft Windows 7 DVD ISO download link, could you post it?

    5. Re:open source but by Windwraith · · Score: 1

      >However, the source code can be compiled with the Express editions of Visual Studio.

      From the article, thought I'd clarify that for you. No need to thank me.

    6. Re:open source but by dunkelfalke · · Score: 2, Interesting

      You mean like all of your PC hardware? Or have you actually lithographed your own CPU from an open VHDL source, etched the PCB of your motherboard and so on?

      --
      "It's such a fine line between stupid and clever" -- David St. Hubbins, Spinal Tap
    7. Re:open source but by Anonymous Coward · · Score: 0

      What good is an open source OS if it requires me to purchase proprietary products to change or compile it?

      Windows is loaded on 90% of the desktop computers in the world, and you can't get access to a single one of them? If you are really concerned then you could work on porting it to Mono. If you don't want to do that, then chances are you were never seriously interested in this project anyway, so just move on and stop whinging.

      And what about threat of Microsoft someday saying things built with their tools have Microsoft IP in them?

      Microsoft are hardly likely to destroy their entire development division by preventing people from writing software with their tools.

    8. Re:open source but by Anonymous Coward · · Score: 0

      Are you implying Windows is free now

      Are you implying that the computer, the desk it's on, the building it's in and the electricity it uses to run were all free too?

    9. Re:open source but by Anonymous Coward · · Score: 0

      > Microsoft are hardly likely to destroy their entire development division by preventing people from writing software with their tools.

      If they can profit from it more than from the alternative, they will do it.

    10. Re:open source but by SanityInAnarchy · · Score: 1

      I think that's a valid criticism of GP's point, but there are still reasons hardware and software are different here, and why it's more important for software to be open, particularly in this case.

      There does seem to be real competition in hardware production, and there's also the fact that fabrication is still sufficiently expensive that free and open hardware designs aren't terribly useful to your average hacker, nor does it make any sense for a mid-size business to modify and contribute to their CPU designs if they don't have the resources to actually manufacture them.

      Software is different. For one thing, it's entirely possible to operate at a level of abstraction such that the entire hardware stack may be swapped out for a competitor's, so we're hardly locked in. For another, an individual programmer can hack on open source software, let alone medium-sized businesses. Google can hack on Linux and make it do things no OS does, without having to start from scratch, and it often makes economical sense to submit such changes upstream.

      I think here the main concern is how tightly this open-source project is coupled to proprietary technology. If Microsoft does something they don't like, they're fucked -- it is not likely to be trivial for them to port to Mono, let alone an entirely different platform, and any patents which affect .NET are likely to affect Mono. By contrast, if Intel does something they don't like, there's always ARM, PPC, and more exotic systems.

      It also doesn't help that Microsoft is still in the OS business, and still cares about the OS business, which means this product directly competes with Microsoft, which means that if it ever took off, Microsoft would have the means and motive to kill it. Intel doesn't really have either -- it's designed to be portable to other platforms, and Intel has a motive to make things pleasant for their developers -- they're happy if it runs on Intel but not, say, ARM.

      --
      Don't thank God, thank a doctor!
    11. Re:open source but by rubycodez · · Score: 1

      oh goody, with that and a $200 product key I'm all set to go with my free as in beer windows 7. oh wait.....

    12. Re:open source but by Zontar+The+Mindless · · Score: 1

      Stockholm resident here.

      I can assure you that Windows costs about the same in Sweden as it does everywhere else.

      --
      Il n'y a pas de Planet B.
    13. Re:open source but by rubycodez · · Score: 1

      oh really? http://www.guardian.co.uk/technology/blog/2007/jun/06/microsoftdeadl

      no, I don't have access to microsoft desktops, for some reason the schools and libraries around here all run Macs. At home, I've wiped the MS-Windows from every (used) machine as soon as unboxed. poor me

      I can whine and warn about potential Microsoft traps, including Miguel de Icaza's MONO. we don't need that kind of shit in the open source world.

    14. Re:open source but by ninetyninebottles · · Score: 1

      What good is an open source OS if it requires me to purchase proprietary products to change or compile it?

      The express version of visual studio is free. You do not have to pay anything.

      Are you implying Windows is free now, or Visual Studio runs on other OS's? Or is it that you just did not think through the dependencies?

      Are you implying Windows is free now

      Are you implying that the computer, the desk it's on, the building it's in and the electricity it uses to run were all free too?

      No, but the computer is not proprietary and you can build you own and compile things on any computer you want. You can buy or not buy any desk you want and buy or produce any electricity you want. With this project you have to buy Windows from Microsoft; one vendor, no choice. But then, I'm sure you knew that and are just being intentionally obtuse because you don't want to comprehend the point.

    15. Re:open source but by Anonymous Coward · · Score: 0

      Have any Windows Express lying around by any chance? I'd love to give it a try.

    16. Re:open source but by Anonymous Coward · · Score: 1

      No, but the computer is not proprietary

      Really cause Intel would say otherwise.

      With this project you have to buy Windows from Microsoft; one vendor, no choice.

      Open Source != Free of Charge
      Open source means you have access to the source. That's it. No more no less.

    17. Re:open source but by Anonymous Coward · · Score: 0

      From the Cosmos FAQ:

      Starting with Milestone 5, Visual Studio Express will no longer be supported. We are investigating how we might support Visual Studio Express again in the future for at least basic development. To further the features of Cosmos development we rely on extending Visual Studio, and Visual Studio Express does not support any add ins.

      Which basically shows some of the incompetence (IMO) since Visual Studio 2010 C# Express does support extensions.

    18. Re:open source but by Anonymous Coward · · Score: 0

      oh really?

      Yes, really. Your example has nothing to do with someone writing an OS in C#. It is about adding extensions to a product that is the free, limited version that is not supposed to have extensions. They didn't complain that there was any Microsoft IP in the developer's code.

      no, I don't have access to microsoft desktops

      So because you don't have access to Windows, nobody should write software for that OS. "I can't use it, so it shouldn't exist." Yeah right, that seems like such a reasonable attitude.

      I can whine and warn about potential Microsoft traps, including Miguel de Icaza's MONO. we don't need that kind of shit in the open source world.

      That has about as much validity as Microsoft's claims that GPL was a cancer. I said it then regarding Microsoft, and I will say it now to you: If you don't like the software, don't use it. Just don't create FUD to dissuade other people from choosing it because they are not as consumed with hated of Microsoft as you are.

    19. Re:open source but by Anonymous Coward · · Score: 0

      The c# compiler is free. Always has been. VS, and environment and tool wrapping the compiler, is not. thanks for playing.

    20. Re:open source but by Anonymous Coward · · Score: 0

      If you don't wanna use Visual Studio or the MS .NET Runtime at all, take a look here http://www.mosa-project.org/projects/mosa

    21. Re:open source but by Darinbob · · Score: 1

      It's still a proprietary product.

    22. Re:open source but by Kalriath · · Score: 1

      Add-Ins are a bit deeper into the IDE than Extensions. However, they could try using Visual Studio Shell rather than Visual Studio Express.

      --
      For a site about things like basic rights, Slashdot users sure do like to censor "dissent".
    23. Re:open source but by Anonymous Coward · · Score: 0

      It's still a proprietary product.

      So is your mother. By the way, she's upstairs yelling for you to go to bed. It's waaaaay past your bedtime.

    24. Re:open source but by Anonymous Coward · · Score: 0

      MS5 is old. Newer versions do support Express again with some help from the shell.

    25. Re:open source but by rubycodez · · Score: 1

      It has everything to do with issue at hand, shows how microsoft will turn like a snake on its own customers by making up its own rules.

      I will continue to dissuade people from using ms products. I will bad-mouth them. you will have to read it in the future.

    26. Re:open source but by Lokitoth · · Score: 1

      Because "Free as in S(oftware/)peech" = "Free as in Beer", right? Conflating the two arguments is illogical. There is nothing stopping you from implementing a C# compiler that would mirror what IL2CPU does will the base C# code, rather than with compiled IL, and bootstrap an implementation of the base framework types in mscorlib - then you would not be encumbered by the "proprietary software stack." In fact, it is that this project is Open Source (Free as in Speech) that you can do this.

      The worst thing that ever happened to OSD/FreeSoftware is the wave of imbeciles that think that if it is not "free as in beer" it is not free. As long as you can distribute the source, modify it, and distribute the modified version freely, it is free software.

      You are welcome to disagree, but RSM specifically calls out the difference.

    27. Re:open source but by jon3k · · Score: 1

      Right, and I'll just run it on my free copy of Windows. Of course.

    28. Re:open source but by jon3k · · Score: 1

      I dont have to pay a licensing fee to anyone to build a desk.

    29. Re:open source but by jon3k · · Score: 1

      Please don't feed the trolls.

    30. Re:open source but by Mongoose+Disciple · · Score: 1

      I can whine

      Being that you know what you're doing and can admit it, I really can't criticize you.

    31. Re:open source but by Arlet · · Score: 1

      Because "Free as in S(oftware/)peech" = "Free as in Beer", right? Conflating the two arguments is illogical.

      It's not really that illogical. If the project is "Free as in speech", and source code can be freely copied, modified and distributed, it is just not practical to charge any more money than the cost of physical distribution, which is basically free. If you tried to charge more, anybody could make a copy, and sell it for less.

    32. Re:open source but by m50d · · Score: 1

      If you've got a freebsd machine I would expect it to work under rotor.

      --
      I am trolling
    33. Re:open source but by m50d · · Score: 1

      What good is an open source OS that has to be run on proprietary hardware? What good are open-source extensions to proprietary programs? Open source is supposed to be about pragmatism - the open source model produces better code - and that's true regardless of the underlying platform.

      --
      I am trolling
    34. Re:open source but by Anonymous Coward · · Score: 0

      But I always thought Microsoft® VisualStudio® just runs on Micrsoft® Windows® and so you had to buy proprietary crapware to use it.

    35. Re:open source but by enemorales · · Score: 1

      Sure... that run on top of Windows (not free).

    36. Re:open source but by dunkelfalke · · Score: 1

      I understand that the hardware is different, I just used an exaggeration to make my point, because in my opinion, arguments like "It is not a valid open source project because it is for windows and windows costs money" are ridiculous.

      Porting is always difficult, and it does not matter whether it is porting from proprietary technology or from an open one. I've got an application for embedded Linux that was meant for some special hardware, kernel 2.4 and GCC 2.95. After the manufacturer changed the hardware, it now runs with kernel 2.6 and I can use GCC 4.4. Updating the application to even compile again was not quite easy. On the other hand, I've implemented the YModem protocol in Windows/C# and tweaked it there until it worked well. Then I've pasted the C# source code to the C++ project of that Linux application I was talking about, replaced the functions with the according C++ ones and it worked immediately.

      What I actually mean is that it is not wrong per se to use a proprietary compiler or proprietary libraries for an open source project.

      --
      "It's such a fine line between stupid and clever" -- David St. Hubbins, Spinal Tap
    37. Re:open source but by Anonymous Coward · · Score: 0

      Needless to say:
      1) the C# compiler by microsoft itself is free
      2) a C# compiler + IDE is also free
      3) there's an open source C# compiler + runtime + JIT
      4) there's an open source C# compiler

    38. Re:open source but by PJ6 · · Score: 1

      We don't live in a world where everything worth using is going to be free or open source. Most people agree that Visual Studio and C# are excellent programming tools, and Windows 7 isn't too bad either. Yay profit motive, there are a bunch of tools MS has made that are actually really damn nice. We have to pay for them. So what?

    39. Re:open source but by Tetsujin · · Score: 1

      What good is an open source OS if it requires me to purchase proprietary products to change or compile it?

      There's nothing wrong with that. To me, it's not the ideal situation, but sometimes that's just the way things go. If you want to make (or hack on) cool stuff, sometimes you have to start with the right set of tools. Using proprietary tools on open projects does sometimes limit who can work with the project - but without those proprietary tools, the project might not exist at all.

      --
      Bow-ties are cool.
    40. Re:open source but by ZFox · · Score: 1

      Feel free to reimplement Windows.

    41. Re:open source but by DaVince21 · · Score: 1

      Then make Mono compatible, please.

      --
      I am not devoid of humor.
    42. Re:open source but by SanityInAnarchy · · Score: 1

      I don't think it was a troll, or at least I don't read it as a troll. Notice, I started with:

      I think that's a valid criticism of GP's point...

      --
      Don't thank God, thank a doctor!
    43. Re:open source but by iggymanz · · Score: 1

      I did not conflate the two types of "free". As soon as I have to pay Microsoft money to "license" their software to make something, I lose freedom and moreover am in legal danger as some developers who tried to add cool features to Microsoft products have found to their hurt. With Free Software I get both kinds of free. As for implementing C#, been done but won't compile this code for some mysterious reason.

    44. Re:open source but by ninetyninebottles · · Score: 1

      No, but the computer is not proprietary

      Really cause Intel would say otherwise.

      Heard of AMD, ARM vendors? Hey buying a computer does not tie you to one vendor. Buying something dependent upon Windows does.

  7. Is it dirty? by Anonymous Coward · · Score: 2, Insightful

    Requiring a Windows environment to compile a OS is like using dirty energy to produce clean energy.

    1. Re:Is it dirty? by confused+one · · Score: 1

      Requiring a Windows environment to compile a OS is like using dirty energy to produce clean energy.

      But... Windows is compiled in a Windows environment...

    2. Re:Is it dirty? by dotancohen · · Score: 1

      Requiring a Windows environment to compile a OS is like using dirty energy to produce clean energy.

      Right, where did you think that electric cars got their electricity from? Burning oil in a power plant.

      But solar is worse. Google solar-cell production methods. Hydro is clean though... Oh, wait, do you know how much energy (from oil) is used to construct a hydro station?

      Nukes are pretty clean... if they are handled properly. That's a pretty big if though.

      --
      It is dangerous to be right when the government is wrong.
    3. Re:Is it dirty? by cocoajunkie · · Score: 1

      Garbage in, garbage out

  8. Done before, in Java, a few times, years ago. by Anonymous Coward · · Score: 0

    http://en.wikipedia.org/wiki/JNode
    http://en.wikipedia.org/wiki/JavaOS
    http://en.wikipedia.org/wiki/JX_%28operating_system%29

    Writing a OS >canshould be done. That is what the naysayers main complaint is.

    1. Re:Done before, in Java, a few times, years ago. by Anonymous Coward · · Score: 0

      In the 1980s operating systems have been written in Prolog, like SIMPOS.

    2. Re:Done before, in Java, a few times, years ago. by Anonymous Coward · · Score: 0

      Wait, so writing an OS in .NET has been done decades earlier with something that isn't .NET?

    3. Re:Done before, in Java, a few times, years ago. by julesh · · Score: 1

      I think the accomplishment is somewhat negated by the fact that SIMPOS didn't run on a general purpose computer, but rather a system that was essentially a hardware-implemented Prolog interpreter.

  9. Written entirely in C# ... by Anonymous Coward · · Score: 1

    .... if you ignore the inline assembler code.

  10. Did someone miss the 70's and 80's? by Anonymous Coward · · Score: 1

    Imagine if you could write an OS without C, why you might go so far as to write a machine that could run Lisp native.

    1. Re:Did someone miss the 70's and 80's? by rubycodez · · Score: 1

      the IBM mainframe operating systems that move most of the world's money and commerce weren't written in C, but in pl/x (historically pl/s then pl/as). The Unisys mainframe's (which move most the rest of the money not moved by IBM) OS are written in NEWP.

    2. Re:Did someone miss the 70's and 80's? by Kaz+Kylheku · · Score: 1

      From a 10,000 foot high level view, those IBM languages are the same thing as C: low level systems programming languages whose data types and storage abstractions closely mirror those of the hardware. I.e. slightly higher level assembly languages.

    3. Re:Did someone miss the 70's and 80's? by gtirloni · · Score: 1

      You wanted those languages to be what, interpreted? Python? Of course they are low level system programming languages... but nowadays people seem to think that Javascript is perfect for everything, right?

      --
      none
  11. So what by Anonymous Coward · · Score: 1

    > Cosmos includes a compiler (IL2CPU, which is part of Cosmos) that reads the input file (usually the shell) and Cosmos libraries and compiles the resulting IL to x86 code.

    So it is not .NET/Visual Studio what you are using but a derivation of what .NET/Visual Studio produces.

    > IL2CPU also supports certain extension methods which allow C# code to interact directly with the CPU, registers, and ports in the kernel.

    So it is not C# what you are using, but another language which makes it basically C++ (the real one, not that C++.NET bullshit).

    How is this news? Besides, http://www.gocosmos.org/Old/Screenshots/gfx/guess.JPG 404s and runs under IIS.

    1. Re:So what by JamesP · · Score: 1

      Exactly

      good luck trying to write a memory manager in a manage language

      or a fs

      "oh but you can only use a subset of C# there" well, duh

      --
      how long until /. fixes commenting on Chrome?
    2. Re:So what by shutdown+-p+now · · Score: 1

      So it is not .NET/Visual Studio what you are using but a derivation of what .NET/Visual Studio produces.

      Obviously so. Hence why the story says "C#-based", not ".NET-based". C# language specification does not require a conforming specification to run on .NET (or any other runtime). In this case, they have effectively written a two-stage compiler from C# to native code, using VC# as the first stage.

      So it is not C# what you are using, but another language which makes it basically C++ (the real one, not that C++.NET bullshit).

      That's some weird logic you have. GCC also have plenty of extensions - does it make it "not C, but another language"?

    3. Re:So what by gbjbaanb · · Score: 1

      ah, now suddenly the article becomes more interesting - who cares they've written an OS in "C#", what does sound interesting is the whole 'bypass the .NET CLR and everything that makes .NET work and compile C# code to native". A lot of people were interested in that kind of thing a while back, I wonder if they still are.

    4. Re:So what by shutdown+-p+now · · Score: 1

      , what does sound interesting is the whole 'bypass the .NET CLR and everything that makes .NET work and compile C# code to native". A lot of people were interested in that kind of thing a while back, I wonder if they still are.

      It's not really new - e.g. Mono folks have done it last year so as to target iOS in MonoTouch. Some obvious limitations there, like some corner cases with generics (that require a VM), or anything in the standard libraries that does IL generation.

      What would be more interesting is a CIL to LLVM translator, for the sake of portability.

  12. Screenshots by Anonymous Coward · · Score: 0

    The screenshots are visible here

    Anonymous for karma

    1. Re:Screenshots by Anonymous Coward · · Score: 0

      Or on their website (once you fix their URL).

  13. *COSMOS* by lancesnyder · · Score: 0

    Not 'Cosmo'

  14. Re:but... by Anonymous Coward · · Score: 1, Insightful

    does it run Linux?

    Ha ha ha. This is why I come back to Slashdot time and time again. Fresh, witty jokes of this caliber.

  15. And why??? by jasnw · · Score: 1

    You could build a high-rise building out of sugar cubes if you tried hard enough, but why? Is there really a need for yet another OS, built on yet another language-to-save-the-world? What this tells me is that there was this person who had way too much time on their hands, and rather than do something really useful with this time they decided "hey, wouldn't it be crazy-cool to have an OS written entirely in C#?" and there was no significant-other around to slap them upside the head.

    1. Re:And why??? by Majik+Sheff · · Score: 5, Insightful

      What happened to the "because I could" spirit of the true hacker?

      We have stories of people building CPUs inside of game logic that is in itself running on a virtual machine that runs on top of a hardware abstraction layer that runs inside a kernel that might very well be running under the purview of a hypervisor. What is the point?

      There isn't a point other than to wave your hand at the mountain of functional but completely useless triumph and say "I did that; I built that mountain".

      If you have to ask why someone would waste their time on something like this, you miss the point of hackerdom. Turn in your badge at the door.

      --
      Women are like electronics: you don't know how damaged they are until you try to turn them on.
    2. Re:And why??? by Anonymous Coward · · Score: 4, Interesting

      What happened to the "because I could" spirit of the true hacker?

      Slashdot lost that a good few years back.

      These days cool geek projects only get slammed for every non-real reason they can come up with against the true hacker spirit. Most of the sites users seem to be 20 years old or younger, so 'early computing' to them is a single core Pentium 2 with ram still measured in megabytes instead of just bytes, and processing power still measured in ghz or mhz above one.

      Then again I've found this to be true on most sites that claim to cater to geeks and hackers as of late, forums just flooded with anti-geek and anti-hacker types.
      Somehow slashdot attracts a lot of the anti-technology crowd too, the type who feel if their current method of doing something was 65% efficient, getting that up to 67% efficient is worthless because it doesn't solve every last problem, while the other half of the members scream how the rest of the world having problems is a perfectly legit reason to not allow hackers to hack and learn things.

      It's very pathetic and sad, but there seems to be no escape from it.
      I'm just glad to know when the IT bubble pops, those are the types who will be lost in this world with no skills left that matter, while the true hacker types will be the ones rebuilding everything

    3. Re:And why??? by Anonymous Coward · · Score: 1

      He did it with C#, so suddenly all that geek spirit shit goes out the window.

      That is a bit arrogant. People emulate entire computers in Javascript, so why not write an OS in C#?

      This is just a bunch of coders having fun in their spare time. You don't need to come up with a business case for doing something that you enjoy.

    4. Re:And why??? by SanityInAnarchy · · Score: 1

      Bullshit. We can bitch about it being C#, but I'd prefer C# to Excel any day... ...and yet, when someone builds a 3D engine in Excel, they deserve some geek cred.

      Of course, if he's trying to claim it's useful, then we might immediately respond with, "Why C#? Why not [insert option here]?"

      --
      Don't thank God, thank a doctor!
    5. Re:And why??? by Raenex · · Score: 1

      We have stories of people building CPUs inside of game logic that is in itself running on a virtual machine that runs on top of a hardware abstraction layer that runs inside a kernel that might very well be running under the purview of a hypervisor. What is the point?

      Well, what is the point? If you know anything about just how ubiquitous Turing completeness is, going through the tedious exercise of building a worthless CPU in Minecraft is about as interesting a "hack" as building a house of cards.

      The best hacks are actually novel and accomplish something useful from limited resources.

    6. Re:And why??? by Anonymous Coward · · Score: 0, Troll

      You know the type I've been noticing a lot around Slashdot? The type of guys who complain about the other type of guys who frequent the site. You're one of those guys. Everyone is either too young or too old for you. Not zealously geeky enough for you.

      Here's a little theory for you. Maybe it's just bullshit, but it's a theory: Perhaps some geeks around here care an awful lot about free, open source, community projects. Sure, when they were young, it was all about tinkering for the sake of tinkering, but now, now there's work to be done that matters. FOSS has the potential to accelerate the development of the world by removing financial restrictions to software - software that can be used to help a society grow. So now making some elaborate piece of useless software is taking a useful resource (programmers) and energy (programming) and throwing it in a black hole. It can be argued that there is a moral priority to working on software projects that actually matter in favor of ones that do nothing whatsoever. Because, as cheesy as it sounds, coding FOSS makes the world a better place. You can glorify 'tinkering for the sake of tinkering' all you want, but you act like the good in doing so is self evident. It's not. 'Because I can' is a funny thing that many a geek has said, and sometimes real cool things come about as a result. But should that really be the highest aspiration of the geek? Isn't 'because it's good' a much better reason than 'because I can'?

      Perhaps you're just an old Woz in a world that has turned Jobsian.

      Personally, I question the merit of any project that seems to have little to no value other than getting some geek's mental rocks off. Quality matters.

      In a way, your comment reminds me of those who defend 'artists' who have no talent but insist the value of their work isn't in the end result but in the 'creative process'. Bullshit. The end result is the whole reason for the work and the quality of the end result matters more than the whatever process was taken to forge it.

    7. Re:And why??? by TheDarkMaster · · Score: 1

      I say the problem is not on you making an operating system with C#, Ruby, or even Brainfuck.... Becomes a problem when you do this and tries to push up to the whole world that your operating system made in their is the best thing in the universe in spite of her atrocious performance compared to an "mainline" operating system or reinvent the wheel in the most heinous possible way.

      --
      Religion: The greatest weapon of mass destruction of all time
    8. Re:And why??? by The+Dawn+Of+Time · · Score: 0

      Ahh, a good old anonymous utopian.

      At least Slashdot will never run out of idealists who think forcing their "morals" on everybody else is the solution to everything.

    9. Re:And why??? by gbjbaanb · · Score: 1

      I think the difference is that this is a Microsoft application-level technology, not one particularly suited to building an OS. Like your towerblock-from-sugar example, it would fall apart at the fist sign of rain.

      Now, we see articles similar to this where something more practical has been achieved, eg Arduino or Rasperry Pi or a thousand XBox/PS3 cluster and that gets more favourable responses, possibly because they are more practical and the geeks can see a reason of sorts for doing it.

      I think if something came out of this 'research' then we'd get positive responses. Unfortunately the summary neglected to mention the C# -> native x86 compiler that makes it actually work.

    10. Re:And why??? by Anonymous Coward · · Score: 0

      You mad bro?

    11. Re:And why??? by Anonymous Coward · · Score: 0

      Everyone is either too young or too old for you. Not zealously geeky enough for you.

      Considering the topic we are discussing here is a person who is saying directly that this is not news for nerds, so yes that person is admitting to not being geeky "enough" (actually at all)

      Seeing as I'm modded +5 Insightful and you are modded -1 Troll, that should tell you a bit about your opinion compared to mine, if you would only listen.

  16. Re:but... by Anonymous Coward · · Score: 0, Funny

    Look, if you had been the military dictator of a country for 40 years, and STILL UNABLE to get promoted above the rank of colonel, you'd do some bad things too, purely out of frustration.

  17. YAOS by 93+Escort+Wagon · · Score: 1

    I don't really see the point in this - but that's irrelevant. The people developing this want to spend their time on the project, and that's all that matters. ... or so the discussion would go if the Cosmos creators hadn't built this on a Microsoft foundation. I expect a lot of comments will take a completely different viewpoint, given they'll see this as "tainted" by Microsoft. It'd be nice to be proven wrong, though.

    Oh, and they chose the BSD license. That'll rile up some folks as well.

    --
    #DeleteChrome
    1. Re:YAOS by NickFortune · · Score: 2

      The people developing this want to spend their time on the project, and that's all that matters. ... or so the discussion would go if the Cosmos creators hadn't built this on a Microsoft foundation.

      I think that's fair enough in any case. It's a hobby project, they should work on whatever appeals to them

      However ....

      I expect a lot of comments will take a completely different viewpoint, given they'll see this as "tainted" by Microsoft.

      ... that doesn't mean that all such concerns are entirely unfounded. The patents supposedly encumbering the .NET framework are going reduce the number of environments where this is likely to be deployed. And the fact that you can't develop the solely using the OS is going to put a lot of people off, too. It's a different issue, really.

      Don't get me wrong - it's a cool piece of tech, if only in the sense of "whoever would have thought it possible?", But given the technology base, it seems unlikely to get the level of deployment and/or developer buy-in needed to lift it above the level of a toy OS.

      --
      Don't let THEM immanentize the Eschaton!
    2. Re:YAOS by Lokitoth · · Score: 1

      Consider taking a look at Open Specification Promise.

      (Note: IANAL) Since the core .NET framework, as well as the CLR specification and the base C# language are covered under this. As long as does not use things like ADO.NET, ASP.NET and WinForms or other non-ECMA-covered parts of the language/framework (and why would they, since those are essentially Windows/MicrosoftStack specific), there should be no patent problem here.

    3. Re:YAOS by NickFortune · · Score: 1

      Actually, the OSP doesn't apply at all here. That's purely covering people who want to create 3rd party implementations of certain microsoft specificatons. So the Mono boys were covered for instance, but not necessarily the application you create using Mono.

      Then again, that's not an issue at all here, since this uses MS .NET rather than mono, and presumably has all the rights that you'd get for any other C# application you made with Visual Studio.

      So broadly speaking (IANAL either) you could well be right. The toolchain issues could still prove problematic, however.

      --
      Don't let THEM immanentize the Eschaton!
  18. Just how dumb are you? by nedlohs · · Score: 2

    #. It shows the naysayers you can write a full OS kernel without C

    Congrats you showed the empty set something. Since nobody with the two brain cells required to know the word kernel would claim C is required for one.

    Given we had then before C existed - GM-NAA I/O in 1954 would be the obvious "before C" one.

    And we had non-C ones after C existed - LISP machines being the obvious example there.

    1. Re:Just how dumb are you? by Anonymous Coward · · Score: 0

      The point being the kernel is useless because it runs within a managed environment that itself depends on a kernel written in C. The reason why C is special is because it is one of the few languages today that can be used to write bare metal code...Almost every other language depends on preexisting infrastructure. Writing a VM is nothing new and honestly passe at this point.

    2. Re:Just how dumb are you? by Anonymous Coward · · Score: 0

      What does the 'M' stand for?

    3. Re:Just how dumb are you? by nedlohs · · Score: 1

      Motors.

    4. Re:Just how dumb are you? by hedwards · · Score: 1

      OK, that explains that. I was trying to figure out why one would have to write a kernel in C or any subset of the kernel in C. I know that C is commonly used for writing OSes, but I couldn't figure out why one couldn't write the kernel is assembly, other than the impracticality of doing so and the lack of portability of such a kernel.

    5. Re:Just how dumb are you? by spauldo · · Score: 1

      Writing anything major in assembly is difficult and bug-prone. I believe BeOS had a kernel written in assembly, but most kernels are written in C.

      The main reason is pretty simple; there aren't many modern languages that can produce code that works directly with the bare metal. Even C has two modes - hosted (i.e. system libraries are available) and non-hosted, and you can only implement a kernel in non-hosted mode, which basically means you get to create all the functions you'll need yourself. Writing C in non-hosted mode isn't too far from writing in assembly, really - it's just a lot more readable.

      If you do, say, file I/O in most languages, they produce code that issues syscalls to the kernel. In order for the kernel to do file I/O, it has to issue commands to the hardware via I/O addresses, trigger IRQs, set up DMA channels, and generally shove a lot of data into a lot of addresses via a lot of pointers, and then read the result via more pointers. C can do that. Pascal can do that. Most other languages can't - they're just not designed for that kind of low-level work.

      --
      Those who can't do, teach. Those who can't teach either, do tech support.
    6. Re:Just how dumb are you? by Anonymous Coward · · Score: 0

      Early versions of AIX were implemented in PL/1.

      There is MarteOS project: an OS implemented in Ada.

    7. Re:Just how dumb are you? by dzfoo · · Score: 1

      You can most definitely write anything at all in Assembly Language, as long as the language and assembler support your target architecture. In fact, operating systems were once written purely in Assembly Language, since that was the best suited language available to achieve the performance and control required in systems programming.

      As an example, UNIX was originally written in PDP Assembly Language, and then ported to C. C was designed as a slight step above Assembly specifically for systems programming in general, and UNIX in particular.

      In other words, there are no "naysayers" claiming that C is the only suitable language for systems programming. At least none that actually know what they are talking about.

                -dZ.

      --
      Carol vs. Ghost
      ...Can you save Christmas?
  19. What a stupid reason to write an OS by msobkow · · Score: 1

    It shows the naysayers you can write a full OS kernel without C.

    This is the stupidest motive for writing an operating system I've ever heard of. What about VMS, written in FORTRAN? Or HP RTE-A, also written in FORTRAN?

    Do you think the "classic" operating systems were written in a language that didn't even EXIST yet?

    --
    I do not fail; I succeed at finding out what does not work.
    1. Re:What a stupid reason to write an OS by rubycodez · · Score: 1

      VMS actually was written in Macro (essentially cross-compiled assembly from a PDP) and BLISS-32.

      But yeah, the classic mainframe OS were written non-C like IBM's PL/S and friends (PL/X now). Unisys (formerly Burroughs) OS are written in NEWP (an extended ALGOL)

    2. Re:What a stupid reason to write an OS by hawk · · Score: 1

      I'm going to date myself with this, but Primos (? Pr1mos? It's been a while . . .) was largely written in FORTRAN IV.

    3. Re:What a stupid reason to write an OS by colinrichardday · · Score: 1

      Perhaps he meant a higher-level language (not assembler). Although that would be false as well, by your examples.

    4. Re:What a stupid reason to write an OS by turgid · · Score: 1

      FORTRAN IV of all things: the mind boggles!

      If I had the time and the brain power, I'd probably try writing an OS kernel in D

    5. Re:What a stupid reason to write an OS by LingNoi · · Score: 1

      Not only that, but the argument isn't even that you *can't* write something in a different language. It's that you *shouldn't* because it adds overhead.

      Best possible case is that C# is optimised to be as fast a C. So what? It doesn't justify rewriting the whole OS in C# after years of getting it right in C because even if you have the speed of C with all the advantages of C#; re-implementing and causing bugs would write the whole thing off as a worthless endeavour.

      This is all assuming you can get it as fast as C in the first place which although you could point to very small test cases it isn't ever going to be as fast overall and that's what matters. People will argue that computing power is greater so we got my cycles to waste, again what's the point when existing C implementations are already better at not wasting resources?

  20. Kidding me? by Zamphatta · · Score: 0

    cmdr taco leaves and we gets stories like this now. Whoever said you can't write an OS unless you do it in C? I've heard of OS's in C++ and even Assembly, among other things.

  21. Failure by MrEricSir · · Score: 4, Insightful

    This article is a failure on so many levels. It's about a dead project that sounds pointless in the first place, and they didn't even get the name right in the headline or summary.

    It's a trifecta of fail all at once.

    --
    There's no -1 for "I don't get it."
    1. Re:Failure by Anonymous Coward · · Score: 0

      And you've completed it knowing nothing.

      "It's about a dead project that sounds pointless in the first place"

    2. Re:Failure by wondershit · · Score: 2

      I agree that it's stupid they got got even the name wrong in the summary. But I do not agree with such a project being "pointless in the first place". How often do we embrace stuff like that on slashdot? Doing things for the sake of doing. Hand in your Geek Card.

    3. Re:Failure by Threni · · Score: 1

      So what's notable here? Someone's done another OS? Someone's done one using a Microsoft language? It's good/fast/full featured/solves some problem? This site isn't Hackaday, where theres another 5 arduino projects every day, despite them being neither hacks nor interesting.

    4. Re:Failure by Anonymous Coward · · Score: 0

      Actually, according to this [http://cosmos.codeplex.com/SourceControl/changeset/changes/83242], a bit of code was committed yesterday... SOOOOO, the OP just got the site wrong in the link.

    5. Re:Failure by gmueckl · · Score: 1

      The point here being that the operating system is written entirely in a language that was designed to run in a virtual machine environment (relying on garbage collection and lots of other stuff). Turns out you can still compile the code to native binary code that does not need an operating system around it to run. This is an interesting achievement. Microsoft did something similar with Singularity, but they invented an extended variant of C# for their kernel.

      --
      http://www.moonlight3d.eu/
    6. Re:Failure by gmhowell · · Score: 3, Funny

      It's not dead; it's resting.

      --
      Jesus was all right but his disciples were thick and ordinary. -John Lennon
    7. Re:Failure by Anonymous Coward · · Score: 0

      It's pining for the fjords.

    8. Re:Failure by not+already+in+use · · Score: 1

      Dead by what metric? The fact that the website hasn't been updated? Perhaps you should check the commit log before making such uninformed statements (~10 commits a day as far back as I checked). Typical cynical slashdot neckbeard, reading just enough to spew a bunch of indignant tripe.

      --
      Similes are like metaphors
    9. Re:Failure by MrEricSir · · Score: 1

      Oh I'm sorry, I don't check out the code for each project mentioned on Slashdot. Apparently that makes me a "neckbeard," which is kind of an ironic accusation in this particular case.

      --
      There's no -1 for "I don't get it."
    10. Re:Failure by Anonymous Coward · · Score: 0

      ... in peace.

    11. Re:Failure by not+already+in+use · · Score: 0

      I don't check out the code for each project mentioned on Slashdot

      Well, if you're going to make inflammatory comments, in this case contingent on the project being dead, perhaps you should verify that the project is *actually dead.* Moron.

      --
      Similes are like metaphors
    12. Re:Failure by MrEricSir · · Score: 1

      So calling something dead when it isn't is "inflammatory," but calling someone a moron is not?

      Okaaaay... *raises eyebrow*

      --
      There's no -1 for "I don't get it."
    13. Re:Failure by not+already+in+use · · Score: 0

      Man, you're not good with this whole "logic" thing are you? It was an inflammatory comment regardless of whether or not the project was actually dead. My point was, apparently completely lost on you, is that if you *are* going to say something inflammatory, at least take 30 seconds worth of research to make sure what you're saying is factually correct. So to break this down in terms you might understand:

      Saying something inflammatory + saying something factually incorrect == moron.

      Therefore:

      you == moron.

      --
      Similes are like metaphors
    14. Re:Failure by Anonymous Coward · · Score: 0

      For the youngsters, this is why it is funny:

                http://www.youtube.com/watch?v=npjOSLCR2hE

    15. Re:Failure by Anonymous Coward · · Score: 0

      Maybe pining for the fjords?

    16. Re:Failure by Lokitoth · · Score: 1

      If I remember correctly, the only reason the Singularity team extended C# into Sing# was to add hard contracts and invariants to the language so that their goal of software isolation of processes could be met (with extended static verification), which is similar to what Google seems to be doing with NaCl. This feels a lot more like Java Desktop, in that I am not entirely sure what the purpose of this is beyond an intellectual exercise; maybe once they get to the point where they can propose an application model it may begin to make sense.

    17. Re:Failure by mkuczara · · Score: 1

      It should change its name to Cthulhu

    18. Re:Failure by Anonymous Coward · · Score: 0

      It's not resting; it's just a long garbage collection cycle.

    19. Re:Failure by Stellian · · Score: 1

      Turns out you can still compile the code to native binary code that does not need an operating system around it to run.

      Making C# a hodgepodge of conflicting features in the process. It's stupid because it's not what C# was designed for. The notion of garbage collection in the kernel boggles the mind - that's the software that does low level memory management, maps physical memory, writes descriptors etc.
      What they actually achieved was to write a good part of the operating system in the CIL -> binary translator. That's an achievement all right, but of the other kind.

    20. Re:Failure by AP31R0N · · Score: 1

      All right, if it's resting, let's boot it up!

      --
      Utilizing the synergization of benchmark e-solutions to pre-workaround action items!
    21. Re:Failure by cocoajunkie · · Score: 1

      It's not dead; it's resting.



      Yes, resting in peace, RIP
    22. Re:Failure by Anonymous Coward · · Score: 0

      It just so happens that this project here is only MOSTLY dead. There's a big difference between mostly dead and all dead. Mostly dead is slightly alive. With all dead, well, with all dead there's usually only one thing you can do.

    23. Re:Failure by n7ytd · · Score: 1

      Just running garbage collection.

    24. Re:Failure by radtea · · Score: 1

      This is an interesting achievement.

      No, it's not. The article references some mysterious group of "naysayers" who are supposed to think an OS without C is impossible or something insane like that. No one who knows anything about OSs or languages thinks that.

      What people do think is that writing a C# OS would be a slog, and unlikely to provide any major benefits over alternatives. The world is full of problems that are clearly solvable, clearly tedious, and clearly boring. This one falls into that category because there's nothing in particular about a C#-based OS that makes it remotely useful or interesting for anything. If the language had some interesting features that gave the OS using is novel properties, that would be interesting. But that's not the case.

      --
      Blasphemy is a human right. Blasphemophobia kills.
    25. Re:Failure by MrEricSir · · Score: 1

      Sorry, but if that's your attitude I don't care about your "logic." Or your opinions. If getting things done your way is so important to you, calling people morons on the internet won't make any difference.

      Speaking of which there's nothing particularly logical about your personal opinions so it's quite fitting you put the word "logic" in quotes. Maybe there's a person inside you after all who's as smart as you think you are, though from what you've demonstrated I highly doubt it.

      --
      There's no -1 for "I don't get it."
    26. Re:Failure by not+already+in+use · · Score: 1

      There's no opinion involved in the fact that you stated something that was factually incorrect in an extremely inflammatory matter and then got called out on it. I never claimed to be smart, but I'll take it as a compliment that you imply I feel as such. I've taken great pleasure in making a fool out of you. Every reply is another opportunity in doing so, so I look forward to your next far-reaching attempt at saving face.

      --
      Similes are like metaphors
    27. Re:Failure by MrEricSir · · Score: 1

      Hey, it's good that you're able to feel good about yourself. It must be rough living with mental disabilities.

      --
      There's no -1 for "I don't get it."
    28. Re:Failure by Anonymous Coward · · Score: 0

      in peace - until now.

  22. Singularity? by Trepidity · · Score: 3, Interesting

    How about Singularity, Microsoft's own attempt to write an OS in an extended dialect of C#? Is this aiming at similar goals in any way?

    1. Re:Singularity? by Anonymous Coward · · Score: 0

      How about Singularity, Microsoft's own attempt to write an OS in an extended dialect of C#? Is this aiming at similar goals in any way?

      "The lowest-level x86 interrupt dispatch code is written in assembly language and C. Once this code has done its job, it invokes the kernel, whose runtime and garbage collector are written in Sing# (an extended version of Spec#, itself an extension of C#) and runs in unsafe mode. The hardware abstraction layer is written in C++ and runs in safe mode. There is also some C code to handle debugging."

      How's that for an OS written in a managed language... Oh you must be talking about the runtime.

    2. Re:Singularity? by jjohnson · · Score: 2

      Singularity was basically a demonstrator for a particular process model that took full advantage of the kind of memory isolation that's possible in managed environments. It wasn't trying to prove that you could write an OS in C#, it was trying to (and did) prove that bringing the "managed" level down as low as possible, the basic process model could be provably secure (i.e., it's impossible to insecurely cross process boundaries).

      It's a neat project that I hope continues since it wasn't trying to show off so much as demonstrate what should be possible in any language/VM.

      --
      Anyone who loves or hates any language, platform, or manufacturer, doesn't know what they're talking about.
    3. Re:Singularity? by MobyDisk · · Score: 1

      Then can you update the Wikipedia entry? Because that isn't at all what it sounds like. They really really say it was an operating system. Even mentions that it has interrupt dispatch code written in x86.

    4. Re:Singularity? by jjohnson · · Score: 1

      Yes, it is an operating system--it uses a minimal C/x86 for interrupt dispatch, C++ for a HAL, and then loads a microkernel written in an extension of C#, with the extensions providing the process model. On top of that the rest of the OS is built. Singularity, like Plan 9, is a research OS to demonstrate (among other things) a process model that's provably secure.

      The wikipedia entry is fine, and what I'm describing is what the entry has under "Security Design".

      --
      Anyone who loves or hates any language, platform, or manufacturer, doesn't know what they're talking about.
    5. Re:Singularity? by MobyDisk · · Score: 1

      understood.

  23. Finally!!!! by Anonymous Coward · · Score: 0

    An OS even crappier then Windows. How could we not see that the way to do it was to use a part of Windows to write it?

  24. Re:but... by ianare · · Score: 1

    Mono is not supported. Didn't you at least read the SUMMARY ?

  25. Subsidized by trialware by tepples · · Score: 1

    Are you implying Windows is free now

    Windows Home Premium (OEM version) is subsidized by trialware publishers, making it free as in beer to home users.

    1. Re:Subsidized by trialware by ninetyninebottles · · Score: 2

      Are you implying Windows is free now

      Windows Home Premium (OEM version) is subsidized by trialware publishers, making it free as in beer to home users.

      Free as in beer? Is that sort of like a free drink when you pay $50 to go to a show? I'll tell you a secret, when something is free with the purchase of something else, it's a bundled cost. You're still paying for it. Your computer is that much more expensive than it would be if there were no such thing as Windows and only free OS's.

    2. Re:Subsidized by trialware by LingNoi · · Score: 1

      Interesting could you provide instructions on how I can get 64bit windows home premium for free then?

    3. Re:Subsidized by trialware by tepples · · Score: 1

      Buy a 64-bit computer from the home division of a major PC maker, and a copy of Windows tied to that computer will be included at no additional charge.

    4. Re:Subsidized by trialware by LingNoi · · Score: 1

      Then that's not free is it.

    5. Re:Subsidized by trialware by tepples · · Score: 1

      A. It's free if the PC also includes trialware and the trialware companies subsidize it. Or B. It's as good as free if "[t]he cost is hidden from the average consumer", that is, you couldn't build the same PC with Linux for less.

    6. Re:Subsidized by trialware by LingNoi · · Score: 1

      It's not free if you have to buy a PC that you don't need to get an OS for the PC you already have.

    7. Re:Subsidized by trialware by tepples · · Score: 1

      Windows is also subsidized by all the coupons that you can print at Coupons.com. Coupons.com coupon printing software does not support Linux.

  26. And when they are done... by jrbrtsn · · Score: 1

    they will realize that C with some ASM produces the best performing, most efficient operating systems.

  27. God forbid by wmbetts · · Score: 5, Insightful

    God forbid anyone just think it's neat for the sake of doing it. No, everyone has to go on an anti-Microsoft rant. Personally, I think it's kinda cool. I'd never use it for anything, but it's still cool that it was done. Instead of shitting on the developers just be happy they did something outside of the norm.

    --
    "Ubuntu" -- an African word, meaning "Slackware is too hard for me". - stolen from Dan C alt.os.linux.slackware
    1. Re:God forbid by Requiem18th · · Score: 1

      I think Unununium, an OS written in Python, was an even cooler toy done just for the sake of it.

      --
      But... the future refused to change.
    2. Re:God forbid by wmbetts · · Score: 1

      That's pretty cool as well, but I doubt 1k people felt the need to crap on it.

      --
      "Ubuntu" -- an African word, meaning "Slackware is too hard for me". - stolen from Dan C alt.os.linux.slackware
    3. Re:God forbid by Hassman · · Score: 1, Offtopic

      No kidding.

      I'm beginning to dread reading Slashdot. Crappy summaries. Crappy choices for summaries. And now truly vile comments about a project that some people got together to do for what seems like shits and giggles. Whatever happened to coding something because you thought it would be cool? Whatever happened for coding something because you could? Whatever happened to doing something different for the sake of being different?

      Apparently this is what the community has degraded to. Personally I'd rather go on a date with Alyssa Bereznak while getting kicked in the nuts being forced to use apple products (after updating iTunes AGAIN) than read this Slashdot trash.

      --
      -Mark
      Dovie'andi se tovya sagain.
    4. Re:God forbid by Anonymous Coward · · Score: 0

      Agreed. Sheesh, too many pointy headed nerds pissing to claim their turf, and not enough genuine enthusiasm left in the world!

    5. Re:God forbid by Anonymous Coward · · Score: 0

      It would be cool if the project wasn't dead.

    6. Re:God forbid by luckymutt · · Score: 1, Interesting

      Indeed.
      The devs are doing an OS in C# for, essentially, the fun of it. So What? Not entirely dissimilar to other devs:

      "I'm doing a (free) operating system (just a hobby, won't be big and professional like gnu) for 386(486) AT clones. This has been brewing since april, and is starting to get ready."

      and no, retards, I'm not saying that Cosmos will grow to become the next great OS. I'm just saying: don't shit on Devs for doing something for the fun of it, regardless of their choice of language.

    7. Re:God forbid by gadzook33 · · Score: 0

      Here here. I'm getting pretty sick of the children on slashdot who still think it's 1997 and read "C# OS" as "Windows 95". As someone who spent half their life on linux and half on Windows, here's an update: linux won the server war, windows won the desktop. Yeah, it might change at some point but for the time being it's not the worst thing in the world. Grow up for pete's sake.

    8. Re:God forbid by Anonymous Coward · · Score: 0

      Being critical and/or sceptical is fine, but the level of vitriol is incredible!

    9. Re:God forbid by Anonymous Coward · · Score: 0

      Python?
      Sure you didn't mean to say Assembly?

    10. Re:God forbid by SomeStupidNickName12 · · Score: 1

      Well said, I wrote a java to native code compiler in java because I wanted to see if I could do it not because I wanted something to replace the offical JDK.

      People here don't get the whole let me see if I can do something different for the fun of it - sometimes different is good and sometimes its a waste of time.

    11. Re:God forbid by Anonymous Coward · · Score: 0

      God forbid anyone just think it's neat for the sake of doing it. No, everyone has to go on an anti-Microsoft rant. Personally, I think it's kinda cool. I'd never use it for anything, but it's still cool that it was done. Instead of shitting on the developers just be happy they did something outside of the norm.

      How dare you try to take away our fun of taking away everyone else's fun!

      *CIRCULAR REFERENCE WARNING*
      One or more formulas contain a circular reference and may not calculate correctly.
      For more information about understanding, finding, and removing circular references, click OK.
         

  28. An empty wiki is not documentation by Animats · · Score: 1

    It's hard to tell what, if anything, this thing does. The "documentation" is a mostly empty wiki. There's a useless FAQ and a useless technical FAQ. Neither answers basic questions like "what does this run on" and "what is the API for programs which run on it". I can't even figure out whether it runs on a bare machine or on Windows or Linux or what. ("Your search for 'installation' has returned 0 results").

    What this seems to be is some kind of scheme for running Microsoft .NET on a bare machine. Except that it doesn't, apparently, really boot on a bare machine; it's normally run as a Windows application under Visual Studio. I think.

  29. Just stupid by mlwmohawk · · Score: 0

    Seriously. You undertake a project like an OS. There are a lot of technical issues involved that sort of project. Do you choose a language that has a proven history or do you choose to use a language that is, by definition, not for this sort of application? Also, since they are dumping out assembler, and using NASM to compile code, it has ceased to be C#. It has become a hybrid system, just like every other OS. They've spent a lot of time using the wrong language and, in the end, proved nothing.

    1. Re:Just stupid by Anonymous Coward · · Score: 0

      You can run C# apps inside the OS according to the videos. Just Console.Writeln things so it is not just pure assembly code in the output. Part of the runtime is moved over

    2. Re:Just stupid by Anonymous Coward · · Score: 0

      Your life must be not worth living.

  30. Article Quality by Anonymous Coward · · Score: 0

    Why did Slashdot even bother writing this when the last update on the projects new page is from August of last year?

  31. Of course OS's can be written without C by Anonymous Coward · · Score: 0

    I worked on a system called MOS (from Olivetti) that was written in an extended Pascal. I have seen systems written in Lisp and even compiled Java,

    1. Re:Of course OS's can be written without C by Osgeld · · Score: 1

      dont try to inject logic here, this is slshdot, and nothing before yesterday existed (just ask the apple nuts)

  32. unsafe by tepples · · Score: 1

    good luck trying to write a memory manager in a manage language

    -- I'll take C# for 800, Alex.
    -- The keyword that enables pointer arithmetic. ... Pino.
    -- What is unsafe?
    -- Yes!

    or a fs

    As long as your code can read and write blocks on the device, a file system can be implemented in any language. Some operating systems allow file systems to run as user processes, and not just experimental microkernels either.

    -- Linux for 400 please.
    -- This electrical current limiter shares its name with a file system framework. ... Abi.
    -- What is a fuse?
    -- Yes, and you're on the board. Go again.

    "oh but you can only use a subset of C# there" well, duh

    A bootloader can only use a subset of C because it needs assembly language to get the x86 CPU out of backward-compatible "real mode".

    1. Re:unsafe by JamesP · · Score: 1

      This is more complicated than it seems

      Granted, this is needed: http://msdn.microsoft.com/en-us/library/chfa2zb8(v=vs.71).aspx

      Now:

      You can write all the code as unsafe, so you're writing almost C

      And in certain places of the kernel you can't have a 'malloc' that sleeps. Hence, you can't have a default allocator for objects. Hence, no gc

      Also what warranties there are w.r.t. atomicity of operations in C#?

      As long as your code can read and write blocks on the device, a file system can be implemented in any language

      Yes. Except you have lots of restraints on fs operations, otherwise you're entering a deadlock or looping infinitely (like triggering swap).

      FUSE of course needs kernel support, it's not a problem solver (from the point of view of the kernel)

      So, you may be able to write an OS on "C#" but it's more of a gimmick than anything else.

      --
      how long until /. fixes commenting on Chrome?
    2. Re:unsafe by The+Dawn+Of+Time · · Score: 0

      Well, we should all take turns shitting on it then. That seems like a reasonable response.

  33. Don't you look at Singularity by wzzzzrd · · Score: 2
    Just read their FAQ:

    If you have looked at Singularity the past, you are welcome to develop on Cosmos however you must be careful not to use your knowledge of Singularity. Unless you were involved deeply into Singularity code this will likely not be a problem. If you are concerned about this, choose purposefully to develop in a different area of functionality in Cosmos.

    http://cosmos.codeplex.com/wikipage?title=FAQ

    And no, that's not a joke.

    --
    On second thought, let's not go to Camelot. It is a silly place.
    1. Re:Don't you look at Singularity by Anonymous Coward · · Score: 0

      Due to copyright you idiot.

    2. Re:Don't you look at Singularity by Anonymous Coward · · Score: 0

      That seems like an entirely sensible policy to prevent code contamination. If I was running Cosmos I would be more draconian.

  34. This is good by udachny · · Score: 0

    This is good. I wonder if an OS can be written in any language? COBOL? ADA? PL? Java? Javascript? Is it possible to do in all languages?

    1. Re:This is good by Doc+Ruby · · Score: 1

      Any language that can read and write values in the HW - CPU, buses, chipset and RAM - can be used write an OS. Or any language that can do so after being compiled (which largely depends on the compiler).

      But whether any old language is good for writing an OS is another story. If the language has few people with OS-caliber skills to read or write it, probably not. If the language is inflexible in its style, or low performance in its execution (eg. few result bits per op), probably not.

      Java for example seems like a good OS language - especially for a distributed/virtual machine, as that's its native target HW - despite its abstraction away from bits and memory. Javascript does not, since it's not very expressive in manipulating bits, and its programming community relies on high level objects like the DOM and browser app for most techniques.

      --

      --
      make install -not war

  35. "Entirely" isn't relevant. by SanityInAnarchy · · Score: 1

    Linux is written mainly in C, but there's also inline assembly.

    --
    Don't thank God, thank a doctor!
    1. Re:"Entirely" isn't relevant. by dotancohen · · Score: 1

      Linux is written mainly in C, but there's also inline assembly.

      But Linux is not marketed as being written in C to demonstrate that an OS can be written in C. This OS is ostensibly written in C# to demonstrate that an OS can be written in C#. Oh, and the C# CLR is written in C.

      --
      It is dangerous to be right when the government is wrong.
    2. Re:"Entirely" isn't relevant. by SanityInAnarchy · · Score: 1

      But Linux is not marketed as being written in C to demonstrate that an OS can be written in C.

      Unix was.

      And it does still demonstrate that fact. If I wrote a game entirely in Python, say, except for some OpenGL bindings in C, would you say I'd successfully written a game in Python, or would you nitpick about the OpenGL bindings and demand that I somehow write a video driver in Python, too?

      Oh, and the C# CLR is written in C.

      The OS doesn't run in the CLR. It compiles CLR bytecode to native and runs that.

      --
      Don't thank God, thank a doctor!
    3. Re:"Entirely" isn't relevant. by dotancohen · · Score: 1

      Unix was.

      And it does still demonstrate that fact.

      Unix was written in C, but not just to prove that it could be done. I'm open to correction, though.

      If I wrote a game entirely in Python, say, except for some OpenGL bindings in C, would you say I'd successfully written a game in Python, or would you nitpick about the OpenGL bindings and demand that I somehow write a video driver in Python, too?

      I would say that you successfully wrote a game in Python, because OpenGL and Python are intended for doing different things. However, if you write a game in Python to prove that a game can be written using _only_ Python, then I would in fact nitpick that you resorted to non-Python technologies.

      The OS doesn't run in the CLR. It compiles CLR bytecode to native and runs that.

      You're right about that. Sorry.

      --
      It is dangerous to be right when the government is wrong.
    4. Re:"Entirely" isn't relevant. by SuiteSisterMary · · Score: 1

      Unix was written in C, but not just to prove that it could be done. I'm open to correction, though.

      Consider yourself corrected.

      The original Unix operating system was written in assembler, and the applications in a mix of assembler and an interpreted language called B, which had the virtue that it was small enough to run on the PDP-7. But B was not powerful enough for systems programming, so Dennis Ritchie added data types and structures to it. The resulting C language evolved from B beginning in 1971; in 1973 Thompson and Ritchie finally succeeded in rewriting Unix in their new language. This was quite an audacious move; at the time, system programming was done in assembler in order to extract maximum performance from the hardware, and the very concept of a portable operating system was barely a gleam in anyone's eye. As late as 1979, Ritchie could write: âoeIt seems certain that much of the success of Unix follows from the readability, modifiability, and portability of its software that in turn follows from its expression in high-level languagesâ, in the knowledge that this was a point that still needed making.

      --
      Vintage computer games and RPG books available. Email me if you're interested.
    5. Re:"Entirely" isn't relevant. by dotancohen · · Score: 1

      I read that as "C was developed to be a language in which to write an operating system". That means that you are right, Unix was in fact written to show that an OS could be written in C.

      However, the situation is that C# is a language that was never intended to be used to code an OS. So I am changing my argument, but the point remains the same.

      --
      It is dangerous to be right when the government is wrong.
    6. Re:"Entirely" isn't relevant. by TemporalBeing · · Score: 1
      Not quite. UNIX was written before C was invented according to your quote.

      The original Unix operating system was written in assembler, and the applications in a mix of assembler and an interpreted language called B, which had the virtue that it was small enough to run on the PDP-7. But B was not powerful enough for systems programming, so Dennis Ritchie added data types and structures to it. The resulting C language evolved from B beginning in 1971; in 1973 Thompson and Ritchie finally succeeded in rewriting Unix in their new language. This was quite an audacious move; at the time, system programming was done in assembler in order to extract maximum performance from the hardware, and the very concept of a portable operating system was barely a gleam in anyone's eye. As late as 1979, Ritchie could write: âoeIt seems certain that much of the success of Unix follows from the readability, modifiability, and portability of its software that in turn follows from its expression in high-level languagesâ, in the knowledge that this was a point that still needed making.

      So in other words, Unix was invented first. They wanted a better way to maintain it via a single language, so they didn't have to do as much Assembly, so they invented C (deriving it from B), and then rewrote Unix in their new language. This in fact does not show that an OS could be written in C, but rather that C did what it was intended to do - be useful for writing OS's.

      Had they decided to show that C could be used to write OS's from the start, then it was have existed prior to Unix. Not the other way around.

      --
      Truth is like the sun. You can shut it out for a time, but it ain't goin' away. - Elvis Presley (source: imdb.com)
    7. Re:"Entirely" isn't relevant. by SuiteSisterMary · · Score: 1

      Nobody disputes that C came after UNIX. UNIX, however, was rewritten in C, specifically to demonstrate that an OS could, in fact, be written in a compiled language, and could be portable between computers.

      --
      Vintage computer games and RPG books available. Email me if you're interested.
    8. Re:"Entirely" isn't relevant. by TemporalBeing · · Score: 1

      The quote, from "The art of Unix programming" (thanks to Google Books! - http://goo.gl/3WDeV) does not even imply that. Further, readings on the History of the C language does not imply that either. Rather, from what I can find - and what those same text do infer - they rewrote Unix in C because they wanted a portable source code base, not to prove anything (like Unix could be written in C) - that just happened by chance, but was not a goal be to proven. So, as I said - it showed that C could do what it was intended to do, not that it could be done - they had already rewritten most of Unix in B by that point already too, only to have problems with the limitations of B (see the same source).

      --
      Truth is like the sun. You can shut it out for a time, but it ain't goin' away. - Elvis Presley (source: imdb.com)
  36. .Net Silicon? by Doc+Ruby · · Score: 2

    This project would interest me (a little) if the assembly that the C# is compiled to were run on silicon that executed CIL as machine instructions. Even if the CIL implementation were microcode that invoked x86 instructions, or a Transmeta-type on the fly conversion to native instructions.

    --

    --
    make install -not war

  37. An actual motivation... by SanityInAnarchy · · Score: 2

    Ok, yes, there's the "because I can" motivation behind things like hanoimania, and if you don't think that's awesome, I don't know what you're doing on Slashdot.

    But there is a more serious reason this would be useful, either in C# or .NET: A managed memory OS would likely be more secure and more stable than one written in, say, C. They're also playing up the idea of having it be entirely verified. It's also nice in that if apps are all bytecode, it should be transparently portable across hardware.

    Such a beast would likely not be a replacement for current OSes for a long time, because of performance. I'd love to be proven wrong here. Still, even if it comes at a heavy performance penalty, I know there are a lot of places I would gladly take an 80% performance hit for better security and stability, especially on today's hardware. In fact, that's a reason to run web apps. At the very least, there are small apps like the ragemaker which are useful despite whatever imperceptible performance penalty there is, but which there is no way in hell I'm going to run outside of that sort of sandbox. And, similarly, there's no way in hell I could expect its author to release a Linux/ARM version, but if it runs in the browser, it runs on whatever platform/OS I want.

    --
    Don't thank God, thank a doctor!
  38. Re:but... by JustOK · · Score: 2

    no. why? what did it say?

    --
    rewriting history since 2109
  39. Microsoft already has one by gonz · · Score: 1

    Microsoft Research has been working on this for many years and has at least two such projects:

    http://en.wikipedia.org/wiki/Singularity_(operating_system)

    http://en.wikipedia.org/wiki/Midori_(operating_system)

    The code is ahead-of-time compiled using the Bartok compiler:

    http://en.wikipedia.org/wiki/Bartok_(compiler)

  40. C# Easier language to program in? by Anonymous Coward · · Score: 0

    An easier to program language for the basis of a kernel may be the benefit. Code analysis tools could be used on the C# parts.

  41. I'd just like to know... by vegaspctech · · Score: 3, Informative

    ...who said you couldn't write an OS in C#, or that you couldn't write one without C? Obviously C wasn't used to build the OS that C was built on. And if that someone said they couldn't do it was their reason for doing it, quick, someone tell them that there isn't an OS written in COBOL and that they can't paint your house with a toothbrush. And no, if I say I think it's a waste of your time to paint a house with a toothbrush, it isn't because it's a Microsoft toothbrush or Microsoft paint or that you're painting a Microsoft house, it's because it's a frickin' toothbrush. By the way, I love how the FAQ link takes you to a page that tells you they moved the FAQ instead of just taking you there. It reminds me of all those links wannabe web designers did in the style If you'd like to read about Obvious Anchor Target click here.

    --

    Making the world a better place, one psychotic episode at a time.

    1. Re:I'd just like to know... by not-my-real-name · · Score: 1

      I expect that it would be possible to write an OS in COBOL. It's not what *I* would choose to do with my spare time, but if it turns your crank, more power to you.

      --
      un-ALTERED reproduction and dissimination of this IMPORTANT information is ENCOURAGED
    2. Re:I'd just like to know... by Anonymous Coward · · Score: 0

      "Obviously C wasn't used to build the OS that C was built on."

      Actually.... C was pretty much was made as the language they were implementing Unix in (which was, of course, the operating system that C was built on. The big difference here is that C compiles natively to a lower-level, and has the escape clause of inline assemblier (allowing an operating system to be '95% C, 5% assembly').

      C#, on the other hand, compiles to MSIL, which can't run on native hardware.

      Turns out in this project they then use their own 'IL2CPU' to produce NASM source which is then assembled into native binaries. My gut feeling is there is a handful of methods that are tagged [MethodImpl(MethodImplOptions.InternalCall)] or [MethodImpl(MethodImplOptions.Unmanaged)] and the actual implementations are written in assembly files, depending on how exactly their customised Mono impelementation works.

    3. Re:I'd just like to know... by vegaspctech · · Score: 1

      "Obviously C wasn't used to build the OS that C was built on."

      Actually.... C was pretty much was made as the language they were implementing Unix in (which was, of course, the operating system that C was built on.

      In 1969 Dennis Ritchie started to create the C programming language for use with UNIX. He couldn't have created the OS on the computer on which he began creating C in C because he hadn't created it yet. If he created it on a UNIX machine, then he created C on an OS written in assembly language.

      --

      Making the world a better place, one psychotic episode at a time.

    4. Re:I'd just like to know... by swillden · · Score: 1

      He couldn't have created the OS on the computer on which he began creating C in C because he hadn't created it yet

      Not at all. OS and language grew up together. The first, simplest implementations of both had to be written in assembler, but they quickly became self-hosting.

      --
      Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
    5. Re:I'd just like to know... by spauldo · · Score: 1

      C didn't spring fully formed from Ritchie's head, you know. It was based on B, which was based on BCPL.

      That being said, the first versions of UNIX were written in assembly. It wasn't until they ported it to the PDP-11 that they rewrote it in C.

      --
      Those who can't do, teach. Those who can't teach either, do tech support.
    6. Re:I'd just like to know... by vegaspctech · · Score: 1

      I have an assignment for both of you C-sprang-from-itself guys. Get a chicken egg from the source I specify. Write the letter 'U' on it. Hatch it. It will be a hen, because I have mad skills like that. Name the hen 'C'. When that hen is old enough to lay eggs, introduce it to a rooster and give them some privacy in whatever setting chickens find romantic. I don't know what that might be, but I think it's safe to assume it will be a space free of foxes and cats. That hen is your source. Wait for it to lay the egg from which it hatched, the one on which you already wrote 'U', you know, back before it hatched. Document your method and the results. When you manage that, get back to me with your data, sans semantic BS.

      --

      Making the world a better place, one psychotic episode at a time.

    7. Re:I'd just like to know... by radtea · · Score: 1

      I expect that it would be possible to write an OS in COBOL

      Sure it is. But if you write one, people will question the wisdom of your choices. And if you say, "THEY SAID IT COULDN'T BE DONE!" people will call you a moron, or a /. editor...

      --
      Blasphemy is a human right. Blasphemophobia kills.
    8. Re:I'd just like to know... by swillden · · Score: 1

      Compilers are not chickens.

      --
      Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
    9. Re:I'd just like to know... by Anonymous Coward · · Score: 0

      I see. So compilers, unlike chickens, can be created using themselves before they exist? How about a diagram?

    10. Re:I'd just like to know... by swillden · · Score: 1

      Compilers can be built up incrementally. A tiny subset of the language can be written in another language, then a more complete version of the language written in the subset, etc. New languages typically become self-hosting long before the first complete compiler for the language is produced -- or even before the language is fully designed.

      --
      Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
  42. Of course you can do this! by whizbang77045 · · Score: 1
    "It shows the naysayers you can write a full OS kernel without C"

    That is one of the silliest statements I have seen lately. Of course you can write a kernel without C. You can write it in a lot of languages, the most obvious of which are assembly language or machine language. The latter is what C must eventually be translated into.

    The issue may be what language is easier for the programmer to use, and which is more transportable from instruction set to instruction set.

    There were a lot of kernels written long before anyone ever thought of C. Where has this person been?

  43. Build an OS in C+?? by Anonymous Coward · · Score: 0

    You could also build a house out of Popsicle sticks. But...WHY?

  44. How is this an OS? by Anonymous Coward · · Score: 0

    How could anything like this be an OS when you require other software to run it? As far as I know, this would be outside the scope of the definition of OS.

    1. Re:How is this an OS? by Tetsujin · · Score: 1

      It compiles into a bootable operating system. They're compiling C# to IDL and then IDL to native machine code. So, there you go.

      --
      Bow-ties are cool.
  45. Re:Just in time by Anonymous Coward · · Score: 0

    Just in time for Microsoft to kill .NET.

    Microsoft are not killing off .NET. If they were, it would mean they were also killing off developing for the XBox 360 & Windows Phone 7, as well as a ton of projects for the PC.

  46. Not as silly as people seem to think by jensend · · Score: 5, Insightful

    Sure, the project hasn't gone anywhere for a while, and C# isn't going to be most people's choice for systems programming without a whole lot of changes. But we need to face the fact that C is outdated.

    A lot of the basic tradeoffs made in its design are based on assumptions that are no longer true. An example: C's need to have everything declared in the same functional unit before use and reliance on preprocessor #includes. In 1970, saving compiler effort and putting this burden on the programmer rather than having a more complex system for resolving symbols may have been an acceptable tradeoff; with modern machines it's ridiculous. Many other C design decisions have been shown to cause problems, confusions, and common security-problem-inducing bugs.

    In the past 40 years, a lot of new ideas have emerged which make writing software simpler, faster, and better-organized; some ideas which make code safer or allow the compiler etc to do better optimization have emerged too. Parallelization/multithreading and concurrency have come to the forefront of programming problems, and languages can do better at taking it into account.

    All this time, we've been writing almost all our most critical software with the same language K&R designed 40 years ago, or with something like C++ which inherits all its problems and none of its simplicity. Sure, people can point out a handful of examples of OSes built in other high-level programming languages back in the day before C had major uptake. But just about every machine out there today runs on a C-based stack.

    The industry needs to find a new direction sometime; we can't procrastinate it forever. Very few people have made serious efforts to replace C at the OS level with something more modern. Even D, which is one of the very few newer languages which really try to be able to replace C, has no major OS effort. We really need to get OS developers and language&compiler designers on the same page, find a better standard for systems programming, and create a platform which isn't dependent on the C legacy. I, for one, am not about to laugh at any project which attempts to undertake this daunting task.

    1. Re:Not as silly as people seem to think by Moridineas · · Score: 2

      A lot of the basic tradeoffs made in its design are based on assumptions that are no longer true. An example: C's need to have everything declared in the same functional unit before use and reliance on preprocessor #includes. In 1970, saving compiler effort and putting this burden on the programmer rather than having a more complex system for resolving symbols may have been an acceptable tradeoff; with modern machines it's ridiculous. Many other C design decisions have been shown to cause problems, confusions, and common security-problem-inducing bugs.

      You're aware this is in the C99 standard?

      All this time, we've been writing almost all our most critical software with the same language K&R designed 40 years ago, or with something like C++ which inherits all its problems and none of its simplicity.

      That seems rather dramatic.

    2. Re:Not as silly as people seem to think by shutdown+-p+now · · Score: 1

      You're aware this is in the C99 standard?

      C99 does not require #include files (or other form of declaring symbols defined in other translation units)? So what do you use instead?

      Last I checked, C++ had a TR proposal for modules (that would fix this once and for all), but it didn't get into C++11. I'm not aware of anything like that for plain C.

    3. Re:Not as silly as people seem to think by Animats · · Score: 2

      But we need to face the fact that C is outdated. ... Many other C design decisions have been shown to cause problems, confusions, and common security-problem-inducing bugs.

      I know, as do most of the other people serious about programming language design. I've written about this before in various forums for years, proposing ways to fix some of the problems in C that lead to decade after decade of buffer overflows and crashes. But there's too much legacy code.

      Nobody is even trying. Most of the effort in programming languages today involves late binding, just-in-time compilation, virtual machines, and complex template and object semantics. The last really serious effort to fix the problems of C as a systems programming language was Ada, and it was just too bulky. (On the other hand, modern C++ makes modern Ada look simple.) Modula 3 was actually quite good, and an OS was written in it. But it died with DEC Research when Compaq bought DEC.

    4. Re:Not as silly as people seem to think by Anonymous Coward · · Score: 0

      The website is out of date, instead check their CodePlex site.. the project is far from dead and you can see a LOT of checkins.....

    5. Re:Not as silly as people seem to think by nzac · · Score: 1

      In the past 40 years, a lot of new ideas have emerged which make writing software simpler, faster, and better-organized; some ideas which make code safer or allow the compiler etc to do better optimization have emerged too.
      Parallelization/multithreading and concurrency have come to the forefront of programming problems, and languages can do better at taking it into account.

      So what you want is something close to C without the design flaw that have been realised in the last 40 years. Yes you do get something like D but the compiler is not as good and while backwards compatible will still require years of C code to be redone. Avoiding a lot of the problems of C has a direct impact on performance. Increasing Parallelization/multithreading to compensate for slow individual threads is not a solution C is just as capable of multithreading as anything else.

      I think when C/C++ starts getting beaten in benchmarks by significant percentages then there might be a good reason to replace it (I suspect for an overall improvement the features you would have to strip out would leave it seeming similar to C). Why would anyone seriously want to replace C for increased latency and longer boot times. Good C programming (programming around the flaws and avoiding what should not be done) does not produce more bugs than anything else. Stop trying to convince anyone that C is so easy to replace, you could fork the spec and make changes faster. The programming language to replace C has probably not Conceived yet, it has to brilliantly elegant and simple and at least 3-5 percent faster (C# is not that language).

    6. Re:Not as silly as people seem to think by Anonymous Coward · · Score: 0

      Also check out their articles at www.codeplex.com which are more recent.

    7. Re:Not as silly as people seem to think by Anonymous Coward · · Score: 0

      "An example: C's need to have everything declared in the same functional unit before use"

      Well how else would you use something? Telepathy?

      The minimum C needs to use something is a void *. The minimum sensible is an extern declaration. That's at least as flexible as any other typed language, I'm sure. If you want to do something more generic, I'm sure you can find libraries to help, as per C's minimal design.

      So what was your point again? That being able to write a slow, sloppy "kernel" that requires a visual studio runtime to execute somehow makes C outdated?

    8. Re:Not as silly as people seem to think by Anonymous Coward · · Score: 0

      I've written about this before in various forums for years, proposing ways to fix some of the problems in C.

      Can you recommend some articles written about proposed fixes to the C language? Thanks.

    9. Re:Not as silly as people seem to think by jensend · · Score: 2

      No, I'm not talking about variables. The main example here is functions. If I want foo() in foo.c to call bar(), in a modern language bar() can be declared after foo() in the same file, in any other source file with the proper visibility, or in any precompiled libraries which have the proper visibility. In C and C++, bar() has to be declared in the same source file as foo() and must be declared before foo(). The only way we can call functions defined in other files or in libraries is by pasting function declarations (usu. from .h files) into the body of foo.c using the preprocessor. If you have two functions in the same file which may need to call each other you need to have an empty declaration for one of them in the file, then write the real declaration of the other, then write the real declaration of the first.

      For making a quick single-pass compiler on your PDP-7, this makes sense. It's a total anachronism in our day and age.

    10. Re:Not as silly as people seem to think by martin-boundary · · Score: 1

      The programming language to replace C has probably not Conceived yet, it has to brilliantly elegant and simple and at least 3-5 percent faster (C# is not that language).

      The window of opportunity is there, however. The kind of speed increase you're talking about is easily possible for a language that would do parallelism well. Right now, it's bolted on existing languages with threads, and that's too hard to use properly in general. A successful language should hide threads and do parallelism implicitly whenever it can. That's where I'd look for the programming language to replace C(++).

    11. Re:Not as silly as people seem to think by nzac · · Score: 1

      Nobody is even trying. Most of the effort in programming languages today involves late binding, just-in-time compilation, virtual machines, and complex template and object semantics. The last really serious effort to fix the problems of C as a systems programming language was Ada, and it was just too bulky. (On the other hand, modern C++ makes modern Ada look simple.) Modula 3 was actually quite good, and an OS was written in it. But it died with DEC Research when Compaq bought DEC.

      What could you do to C to make it better without effecting performance? As you said ada tried and failed you need at lest one (probably heaps) of brilliant new concepts to stick into a language. Buffer overflows are solved by using functions with checking that slow things down.

      Looking at ATS it could work less memory and same speed and no where near as much work on the complier.

    12. Re:Not as silly as people seem to think by jensend · · Score: 1

      D's performance is not worse than C (older version of shoovtout since D's not in the most recent version). And it makes little sense to require the replacement language to be faster; except for things like runtime JIT optimizations, if there's a way to code it to run fast in any other language, you could, with sufficient effort, reproduce that performance with C code, though it might be a heckua lot more complicated.

      Your arguments could just as well be used against the introduction of C and Fortran to replace programming directly in assembler: there were libraries in assembler which would be incompatible with some of what people did in C or Fortran, and if you can code something to run fast in C or Fortran you can, with sufficient effort you can get the same performance from code written directly in asm. But moving to higher-level languages had huge benefits for programmer efficiency and program safety, and a C developer may well write something which performs better than what an asm dev can write in the same amount of time. The same kind of advances can be realized by moving from C to a better language.

    13. Re:Not as silly as people seem to think by nzac · · Score: 1

      The kind of speed increase you're talking about is easily possible for a language that would do parallelism well. Right now, it's bolted on existing languages with threads, and that's too hard to use properly in general. A successful language should hide threads and do parallelism implicitly whenever it can.

      You don't get it. using parallelism to cover for a less efficient single core language is not the answer especially since this language will likely use 2 to 5 times the memory. Learn how to do parallelism well in C and put the time in to code it and the result will not have to be a compromise (programming efficiency is low priority in kernel dev I would think), I'm sure the C spec will eventually add some better parallelism.

      No language that is marginally slower or uses marginally more memory (or worse) is going to replace C. Prove that the complier can produce the efficient results first.

    14. Re:Not as silly as people seem to think by nzac · · Score: 1

      D's performance is not worse than C (older version of shoovtout since D's not in the most recent version). And it makes little sense to require the replacement language to be faster; except for things like runtime JIT optimizations, if there's a way to code it to run fast in any other language, you could, with sufficient effort, reproduce that performance with C code, though it might be a heckua lot more complicated.

      performance is similar and memory appears to be terrible (i dont know what the important benchmarks for kernel dev are) you can't just increase the kernel size by 500 percent (could just be the runtime I guess) and you still look like you are taking a 15 to 20 percent speed hit.

      Your arguments could just as well be used against the introduction of C and Fortran to replace programming directly in assembler: there were libraries in assembler which would be incompatible with some of what people did in C or Fortran, and if you can code something to run fast in C or Fortran you can, with sufficient effort you can get the same performance from code written directly in asm. But moving to higher-level languages had huge benefits for programmer efficiency and program safety, and a C developer may well write something which performs better than what an asm dev can write in the same amount of time. The same kind of advances can be realized by moving from C to a better language.

      When assembler can be compiled for a different arch post this again. This hashing program runs really fast on x64 but your computer can't even run it.

    15. Re:Not as silly as people seem to think by Anonymous Coward · · Score: 0

      C# is easier to program and easier to maintain. As a result more people will be able to use/modify/extend it with lesser amount of effort. C being more efficient holds no ground as optimizing use of processing/memory capacity is no-more the prime objective of majority of software. OS/Kernel programming and tweaking has been considered as black magic by regular programmers with very few and expert programmers getting into it. With some many devices available now, it will benefit all if we have more people who can utilize them from ground up.

    16. Re:Not as silly as people seem to think by Animats · · Score: 1

      I wrote "Safer arrays for C" back in 2008. After working on this for a while, I realized that it couldn't be made fully backwards compatible with existing code, which limited its utility. So I gave up on that.

      There was an "embedded C" group working on this issue at one point, but they don't seem to be very active any more.

    17. Re:Not as silly as people seem to think by Anonymous Coward · · Score: 0

      "We need to face the fact that C is outdated"

      This statement is ridiculous. Show me a language that lets me get my work done without getting in my way with needless abstraction and verbiage, and that language must have been C. I realize this is probably a troll, but I'm really getting tired of people senselessly repeating the statement that C has outlived its usefulness.

    18. Re:Not as silly as people seem to think by rajeshgautam · · Score: 0

      C# is easier to program and easier to maintain. As a result more people will be able to use/modify/extend it with lesser amount of effort. C being more efficient holds no ground as optimizing use of processing/memory capacity is no-more the prime objective of majority of software. OS/Kernel programming and tweaking has been considered as black magic by regular programmers with very few and expert programmers getting into it. With some many devices available now, it will benefit all if we have more people who can utilize them from ground up.

    19. Re:Not as silly as people seem to think by martin-boundary · · Score: 1

      Learn how to do parallelism well in C and put the time in to code it and the result will not have to be a compromise (programming efficiency is low priority in kernel dev I would think), I'm sure the C spec will eventually add some better parallelism.

      I'm talking about languages like Erlang which "do" parallelism out of the box, not languages like C/Java where parallelism requires thinking about threads, race conditions, and locks. You can't "fix" this, because those languages are all about reading and writing memory directly (RAM or VM it's the same issue).

      But the loss of single core efficiency will be offset by the gain in programmer productivity when a language that's fully designed for parallelism appears. But that language won't look like C because the inbuilt parallelism won't allow completely free memory access, otherwise it'll be threads, race conditions and locks all over again.

      USD.2

    20. Re:Not as silly as people seem to think by Kjella · · Score: 1

      The thing is that even if you could replace C with something everyone could agree on is better, then this new language wouldn't automatically unlock anything magical that C couldn't do, Turing completeness and all that. I think the latest estimates would be approximately 3500 man-years to write Linux the kernel from scratch. And there would be old and new bugs until you reach parity. Even with a better language, there will be bugs because nobody can stop a developer for shooting himself in the foot no matter how many safeties you build in.

      Honestly, I'm more concerned with the application language and is content to leave the lowest parts in the stack as C. Pretty much every Microsoft shop has moved to C#, but apart from that C (Gtk), C++ (Qt, Wx), Java (jack of all trades, king of none) and Mono (no ECMA or ISO/IEC standard for C# 3.0 or 4.0) are hardly ideal. Personally I vastly prefer C++/Qt, but I see that there are fundamental issues with C++ even Qt can't wrap. I just don't see who'll pick up the glove, there's Java I guess but Oracle... well, it doesn't exactly inspire faith.

      --
      Live today, because you never know what tomorrow brings
    21. Re:Not as silly as people seem to think by nzac · · Score: 1

      I assume we are both talking about making a consumer/enterprise OS/kernel here.
      Erlang is not even in the same League as C/C++ its about 15 times slower than C and uses roughly 20 times the memory.
      http://shootout.alioth.debian.org/u32q/benchmark.php?test=all&lang=hipe&lang2=gcc
      Haskell might be similar are does not lag by as much but is still completely unusable
      http://shootout.alioth.debian.org/u32q/benchmark.php?test=all&lang=ghc&lang2=gcc

      I’m sure I'm practice its not that bad but say your os currently uses 100MB of memory from C programs at start up this is now 2 GB.

      There is no way its just the compliers/runtime fault about the performance of these languages they are just no good for C level performance. Erlang was able to distribute the load over the cores better though for all that’s worth but did not gain anything going from 1 to 4 cores.

      Not saying I can but I think most Parallelism problems in C/C++ can be solved by programming better or finding/hiring a better programmer and planning beforehand and doing it the best way always helps as well. I cant see the argument for crippling an OS so we can all contribute.

    22. Re:Not as silly as people seem to think by m50d · · Score: 1

      The OS is actually quite a small amount of code, and has been more-or-less done for the past decade. I'm perfectly happy to leave the OS running in C; what really matters are the interfaces with the rest of the world. Having a standard higher-level language interface (one that understood objects and closures) for making system calls would really help, and that's the most exciting thing about .net.

      --
      I am trolling
    23. Re:Not as silly as people seem to think by jcdr · · Score: 0

      CFLAGS+=-std=gnu99 -Wall -Werror -pedantic

      This will fix all your false claims about outdated and insecure C. Actually C99 provides some additional fun compared to C++0x, the best of all is to use extremely simple symbol naming: you can link C object with anything, you can link C++ object with C++ object only.

    24. Re:Not as silly as people seem to think by Anonymous Coward · · Score: 0

      go the programming language, does seem to fix a lot of the problems with C (as it should it stems from work by the creator of C).
      Along the way it offers a really pleasant platform for modern day systems programming.

    25. Re:Not as silly as people seem to think by martin-boundary · · Score: 1
      Kernel? Sorry, I wasn't talking about kernel programming - that's a quite different issue. I guess that's my bad since TFA talks about an OS in C# - I've been reading other programming related threads recently. But I was talking about high performance apps, so I guess it's tangentially related.

      For kernels the point is pretty much moot. The current bunch will be around for a few decades and with all the programmer years of legacy code there's really very little likelihood of moving on from C.

      Interesting benchmarks though, I'll have to look at them closely. Thanks.

    26. Re:Not as silly as people seem to think by gbjbaanb · · Score: 1

      How does Erlang solve problems where 2 threads want to write to the same memory at the same time without using locks?

      the reason Erlang appears easier to do parallel code is that it is designed to work things in parallel - ie completely separate blocks that work without much interoperation. You can get the same with Apple's Grand Central, or Intels Thread Building Blocks, or to a lesser extent OpenMP. These solve the problems you're talking about quite nicely.

    27. Re:Not as silly as people seem to think by Anonymous Coward · · Score: 0

      [quote]A lot of the basic tradeoffs made in its design are based on assumptions that are no longer true. An example: C's need to have everything declared in the same functional unit before use and reliance on preprocessor #includes. In 1970, saving compiler effort and putting this burden on the programmer rather than having a more complex system for resolving symbols may have been an acceptable tradeoff; with modern machines it's ridiculous. Many other C design decisions have been shown to cause problems, confusions, and common security-problem-inducing bugs.[/quote]

      Seriously?? This is something you would want??? For a language to write a kernel in??????

      Call me a control freak, but I like to have control over my own code.

    28. Re:Not as silly as people seem to think by Anonymous Coward · · Score: 0

      This is just fanboism, coming from a person who doesn't understand C or how computers work on a low level. Get this: a function call, something that C# or Java programmers see as trivial, is EXPENSIVE in the C world. And it's expensive not because of the way C was implemented, but because of the way the HARDWARE works (saving all/part of the registers comes to mind, depending on the architecture). So, how can you claim that 'C is outdated' if the fundamental issues in software engineering have changed since K&R? I'm sorry, but you live in your own world, a world where there's little logic and experience present, just biased opinions and fanboi feelings.

      C was optimized for speed, so that the OS (or any C app) could run as fast as possible. Not as safe as possible, but as fast as possible. You can achieve safety by design and careful programming, but the onus is on YOU. Think of it as a car: if you build the fastest car in the world, and you put an expert driver in the seat and you let him drive from city A to city B with a child in the back seat, he WILL get there faster and just as safe as if you build a slow car that _ensures_ driver safety and you put the child in the driver seat. Which scenario is better as a whole? You only have so many days on this Earth, why would you spend them waiting for a machine to check the same pointer over and over and over and over again.

      Don't blame C or C applications for crashing when you dereference a NULL pointer. It crashed because of YOU, so blame your lack of expertise, your sloppiness, your lack of testing, your insufficient use of valgrind and your overall ignorance with how the hardware works. The truth is, the more of an expert you become, the easier it is to write quality C apps. If you're shooting yourself in the foot, it's your fault - but it's ok, not everyone is made to be a software engineer.

    29. Re:Not as silly as people seem to think by Anonymous Coward · · Score: 0

      You are completely wrong. You can link C++ with anything you can link C to. And C++11 pulls in pretty much all of C99 except for restrict and var. arrays. C has "extremely simple symbol naming" because is has no overloading and thus requires no name mangling (although the standard does call out a simple, but optional form of name mangling). In C++, you can easily C symbol names. "link C++ object with C++ object only"? What does that even mean? I've mixed C++ objects with many things, including threading in several OSes. Very easy to do.

    30. Re:Not as silly as people seem to think by Anonymous Coward · · Score: 0

      All this time, we've been writing almost all our most critical software with the same language K&R designed 40 years ago, or with something like C++ which inherits all its problems and none of its simplicity.

      That seems rather dramatic.

      ... Until you try to resolve some problem caused by gcc and msvc selectively implementing different parts of the template overload resolution mechanism in the C++ standard (which is so complicated that not even the compiler writers understand it) and getting 100 lines of unreadable error messages barfed all over your terminal. Well, if C++ was easy I guess everyone would be able to do it and I wouldn't have a job.

    31. Re:Not as silly as people seem to think by jcdr · · Score: 1

      C++ is not fun. For example in a function:
                    unsigned char buffer[size];
      Is ok to compile with gcc -std=c99 -Wall -Werror -pedantic, but fail to compile with g++ -std=gnu++0x -Wall -Werror -pedantic:
      error: ISO C++ forbids variable length array ‘buffer’

      And how do you call a C++ class method from C without a wrapper ?

    32. Re:Not as silly as people seem to think by jcdr · · Score: 1

      Hi Mr. "Very easy to do". I let you try to fix this test script. Good luck...

      echo "***** Cleanup *****"
      rm -f main.c main.cpp foo.c foo.cpp bar
      echo

      echo "A C object"
      echo "int foo(void) { return 1; }" > foo.c
      gcc -std=c99 -Wall -Werror -pedantic -c -o foo.o foo.c
      echo

      echo "A C++ application"
      echo "extern \"C\" { int foo(); } int main(void) { return foo(); }" > main.cpp
      g++ -std=gnu++0x -Wall -Werror -pedantic -c -o main.o main.cpp
      echo

      echo "Use a C object into a C++ application"
      g++ -std=gnu++0x -Wall -Werror -pedantic -o bar foo.o main.o
      echo

      echo "***** Cleanup *****"
      rm -f main.c main.cpp foo.c foo.cpp bar
      echo

      echo "A C++ object"
      echo "int foo(void) { return 1; }" > foo.cpp
      g++ -std=gnu++0x -Wall -Werror -pedantic -c -o foo.o foo.cpp
      echo

      echo "A C application"
      # There is no such thing like 'extern "C++"'...
      echo "int foo(); int main(void) { return foo(); }" > main.c
      gcc -std=c99 -Wall -Werror -pedantic -c -o main.o main.c
      echo

      echo "Use a C++ object into a C application, try with a C linker"
      # Will fail...
      gcc -std=c99 -Wall -Werror -pedantic -o bar foo.o main.o
      echo

      echo "Use a C++ object into a C application, try with a C++ linke"
      # Will fail...
      g++ -std=gnu++0x -Wall -Werror -pedantic -o bar foo.o main.o
      echo

    33. Re:Not as silly as people seem to think by Moridineas · · Score: 1

      C99 does not require #include files (or other form of declaring symbols defined in other translation units)? So what do you use instead?

      The way I read the GP's complaint was complaining about variable declaration being mandatory at the top of a function, and also complaining about #includes. C99 allows things like "for(int i=0; i5; ++i)". I should have been more explicit in what I meant.

      I'm having trouble parsing your reply? "C99 does not require #include files?" huh?

    34. Re:Not as silly as people seem to think by shutdown+-p+now · · Score: 1

      The way I read the GP's complaint was complaining about variable declaration being mandatory at the top of a function

      I think when he wrote "functional unit", this is what is actually called "translation unit" - in this context, the mention of #includes in the same sentence makes perfect sense:

      "An example: C's need to have everything declared in the same functional unit before use and reliance on preprocessor #includes."

      So the complaint then is that you have to declare all functions and variables external to your .c file, and that in practice this is done by the (fairly brittle) #include mechanism.

      I'm having trouble parsing your reply? "C99 does not require #include files?" huh?

      Considering my understanding of the original comment, I took your reply to mean that C99 offers some facilities that can be used in lieu of extern declaration / #includes, which didn't make sense to me. Hence why it's worded as a question - to clarify whether that's really what you meant to say. I apologize for misunderstanding.

    35. Re:Not as silly as people seem to think by Moridineas · · Score: 1

      I see what you're saying (and maybe the OP was originally saying!) thanks for helping to clear up my understanding.

    36. Re:Not as silly as people seem to think by jensend · · Score: 1

      As shutdown suggested, "functional unit" was a mistake and "translation unit" is the correct name. Sorry my mistake caused confusion, and glad to see it was largely cleared up. I hope you also saw a clarifying comment I made a couple days ago.

    37. Re:Not as silly as people seem to think by Moridineas · · Score: 1

      Hi, I'm not sure this is entirely accurate. I've just tested the below code in gcc with -Wall. The order of the prototypes (I'm assuming that's what you mean when you say "empty declaration" ?) doesn't matter--nor do the order of the function bodies. As long as the functions are properly prototyped, the order doesn't seem to matter at all (within a single file).

      I'm not sure how that stacks with the official C or C99 spec, but that seems to work fine in practice with gcc. If you both completely remove the prototypes AND
      reference a function before it's defined AND use the -Wall flag, gcc does pop the warning: "warning: implicit declaration of function ‘bar’" -- but compiles just fine.

      Doesn't seem like that big a deal to me at all. As long as you keep code organized into headers and libraries, what's the problem? I guess it can be a little annoying to have a header file and a code file for every library/translational unit/functional unit/whatever the proper term is, but it seems to me that it could encourage good design. As I believe you said, people have been doing this for 40 years.

      Sample:

      #include<stdio.h>

      int bar(int);
      int foo(int);

      int foo(int input)
      {
              bar(input);
              return input;
      }

      int bar(int input)
      {
              printf("Hello World!\n");
              return input;
      }

      int main(void)
      {
              return foo(0);
      }

    38. Re:Not as silly as people seem to think by jensend · · Score: 1

      Of course you can work around this, and people have been doing so for a long time. But it's one extra unnecessary annoyance, and it gets more and more complicated and annoying as programs grow more complex. As shutdown said, the preprocessor/macro system is brittle; we deal with all kinds of kludges (all the way from the simple #ifndef macro which has to wrap anything which might somehow get included twice to the many complexities of Autotools) to try to keep it working in complex situations. And there's really nothing to recommend it- you say having header files for everything encourages good design, but I don't see any reason this would be true; it's wasted effort, but people feel it must be a helpful ritual since they've been doing it so long.

      It's true that with C89 and up, compilers try to provide implicit declarations for functions which you call before any prototype/declaration. But there are good reasons why this is still a warning; I don't know all the details, but there can be issues with the types the compiler infers for the implicit declaration and matching that to the actual function, and IIRC this gets a lot worse under C++. It's best to stick with the ritual of providing the prototypes first, and AFAIK getting rid of them would require a major language redesign and not just extra compiler smarts.

      This is a good example of the general pattern- there are lots of suboptimal design decisions in C that require only a trivial amount of effort to work around for simple programs (the programs K&R were thinking about back in the day of the PDP-7), but the effort is still there; as programs grow in complexity, making sure these things are always dealt with correctly becomes far from trivial, and when you add new language constructs to the mix (esp. C++) you compound the problem.

      This isn't unique to C; as any programming language ages, some of the design decisions and tradeoffs it originally made will turn out to have been suboptimal. If you add new features they often interact poorly with such suboptimal design decisions, creating complicated "gotchas"; the more powerful the new feature the more likely it is to have FQA-inspiring oddities and gotchas. (Example elsewhere: talk to a Java developer about how generics are done via type erasure and they'll likely have a story to tell about times they've banged their head against that and wished the thing had been done right from the beginning.) But the problems are more pervasive in C and C++ since so much has changed and so much has been learned since C was first designed.

    39. Re:Not as silly as people seem to think by Moridineas · · Score: 1

      It's not really fair to call prototyping your functions a "workaround" -- that's how the language was designed. Personally, I do think that it's a good thing. Think of header files as defining the "interface." Wasn't pascal lauded as a language for requiring strict prototyping of functions and variables as an organizational requirement? Even if you absolutely hate that you're supposed to prototype your functions, at its absolute worst what does it cause? It adds one line of code. (and just so I'm clear, I'm talking primarily about C -- I do not consider myself a c++/stl/expert or even remotely-knowledgeable at all. I am, in fact not a C++ fan)

      No doubt there are many cross-platform hacks that rely on macros...some ugly (some very ugly!)! I'm not sure that their existence proves how "brittle" the macro system is--perhaps the opposite?

      Yes, C is an old language. The fact that it remains so successful--and extremely relevant today--is a testament to its design simplicity. Will people be using python in 40 years? I doubt it. Look at how fast perl has faded as a popular language. Will people still being using C in 40 years? I would bet a lot that they will! I've used perl, python, php, and C in recent projects. Python -- at the moment -- is probably my language of choice. C remains a classic.

  47. Mostly Dead. by AliasMarlowe · · Score: 2

    does it run Linux?

    No. Perhaps partly by design, but mostly because the Cosmos project has been dead for a year or so, while Linux is apparently alive and well. The Cosmos site linked in TFS has lots of dead links (check the screenshots page) and empty forms (milestones page), with the last news posted in early August 2010. Where do the submitters dredge up corpses like Cosmos from anyway?

    --
    Those who can make you believe absurdities can make you commit atrocities. - Voltaire
    1. Re:Mostly Dead. by gmhowell · · Score: 4, Funny

      How can you possibly call it dead without a netcraft citation?

      --
      Jesus was all right but his disciples were thick and ordinary. -John Lennon
    2. Re:Mostly Dead. by julesh · · Score: 1

      I think calling it dead may be a little premature. The git repository has checkins as recently as yesterday, so I assume it is still actively being worked on. I'm guessing they're not bothering much with the web page because the thing is still effectively at the stage of being a technology demo, not ready for any actual real use yet. For a system that can only run processes written in a language that uses automatic garbage collection, this implementation of GC isn't going to get you very far. Unless you want a system that crashes almost as soon as you start trying to do any serious work with it.

    3. Re:Mostly Dead. by ozmanjusri · · Score: 1

      mostly because the Cosmos project has been dead for a year or so

      Somebody should port it to another runtime/vm, then we could could call it an inverse ex-parrot.

      --
      "I've got more toys than Teruhisa Kitahara."
  48. Dead Project? by Anonymous Coward · · Score: 0

    Latest News: August 3rd, 2010 Additionally, all the screenshots are broken links. It sounds like a fun for the sake of fun 'nerdy' project except that it appears dead. Why is it a slashdot article _now_ ?

  49. Better explanation by Anonymous Coward · · Score: 0

    Seems like all the screenshots are missing. There's a better explainer for use of cosmos here:

    http://www.codeproject.com/KB/cs/CosmosMS5.aspx

    The project isn't anything new. It's a year old already.

  50. Late... by Anonymous Coward · · Score: 0

    2010 is not new Billy Gates :P

  51. Infinite Recursion for the Win? by Anonymous Coward · · Score: 0

    So, an "operating system", needs to be run on a proprietary interpreter, running on a proprietary operating system.

    Last time I checked, the functions of the OS were:

    1. Control low-level access to memory, via allocation, locking, etc
    2. Control low-level access to devices, via allocation , locking , interrupt control, etc
    3. Provide a basic API to higher level languages.

    So, this OS, needs an OS to run. It's a VIRTUALIZED environment, at best.

    Next for the ultimate in speed, why don't we write a java interpreter, running on a virtualized OS, written in java, running on a java interpreter written in java.

    Think of the pure speed!

  52. Oh, you can create an OS in smalltalk too by Anonymous Coward · · Score: 0

    You can build operating systems in Smalltlalk, Python and GWBasic too (or Java or even REXX), but no one said that they will be very efficient, run fast, or consume most of the resources of the computing hardware. The point of using C was that you could easily embed assembly within it, it was reasonably elegant to program (I've seen 2 line 'hello world' programs written in C, and the equivalent in Java in as little as 30 lines.... and you Java kids who say "I can so do it in 2 lines... and then attempt to show me those two lines, I then try and run those two lines, and you mutter something about having to call in 30 lines of support libraries, and I have my point made). C can be high level or low level (just above the bare metal), or both at the same time. You can launch rockets with C. When I was in college taking a 4th generation language course, I had a prof. who said that you can't launch rockets with a 4th generation language, but you could launch rockets with C. C# isn't C.

    1. Re:Oh, you can create an OS in smalltalk too by Anonymous Coward · · Score: 0

      I've seen 2 line 'hello world' programs written in C, and the equivalent in Java in as little as 30 lines.... and you Java kids who say "I can so do it in 2 lines... and then attempt to show me those two lines, I then try and run those two lines, and you mutter something about having to call in 30 lines of support libraries, and I have my point made

      Wow, you're a true idiot.

      public class helloworld {
        public static void main(String[] args) {
            System.out.println("hello world");
        }
      }

  53. ...Somewhat. by SanityInAnarchy · · Score: 2

    So, first of all, a lot of the more enthusiastically open source types are much more likely to contribute to other projects which are less likely to be annihilated by patents, and whose direction isn't set by a proprietary competitor. After all, if people actually want to develop a cross-platform app, there are already plenty of ways to do so, and if they don't, Wine and Mono are more or less band-aids to the underlying problem.

    It's also worth mentioning that while open source occasionally does produce something awesome out of whole cloth, the most significant open source projects today have corporate sponsorship of some sort. It's not that proprietary development is better, per se, but that funded development may have more and more active contributors than weekend warrior development.

    From personal experience, here are the ways I've interacted with open source:

    First, tons of little one-off hacks on my own that make me happy it was open, but that I'm unlikely to ever share with another living soul. For instance, before PCI Express, I had a card which was AGP 8x / AGP 3.0. The ATI drivers were detecting it as... less than that, but for whatever reason, running it in that slower mode didn't work at all. At the time, the kernel proper did not have AGP at all (this was pre-2.6). Fortunately, ATI had this open-source glue code, which included their AGP implementation. I cracked it open, commented out all the autodetection, and hardcoded AGP 3.0. It worked beautifully, but there's no way in hell I'm submitting that upstream, and I wouldn't know where to start in fixing it properly. (Well, I wouldn't have at the time -- I was 15 and in no way a C developer.)

    Second, paid to work on open source projects as a consequence of actual work. I have a patch in Ruby on Rails which I wrote on-the-clock, and a fork of a Rails plugin. This actually works best when it's MIT-licensed -- I don't want to maintain Rails or even necessarily that plugin, when I can have someone else or an entire community do it for me, so there's an incentive to submit patches upstream. However, I'm not sharing my entire code-base under GPL or something.

    I never was employed as a full-time open source developer, but there are people who do that. For example, I have to imagine Chromium is largely developed by Google employees, but it's still open-source, and it's worth it to open-source -- they get not just vulnerability reports, but actual patches, when they screw something up.

    --
    Don't thank God, thank a doctor!
  54. Grate idea, an Os that only runs on Windows! by gmpassos · · Score: 0

    This is the best idea! I was waiting for that for years! Now we can have one more OS as options, one that only runs over Windows! Thanks.

  55. interesting... by jsprenkle · · Score: 0

    but so what. It's likely not to be useful for much other than to prove a point. Too bad the authors couldn't spend their time on something useful instead.

    --
    - I've got bad karma because I won't parrot everyone else's opinion
  56. What naysaying? by sproketboy · · Score: 1

    This was done in Java a long time ago. http://www.jnode.org/

    --
    Goldbox re imagined
    http://goldchest.sourceforge.net/

  57. For the mono folks and optimized code by Anonymous Coward · · Score: 0

    If you wanna run it on mono, there's another project with a more optimizing compiler at http://www.mosa-project.org/projects/mosa

  58. Without c? by danish94 · · Score: 1

    But isn't the .net framework itself written in c or c++? (The runtime not the libraries)

  59. Proprietary OS adds entertainment value by tepples · · Score: 1

    Your computer is that much more expensive than it would be if there were no such thing as Windows and only free OS's.

    If there were only free operating systems, PCs would be less valuable to home users because the major movie distributors wouldn't be willing to license their movies for PC playback for fear of people using things like Xvfb to tee uncompressed frames into a transcoder. Case in point: Netflix isn't making a client for GNU/Linux, and its client for Android phones uses a whitelist of individual phone models. And when DVD was first being built back in the 1990s, I seem to remember a struggle between the PC makers and the movie studios as to whether or not to even allow DVD Video playback on computers.

    1. Re:Proprietary OS adds entertainment value by ninetyninebottles · · Score: 1

      What does your comment have to do with anything? You don't even address the points I made. As for your assertion and support, it seems quite spurious since it is derived from extrapolating from a current ecosystem without regard for that ecosystem being changed in the case described. Weak tea. Off topic weak tea.

    2. Re:Proprietary OS adds entertainment value by tepples · · Score: 1

      My point is that people are willing to pay for Windows because Windows runs the applications that people want to use. One of these applications is playing films published by major studios.

    3. Re:Proprietary OS adds entertainment value by LingNoi · · Score: 0

      The cost is hidden from the average consumer. You're just making statements with nothing to back them up.

    4. Re:Proprietary OS adds entertainment value by petman · · Score: 1

      people have to pay for Windows because Windows runs the applications that people have to use.

      FTFY

      I recenty bought a laptop for my wife and initially intended to pass over Windows and install a distribution of linux on it. However, turned out that she needed to run MS Access on it for work. Since MS Access doesn't work in Wine, I had to shell out the equivalent of 50 USD for a license of Windows 7 Home Premium just so she can use that one piece of software.

    5. Re:Proprietary OS adds entertainment value by petman · · Score: 1

      BTW, I should point out that I don't give a damn about Netflix or whatever else software you Americans use that no one else give a damn about.

    6. Re:Proprietary OS adds entertainment value by Anonymous Coward · · Score: 0

      No, you shouldn't, because it added nothing of value to the thread and just makes you look like a whiny asshole.

  60. Lol by Anonymous Coward · · Score: 1

    Lol, this comment was in before any MS complaints, and it's at Score 5. Fanboys voting fanboys up?

  61. MOSA Project by tgiphil · · Score: 1

    There's another open source project similar to COSMOS called the Managed Operating System Alliance (MOSA). The MOSA project was formed to create an open source optimizing compiler and linker for the .NET (also written in C#) and provide a common framework for device drivers. The project is very active with almost daily commits and making tremendous progress. There has been some very early discussions in having COSMOS use the MOSA compiler. You can get more information about it from our website and FAQs: http://www.mosa-project.org/projects/mosa/wiki/FAQ

  62. So what? by Kaz+Kylheku · · Score: 1

    Lisp machines showed a quarter century ago that you can have an OS from the iron and up (process management, memory management, graphics, disk drivers, ethernet, ...) in a managed, high level language.

    The problem with this industry is its short memory.

    If, say, civil engineering were like computing, the newbies would not know what the heck the Eiffel tower is, and marvel at someone's treehouse because it uses "space age" composites or titanium. :)

    1. Re:So what? by butlerm · · Score: 1

      It was great, as long as it wasn't a problem going out to lunch when the garbage collector kicked in. Machines are much faster now, but watching your network stack grind to a halt for several hundred milliseconds can't be fun for anything that needs hard real time performance. VoIP for example.

    2. Re:So what? by cstacy · · Score: 1

      Your comment about the GC is only applicable to earlier versions of the Lisp Machine workstation; the GC in later versions did not interfere with things such as networking as you suggest. Lisp Machine technology moved fairly quickly though, so I can understand how someone looks at some timepoint and figures that's the way they saw it, and so that's the way it must always be, especially if the whole thing seems exotic.

      Later, we implemented an actual hard real-time version of the Lisp Machine; it was slightly different from the workstation OS.
      It was used as the basis of an ESS switch by AT&T (who commissioned it).

  63. C# is nice. by degeneratemonkey · · Score: 1

    Say what you want about Microsoft (or Micro$oft, my bad). C# is a pretty nice language for anyone in the C/C++/Java world. By pretty nice I mean it's easily nicer than those other three. It's a shame .NET isn't more open.

  64. Dead? Not if you look at the checkins... by Anonymous Coward · · Score: 0

    http://cosmos.codeplex.com/SourceControl/list/changesets

    In fact if anything, looks like they are too busy coding to document. Not like the Linux crowd ever falls into that pattern....

  65. Modula 3, aanyone? by hendrikboom · · Score: 1

    It's been done in Modula 3 a long time ago, too (and the OS was called SPIN). Writing an OS without using C is nothing new.

  66. Oh great by Demonoid-Penguin · · Score: 1

    Now there's two operating systems I'll never run.

  67. Targeted users by Arancaytar · · Score: 1

    People who:

    1.) Dislike Windows
    2.) Like Microsoft

    Sorry, can't see this getting big...

  68. I hate to point this out... by idbeholda · · Score: 2

    But C# is still based on C. It's kinda like Microsoft saying "Oh, we got rid of DOS a long time ago". DOS (much like C) never really disappeared, the powers that be just got better at hiding it.

    1. Re:I hate to point this out... by Anonymous Coward · · Score: 0

      While C# has some commonality with C and C++, there are major differences between the languages. Namely C# is part of a managed language and CLR virtual machine. Such things as memory management are automatic handled by the virtual machine and not the programmer. They are no pointers in managed C# code. And similar to Java, the compiled C# is executed in a verifiable sandbox that provides security guarantees. Things like buffer overruns and code inject are nearly impossible. However, the most striking differences in using like C# compare to C with their respective associated class libraries is the vast increase in productivity with fewer bugs.

  69. An OS that can't write to files? gimme a break by damian2k · · Score: 1

    From their FAQ

    Q: What works?
    A: Console apps.

    From their Technical FAQ

    Q: How do I write to a file in COSMOS
    A: You can't, yet.

    Q: Can I use screen resolutions higher than 640x480?
    A: Not yet, that would require individual device drivers writing.

    Q: What doesn't work
    A: Interfaces (In the programming sense and the graphical sense)
    Foreach - Requires interfaces, so use for instead for now

    I admire their attempt at doing something fresh, but how can you call this an OS when it can't write to files? And currently it only runs console mode apps. Sorry, but a 25 year old DOS box can do more than this.

    1. Re:An OS that can't write to files? gimme a break by Anonymous Coward · · Score: 0

      This announcement was very premature - there's a lot left to be done obviously.

    2. Re:An OS that can't write to files? gimme a break by Nemo's+Night+Sky · · Score: 1

      Dear damian2k, In my day there was no y2k all we had was 2k.. of ram, a BASIC interpreter, a keyboard, and a paper bound book of programs. the concepts in cosmos and similar managed execution systems are very much an operating system. its been tested with java for years. now they are working on redoing it in .NET. its gonna take awhile and a few abandoned projects to get this kind of code at critical mass.

  70. tried and died by nitehawk214 · · Score: 1

    Sun tried this with Java about a decade ago. The idea is still stupid.

    --
    I'm a good cook. I'm a fantastic eater. - Steven Brust
  71. Cosmos, not Cosmo by Eraesr · · Score: 0

    Did OP even browse to the website of this thing? It's called Cosmos, not Cosmo.

  72. gargabe collection by Anonymous Coward · · Score: 0

    An SO written with a gargabe collecting language??? Are you kidding?

  73. seriously old news by Nemo's+Night+Sky · · Score: 0

    somebody just stumble across microsoft research today in their yahoo toolbar and cant wait to get on teh front page instead of in discussions? there was a link to cosmos site from the singularity os site.

  74. This is not an OS by frist · · Score: 1

    How is this an operating system? You "run" it by hitting F5 INSIDE VISUAL STUDIO. The most basic thing an OS does is provide a bootloader. If you require a .NET runtime, which is a huge virtual machine, how are you writing an OS? A command shell is not an OS.

    Maybe they go ahead and describe how they make a boot image later but I stopped at the "hit F5 in VISUAL STUDIO" part.

  75. 64-bit by tepples · · Score: 1

    And another thing: Where in the article or in Visual Studio's system requirements does it say 64-bit Windows Vista/7 Home Premium is required, as opposed to 32-bit Windows XP?

  76. If you have a 32-bit PC by tepples · · Score: 1

    If you have a 32-bit PC, which is likely unless your PC originally came with 4 GB of RAM or more, you have to buy a new PC anyway to run 64-bit Windows. If you have a laptop with Intel graphics or a netbook or nettop with an Atom CPU, you'll have to buy a new PC anyway to get the stronger CPU and video card needed to run certain categories of applications that tend to be exclusive to windows. If you bought a 64-bit PC, it probably came with a copy of Windows already installed; just boot to that partition.

    1. Re:If you have a 32-bit PC by LingNoi · · Score: 1

      Free isn't free if you have to buy something. You can attempt to reason anyway you want but you're simply wrong on this unless you can show me where I can legally get windows for free (that would be very beneficial to me).

    2. Re:If you have a 32-bit PC by tepples · · Score: 1

      You can't get Windows for free unless you buy something. But it's something that you'll probably already have to buy anyway, so it looks free to the end user.

    3. Re:If you have a 32-bit PC by LingNoi · · Score: 1

      You contradict yourself then because you specifically mention you can get it for free.

      Windows Home Premium (OEM version) is subsidized by trialware publishers, making it free as in beer to home users.

      There is no trialware packaged free version of home premium.

    4. Re:If you have a 32-bit PC by tepples · · Score: 1

      There is no trialware packaged free version of home premium.

      That's why I said "OEM version". I didn't mean free as in an independent product; from the beginning of this thread, I have meant free as in included with the purchase of a PC. I apologize for not communicating that more clearly.

    5. Re:If you have a 32-bit PC by Tetsujin · · Score: 1

      If you have a 32-bit PC, which is likely unless your PC originally came with 4 GB of RAM or more

      I think it's actually quite common for systems to have 64-bit CPUs in them, on any system sold in the last several years. Whether the computer has more than 4GiB (or 3GiB, really, because you hit limitations in the OS's addressing strategy before you hit the actual CPU memory address limit) and whether the computer has a 64-bit OS is a separate issue.

      --
      Bow-ties are cool.
    6. Re:If you have a 32-bit PC by Tetsujin · · Score: 1

      You can't get Windows for free unless you buy something. But it's something that you'll probably already have to buy anyway, so it looks free to the end user.

      Let's take this argument back to the original issue: how does this apply to Cosmos?

      I think the bottom line is that most folks can get what they need to tinker with Cosmos at minimal cost: they likely already have Windows, and (I guess) you can get a copy of Visual Studio capable of targeting .NET for free or minimal cost.

      As you say, it's not really "free" in any sense - but from a practical standpoint, the barrier to entry for developing Cosmos is very low.

      --
      Bow-ties are cool.
    7. Re:If you have a 32-bit PC by ninetyninebottles · · Score: 1

      My latest Macbook Pro is a 64 bit PC capable of running Windows but did not come with it. Where can I get this free Windows of which you speak, legally, without buying something?

    8. Re:If you have a 32-bit PC by tepples · · Score: 1

      By selling your Mac (I've heard they have pretty good resale value) and using the money to buy a used PC that comes with Windows. But I'll take a step back: if you currently own a Mac, I'm not entirely sure why you'd be so eager to hack on the Cosmos operating system.

    9. Re:If you have a 32-bit PC by ninetyninebottles · · Score: 1

      But I'll take a step back: if you currently own a Mac, I'm not entirely sure why you'd be so eager to hack on the Cosmos operating system.

      I'm not, but because it is tied to a Windows only environment. That's the point. As on OS it is still wholly beholden to a single, rival OS vendor, thus rendering it fairly crippled and unsustainable in the long term. The fact that the project has gone so far as to have running code seems astonishing; possibly astonishingly idiotic.

  77. Remember when "I built my own computer" by Quila · · Score: 1

    meant something more than chucking a bunch of boards into a case?

  78. Nothing of even remote interest... by Dragon_Hilord · · Score: 1

    Microsoft pulled this publicity stunt already with Singularity.

    Guess where it went?

    That's what I thought; moving on!

    --
    Cheers, DH.
  79. C# OS by Anonymous Coward · · Score: 0

    You just made me throw up in my mouth a little.

  80. Re:Just in time by Toonol · · Score: 1

    It's interesting to me, because I watched this meme develop on Slashdot. It started because Microsoft gave a demonstration of their new desktop, and mentioned that applications can be created with a combination of Javascript and HTML5.

    The initial thread had many people wondering, "is Javascript and HTML5 the ONLY way to develop Apps?". This was quickly shot down. Reading the article, it was clear that this was purely an additional feature. Applications can continue to be written in .net, C++, or any other language. Some people in that thread, though, made the claim it was obvious that MS was dropping .net.

    Since then, that claim pops up once or twice in any thread that mentions .net. By now, I'm sure that all the posters have been corrected, but they either refuse to accept correction, or they don't care that they're wrong. I suspect the latter. I think the posters are now deliberately trying to use Fear and Doubt, hoping to deter somebody from using .net. Campaigning with FUD was wrong when Microsoft does it, and it's wrong when OSS advocates do it. Maybe I'm wrong, and the poster actually thinks that .net will be dropped; but I doubt it. He would had to be very deliberately ignorant.

  81. I have no complaints about C by Anonymous Coward · · Score: 0

    What is really wrong with C, when used for what it was intended? I use C every day on microcontrollers with 4KB of RAM. C allows me to control exactly how the memory is managed. When something has to happen in 10 microseconds, I know exactly how long it will take without having to worry about garbage collectors. I wouldn't ever consider anything else.

  82. Re:Build an OS in C#?? by Tetsujin · · Score: 1

    You could also build a house out of Popsicle sticks. But...WHY?

    That question is fundamental to art in general. (More the general "WHY?" part - not specifically the popsicle stick thing - though it does come up from time to time.)

    Despite all the lip-flapping, the real answer is often just "because I wanted to". And people may enjoy it just because "it's neat". It doesn't necessarily mean it's a practical thing, though sometimes it may be... And it depends on how you define practicality, too. (What's more practical than making something that earns you money?)

    I'm not much of a .NET guy myself but I can see the appeal of taking that sort of system down to the core of the OS. From a practical standpoint, performance is bound to be a challenge - but having a lower barrier for people to be involved in development may mean the code gets more attention. And if performance optimization makes this kind of approach largely impractical at present, in the future this may not be the case - in fact, the ease of working with the code (esp. if C# can help with issues like thread synchronization) may be important as multiprocessing continues to become more important.

    --
    Bow-ties are cool.
  83. "Hello World" as a programming example by Tetsujin · · Score: 1

    The point of using C was that you could easily embed assembly within it, it was reasonably elegant to program (I've seen 2 line 'hello world' programs written in C, and the equivalent in Java in as little as 30 lines.... and you Java kids who say "I can so do it in 2 lines... and then attempt to show me those two lines, I then try and run those two lines, and you mutter something about having to call in 30 lines of support libraries, and I have my point made)

    There's a point people always seem to miss when using "Hello World" as an example of how elegant (or not) a language is:

    Basically, it is this: Printing "Hello World" is not truly representative of the things people normally want to accomplish in a programming language.

    At best, a "Hello World" example gives you the basic idea of how a language can be used to interact with the user: which is where those 30-line versions come from... The reason you've got 30 lines is probably because it's a GUI implementation of the example. Try something comparable in C and you'll probably get a comparably large source. Of course, there's usually some kind of utility function that'll let you do even a GUI version with less code - but that isn't the point. Again, under normal circumstances, throwing up a window showing a static message isn't something you'll want to do very often. Knowing how to create a window, set its title, and populate it with controls and respond to them, however - that can be the starting point to creating real programs.

    When a "Hello World" example is more STDIO-oriented, it tends to be shorter and show you the basics of working in the language and using STDIO. It can be helpful for introducing the syntax, and any steps you have to go through to start writing a program.

    But as an indicator of a programming language's "elegance"? It's ridiculous. A Haskell version of "Hello World" isn't going to teach you about pattern-matching arguments or list processing, let alone monads (though the Haskell version of "Hello World" will probably use a monad...) A Python version of "Hello World" probably isn't going to teach you about classes and objects, or the useful interactive features of the language, or the challenges posed by the level to which objects and their member values and functions may be redefined. A Perl "Hello World" won't even scratch the surface of its compact, sometimes arcane syntax - let alone convey how this "arcane" syntax can actually be useful.

    You only get an idea of a language's "elegance" - and its potential in general - by working with it. And maybe not even then. :)

    --
    Bow-ties are cool.
  84. How is this new? by Anonymous Coward · · Score: 0

    This project was originally floated as a possibility for OpenBeOS.
    Yes... its that old. Probably older...

    Dont get me wrong. I'm glad to see that its still kicking along.

  85. Different mix, same problem. by SanityInAnarchy · · Score: 1

    Python is less obect-oriented and less featureful in general than Ruby, but executes faster. It is more fun to work with than Java, but slower. It doesn't change my point about having a language be as cool as Ruby, but as fast as Java -- python is neither, it's somewhere in between.

    --
    Don't thank God, thank a doctor!
  86. They're working on the C1X standard. by Paul+Dubuc · · Score: 1

    I'm sure the C spec will eventually add some better parallelism.

    You are right. C doesn't need to be replaced, just updated.

    http://www.informit.com/guides/content.aspx?g=cplusplus&seqNum=551&WT.mc_id=IT_NL_CPlusPlus_2011_8_30

    http://www.informit.com/guides/content.aspx?g=cplusplus&seqNum=552&WT.mc_id=IT_NL_CPlusPlus_2011_8_30

  87. Does it run Crysis? by Kungpaoshizi · · Score: 1

    Really, if it's off C#, wouldn't it be possible to install DirectX? That's really the only reason I use Windows... though 7 has been a fantastic experience for numerous other reasons.

  88. They didn't use C, but they modified C# by Champion3 · · Score: 1

    From the summary on their page it's quite apparent that they had to create special tools that gave C# direct access to pointers, CPU registers and even code written in straight assembly. All this business about "so there, a kernel CAN be written without C" is nothing more than flamebait; they've created a toolchain that allows them to break out of the pure managed environment and add low-level, C-like features to C#.

    --
    I'm going to the casino. Don't gamble.