A brief history of Windows

Posted 19 Dec 2002 at 23:27 UTC by lkcl Share This

Windows started life as a program-running program, and has had a chequered and potted life, including having a botched name-change due to Northern Telecom's Trademark.

This article is intended to fill people in on some of the misconceptions surrounding Microsoft's ... er... Operating System.

First, to put this into perspective: Microsoft's turnover is smaller than IBM's profit in their banking sector. Contrast this to how Microsoft got off the ground: with a $50,000 license deal with IBM, for MSDOS.

Originally, Mr Bill bought QDOS - Quick and Dirty Operating System - in the days when CP/M Rocked The World; Xerox didn't know what to do with their new pointy-clicky thing; Steve Jobs was doing a new thing to replace fruit machines (and incidentally was offering some bored Xerox employees a new career incentive).

IBM, the biggest and still the biggest software company in the world, was leading with its hardware (and still leading, to the detriment of the software teams, who had to put up with being told what to put up with).

They'd just brought out a radical new system, called a Personal Computer. Trouble was, they had nothing to run on it (Basic. Yeahright) so they needed an Operating System.

So, they approached the designer of CP/M, to ask him if he'd like to put his OS on their new design. Trouble was, he was up flying his Microlite (no mobile phones, remember?). To make matters worse, his flunkies didn't have authorisation to sign the famous "IBM one-way NDA".

They walked away.

Mr Bill got with the plot, right away, and signed on the one-way dotted line, pronto. Enter MS-DOS 2.2... [Keyboard not present: hit any key to continue]

Later on, the Macintosh Classis is released - a computer where the keyboard is optional and you get a pointy-clicky thing with it. If you want to type, you have to run the keyboard program and pointy-clickity away (so that independent survey about the use of a mouse slowing user productivity is well-founded).

Also, the Atari ST gets its famous TOS - Tramiel's Operating System. Actually, TOS was the GEM part of GEM/DOS ported to the 68,000. GEM was a competitor to Windows 1.0, and it was significantly better than Windows 1.0. Both GEM and Windows ran on the legendary IBM PC; Microsoft Write 1.0 was available for both Windows and Atari ST; and Atari even got into the PC market, right up until the 386 began to run out of steam.

So we have Microsoft developing a program runner (Windows) on top of a program runner (DOS), whilst other companies are doing more program runners (MacOS and TOS), and even more companies are doing obscure things with proper OSes such as VMS and Unix.

Windows marches inexorably on, via the real-mode to the virtual mode, but is still incapable of taking advantage of the features that decent operating systems use (virtual memory and process scheduling) because, essentially, Windows is just a Graphical Thing implementing the famous Win16 API, and DOS handles devices such as keyboard, mouse, screen, printer and... umm... that's about it, really.

TCP/IP isn't even in the picture [and when it is, it's done as a user-space WINSOCK.DLL hack]; the Internet is dismissed by Mr Bill as a waste of time; Xerox are Doing Their Thing by extending TCP - IPeXtended / SPX; Novell are ripping IPX/SPX off whilst other companies with better networking file server products actually wait for Xerox to grant them a license to use IPX/SPX...

Then something funny happens, and some coincidences occur that mark the beginning of something really quite special, and technically far-out.

Someone at DEC gets bored of being told he can't extend VMS beyond what DEC can cope with, so off Mr Dave Cutler goes to Microsoft, and he takes the entire VMS team with him.

At around the same time, Hewlett Packard acquires Apollo, and one of its co-founders quits and goes to work for Microsoft, too. Mr Paul Leach happens to be one of the key architects of NCS - Network Computing System, which becomes Network Computing Architecture. The Open Group makes a Request for Technology and Apollo had responded by submitting NCA, a very advanced RPC system, to The Open Group, and DCE/RPC is the result.

So we have the beginnings of New Technology, "NT", which was not originally intended to be a graphical operating system. The target of the six (seven) developers was eighteen months: in the end, it was 200,000 lines of code each per year, for four and a half years, but that's another story.

NT is basically the Mach Kernel (Steve Jobs, who quit Apple and formed NeXT, and GNU/Hurd now uses Mach), the VMS security model, with several sub-systems including OS/2, Win32 and POSIX as the classic sub-systems; running on top of the sub-systems is a series of DCE/RPC services; plus some programs and services that were part of the DOS and Windows suite ported to the New Technology.

Word has it that Mr Bill ordered the NT team to make NT a graphical OS, so my guess is that they simply ripped off the Windows 3.0 source code and shoved it in as a sub-system on top. What they did have to do, though, was port it from 16-bit to 32-bit, and hence Win32 was born.

Later, of course, there turn out to be bugs in the port, and also bugs fixed BY the port, and hence you got the famous Win16 and Win32 disaster area problems, compounded further by the Windows 3.1 team themselves moving to Win32 and screwing that up in Windows 95...

The important thing that comes out of this is to remember that windows is NOT an operating system, it is a GUI API; Win32 is available on several systems, including Wine; Windows 95; Windows NT; SCO/Unix and Sun's ABI (application binary interface).

Anyway: after a while, DEC got suspicious, and asked what Microsoft was up to. After a bit of a wing-ding, Microsoft announces that they are making Windows NT available on the new DEC Alpha platform, and incidentally they decide to increase DEC's bank-balance by $50mill...

Technically, the job of porting Windows NT to the DEC Alpha was very simple: the entire codebase was written in c. (Endianism only later became a problem for 64-bit platforms). With MIPs and RS/6000 also supported, one more platform is easy.

What I cannot quite comprehend is why The Open Group didn't notice about DCE/RPC. Microsoft originally approached TOG to license DCE/RPC, properly. Unfortunately, TOG's license structure was $100 per client, and because they are a foundation, they could not "do deals", due to their charter. Microsoft did the math based on their projected sales measured in millions, presumably told them where to put their charter, and just ignored the license.

Remember: DCE/RPC 1.1 is available as a 250,000 lines of code reference implementation, under the OSF 1.0 BSD-compatible license. It is DCE/RPC 1.2.2 that consists of 3.5 million lines of services on top of the 1.1 run-time libraries and services, that has the non-commercial usage source code licenses etc. etc.

The boundary between what Microsoft took from the DCE/RPC 1.1 reference implementation and the 1.2.2 codebase isn't clear: what is clear is that they renamed everything (function_name to FunctionName); called it MSRPC instead of DCE/RPC; extended DCE/RPC to support Unicode Service Location, and also added some really useful extensions to the IDL syntax (e.g. sizeis(length / 2)); added in a whole boat-load of new transports, as is possible to do according to the DCE/RPC specification; and added support for their new security / domain system, NT Domains (also according to spec).

Ironically, one of the transports that Microsoft added for DCE/RPC transparent usage - NetBIOS - is patented by IBM :)


Windows NT 3.1 (then 3.5) was so well designed that if a third party screen driver was unreliable and crashed, it didn't matter: you could still try and guess where to click the mouse, or use keyboard shortcuts, and basically still keep on running, or just leave the machine alone!

So, where are we: Windows NT 3.5 is basically a really good, well-designed, well-planned operating system, running sub-systems and sub-processes that don't matter if they crash; Windows 3.1 becomes Windows 95 because the NT team develop "NEWSHELL.EXE" for one of the Windows NT 3.51 betas and the '95 team get wind of it and rip it off; Linux has just got a foot in the door...

Then we get Windows NT 4.0, which is where the Windows 95 team actually helped out: by ripping off NEWSHELL.EXE they got all those stupid users to iron out some of the bugs, which makes it more reliable and mature when back-ported to Windows NT 4.0.

Unfortunately, when users complained that Windows 95 was faster than Windows NT 3.51, it was considered wise to rip out all of the user-space screen driver redirection (similar to X-windows) and to run all screen drivers in user-space.

The consequences of this action was to make it real fun to move programs outside off the top of a Windows NT 4.0 RC1 screen, and it also meant that the Citrix Team had to be hired en-masse to put Remote Destop (Terminal Server) back into Windows NT 5.0...

Perhaps it is wise at this point to mention one important fact, that becomes significant later on.

The Windows NT team and the Windows 95 team




In my opinion, the scorn of the NT team for the 95 team is well justified. Basically, the NT team core are millionaires who haven't quit Microsoft in over a decade. Why? because they have a sense of responsibility and want to change the world.

By contrast, the Windows 95 team are Microsoftee Wanabees. They wannabe millionaires, they wannabe microsofties, they wannahave microsoft on their CV. And, eighteen months down the line, when they are burned out and overloaded, they get at least one out of three of their desires.

Consequently, with a higher staff turnover, no real incentive of committment, and with a chequered history of development, the Windows 95 codebase is, basically, a complete mess.

Now we move on to Windows NT 5.0, which was six years in development. Windows NT 5.0 added, basically, and this is not a joke, Kerberos 5.0, LDAP, some up-to-date device drivers and some management console tools. This results, incredibly, in an increase in the codebase of a staggering FORTY million lines of code.

And yet the core services and security paradigms do not change. Sure, Microsoft extended Kerberos and LDAP to take account of the NT security model; yes they wrote some console tools to manage the shift; it doesn't really justify such a gratuitous increase in the codebase.

To Microsoft's credit, they seem to have pulled it off. by hook and by crook.

Now we have the Windows 95 team, who for a while, presumably whilst the NT team were quietly getting on with NT 5.0 development, led the way in terms of more device drivers, more devices supported, but running as VXDs that were incompatible with NT. we'll come back to this, later.

Now we have, around the time that NT 5.0 rc3 is released, a bit of a quandry. some smart alec notices that NT is trademarked - by another company called Nortel, of all things. so they decide to rename NT 5.0, and call it Windows 2000, based on NT technology.

based on New Technology technology. veeeerryyy smaaaart.


finally, microsoft decide to do something smart: kill off Windows 95. so they take it through some death-knell releases: Windows 98; Windows Muscular Encephalophathy (whatever the damn disease is called - it's a wasting disease that make people look really lethargic and lazy but in fact they have a serious debilitating physical condition).

but, microsoft can't just sack all those weenies, so they give them something to do.

they give them...


you guessed it!

they give them a copy of the Windows NT codebase to play with. but first, due to United States Export Laws governing weapons-grade technology (munitions), they have to take out all the 128-bit stuff and all the kerberos stuff and all of the code that could be used by terrorists who are too stupid to download the source code (or don't have a telephone or an ISP).

remember, the Windows NT developers are watched closely; looked after; Microsoft thinks long-term regarding NT, and gets worth-while people green cards and BXPA licenses etc.

not so on the piss-poor-quality windows 95 group: the staff turnover is way too high to bother, so they don't.

code-named chicago, the windows 95 weenies get a copy of NT to play with, minus all of the critical windows 2000 Kerberos / Domain services that really make windows 2000 useful and manageable.

so what do the weenies focus on? fonts, graphics, making it idiot-proof (viz, user-hostile), and this weird XML trash called dot net.

oh, and of course, making all the useful programs that run on it need an internet connection to register that they're here, alive and running.

remember, it was one of the Windows 95 betas that started shipping out the directory listing of the hard drive off to a remote site from a C2 certified location. the only reason it was noticed was because the location took their C2 certification REALLY seriously, and had someone employed full-time to watch the network traffic coming in and out of that lab and slap blocks on any suspicious activity.

ahhh, such is life...

What??, posted 20 Dec 2002 at 00:32 UTC by mbrubeck » (Journeyer)

Later on, the Macintosh Classis is released - a computer where the keyboard is optional and you get a pointy-clicky thing with it. If you want to type, you have to run the keyboard program and pointy-clickity away (so that independent survey about the use of a mouse slowing user productivity is well-founded).
What are you talking about? The original Macintosh (the Mac 128K) came with a keyboard. The Mac Classic is a different model, produced in the early 1990s. It also came with a keyboard. As far as I know, the only Apple computers that did not ship with keyboards are the XServe and the Newton.

I mostly followed the rest of the rant, but I couldn't figure out why I was reading it. "NT r0x0rs, 95 sUx0rs." Yeah.

mac classic, posted 20 Dec 2002 at 09:06 UTC by lkcl » (Master)

i had a friend who bought a _really_ early mac classic here in the uk and i _promise_ you she didn't get a keyboard with it!!

i presume that by the time you purchased yours, apple had realised it wasn't necessarily a good thing to sell wizzy new technology stand-alone. an interesting lesson in itself that we could learn from :)

point of the article: entertainment; background; interest; fun; information; and the other two articles i just posted only make sense if you understand the history.

Would that..., posted 20 Dec 2002 at 09:40 UTC by tk » (Observer)

...lkcl is similarly well-versed in the history of GNU, Linux, and Open Source!

But too often, people who enter the open source scene don't even as much as try to understand how open source works its magic, and just keep dumping their preconceived notions of how it "ought" to work on everyone they meet. ESR wrote his CatB paper precisely because he was surprised that Linux actually managed to attract thousands of developers, contrary to Brooks' Law that "adding people to a late project makes it later".

Despite this, every day there are still claims that the Bazaar development is `too chaotic', that everything should be `designed right at the start', etc. So these people, with their `superior' development methodologies, embark on their projects as follows:

  • write mission statement
  • write design documents
  • put up dozens of job postings
  • wait for eternity............


A diagram, posted 20 Dec 2002 at 09:55 UTC by softkid » (Journeyer)

The history of windows can be found in a diagram form. The link is here. On the same domain you'll find the History of unix and NeXT.

-- http://homepage.mac.com

Huh., posted 21 Dec 2002 at 04:54 UTC by ncm » (Master)

I would be surprised if a detailed examination found any single statement in the article entirely true and correct. I'm not about to waste time trying to discover one.

We certainly don't need any more articles like this one.

No more simlar?, posted 21 Dec 2002 at 16:58 UTC by Chicago » (Journeyer)

I come from a scientist/engineering background. We have a sort of standing rule that whenever you read one book/source, you must always read an anti-book of the same standing (that means if you read a book written by someone who can argue well, for one thing, you dont read a book written by a five year old as the anti.)

For this reason, I have brought home this christmas (amongst others I talked baout in my diary entry) Rebel Code (Glyn Moody) and for its anti High Stakes, No Prisoners (Charles H. Ferguson).

Without the anti, the pro means nothing. You can not discuss open source software without having to look at (even in a miniscule level) the main opposition of open source software. Neither can you really discuss computers without discussing the main players in the software world. Facts and figures show that Microsoft do indeed have a very large share of the OS and word processing markets.

And discussing means not rant, but fairly look at the pros the cons, Even if a piece of software is buggy beyond everything, there may be something in the idea that you overlook.

I would argue that this post was well chosen.

Falsehoods & Half-truths, posted 21 Dec 2002 at 23:41 UTC by ncm » (Master)

Chicago seems to assert that we need more rabid articles composed of falsehoods and half-truths. Could there be a stronger argument that the rating system needs work?

A belief that Free Software must be "anti" something to mean anything itself is medieval thinking. Free Software is, all by itself. It is not a reaction to something else, it is a continuation of centuries' academic tradition. It has grown from almost nothing twenty years ago to a major industrial force by meeting the real needs of the real people who write it.

Is there any quality of any proprietary software product that is interesting? Certainly. Does a frothing pastiche of misrepresentations about the history of one vendor of proprietary software teach us about any such quality? Not surprisingly, no.

more people, posted 22 Dec 2002 at 14:17 UTC by lkcl » (Master)

mr chicago, your response does you credit: i wish that there were more people in open source who were open minded as well as open source.

reactions to improving, posted 22 Dec 2002 at 14:24 UTC by lkcl » (Master)

mr ncm,

the linux kernel's reaction to microsoft's funded "independent" comparison of linux and nt a couple of years back resulted in dramatic improvements in the linux kernel's performance.

the comparison was out-of-the box redhat 5.2 with telephone calls to the (please excuse me) dumb telephone support minders on a 1GB memory 4-way SMP box when redhat 5.2 was running a kernel that didn't SUPPORT 1GB of memory nor SMP properly

vs windows nt 4.0 with a flurry of expert NT kernel performance tuners / hackers to hand.

and even when all was said and done and the second "independent" comparison complete, NT STILL WON.

why? because at the time, linux didn't _have_ decent SMP support nor decent large memory support.

what happened? the linux kernel people went beserk on the code, and fixed it.

now, without microsoft's "independent" survey, linux would not have had so much focus, so quickly, placed upon its SMP capabilities.

incidentally, why do you have to poison a really good forum with unprovoked and very sadly misguided personal attacks?

re: Falsehoods & Half-truths, posted 22 Dec 2002 at 15:35 UTC by Chicago » (Journeyer)

ncm "Anti" and "pro" are only figurativly speaking, when I said "pro" and "anti" in this context, I did actually mean that pro-FS or anti-FS. But indeed, the entire concept of pro or anti meerly is a statemnt of which side you are on - just like saying "Saddam is bad" probably means that you're not his chief advisor for education... "good" and "bad", just like "pro" and "anti" are not statements of how to think.

Another slight problem I think with your interpretation, is the meaning of the word Free Software. Or rather, perhaps my usage of it. Does Free Software mean a particular peice of software that just happens to be free? Does it mean the idealology? The community? A set of beliefs? It means all of those.

And saying that Free Software is not a reaction to another style of thinking, but rather it just is- well, it might be that it was originally formed out of this true idealistic base, but it IS influenced by the outside world- there ARE statements that can be considered PRO fs, and there ARE statements that can be considered ANTI fs. Because of this, the group of individuals that make up the Open Source Community can be considered to react to these influences as it grows.

Perhaps in my statement that stating "I would argue that this post was well chosen." was badly worded. Perhaps a better wording would be "I would argue that the topic of this post was well chosen."

I believe that this community is about promoting Free Software, so it is Pro free software. To promote free software in a world which is mainly dominated by non-free software, we must understand non-free software, how it is that it controls so much, and why it is still so prolifant.

corrections to re: Falsehoods & Half-truths, posted 22 Dec 2002 at 15:42 UTC by Chicago » (Journeyer)

Sorry, But my mind skips: I dont seem to be able to edit my previous entry, so have to post corrections here:

The first paragraph should have ended: ... "good" and "bad", just like "pro" and "anti" are not statements of how to think, meerly a statment as to which school of thought you are from.

lkcl Thank you for your comment - it seemed that it took me many hours to write my response that overlapped you responding. I agree that your analysis of Win32 architecture is a good idea, and indeed relevant for a free software community. Every textbook on OS and Architecture design talks about Win32 and its api as much as POSIX. Indeed, there are some VERY good ideas in it, if perhaps badly implemented, for instance, the User system that it uses.

Avogato metric's credibility, posted 22 Dec 2002 at 23:13 UTC by ishmukler » (Journeyer)

I think this and previous article by the same author sort of prompts a question:

Does not everyone agree that metrics is compromised enough to just be dropped?

How about we vote on it?

I think it would make things easier. In the end we all know that RMS came up GPL and Linus hacked initial version of Linux. John Dyson, David Greenman, Alan Cox (not the linux one) and a few other contributed to FreeBSD VM [which mainly account for the OS's popularity among ISPs], Theo started OpenBSD and so forth.

We don't need to dump project pages where we could see who does what. Although credibility there is also not very high. I sometimes see who calls themselves lead developers of projects that I closely follow and it makes me confused. [I usually think that leads should contribute either in form of code or moderation].

Once "trust metric" is no longer reliable, it's can no longer be trusted.

Re: Avogato metric's credibility, posted 24 Dec 2002 at 12:09 UTC by mwh » (Master)

ishmukler: I'm not sure what you're trying to say, but if you're trying to imply that Luke doesn't deserve his Master cert, then you're just wrong.

Keyboards and Macs, posted 24 Dec 2002 at 12:35 UTC by lukeh » (Master)

I know this is probably not the most useful comment I could make on this article, but anyway... as far as I remember, the Macintoshes first shipped with the Apple Desktop Bus (Mac II, Mac SE) required the keyboard to be purchased separately. The original Macs, as well as more recent Macintoshes (for some years now), shipped with keyboards.

Keyboards and Macs, posted 24 Dec 2002 at 18:36 UTC by ncm » (Master)

I bought a Fat Mac (512K RAM) when it first came out, and later an SE/30. (I ran A/UX on the SE/30. Still have it, in fact, and it still booted when I tried it just a couple of years ago. I could install Debian or NetBSD on it, I suppose.)

The keyboard was a separate item because you could choose whether to get the one with the IBM-style keypad or the one without. (Of course I chose without.) Anybody who was allowed to buy one without a keyboard just had an incompetent sales droid.

Not that this has anything to do with the cartoon history of MS, but to me it's more interesting.

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!

Share this page