This article may have suffered some slight bitrot over the years since it was written around 2002. Now (July 2007) it has been reposted. Some links may have faded; one - http://www.proudlyserving.com/, seems to have flourished. It now seems to be a blog about Microsoft. I have not read it, so (late July 2007) I can't speak for its content).
Because a reader requested it, I have put this back online; it was written in (IIRC) about 2002; not much has changed since then, really.
Steve Parker, 2007

History of Microsoft

Following a conversation of "so why are Microsoft bad?" along the theme of normal business practice of invention, copying, commitization, here is a rough guide to how Microsoft go about their business, how they came to be found by the US Department of Justice to have a monopoly, and to be abusing that monopoly.

In so far as value judgements go, I shall try to only make those which apply within the tenets of capitalism - that is, competition, however vicious, is a good thing for the consumer, having a monopoly is not a bad thing in and of itself, but using a monopoly in one market in order to obtain one in another, is bad.

Don't ask whether I agree with this, but that is the way that court cases tend to go, and it is easy to follow.

Firstly, the obligitory disclaimer that I am not a lawyer, I am just a techie who has followed the company in their dodgy dealings.

I am also not omniscient; there may be errors in this document - if you spot any, please let me know.

In The Beginning...

In the late 70s a number of individuals and companies were making and distributing home computers. Nobody can honestly say that they predicted back then, just how pervasive home computers (or Personal Computers as they have come to be known) would become.
IBM noticed this phenomenon, and saw it as a way of impressing upon small business just how plain good IBM machines are - the original IBM PC was made of steel, I've got one if you're into lifting weights...

The BIOS

bootscreen The BIOS (Basic Input/Output System) is a chip inside your PC which takes control of the machine as soon as you switch it on. It does a quick memory check, finds the hard disk, and starts booting the Operating System.

IBM wanted other companies to be able to make plug-in expansion cards for the IBM PC, but wanted to be the sole manufacturers of the PC itself. So they published the source code to the BIOS, which meant that everyone could see exactly how the BIOS worked (which would be necessary for 3rd party manufacturers to build expansion cards), but licensed it under a license which forbade duplication or imitation. This was a pretty smart move - the BIOS is essential for a PC to be a PC, and it took about two years before a clone was on the market. A company called Ajwad set up a team, and showed them IBM's source code to the BIOS (these people, having seen IBM's code, could not now write their own BIOS). This team then wrote up, from IBM's source code, a detailed functinal specification, stating exactly what an IBM-compatible BIOS would be required to do.
A second team, who had never seen IBM's code, and were therefore under no obligation to IBM's agreement, took this document created by the first team, and wrote their clone. This cost around $1m at the time, because they not only had to do the work, they had to ensure that it was fully and provably documented that they had strictly followed this "clean room" method, and therefore not broken the agreement with IBM.

This is seen as perfectly valid competetive practice under our capitalist system.

DOS - the Disk Operating System

IBM did a deal with a small company called Micro Soft to produce the Operating System for their PC. As already mentioned, nobody predicted the huge growth of the PC market, so IBM didn't pay too much attention to the details of the deal. IBM could distribute DOS with their PCs, paying Micro Soft a royalty for every copy sold. Micro Soft, however, could also sell DOS independently of IBM.

In the early days, before Award reverse-engineered IBM's BIOS, everything went as expected - IBM built machines, shipped them with DOS, and application developers wrote applications such as word processors and spreadsheets, to run on DOS. Now that anyone could make a PC clone, they also needed to license DOS from Micro Soft.
Of course, these new PC clone manufacturers could have used the alternative CP/M operating system, or developed their own, but during the time Award had been reverse-engineering the BIOS, certain applications such as Lotus 1-2-3 had become "killer apps" - that is, people were buying PCs just to run Lotus 1-2-3. Since Lotus 1-2-3 was written to make use of features offed by both the IBM BIOS and DOS, these customers also needed DOS. Not because it was better than anything else, and not because customers were explicitly asking for DOS, but because customers wanted Lotus 1-2-3, and that depended on DOS.

The deal with IBM for the distribution of DOS was probably the smartest thing Microsoft have ever done.

DR-DOS

Everything kept going along, IBM sold DOS as PC-DOS, Microsoft sold it as MS-DOS, loads of companies made clone PCs, loads of people bought them, and loads more companies made expansion cards for the PCs and PC clones, to offer features such as better quality video, or sound, or networking capabilities.
A company called Digital Research decided to do their own version of DOS, called DR-DOS. It offered the same features as Microsoft's DOS, but was priced slightly cheaper, and offered some extra features.
Again, like the clean-room implementation of IBM's BIOS, this is normal business practice, the kind of thing championed by good capitalists worldwide. Now you could run Lotus 1-2-3 without buying your PC from IBM, and without Microsoft's DOS. This is the free market at work, and as we shall soon see, Microsoft did not tolerate that for long.

Windows 3.1

Around this time, though, people were getting interested in graphical environments - Apple had already got a graphical user interface (GUI) in their MacOS, and Microsoft were developing Windows, which initally ran on top of DOS. That is to say, the PC booted into DOS as normal, then at the C:\> prompt, you would type WIN, and Windows would start up, with the ability to run more than one DOS application at once, and it also offered programmers the ability to write software specifically for Windows, where the programmer would use a simple sequence of commands to ask the Windows software to draw a menu, or a button, and so on, until they had written a fully graphical application.

This is where the real fun starts... it is important to realise that Windows 3.1 still required DOS - it just offered additional functionality to the DOS operating system, but was not, itself, an operating system.
Windows really took off when Microsoft released Windows 3.1. Major software releases are normally preceded by a limited-release test version, called a beta. These are made available to developers and hardware manufacturers, and other interested parties, so that by the time the final version is released, there is already software written for it. As it happens Digital Research, the authors of DR-DOS, were denied access to the beta test.
The other beta testers, however, soon found out that if you were running DR-DOS, not Microsoft's DOS, when you tried to run the beta version of Windows 3.1, you would get the message: Non-fatal error detected: Error number [varied]. Please contact Windows 3.1 beta support. Press enter to exit or C to continue.. Caldera, who later owned DR-DOS, took Microsoft to court over this in 1996. The judge in the case ruled that "Caldera has presented sufficient evidence that the incompatibilities alleged were part of an anticompetitive scheme by Microsoft." The case was eventually settled out of court in 1999, so we do not have a full legal judgement stating explicitly that Microsoft introduced explicit code into Windows 3.1 purely for anticompetetive purposes, though internal Microsoft emails - as quoted in this article from the time clearly indicate that this was the case.

The Internet

In 1994, Netscape Communications Corporation's web browser - Netscape - was made available free of charge over the internet. It was available for Windows, Mac, and Unix operating systems. Microsoft at the time were still telling anyone who asked, that the Internet would not catch on, and they continued to ignore it until by 1996, 75% of web users were using Netscape. Ibiblio have a succinct history of Netscape, though it does not note some significant happenings since 2001.

Microsoft released Windows 95 to huge fanfare, and in the first update to Windows 95, included their own web browser, Internet Explorer. They had bought a company called SpyGlass, who were developing a browser (based, as it happens, on the same code that Netscape was based on). By this time, Netscape had been the predominant web browser on all platforms for nearly two years. Microsoft, the sleeping giant, had realised that the internet was not going to go away, though it was still pushing plans for the Microsoft Network, which it saw as replacing the internet. (NWNetworks have a good history of Internet Explorer which covers up to version 5, released in 1999).
This first attempt was nowhere near the quality of Netscape's browser, though by version 3.0, Microsoft had developed Internet Explorer to be roughly equivalent to Netscape. The two programs were not identical, but it was very hard to say that one was better than the other. They both included mail and news readers as part of the package, and supported Java and other additional technologies.

Time for a brief word on cost: Netscape was available free of charge, though technically business users were supposed to register it for $39, nobody particularly bothered about that, include Netscape. Netscape's business plan was to sell their advanced web server software for thousands of dollars a time. Microsoft have never charged for their browser, instead bundling it with Windows.

Market forces would normally predict that the two browsers would share roughly equal proportions of the browser market.

For some reason, Internet Explorer gradually overtook Netscape. Maybe because it "felt" more like Windows, it had a Windows flag in the top-right corner instead of the Netscape "N". I don't know.

These were the days of the browser wars. Fans of either browser would argue their case with almost religious fervour.
By 1998, Microsoft's Internet Explorer had won.

The Antitrust Trial

Internet Explorer was the core of the Microsoft antitrust trial. (Note to British readers who've not followed US antitrust cases: "Antitrust" basically means "Abuse of Monopoly Position").

Microsoft insisted that OEMs (Original Equipment Manufacturers, ie, PC makers) include Internet Explorer. That may not sound to bad, until you realise that because Windows had market dominance in the IBM-based PC market (due to tactics like the DR-DOS incident), most PC users wanted (or thought they wanted, or didn't know they had a choice) Windows with their PC. So Microsoft offered bulk discounts to OEMs, with certain conditions - typically that a certain percentage of PCs shipped must have Windows installed, and that they must not "dual-boot" - that is, offer their customers a choice of Windows or, say, OS/2, or Linux. OEMs went along with this to get the discounts - the Windows license is a relatively large chunk of the cost of manufacturing a PC - Windows 2000 Professional (the version for typical desktop use) costs $319 retail at the time of writing this article (Aug 2002). If an OEM can build a PC for, say, $680, and cannot or will not do a deal with Microsoft, they cannot sell the PC for less than $999 with Windows installed. A competitor with a 50% discount from Microsoft would be able to sell the same PC to the customer for $999 and make a $160 profit. Which one's going to stay in business longer?

So when the OEMs were faced with this new condition, that they also bundle Internet Explorer, they didn't have to think for very long before deciding to go along with it.

Of course, once Internet Explorer was bundled with Windows, why would anybody go to the bother of obtaining Netscape's web browser? They both offered roughly equivalent functionality, so Netscape was finished. If Netscape had been killed off by a better product, or even just by a better-marketed product, that would be market forces in play, and a good example of capitalism at work. Netscape, however, had been killed off by Microsoft's dominance of the Operating Systems market. That is where the antitrust comes in - using (or leveraging, as the Americans like to say) dominance in one market to obtain dominance in another.

In January 1998, Microsoft agreed to allow OEMs to install Windows 95 without the Internet Explorer icon displayed (though Internet Explorer must still be installed... since version 3.0, it had been impossible, Microsoft claim, to completely seperate Internet Explorer from Windows). Of course, in June 1998, Microsoft released Windows 98, with Internet Explorer included, and no "uninstall" feature. There was no question of OEMs being allowed to sell partial versions of Windows, so that lasted half a year.

The case rolled on, and in June 2000, Judge Jackson ordered that Microsoft be split into two companies - one to supply Operating Systems, the other to supply Applications. Microsoft appealed the decision, and won. The strongest problem the Appeals court seem to have had with Jackson is not his decision, nor how he came to it, but the fact that he had conducted interviews with the press, while the court case was going on. These interviews were granted on the condition that they not be published until the case was finished (and the condition was honoured), but nevertheless Jackson had breached protocol. In September 2001, the Department of Justice announced that it no longer wanted to break Microsoft into two companies, and wanted to get the whole thing over and done with as quickly as possible.

So far, under the current administration, the policy seems to be to let the case drag on so slowly and allow no new evidence, so that any findings will be totally irrelevant by the time any decision is reached.

The rest of the story...

This is a brief history of Microsoft's history, with huge chunks missed out, most glaringly the Apple case, where Apple pointed out that Windows shared many properties with Apple's existing graphical operating system.

So for the rest of this article, we will look at some key side-issues:

  • Why must Microsoft now behave differently from other companies?
  • Applications Barrier to Entry
  • Embrace and Extend
  • Why Kill Netscape?
  • Witholding of APIs
  • Netscape after 1998

Why must Microsoft now behave differently from other companies?

Microsoft have been declared by the US Department of Justice to be a monopoly in the PC market. This is not in itself illegal, but carries with it certain responsibilities.
Since it has been legally stated that the PC Operating System market is not an open one - ie, most consumers are stuck with Windows because most consumers are stuck with Windows (see Applications Barrier to Entry and Embrace and Extend below) - that operating system must, itself, allow for fair competition between those involved with it. That includes hardware manufacturers, but mainly software developers, and also consumers. Microsoft cannot, for example, start to give away Microsoft Word as part of Windows in order to kill off a competing word processor. It also cannot, for example, use its OS monopoly to behave anticompetitively in its attempt to provide the software to run on mobile phones, nor to get itself into the TV industry. It can, of course, compete in whatever market it likes, but it may not use Windows' dominance on the PC to do so.

Update May 2004: The EU case judged against Microsoft for bundling Windows Media Player with Windows, and fined them 497m Euros (around $590m), a record fine.

Applications Barrier to Entry

This seems to be a phrase invented during the antitrust trial, as far as I am aware. It refers to the fact that, for an alternative operating system to compete with Windows, it must be able to run most of the applications which are currently available for Windows. In order for this to happen, all the hundreds of application developers must convert (or "port") their applications to run on the new operating system.

This was not a problem for Windows 3.1 in 1991, when all existing applications ran under DOS - with Windows 3.1, DOS was there anyway, and by Windows 95, although some of the features of DOS were missing, an MS-DOS mode was offered. This was only possible, of course, because Microsoft owned both operating systems.

It would be impossible for a Linux distribution, for example, to offer a Windows mode which would guarantee to run Windows programs by genuinely being Windows today. Linux has WINE, a free implementation of Windows APIs, superficially similar to how DR-DOS was an implementation of DOS (technically a different approach, but the end result is similar), whereas Windows is a hugely complex and largely undocumented piece of work, written over nearly two decades. WINE is good, but has little chance of providing a totally identical environment. Supposing that at some point the WINE developers produce an environment which can run every application which run under Windows - Microsoft will produce a new version of Windows (that's their job, after all) which will take much longer to reverse-engineer, figure out, and emulate than it did to write, even assuming equal budgets.

The other way around the application problem would be for a company to write a new operating system, and write all the applications themselves. Then they can say, "Look at our new FooBar Operating System - it runs FooBar WordProcessor, FooBar Spreadsheet, etc". The FooBar development model is totally impossible - the development costs are totally prohibitive. To provide an entire environment, not only replicate everything that Microsoft have written, but to replicate everything that every Windows developer has ever done (including individual companies' in-house developers writing their own code to run on corporate machines) would cost more than even Microsoft have.

The Open Source movement is the best example of my ficticous FooBar - most Open Source developers do it for love, the software is free. They have developed the Linux operating system, the OpenOffice.org productivity suite (Word Processor, Spreadsheet, etc), the Mozilla web browser, and I use them all, every day, instead of Windows. They have also produced the GNOME and KDE desktop graphical environments, all excellent alternatives to Windows, it could well be argued. But there are literally thousands of developers who write their applications to run under Windows simply because it has the biggest market share. And there are millions of PC users who use, and have grown to depend on these third-party products. Despite the best efforts of the WINE project to provide compatibility for Windows applications, all these different developers have used various features and bugs in Windows to produce the intended result.

So the Applications Barrier to Entry is the simple fact that nobody, simply by producing a better Operating System than Windows, could replace Windows.

That's not to say that the impossible won't happen - it has already happened on my PC; my firewall also runs Linux, not Windows, and my desktop PC (used more by my wife than by myself) has Windows, Linux, and FreeBSD installed, but it mainly runs Linux.

I'm not sure whether to put this part under Applications Barrier to Entry, or under Embrace and Extend, but I think it belongs better here. Anybody who regularly gets sent an email containing a Microsoft Word attachment will have probably found that sometimes, they cannot open the attachment. This is because, with every release of Microsoft Word (or Excel, or any other MS application, for that matter), the file format gets slightly altered so that older versions cannot understand the document. What this means in practice, is that if Archie is running Word97 under Windows 98, Billy is running Word 2000 under Windows 2000, and Cuthbert is running Word XP under Windows XP, then Archie can't read Billy's documents without upgrading to Word 2000, and they'd both need to upgrade to Windows XP and Word XP in order to read Cuthbert's documents. Windows XP requires, amongst other things, faster hardware to run at an equivalent speed, and an internet connection - so that Microsoft can check that you're not stealing from them - even though you've been forced to pay them, simply because Cuthbert uses Word XP.

This also makes other Word Processors more difficult to write - OpenOffice.org, for example, can open every Word file I've been able to throw at it, because the OpenOffice.org team have put a huge amount of work into working out (like DR did with DR-DOS, and the WINE team are doing with WINE) exactly what Microsoft have done, and producing a work-alike. But as soon as a new version of MS Word comes out, it will have a new file format, the OpenOffice.org guys will have to buy a copy, work out what the new version of MS Word does, and update their software. Thank goodness OpenOffice.org's word processor doesn't cost anything, and the source code behind OpenOffice.org is freely available, so even if OpenOffice.org fell off the face of the earth tomorrow, we'd still have copies of the code, and people would still be able to update it!

Embrace and Extend

Embrace and Extend (also known as Embrace and Extinguish) is the phrase used to refer to Microsoft's practice of supporting an existing standard, adding incompatible extensions to the standard (which would, de-facto, because of their monopoly position, become widespread) thus taking over the market until others can work out how Microsoft broke the original standard.

For example, the IETF (Internet Engineering Task Force) have a list of RFCs, documents which specify open standards, such as how the World Wide Web works.

Microsoft have managed to avoid breaking the Web too drastically, since it mainly runs on non-Microsoft machines (although the majority of PCs run Microsoft software, the majority of internet servers run Unix, an older, more capable, and more stable operating system).

Microsoft took RFC1510, for example, which specifies a method for two machines to accurately identify each other, even though they know nothing about each other, and do not trust the network over which they are communicating. That is a major piece of work, which was placed into the public domain in order that every software vendor might use the standard, and therefore gain the obvious benefits of it. Microsoft saw it, twisted and broke it, so that it would only work with Windows PCs.

See Infoworld's story from 2000, when Microsoft finally admitted to changing the protocol, but were not sure if they'd let anybody know how they'd changed it.

Witholding of APIs

Netscape after 1998


Useful Links:
Proudly Serving Antitrust case timeline
Ignore this ... my notes the Apache Web Server, which runs roughly 21,453,498, or 57% of all web sites (as at July 2002), along with the Sendmail email-delivery service (try choosing "Run" from the Start menu, type "telnet" into the dialox box, and press OK. Choose "Connect / Remote System". Then type your ISP's mail server name into the "Host name" box, and "25" into the Port box. You should see the welcome prompt from your ISP's email server. Odds are it says something like:
220 mailserver ESMTP Sendmail 8.11.1/8.11.1; Sun, 11 Aug 2002 22:58:55 +0100 (BST)
If you see the word "Sendmail" there, it's also Free (often called Open Source) Software.

You can also go to NetCraft's web site to check out your favourite websites - enter the website name (eg: www.amazon.com) into the box there, and see what your favourite websites are using. Most of them are likely to be Apache, a few of them will be running the Linux operating system, too.

Articles - Microsoft History
Share on Twitter Share on Facebook Share on LinkedIn Share on Identi.ca Share on StumbleUpon

Get the Book:

My Shell Scripting Book:
    Shell Scripting, Expert Recipes for Linux, Bash and more
is available online and from all good booksellers.

Buy my 600-page Shell Scripting Book...

From Amazon USA:

Or from other retailers

Facebook:

You can also join a Shell Scripting community on Facebook:

Get the Tutorial as a PDF:

Shell Scripting Tutorial
Buy the 72-page PDF (£4.99 / $9.99 / €6.99) of this tutorial
(Free Sample)

Get the Tutorial on Kindle:

For Kindle from Amazon USA:
For Kindle from Amazon UK:

And you can always Download my Free Shell Scripting Cheatsheet PDF

DefectiveByDesign.org