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.