Singularity
Though most people don’t know it, Microsoft has, not one, but two new operating systems that it is working on. The first, Vista, many people have heard of. Currently scheduled to ship just after the second coming of Christ, Vista has garnered most of the spotlight. However there is another OS lurking in the basement in Redmond and its name is Singularity. For more information go here: Singularity details. In creating Singularity Microsoft set out to answer this question:
“What would a software platform look like if it was designed from scratch with the primary goal of dependability?” (question found in the MS Singularity research report)
Why, it would look like . . . UNIX.
So what does Singularity look like? A joke, at least at first glance. But taking a moment to analyze the situation I came up with some interesting observations which I will now share with you.
What this signifies
If you read the press releases Microsoft is trying to bill Singularity as a research project, whose components might be used in future products. Personally, I don’t buy the hype. I look at this announcement and see Microsoft trying to do two things, compete with Linux/Unix in the server and embedded space and craft a replacement for its aging Windows OS.
If a company were looking for an embedded OS what choices would they have? Unix, 4 million flavors of Linux and some small, proprietary OS designed for a very specific job (think Texas Instruments). What they most definitely wouldn’t choose is Windows. An embedded system, just like a server, needs an OS to be stable and reliable, neither of which are areas that Windows is very good at.
Remember when Gates announced that the current build of Vista had gotten so complex and bug ridden that they were scrapping everything written in the last six months and going back to a stable build so they could start over? It was costly, it was time consuming and it was highly embarrassing. That incident, more than any other, highlights the fact that Windows might not make it to another incarnation.
Let me say that again because it is doubly important. Windows might not make it to another incarnation. By that I mean when Vista is ready to be phased out, the Windows code base that would normally make up the foundation for Vista’s successor will be so large, so complex and so unmanageable that it will take close to a decade for another version of Windows to come out. Assuming that it is even possible in the first place. Remember, Vista was first started around 2001, so assuming it ships in 2007 (which is not unrealistic) then it will have been in development for almost 7 years. So predicting that Vista’s successor will take 10 years before seeing the light of day is quite reasonable.
So, if the current code base can’t be used then Microsoft will need a replacement and that is where Singularity comes in. They should be looking at this as the foundation for a better, more stable, more easily maintainable base from which to build their next generation of operating systems.
Current implications
There are no real immediate gains to be made from Singularity. Anything of real value will require several years worth of development and almost a decade of testing and modifications before it can hope to compete with Unix and its variants. This shouldn’t be surprising, especially when considering Unix has been continually refined for the last 40 years, that is quite a lead to overcome.
However, there some issues that could become problematic. Currently Singularity is being programmed using a combination of C# and Sing#. Sing# is a derivative of Spec#, Spec# is a derivative of C# and C# is a derivative of C++. The issue here is that, in the future, there could be a shortage of programmers who are skilled in Spec#. Because of the limited use of C# and Sing# as compared to C++ and Java Microsoft might ultimately be making a mistake in choosing Sing# as their foundation language.
Future implications
Microsoft has indicated that they might use Singularity (in part or in its entirety) for distributed computing, embedded devices or in future versions of Windows (both desktop and server). Now, whether any of that will actually happen is anyone’s guess. But based on Microsoft’s current leadership and management style I foresee one of two things ultimately happening.
The most likely scenario, in my opinion, is that Singularity will never really take off as a viable OS. In the next five years I think that Singularity will have its ups and downs, produce some workable code, show moderately interesting demos but will ultimately be disbanded as different units within MS disassemble parts of its code for use in their own particular applications. It is also possible (however remote) that Singularity could be used as part of the foundation for Blackcomb (the successor to Vista).
But if it manages to survive without being assimilated by other business units, it still faces the dangerous path of being “too” successful. Right now Singularity is being created by a small team of about 50 people. Due to its size and relative obscurity the programmers are fairly free to do what they want in the manner they feel to be best. But all that will change if Ballmer suddenly decides Singularity will be his new pet project. Overnight the leaders of this “research project” could find that their staff has just increased to 3,000 strong (in true MS style bureaucracy 2,000 of which are managers). Suddenly with 18 layers of management and 93 required meetings each week, Singularity becomes too heavily managed to complete any real work and eventually loses all of its innovative aspects.
In the end Singularity will be a good idea implemented about 10 years too late.
Comments
Hey, if MS can finally leave behind Windows (someday) and move on with their lives, good for them. In fact, I encourage it and welcome any and all change from them.
They can actually trim Windows down a lot by shedding backwards compatibility. I don’t see why they don’t and then sell it as an “all modern” Windows variant (Vista Trim) with a warning, “Apps designed for WinXP and earlier may not work; DOS? No. 16-bit? No. 32-bit? Well, OK, but we’d like to be able to make it solely 64.”
Singularity = OS X
The only difference is that Apple is using UNIX, a base already created by someone else.
And M$ want to make a ‘UNIX’ of their own.
IMO it’s a waste of time, they should buy a distro of LINUX and create a modular OS from there, pretty much like Apple.
Most Windows problems are due to the fact that the OS is so mixed in together that it ends up getting too complex and tangled to work out.
Gates is probably envious of Apple being able to come up with a new OS that is not backward compatible. Backward compatibility is a huge albatross around MS’s neck and, unfortunately for MS, the driving force that keeps their customers in line.
Going with a new OS would put MS in a situation where they would have to compete with all of the other OSs at a level that they don’t want to think about. Consider the situation where Apple would have a greater market share than the new OS - plus have more apps written for it! Gates ain’t going to go that way.
From all the reports I’ve heard, Microsoft has done some really impressive stuff with the Vista team’s processes and the codebase management. I suspect under that type of system the Vista code will get more maintainable over time, not less. I would expect them to be able to release off that codebase for the release after Vista and probably the release after that, and do it faster. In fact, one would hope Apple is investing in engineering productivity processes in order to be able to compete down the road a few years.
As for Singularity, it looks like a good testbed for ideas. Even if nothing in it pans out, at least Microsoft will have data on what probably doesn’t work. If it does, maybe they can move some of it piecemeal to some of their other OSes.
As for how many OSes Microsoft maintains, well, it’s more than 2. The XBox runs an OS that branched off from NT. The embedded market uses its own version of Windows descended from the WindowsCE branch. And the 64-bit version of Vista has a lot of its own low-level stuff.
Can someone explain me how OSX is made up? Is it backwards compatable too? Is there code that makes no sens? I don’t understand that at all…
Btw, what font is this? I like it very much.
Tomovich,
Here is an easy way to think of OS X. Its underlying foundation is BSD (which is a flavor of Unix). However, Apple uses their own windows manager (Aqua I believe) instead of an open source one like KDE or Gnome. For backwards compatability OS X emulates the old OS 9 system.
So it is built on Unix for stability but trades the speed and power of Linux for a much better user interface (which also has more eye candy in it). Lastly, to run pre-OS X applications then OS X opens up OS 9 via an emulator and it runs in the background.
As for the font, can’t help you there.
Hmm, I never really realized how much of a dead end Microsoft have hit with their OS.
So lemme get this straight; every new OS MS is bringing out is basically a new incarnation based on code from years ago, so it’s backward compatible. And it’s getting longer and longer to make a new OS with these restrictions. And if they create a new OS from scratch, it’ll lose pretty much all backward software, driver and hardware compatibility?
So after Vista, it will either take Microsoft over a decade to make each new OS and lose customers to more advanced technologies and OSes; OR they can start from scratch and lose all customers due to almost zero backward compatibility.
.... I’d hate to be them right now, that’s for sure. Talking about digging yourself into a hole.
The Font is Georgia at 13 points
and Microsoft died long ago, the problem is, nobody noticed it yet just yet
The irony is not lost on me, but the font I use for this is site is Georgia. Georgia was designed for Microsoft by Matthew Carter and is the most readable sans serif screen faces I’ve come across.
James
Thank for explaining that so well, but I think I asked the wrong question. In the article you are talking about the Windows code wich is old and because all Windows Os’s are based on them it’s too long.
Now I would like to know how Apple handles this. Because of what you explain in your article I can’t imagine Apple to use the same method.
What happens with the Tiger-code when Leopard is in development? Do they start from scratch every time?
Thank you
Tomovich,
Ok, let me try and do a better job of explaining the situation. Apple started off with the Lisa computer. They used it for a while and made lots of money. Eventually they realized that, while the Lisa was great, the future required something better. That turned out to be the Macintosh. And, from OS 7.1 to 9.2 Apple used basically the same codebase as the foundation for all the operating systems that ran on its Macintosh line of computers. Eventually Apple hired Steve Jobs back (after firing him years before) and when he returned he scraped the old OS and replaced it with a Unix-based OS that formed the foundation of OS X. So, in the last 20+ years Apple has essentially scraped their current OS three times and started over with better technology.
Now let us look at Microsoft. They started off with DOS, then built Windows 3.1 on top of that. Realizing the limitations of Win 3.1 they built Windows 95 on top of that. Of course, 95 didn’t have the full list of features they had planned on implementing so they built 98 on top of 95. It was at this point that Microsoft realized that they could no longer use the DOS kernel because it was just too antiquated and kludgy to work as a modern OS. So, they hired some outside people who once worked with Unix and they created the NT kernel, which was a hybridization of DOS and some Unix-like code. It was on this unsteady foundation that Windows 2000 and XP were constructed.
So, back to your question of how does Apple handle this problem. They handle this by reinventing their OS whenever it becomes obsolete. Thus, they are never faced with the problems Microsoft has.
You can think about it in this way. First, imagine if Apple had decided to keep the original code from their Lisa line of computers and continually tack crap onto it as the years passed. Then, in 2000, instead of rewriting it using Unix, they just decided to graft more code onto it. If they had chosen this route then they would currently have a buggy, insecure, unstable mess that is Windows.
Apple doesn’t scrap its code after each release, the code that built Panther was improved to build Tiger and that code will be improved to build the next OS. But, in the future (maybe in 10 - 15 years or so) they will need to dump their current OS and start again so that they can better take advantage of the current improvements in technology.
This is something Microsoft refuses to do and so that is why they are facing this current crisis.
I understand things a little differently:
1. The people Microsoft hired were mostly VMS folks, not UNIX folks, from what I’ve heard. VMS “feels” more DOS-like from the command line, but was very highly regarded in its day in technical circles.
2. They wrote NT (which stood for “New Technology”) more or less from scratch, not “a hybridization of DOS and some Unix-like code”. And NT begat Win2000 and XBox OS.
3. NT and Windows95 could both run software written to the “Win32” API, because Microsoft re-implemented it on both kernels. (The original Windows API in 3.1 and previous was retroactively re-dubbed “Win16”.)
4. While NT could run Win16 code, it was akin to the “Blue Box”, or “Classic” mode of MacOS X. It would run, but not fast, and any Win16 program could crash any other.
5. There’s no reason Microsoft couldn’t re-implement Win32 again on a new kernel… which is exactly what open source hackers did with WINE on linux, so it’s obviously possible. Think of it like the “Yellow Box for Windows” rumors… an API is an API on any OS. There’s no reason Apple couldn’t put Carbon on Windows or re-implement Win32 on the Mac.
6. MacOS X and Windows NT are pretty good analogies for how the OSes were re-written, although obviously MacOS X is a lot younger.
7. Vista is going to include new APIs that will be preferred over the old Win32 APIs introduced ages ago, so in effect could be another rebirth for Windows API cleanliness.
As for why Vista was so delayed and maligned… well, it happens with big software projects sometimes. Apple’s future OS was going to be Pink/Taligent, then OpenDoc, then Copeland, then Rhapsody before coming out with MacOS X. And MacOS X wasn’t necessarily worse for it. I think underestimating the foundation that Vista will give Microsoft is a mistake. They’re going to be a tough competitor, but luckily Apple has grown some cajones of their own in recent years.
Fortunately for Microsoft, they have very deep pockets and a monopoly situation to give them room to make mistakes. They moved to nip the Vista problems in the bud, and the engineering processes and technology they have in place now sounds like it’s going to go a long way towards letting them refactor the Vista codebase into something more maintainable down the road. It *is* possible to improve “old” code without throwing it away, and make it MORE maintainable as time goes on. (Refer to the book “Refactoring: Improving the Design of Existing Code” by Fowler et al.)
Singularity? Wherever do you guys come up with this stuff?
NT WAS a ground up rewrite for multitasking and set the stage for performance levels Apple can only dream of. Subsequent “Professional” operating systems have drastically changed this initial codebase and Vista will be nearly unrecognizable from NT 3.0. It will most likely not run a single NT 3 app as well.
Ya’ll should check in with MS once in a while. Your old tired arguments haven’t been updated since you first tried to claim superiority over Windows 95.
While it would be fun to continue this conversation, I’m afraid I’ll have to get back to the real world. I’ll leave you gentlemen to your discussion and OS War reenactments.
“The Mac Will Rise Again! (on Intel processors, no doubt) and the Mac faithful will rise into the air to meet Steve Jobs in glory to celebrate the second coming with trumpets and iPods. Then the unfaithful (the other 97.22%) will wail, and gnash their teeth, and be so jealous…”
BTW, Won’t a mac in Intel be basically just a BSD-UNIX box back on its old platform?
Actually, booga is more right about Windows history here, James. Windows NT history started with the seperation of IBM and Microsoft from the OS/2 project with Microsoft deciding that the interface and the APIs developed for Windows 3.1 would be a better direction for the new OS than what they were working on with IBM. From this NT 3.1 was released in 1993, the year following the release of Windows 3.1 From the base of NT 3.1 came 3.5, then 4 then Windows 2000 and XP. Microsoft had wanted to move the consumer OS off the 9x base with 2000, but was unable to until XP. But they’ve been working on NT for far longer than since 1998. And yeah, delays and reimplimentations aren’t solely the provence of Microsoft. OS X was originally due for release in 1999. It didn’t arrive for consumers until March 2001. (Yeah, OS X Server 1.0 came out in 1999, but that was more of a quick porting of NextStep). I make that point as that is equal to the two year delay that Vista is suffering (as it was due in 2004).
Hmmm? I think there’s confusion about backward compatibility.
OS X is not backward compatible with anything before it. You cannot run OS 9 (or earlier) apps *natively* on it. To allow you to run those apps, Apple includes a version of OS 9 that run inside OS X. Then your OS 9 apps run it.
Windows on the other hand runs old apps natively - although since XP, hhas had a compatibilty option that needs to be set to identify which old Win OS the app is for.
This leads to a strong theory of why Microsoft bought Virtual PC - i.e. they had clients who still wanted to run old software that Microsoft didn’t want to retain native compatibility in Windows for. Effectively, they want to take Apple’s path, to provide some sort of emulation for older OSes.
I’m not aware if this will be fully realised with Vista. Maybe someone could also clarify about DOS apps which still run - but I believe it is in an emulated (is that the right term?) environment.