Catch up on stories from the past week (and beyond) at the Slashdot story archive

 



Forgot your password?
typodupeerror
Open Source Operating Systems Software

'Cosmo' — a C#-Based Operating System 406

Posted by timothy
from the because-they-want-to-that's-why dept.
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."
This discussion has been archived. No new comments can be posted.

'Cosmo' — a C#-Based Operating System

Comments Filter:
  • Old news (Score:3, Informative)

    by Anonymous Coward on Monday September 05, 2011 @02:00PM (#37310008)

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

    • 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 [gocosmos.org] :

      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.

  • by Pete Venkman (1659965) on Monday September 05, 2011 @02:01PM (#37310024) Journal
    The project is called Cosmos.
    • Re: (Score:3, Funny)

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

      Sorry, Venkman, I'm terrified beyond the capacity for rational thought.
    • Failure (Score:5, Insightful)

      by MrEricSir (398214) on Monday September 05, 2011 @02:22PM (#37310156) Homepage

      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.

      • 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.
      • Re:Failure (Score:4, Funny)

        by gmhowell (26755) <gmhowell@gmail.com> on Monday September 05, 2011 @05:10PM (#37311170) Homepage Journal

        It's not dead; it's resting.

      • 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.
        • by MrEricSir (398214)

          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.

    • by dkleinsc (563838)

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

  • What's the C# runtime written in?
  • open source but (Score:3, Insightful)

    by rubycodez (864176) on Monday September 05, 2011 @02:03PM (#37310032)
    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?
    • >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.

  • Is it dirty? (Score:2, Insightful)

    by Anonymous Coward

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

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

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

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

    • 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. T

  • by nedlohs (1335013) on Monday September 05, 2011 @02:15PM (#37310108)

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

    • by hedwards (940851)

      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.

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

    • by rubycodez (864176)
      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)
      • by hawk (1151)

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

        • by turgid (580780)

          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 [digitalmars.com]

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

  • Singularity? (Score:4, Interesting)

    by Trepidity (597) <delirium-slashdotNO@SPAMhackish.org> on Monday September 05, 2011 @02:22PM (#37310160)

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

    • by jjohnson (62583)

      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

  • God forbid (Score:5, Insightful)

    by wmbetts (1306001) on Monday September 05, 2011 @02:32PM (#37310228)

    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.

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

    • Re: (Score:2, Offtopic)

      by Hassman (320786)

      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 rat

  • It's hard to tell what, if anything, this thing does. The "documentation" is a mostly empty wiki. There's a useless FAQ [codeplex.com] and a useless technical FAQ. [codeplex.com] 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

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

  • by Doc Ruby (173196) on Monday September 05, 2011 @02:54PM (#37310358) Homepage Journal

    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.

  • 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) [wikipedia.org]

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

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

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

  • by vegaspctech (769513) <vegaspctech@yahoo.com> on Monday September 05, 2011 @03:13PM (#37310510) Homepage Journal
    ...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.
    • 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.

  • by jensend (71114) on Monday September 05, 2011 @03:40PM (#37310662)

    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.

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

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

    • by Animats (122034)

      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

    • by nzac (1822298)

      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 g

  • 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. :)

It appears that PL/I (and its dialects) is, or will be, the most widely used higher level language for systems programming. -- J. Sammet

Working...