Why OS/2 Failed

The creators of OS/2 had great plans and expectations. Twenty years later, it is clear that OS/2 largely failed. There is no single reason for this failure and different people will have different views. I will attempt to present and analyze some of the major reasons.
 

Joint Development Disagreement

Perhaps OS/2 was ill-fated from the beginning, since before it was even called OS/2. The Joint Development Agreement signed between IBM and Microsoft could not prevent the rift between the two companies from growing. Microsoft tried to claim all credit for OS/2 (MS OS/2 products for example do not include IBM copyright messages, while IBM versions have both IBM and MS copyright notices) which irked IBM. Each company had different goals and reaching consensus was problematic.

There was also a culture clash between IBM and Microsoft. IBM had an established and highly formalized development process, while Microsoft was a company of hackers always ready to go for an ad-hoc solution. IBM programmers could not understand how anyone could write code without proper design documents and thorough testing. Microsoft programmers could not understand how anyone could waste so much time on paperwork when they should be writing code instead.

From materials published in the late 1980s, it is clear that Microsoft was serious about OS/2, and they were firmly behind it. Many people inside Microsoft adopted OS/2 and kept using it after the divorce, simply because it was a much better foundation than DOS and Windows NT was not usable yet.

Some say that it was a mistake to develop for 286 and OS/2 should have been developed for the 386 from the beginning. It is questionable whether this would have been beneficial or not. On the one hand, the 286 architecture was highly problematic when DOS compatibility was desired. On the other hand, OS/2 was released at a time (1987) when 8088 and 8086 machines were still a major force and 386 based machines were very rare. Requiring a 386 would have either severely restricted the potential market share of OS/2 or delayed its release by several years.

Many people claimed that OS/2 can only run on IBM PS/2 machines, even though that was categorically untrue. IBM supported its own AT and XT Model 286 systems, and IBM's OS/2 releases do run on truly AT compatible machines. Microsoft was supplying OS/2 to OEMs for adaptation to their hardware. However, it is likely that OEMs were very wary of IBM's motives and saw OS/2 - rightly or not - as part of IBM's effort to regain control over the PC market.

OS/2 was designed as a successor to DOS and maybe this was part of the problem. OS/2 1.0 superficially didn't look very different from DOS. There was no wow factor. The command line interface was intended to work just like DOS and that's what people saw. They did not see the modern, protected-mode operating with virtual memory and pre-emptive multi-threading. What they saw was an OS that looked like DOS, required much more memory and disk space, and wasn't compatible with many DOS applications. OS/2 1.1 as well as later releases with Presentation Manager was in the same boat. It looked (again, deliberately) like Windows with higher resource requirements and poor application support.

The early versions of OS/2 seriously suffered from lack of device support, especially printer and display drivers. This was the same story as with any non-mainstream OS, a vicious circle of OEMs not willing to support a low-volume platform and customers not willing to adopt a platform not supported by OEMs.

Much has been written about a major strategic blunder that IBM and Microsoft made in trying to make money off of OS/2 development tools. It has been widely publicized that the original development kits cost in excess of 3,000 US dollars. This was a serious hurdle for developers who were lukewarm about OS/2 and weren't certain about its benefit. The high cost was a good reason to stick with DOS. To Microsoft's credit it needs to be said that it did not repeat this error and Windows development kits were cheap and later even free.

The disagreements between IBM and Microsoft led to a situation where each thought it would be better off without the other and the famous divorce ensued. I won't go into details, in part because the details are still shrouded in mystery.

Not so 32-bit OS/2

After the divorce, Microsoft almost immediately started pretending that OS/2 never existed, even though the OS/2 subsystem existed in Windows NT until version 5.0 (Windows 2000, released in 1999). By that time, the development of 32-bit OS/2 2.0 was relatively far along. Microsoft had done fair amount of work on the DOS virtual machines and DPMI support. IBM now took over the development and wondered what to do.

OS/2 2.0 was both new and old, where the old did not necessarily mean bad. It supported brand new flat model 32-bit applications, while retaining an unusually high degree of compatibility with existing 16-bit applications. What's more, OS/2 2.0 was also capable of running most existing 16-bit device drivers. This was an expedient decision as rewriting all drivers would have significantly increased the effort required to release this version.

As a result, the kernel of OS/2 2.0 was very much a hybrid, and this is true of later versions as well. Large parts of the kernel were hand-tuned 16-bit assembler, while other parts (primarily the virtual memory management) were 32-bit and written in C.

Uninformed people tend to believe that this relatively large amount of 16-bit code in supposedly 32-bit OS/2 is clearly a bad thing. Yet things aren't so simple. While 32-bit code has unquestionable advantages when dealing with large quantities and large memory objects, its advantage is much less clear in code that consists largely of calls, branches and loops. 16-bit code is inherently smaller, which improves cache efficiency and lowers the pressure on memory. More importantly, it is hard to match the performance of hand-coded assembly with 32-bit C code. IBM found this on several occasions when replacing existing 16-bit code (especially the window management and graphics engine). Matching the performance of old 16-bit code was not easy at all.

While keeping a high degree of compatibility with 16-bit applications and drivers made good sense around 1991, five years later the equation was different. OS/2 device drivers were notoriously difficult to write and the pool of programmers with 16-bit protected mode experience was rapidly diminishing, if it was ever significantly large to begin with. Similarly the tiled memory layout which created an artificial 512MB barrier in the process address space was not an issue when OS/2 2.0 was released, but caused headaches later when systems with 512MB or more of physical memory became common.

Workplace Shell - The Killer App

The Workplace Shell (WPS) arguably became the distinguishing feature of OS/2, a feature that many former OS/2 users miss in more modern operating systems. Yet many knowledgeable people believe that including the WPS in OS/2 2.0 was a major mistake.

IBM management perhaps felt that the WPS was a good way to put IBM's mark on OS/2 2.0 and clearly differentiate it from Microsoft Windows. While this is true, the WPS was also highly problematic.

Some former OS/2 developers estimate that the WPS delayed the release of OS/2 2.0 for as much as one year. This caused the 32-bit OS/2 to miss the critical window of opportunity before the launch of Windows 3.1. What's worse, the WPS was just not ready for the prime time in early 1992. It was unstable and unreliable, and INI file corruption was something OS/2 users had to learn to contend with (the reliance on fragile INI files is another of the many problems IBM never fixed). On top of that, the WPS considerably increased the memory requirements of OS/2 2.0 at a time when RAM was very expensive.

Perhaps this is why Microsoft released Windows NT 3.1 with an interface that looked just like Windows 3.1, even though it was nothing like it underneath. IBM conceivably could have released OS/2 2.0 with the existing Program Manager (that's what early OS/2 2.0 betas used), thus making the transition from OS/2 1.3 easier.

This is not to say the WPS was all bad. It was a revolutionary user interface, extremely flexible and powerful. But perhaps OS/2 would have been better off with the WPS being included in OS/2 version 2.5 or something like that. For OS/2 2.0, the WPS was a killer app in more ways than one.

The Microsoft Monopoly

It has been firmly established that Microsoft's anti-competitive practices damaged OS/2. By 1992, Microsoft had the OEM preload market sewn up. In the US, IBM had virtually no chance of preloading OS/2 on non-IBM machines. But Microsoft made it difficult for IBM to preload the OS even on its own systems, especially by requiring higher royalty payments for Windows 95. There were brief periods when OS/2 preloads were available in Germany (Vobis and others) but Microsoft took care of that. This deprived IBM of the valuable preload market which is both lucrative and much cheaper to support (it's a lot easier to support 10,000 identical machines than 10 different machines).

On the software side, Microsoft fought hard (and perhaps nasty) as well. Every release of Win32s seemed to mysteriously break Win-OS/2 and IBM had trouble keeping up. People could only wonder whether Microsoft is deliberately doing nasty things to OS/2 or just doesn't bother to test with OS/2, such as when installing Windows 2000 broke the OS/2 Boot Manager for no good reason. Microsoft has a track record of breaking competitors' products (see Windows 3.1, DR-DOS, and AARD code) but proving intent is very difficult or impossible.

Microsoft disparaged OS/2 whenever it could. When reading MS-DOS 6 installation notes which mention "upgrading" from OS/2, one has to but wonder if Microsoft considered installing DOS over Windows NT to be an upgrade as well. It is clear that Microsoft viewed OS/2 as a serious threat. Microsoft knew that if a company the size of IBM was truly serious about OS/2, it could put a major dent into Microsoft's market share.

IBM's Biggest Enemy

Needless to say, the name of IBM's biggest enemy has three letters and starts with 'I'. IBM wasn't really ready to take over OS/2 when it did. Crucially, developing and supporting a mainstream operating system was also somewhat outside IBM's core competences.

IBM is a company built on business-to-business relationships. IBM has a very long experience with and is very good at supporting businesses. What IBM is quite bad at is supporting end users, and they found themselves doing just that following the release of OS/2 2.0. Perhaps the results were bound to be bad.

IBM is also far less focused than Microsoft, and this was especially true in the early 1990s. At that time, IBM was a huge company with many decades of history and hundreds of thousands of employees all around the world. The left hand frequently did not know what the right hand was doing, which often led to frustrated and disappointed customers.

For instance, ordinary people found it impossible to understand why they couldn't buy IBM hardware (PC systems) preloaded with IBM software (OS/2). In reality, Personal Systems Products (PSP) and the PC Company might as well have been separate companies. The PC Company cared about its own profits (which depended on the prices Microsoft charged them for preloads) and not about the PSP.

In comparison, Microsoft was still a relatively young company, very focused and aggressive, led by its original founders. While the IBMers working on OS/2 were very enthusiastic and truly lived and breathed OS/2, saying that the entire company was behind them would be a gross exaggeration.

Power Failure

Quite a few people believe that a major and perhaps the biggest nail in OS/2's coffin was the ill-fated OS/2 for PowerPC project, also known as the Workplace OS (WPOS).

It would be interesting to know what exactly the strategic thinking behind WPOS was. It was a very ambitious project, too ambitious in fact. As one IBMer put it, the WPOS was a solution in search of a problem. It tried to do too much at once - create a largely new software platform on a new and unproven hardware platform.

There is no question that OS/2 for PowerPC was a very modern OS, based on a portable microkernel while retaining compatibility with existing APIs (years later, Apple was rather more successful with doing much the same thing with OS X). The OS/2 side of WPOS was overhauled and modernized, and a number of limitations were removed compared to the then-current OS/2 Warp 3 on Intel. But the PSP division was unable to deliver OS/2 for PowerPC on time, even though in its final stages the project was significantly less ambitious and scaled down compared to the original plans.

The WPOS project cost several billions of dollars and delivered very little. Crucially, this happened perhaps at the worst possible of time when OS/2 arguably still stood a chance against Windows but was losing support from IBM top management. Instead of spending the money and effort on modernizing OS/2 Warp for Intel, OS/2 for PowerPC failed and most of the effort was wasted. It is almost certain that this failure caused the dissolution of the PSP division within IBM. It should be said that the failure of WPOS also had a lot to do with less than convincing attempts to push PowerPC as a mainstream desktop CPUs, which was something completely unrelated to OS/2.

By 1996, IBM had already decided at the highest levels to phase out OS/2. Warp 4 was a last hurrah but as so many things IBM, it lacked direction and focus. The improvements in Warp Server for e-Business notwithstanding, IBM stopped developing OS/2 and no major architectural changes were made. Customers were advised to switch to other platforms, which most of them did by now.

The Score

Twenty years after the release of OS/2 1.0, it is safe to say that OS/2 is no longer a force to be reckoned with. All things considered, OS/2 had a long and not too unsuccessful run. Certainly the pundits who predicted the imminent death of OS/2 since before 1990 must have gotten tired of doing the same thing year after year after year. In 1996 when the game was more or less over for OS/2, few people probably expected that IBM would be officially supporting the platform for another ten years.

Of course the fact that IBM no longer sells OS/2 does not mean that everyone stopped running it. As late as 2005, some large corporations were rolling out new machines with OS/2 installed numbering in the thousands or tens of thousands. These systems will certainly be in service for another year or two.

For some specialized industrial applications, continuing to use OS/2 may be cheaper than switching to another platform. If a company has custom OS/2 based applications which does all it needs to do, a rewrite would be costly with little or no benefit. Adapting hardware requirements to suit OS/2 may be considerably less expensive than switching to a more modern operating system.

Then there are those who will keep running OS/2 simply because they see no need to fix what ain't broken. I know that some holdouts were still using OS/2 1.x in 2004 or even later, well over a decade after the final release.  This could well happen with the current OS/2 version. Especially given that recent OS/2 releases work fairly well in virtual machines and can thus avoid problems with hardware upgrades. OS/2 may be dead but it's certainly not gone.

OS/2 may have failed in the marketplace but it's an important chapter of computing history, and certainly twenty years is a longer than average operating system lifespan. OS/2 pioneered a number of innovations, and even those who never used OS/2 probably benefited from its existence in some small way.