Become a fan of Slashdot on Facebook


Forgot your password?

Microsoft Singularity Now "Open" Source 392

Alex_Ionescu writes "Microsoft's Singularity operating system (covered previously by Slashdot) is now open to the public for download, under a typical Microsoft academic, non-commercial license. Inside is a fully compilable and bootable version of what could be the basis for the future of Windows, or maybe simply an experiment to demonstrate .NET's capabilities. Singularity, if you'll recall, has gained wide interest from researchers and users alike, by claiming to be a fully managed code kernel (with managed code drivers and applications as well), something that would finally revolutionize the operating system research arena. The project is available on CodePlex."
This discussion has been archived. No new comments can be posted.

Microsoft Singularity Now "Open" Source

Comments Filter:
  • Stability? (Score:5, Interesting)

    by spectrokid ( 660550 ) on Wednesday March 05, 2008 @12:04PM (#22650444) Homepage
    If this is super-stable-hacker-resistant then there must be some uses where performance is not really an issue: ATM's, Kiosks,... Does anybody know what software exists for this thing? Does it run IE?
  • wharrrt? (Score:5, Funny)

    by russ1337 ( 938915 ) on Wednesday March 05, 2008 @12:08PM (#22650498)
    In today's news

    "Microsoft releases open source operating system"

    "Mans head explodes from intense confusion after reading news article about Microsoft releasing Open Source OS"
    • Re: (Score:2, Insightful)

      by HiThere ( 15173 )
      Not really.

      To me there appears no surprise here. You can't use it except in certain carefully isolated ways. And it's hardly a complete OS.

      It's no threat to MSWind. It's an attempt to keep developers from even looking at Linux. ("You want to study an OS? OK, study our toy model.") I'm not saying it's technically crippled. It may be, but I'm not going to check. It's legally crippled.

      This is just another one of those things that you're safer ignoring. Did you expect more from MS?
      • by fm6 ( 162816 ) on Wednesday March 05, 2008 @01:34PM (#22651918) Homepage Journal

        It's an attempt to keep developers from even looking at Linux.
        Give me a break. OK, MS is evil, but not everything they do is part of a grand conspiracy. Nobody is going to be stupid enough to stick with Windows just because MS is playing with a research OS that's not even backward compatible with existing software. And nobody at MS is stupid enough to think that anybody will be that stupid.

        This is just another blue sky project from the Microsoft Research, a division that is tasked with coming out with cool stuff without regard to commercial viability. Every big high-tech company has such a division. My own employer, Sun, has Sun Labs, which is always coming out with interesting stuff that mostly has nothing to do with our business model. I think it's mainly a prestige thing, to convince folks that you're a cutting-edge company.
    • Re:wharrrt? (Score:5, Funny)

      by sm62704 ( 957197 ) on Wednesday March 05, 2008 @12:28PM (#22650810) Journal
      "Mans head explodes from intense confusion after reading news article about Microsoft releasing Open Source OS"

      Minor nit: you misspelled "Asplodes" []. From the link:

      Use By Noobs
      N00bs use the term asplode as a form of 13375p33k. For example:
      Non-Noob: Lol I pwnt u with a rocket launcher!
      Noob: Oh teh noes!!! I am asplode!!11!eleventyone!!
      Non-Noob: Wtf?

      A splode: the command prompt
      Micro$oft secretly enabled a splode as a DOS command. Opening the command prompt and entering C:\asplode would start a countdown which would, when finished, cause your hard drive to a splode. Entering D:\asplode made the CD drive a splode. And entering A:\asplode would would make the floppy drive a splode. If you have a B:\ drive, you can a splode it by entering B:\asplode. Usually this makes the 5.25" floppy drive a splode! If you enter this into a Linux shell, it a splodes all computers within a 5-mile radius that run Window$. If you loved your PC, you would have entered this DOS command.

      (Note: drive letter may vary between PCs.)
      It is unknown whether the Singularity OS incorporates this useful command, but it is assumed that a singularity asplosion would release vast quantities of something not real nice.
  • The singularity is here!
  • by parvenu74 ( 310712 ) on Wednesday March 05, 2008 @12:12PM (#22650560)

    Singularity, if you'll recall, has gained wide interest from researchers and users alike, by claiming to be a fully managed code kernel (with managed code drivers and applications as well), something that would finally revolutionize the operating system research arena.
    The impression I got by looking at what was known about the project a year ago is that it was of lesser interest that the OS was written in managed code and it was far more interesting that they had solved some problems of inter-process communication in a micro-kernel OS. As you can read at Wikipedia []:

    Singularity is a microkernel operating system; however, unlike most historical microkernels, the different components do not run in separate address spaces (processes). Instead, there is only a single address space in which "Software-Isolated Processes" (SIP) reside. Each SIP has its own data and code layout, and is independent from other SIPs. These SIPs behave like normal processes, but do not require the overhead penalty of task-switches. Protection in this system is provided by a set of invariants, such as the memory-invariant which states there will be no cross-references (or memory pointers) between two SIPs. Communication between SIPs occur via higher order communication channels managed by the operating system. These rules are checked during the installation phase of the application, and must be fulfilled in order for Singularity to allow the installation (note: in Singularity, installation is managed by the operating system).
    The promise of Singularity, as I understood it, was the possibility of constructing an O/S kernel with all of the modularity advantages of a microkernel without all of the process communication issues typical to this kernel type.
    • Thanks for the quick rundown. This sounds *really* cool actually, but I wonder if anything will ever come of it on the desktop? MS seems to be very "backwards compatibility" oriented, and it seems like almost every application would need heavy changes to work with this new kernel. Maybe they're going to use it for new markets like mobile and/or xbox etc?
      • by parvenu74 ( 310712 ) on Wednesday March 05, 2008 @12:26PM (#22650782)

        This sounds *really* cool actually, but I wonder if anything will ever come of it on the desktop?
        Perhaps in Windows 7. Like I replied on another sub-thread of this discussion, Singularity isn't intended to ever go to market. Rather it's a breeding and proving ground for advanced concepts that might find their way into the main Windows code base at some time in the future. I think it's something like the advanced technology/racing teams inside of the major car makers who create interesting ways of solving difficult problems: some of these advanced concepts (like ABS, traction control, etc) from the racing and research teams find their way into the cars we actually drive on a day to day basis.
      • Re: (Score:3, Insightful)

        by fm6 ( 162816 )

        This sounds *really* cool actually, but I wonder if anything will ever come of it on the desktop?
        Absolutely not. The desktop computer market is driven by the need for backward compatibility with the huge base of existing apps. That's how Microsoft came to dominate the market in the first place.

    • Re: (Score:2, Insightful)

      by downix ( 84795 )
      Reminds me a lot of the old Amiga exec kernel in that regards.
    • by smallfries ( 601545 ) on Wednesday March 05, 2008 @12:52PM (#22651230) Homepage
      It sounds like a very interesting project. The idea that screams out from the wiki summary is static analysis and verification. There is a really good rundown in one of the wiki links []. The really big difference from previous work is not just the use of managed code, but splitting the entire system into either trusted, or verified code. The trusted component is a tiny core, which they are working on verifying. The design of the rest of the kernel and the SIPs is a good one: instead of doing arbitrary verification, change the language design so that you can only write verifiable code. Then see how much of an O/S you can write. The progress is astounding.

      For the IPC they have made some strange choices, receiving is synchronous (as in process calculi) but sending is asynchronous. As they are writing the lowest level parts (such as the schedular) in this code it may be an implementation difficulty with synchronous sends. The cheapness of the IPC seems to be routed in the transfer of ownership that communication implies. In essence you can't alias, you can only pass by value - but the low-level runtime can modify this to pass more efficiently by reference because it can verify there are no dangling references. This would (if it works over a large enough code base) solve the performance issue with IPC in a microkernel. It is (as another reply pointed out) similar to providing the semantics of heavy-weight communication to the programmer in a way that can be implemented with cheap co-routines.

      Having done some (well, little) work in this area I'm really impressed by what they've achieved already.
    • Re: (Score:3, Insightful)

      The promise of Singularity, as I understood it, was the possibility of constructing an O/S kernel with all of the modularity advantages of a microkernel without all of the process communication issues typical to this kernel type.

      This is underplaying its role; it is an OS slate with solid ideas that can be used to pound new OS theories through without having to deal with any lineage to prior models.

      However the microkernel issues that you are referring to are ideas that Microsoft tackled 16 years ago and is a
  • by Gabest ( 852807 ) on Wednesday March 05, 2008 @12:12PM (#22650562)
    ... they couldn't make it closed. Being written in a managed language means it's easily reversable.
    • by tehshen ( 794722 )
      Is there a difference between "managed code" and "interpreted code"? They seem like two words for the same thing.
      • by clintp ( 5169 ) on Wednesday March 05, 2008 @04:34PM (#22654680)

        Is there a difference between "managed code" and "interpreted code"? They seem like two words for the same thing.
        IANA Microsoft Language Lawyer, but this is what I think the distinctions are:

        Managed Code is code intended for a virtual machine (like MS's CLR or Sun's JVM) that abstracts the hardware instructions away. Instead, the instruction set for the virtual machine is used. The Virtual Machine will provide "devices" and "memory" in a (hopefully) safe and portable way and take care of all of the dirty hardware business itself. Some VM's will actually take the VM instruction and turn it into actual hardware instructions as it's being executed (JIT) for speed, but that's not necessary.

        Which isn't to say that Managed Code is a new thing: The USCD-Pascal p-code machine is remembered fondly by many, and the Zork games ran on a Z-Machine.

        Interpreted code is a little stickier because it's been around a lot longer and has picked up some additional meanings. It can mean anything from the "Managed Code" described above to parsing (and possibly re-parsing) text lines of BASIC as they're run to process them in a giant state machine which "runs" the program.

        Usually, interpreted code implies that there's no abstracted fully virtual machine underneath running the code, but possibly just a big jump-table pointing at native assembly-language (hand-coded or compiled) routines. Perl and Microsoft BASIC (basis of many of the old 8-bit BASICs) are two examples of interpreted code.

    • From the ars technica link below :

      QUOTE:"Although the Singularity research development kit (RDK) is available for download, it is not technically open source. The source code is distributed under the terms of the restrictive Microsoft Research License rather than one of Microsoft's two OSI-approved open source licenses."

      ars technica []

      To be "open source" you need a tad little bit more than having the source readable in plain text, IMHO.
    • Have you ever seen an obfuscator? Run your code through one of those and see how easily reversible it is.
      • by ushering05401 ( 1086795 ) on Wednesday March 05, 2008 @03:40PM (#22653914) Journal
        IIRC last Fall's 2600 had a basic intro to reversing obfuscated code (using Java example I think).

        There are several websites out there that deobfuscate code in realtime to advertise their services... if I was actually interested in the issue I might still have a link, but you will have to google if you want to research this further.

        The basic Visual Studio toolset has everything you need to reverse any managed code manually, obfuscated or not, providing you are willing to put in the time.

        Anyhow, C# currently pays for my meals, so I'm not trolling here... but be careful about making assumptions about the privacy of any managed code that you release. Hell, same goes for any code, the 'managed' aspect just lower the bar for crackers a bit.
  • by Goaway ( 82658 ) on Wednesday March 05, 2008 @12:13PM (#22650570) Homepage
    Spin this into something bad! Your honour is on the line!
  • Singularity, if you'll recall, has gained wide interest from researchers and users alike, by claiming to be a fully managed code kernel

    Yeah...Rare kind of advertisement...The question is, will it work on slashdotters?

  • by Compholio ( 770966 ) on Wednesday March 05, 2008 @12:15PM (#22650602)

    ... claiming to be a fully managed code kernel (with managed code drivers and applications as well) ...
    Someone please explain to me why someone would want this. I've been programming for the past 14 years now and every time someone comes up with a new abstraction layer to "reduce bugs" it's been total BS. Sure, some of these layers have made things easier or faster to code but they have not reduced bugs and they have definitely made applications built with them run a hell of a lot slower. There are always bugs, and there will always be bugs unless there is careful and tedious checking by a lot of programmers. So, I ask you - why on earth would someone want to run their entire kernel like this?
    • Re: (Score:3, Informative)

      I'm not an expert on the subject, and everything I know I read just this morning (I hadn't even heard of Singularity before this slashdot article), but it appears as if everything runs inside of a SIP (software isolation process) which runs in ring 0 of the kernel's address space. Thus the creation of SIPs is extremely cheap, even less overhead than hardware enforced protection domains.

      You're right, this will not eliminate bugs. But it will prevent applications from "stepping on each other's toes". SIPs can
    • by sm62704 ( 957197 )
      There are always bugs, and there will always be bugs unless there is careful and tedious checking by a lot of programmers.

      Every program should have careful and tedious checking by a lot of programmers. This is where open source really shines, and is a large reason why open source OSes and apps are so much more secure than closed source.

      Instead, the way most commercial software is written it appears that the code is given a cursory glance, run ("tested") by a few people, shoveled out the door for other peop
    • by shutdown -p now ( 807394 ) on Wednesday March 05, 2008 @04:05PM (#22654282) Journal
      With verifiable managed code (i.e. the one that doesn't use pointers and such), it is possible to statically prove that it will never access the address space of another process. Once you've done that, you don't need to isolate such processes from each other. This property is already used in .NET with something that MS has called "AppDomains", which allow you to isolate different parts of a single managed process from each other. I would imagine that it can also be useful in a kernel.
  • Oh wow! (Score:4, Informative)

    by AKAImBatman ( 238306 ) <{akaimbatman} {at} {}> on Wednesday March 05, 2008 @12:15PM (#22650610) Homepage Journal
    Managed code! Look at that! Microsoft has managed to prove...

    What OSS developers already proved [] years ago. :-/

    Actually, I'm still pretty happy about this. Regardless of whether Microsoft was first or not, they're going to manage to market the concept far better than a conglomeration of OSS developers ever could. (Sorry, guys!) If everything goes well, perhaps the public impression of managed code being "nothing but an interpreter" can finally get turned around and Computer Science can keep moving forward. :-)
  • by sm62704 ( 957197 ) on Wednesday March 05, 2008 @12:15PM (#22650612) Journal
    However, considering that Vista has become something of a "black hole" for them, I think they were a little late with the "singularity" moniker. Is the next Windows going to be called "Event Horizon?"

    That black hole has surely sucked in a few dollars of mine, and sucked in a lot of little companies that were pulled apart by Microsoft's huge gravity well.

    (Apologies for the lack of journals lately)
    • Re: (Score:3, Funny)

      by rbanffy ( 584143 )
      Singularity happened when the original Longhorn codebase got so extense, so massive, so mind-boggingly big, unimaginably huge, truly, really and absolutely humongous, it collapsed into its gravity well.

      It became a very small, but incredibly dense OS. It really serves no useful purpose besides the promise of being the perfect embedded OS for write-only storage devices.

      In the meantime, the survivors had to start Vista from scratch and this catastrophic event is what really delayed Vista's launch date. All the
  • What? (Score:5, Funny)

    by Robber Baron ( 112304 ) on Wednesday March 05, 2008 @12:17PM (#22650640) Homepage
    Singularity? Did Ballmer finally disappear up his own ass and create one?
  • by Animats ( 122034 ) on Wednesday March 05, 2008 @12:31PM (#22650872) Homepage

    Very nice. It's sad, though, that Microsoft is making it available as open source, because that means it's not going to become a Microsoft product.

    Singularity is an interesting system. Most of the individual ideas aren't new, but the combination of them is well chosen. It's a message passing microkernel, like VM and QNX, the OSs that actually work reliably. The storage management and of enforcement of process separation at compile time comes from the ALGOL compiler for the Burroughs 5500, circa 1960, for example. They recognized the problem of interaction between interprocess communication and the scheduler and dealt with it; QNX probably has a better solution, but the one in Singularity is OK. Singularity tries a bit too hard to avoid interprocess copying; so did Mach, and it made things worse.

    There's a reasonable design-by-contract language. The language knows about marshalling for interprocess communication, which encourages its use. That's borrowed from Mesa. In most languages, a subroutine call is much easier to code than an interprocess call, which encourages bloat of individual processes.

    Drivers aren't in the kernel and aren't trusted, although drivers that can do DMA still present a security problem. This is a problem with insecure PC hardware; IBM mainframe channels have DMA that goes through MMU checking. That could be fixed, especially since most new peripherals are on USB or FireWire ports. Add-on boards are on the way out.

    Makes me wish I was still doing OS R&D.

    • Re: (Score:3, Interesting)

      by abigor ( 540274 )
      Would you happen to know how Singularity does multiprocessing? Does it support threads, or does it use some sort of tuplespace thing, or message passing like Erlang?

      Threads are the source of so much pain that an os that supports some other model for multiprocessing (from the ground up rather than as a library) seems way overdue. Since the various Singularity "processes" run in the same actual process space, a shared memory model for multiprocessing seems like it would be practical and very fast.
  • because it is too good and would make their current stuff look like ****?

    Seriously, I guess this means it isn't in their mainstream OS roadmap,
    which seems like bad news for those who would hope M$ might eventually
    produce and sell a simple, safe, easy to use non-strongbad product.
  • NOT Open Source (Score:3, Informative)

    by John Hasler ( 414242 ) on Wednesday March 05, 2008 @12:36PM (#22650926) Homepage
    This is not open source. It's just another "you can play with it but don't you dare do anything real" license.
  • Microsoft hate (Score:5, Interesting)

    by electrosoccertux ( 874415 ) on Wednesday March 05, 2008 @12:39PM (#22650982)
    I'm afraid stuff like this is reducing my hate of MS. For several reasons, I am finding MS products less and less frustrating.

    1). Open sourcing weird stuff like this.
    2). Silverlight is pretty good.
    3). I disabled UAC in Vista. Now Vista is just like XP, but it has a prettier (albeit inconsistent at times) UI.
    4). Realizing that as much as I may like free as in freedom with Linux, in XP, my stuff just works, and it's fast and snappy and doesn't get bogged down (of course I'm not doing stupid stuff like using IE visiting sketchy websites that install things). It works great for all my games, etc. Solid OS; I just had to get over my Linux vigilatism to notice it.
    5). I just found the speach recognition built into Vista 2 nights ago. For just about everything but typing, it works flawlessly. As much as I love my mouse; sitting back, relaxing with both hands comfortably unbound from a keyboard and mouse, feels absolutely wonderful. So instead of clicking minimize/maximize/close, alt+tab'ing until you see the window you want, clicking start, etc; you just say into your headset "Minimize" "Maximize" or the name of the window you want to use. So to change focus back to Firefox, I would say "Mozilla Firefox". Then you can say things like "Bookmarks" and it opens the menu for your bookmaks. Say the name of the bookmark and it selects it, then "ok" or "enter" to open it. If you've got several bookmarks it thinks you're saying, it highlights all of them with a transparent bar that you can see through, and places a number in the middle of that bar. So if I say "Slashdot", it highlights the 8 slashdot bookmarks I have, and then I say "7" and it opens the one under the bar labelled "7". "Scroll Down", "Scroll down 10", "Press control w" to close a tab. If you have a list of sites you usually like to go to, and have them all bookmarked (for me they're all in the bookmarks toolbar folder), then browsing your favorite sites that you check daily is easy. "GM [gmail]" "Reddit" etc. Since I have all these bookmarks on the toolbar, it automatically finds them and clicks them. When you're surfing the net, just say the name of the link on the page and it opens it for you.

    The Start Menu works nicely too. Just say "Start" and then the name of the program you want to open. Then it opens it. If it thinks there's several things you could be referring to, it shows these in the search results pane and uses the same number scheme to select which one you want. You can access windows here as well; after saying "Start" say "Show numbers" and then the number of the window you want to restore.

    This is the same tech they're putting in Ford/Lincoln/Mercuries for the GPS and music system that you've been seeing commercials for lately. After using the Vista version for just about 30 minutes, I've quickly gotten used to it; the commands are very intuitive. Gotta say it's really cool stuff. Yes I know OSX has had this since who knows when, but meh, OSX can't play my games. It feels much closer to what I'm thinking I want to do, because there's no physical motion besides just speaking what I want to do and it does it. Seems like they're progressing towards the synergy between brain and computer control very nicely.
  • by IGnatius T Foobar ( 4328 ) on Wednesday March 05, 2008 @12:41PM (#22651004) Homepage Journal
    Microsoft has proven time and time again that they don't have the discipline to do a properly layered operating system.

    When they had OS/2 available to them, they switched back to DOS and stuffed everything into Win16.

    Then when they had the original NT microkernel available to them, they stuffed everything into the Win32 layer, where it didn't belong.

    Do you really believe Microsoft when they say, again, "This time we're going to design it properly" ??
  • by Omnifarious ( 11933 ) <> on Wednesday March 05, 2008 @12:53PM (#22651238) Homepage Journal

    Won't someone fix the title? It's just plain wrong. A non-commercial license is not Open Source.

  • Doesn't quality (Score:5, Insightful)

    by HermMunster ( 972336 ) on Wednesday March 05, 2008 @02:08PM (#22652448)
    That doesn't even remotely resemble open source. It is NOT open source.

    This is Microsoft's attempt to redefine what Open Source means. It is an aberration of their "embrace, extend, extinguish". They are trying to confuse the market into a non-understanding of what open source means.

    That license is not even close to the GPL. People who develop for open source need to understand and spread the word that this is simply a matter of intentional obfuscation of the ideals behind open source and what it attempts to achieve. Giving up is giving in, so don't give up on spreading word.
  • *yawn* (Score:4, Interesting)

    by WhiteWolf666 ( 145211 ) <> on Wednesday March 05, 2008 @02:44PM (#22653032) Homepage Journal
    Frankly, this is stupid.

    The "vaunted" MS Research team has put out a "concept" OS that doesn't run _any_ applications, and cannot be used for any commercial purpose, and has no indications that it can be licensed. It's only claim to fame is that its an MS OS; there have been 100% managed code [] OSs before.

    Just last month Arstechnica [] had an article about two similar OSs, except they are written entirely in C#, without the C++ HAL in Singularity.

    Both are REAL opensource. As is jnode.

    In short, who gives a flaming f**k? As usual, MS is a day late and a dollar short, which is impressive considering that the "research team" working on singularity seems to be 30-40 people.

Experience varies directly with equipment ruined.