Discover more from Abort Retry Fail
The History of OS/2
Getting a Divorce
The IBM Personal Computer model 5150 was released on the 12th of August in 1981 for an introductory price of $1565 (roughly $5285 in 2023). For this rather large sum of money the buyer received an Intel 8088 CPU clocked at 4.77MHz, 16K RAM, a tone generator, a 5.25” floppy disk drive, a 63.5W switching PSU, five internal 8 bit ISA slots, and MS-DOS. This machine could be configured with more hardware and higher pricing. While more powerful equipment was available to IBM for use in building this computer, the market was not positioned for it. The microcomputer was an 8 bit market, and those business professionals using micros were typically using either an 8080/Z80 running CP/M or an Apple ][ with its 6502 for VisiCalc, while many home micros were used either with BASIC or with bootable software. Importantly for IBM, MS-DOS had some limited source compatibility with CP/M thanks to source code translators for Intel’s 8080 and 8088 as well as MS-DOS’s nature as an enhanced CP/M clone of sorts. These factors all amounted to a 16 bit machine that could utilize 8 bit components, and an operating system that was easy on developers.
Much of this design was predicated on some rather incorrect assumptions by IBM. They felt that small businesses would buy the majority of 5150s, while the large businesses would continue to use mainframes and dumb terminals. They thought that a few departments in large businesses would put the 5150 to use for local, non-connected work, and they felt that the 5150 would be used for a single task throughout the entire workday (like spreadsheets or word processing). Of course, IBM also thought that they’d only sell around a quarter million 5150s throughout a 5 year product lifespan. This final thought was found to be incorrect before the official release of the machine. On the 11th of August in 1981, IBM held a preannouncement showing of the IBM PC model 5150 the annual ComputerLand Dealers of North America conference at the Toronto Exhibition Center. The dealers present placed orders that almost hit that quarter million figure in just that single day. Another quarter million orders followed on the 12th from other dealers.
These incredible sales figures made the limitations of the 5150 painfully apparent. People wanted more. IBM quickly bumped the base RAM to 64k, and the company released the IBM XT model 5160 on the 8th of March in 1983. The XT further increased base RAM to 128K, added three more expansion slots, added a 10MB HDD as standard, and removed the five pin DIN cassette interface. This model was followed by the XT 286 model 5162 and the AT model 5170. Obviously, IBM PC compatible (more or less) hardware is with us to this day, but MS-DOS is not (except in hobbyist machines or emulators). It was in the Intel 80286 that an opportunity for improvement was found.
With the Intel 8088 or 8086 and CPUs before it, all memory addresses that any software used were mapped to real physical addresses. This isn’t precisely so with an 80286. At boot, an 80286 isn’t too different from an 8086. It’s a 16 bit CPU that uses real addressing. It is, however, faster and it can access more memory (1MB+64k on the 80286 vs 640K on the 8088/8086). The major difference was that after boot, the 80286 could be switched into protected mode. In this mode, memory access wasn’t a battle royale. The CPU had four rings of memory access numbered zero to three where zero is kernel mode, one and two are usually used by device drivers, and three is user mode. When memory is called, it uses a table loaded into memory to select a memory location avoiding competition for RAM. In protected mode, a 286 could access 16MB of RAM. All of this meant that user code couldn’t access the OS kernel or device drivers, more memory was available, and memory was cleanly separated between running applications.
With the launch of the IBM AT and its multitasking capable CPU, IBM promised a multitasking operating system for the system. For this operating system, IBM turned to their software partner Microsoft once again. Bill Gates, however, really didn’t want to make a multitasking operating system for the 80286 which he famously declared to be a “brain dead” chip. The 80386 was released just a year after the release of the IBM 5170 and was an improvement in every way over the 80286. Yet, IBM has Corporate Directives that govern its behavior. Corporate Directive 2 from 1956, signed by Thomas J. Watson Jr, says that when IBM makes a promise to customers it will keep that promise regardless of the cost. IBM didn’t care whether or not the 80286 was a good product; it had promised its customers an operating system that would utilize the features of the 286 and so it would make that OS.
The IBM PC line was under the control of Entry Systems Division with IBM, and it was also this team working with Microsoft on the operating system. As noted in my articles on Windows 1, Windows 2, and Windows 3, Microsoft was simultaneously working on Windows while attempting to keep IBM’s OS their primary concern. IBM’s system was an honest effort by Microsoft, and it was only the hard work and dedication of a few employees that kept Windows alive. The joint development agreement that created this new operating system was entered into on the 10th of June in 1985. For both IBM and Microsoft, a multitasking and protected mode DOS system was attempted under various names. The one that suck was CP/DOS from within IBM (at least as far as I can tell from the JDA). While the product stuck, the name did not. In the mainframe world of IBM, there was the System/360 which ran OS/360. In an attempt to combat both clone makers and the technical limitations of the PC line, IBM was working on the PS/2 (PS standing for Personal System) line of computers which would run OS/2.
From June of 1985 to April of 1987, OS/2 was always coming. The sense that I get from folks within Microsoft working on various teams (at least from what they’ve written) is that OS/2 had become a bit of vaporware much like Windows 1.0 was before it. It was certainly the focus of the systems group, but there were some culture issues between IBM and Microsoft that made development quite difficult and strained. Still, despite the troubles made apparent during development, OS/2 1.0 was announced on the 2nd of April in 1987 with release set for the fourth quarter of that year, a deadline that was met with the release taking place in December of 1987.
This first release was text mode only. The OS did feature an API for controlling video display as well as keyboard and mouse routines. These features circumvented the need for BIOS and direct hardware access which wouldn’t have been possible on the 286 in protected mode. The extended edition (pictured above) also included a database engine, DBM, descended from IBM’s DB/2 which survives as DB2 LUW. It also added Communications Manager which provided multiple 3270 and 5250 emulated sessions for IBM mainframe customers. OS/2 1.0 required a minimum of an 80286 with 1MB of RAM. It supported FAT filesystems with a maximum partition size of 32MB. It provided a 16 bit, protected mode, multi-threaded, text mode, preemptively multitasked operating system with segmented virtual memory support. As a bonus, it supported compatibility with PC-DOS, interprocess communication (shared memory, pipes, queues, semaphores), and dynamic linking. While multitasking, this first version allowed only a single application to be on-screen at any given time. Switching between them was done via
ctl + esc which would bring the Program Selector back to the foreground.
MS-DOS was outrageously popular and successful in the market place. The IBM PC and its clones effectively killed the entire market for CP/M machines. This was great for both IBM and Microsoft, but it made future operating system development incredibly difficult. To have any success at all, OS/2 needed to support MS-DOS applications. So, when running DOS applications, the user was greeted with a single, full screen, foreground DOS session that would not run in the background. OS/2 applications would remain active in the background, but DOS applications could not. The setup meant that the CPU was frequently switching between protected and real mode, so device drivers had to support dual mode operation to limit the number of switches made for performance concerns. To make all of this work on 6MHz 286, both the kernel and the DLLs were written in assembly with optimizations both for speed of execution and for size.
There is a difference between the Microsoft and IBM versions of OS/2 that clearly stems from Bill Gates’ feelings about the 286. In the Microsoft release should the kernel detect an Intel 80386, MS-DOS real mode applications would run via instructions to switch modes between real and protected. In the IBM version this didn’t happen. IBM only implemented the method employed for the 80286 which was to triple fault the CPU, trigger a shutdown cycle, have the motherboard reset the CPU, and have BIOS skip post and jump to a specified memory address immediately following the return of CPU execution. For retro enthusiasts, try to find Microsoft’s OS/2 for your 386.
In November of 1988, OS/2 1.1 was released. This was big despite being a point release. Codenamed Trimaran, 1.1 brought the Presentation Manager to OS/2, increased the supported partition size, added dual boot support, and bumped the RAM requirement to a 3MB minimum. Despite having windows allowing multiple applications to be visible at one time, MS-DOS was still a fullscreen affair.
OS/2 version 1.2 was released in October of 1989 bringing enhancements for the Presentation Manager, adding the High Performance File System (HPFS), adding REXX, and adding installable filesystem support. Version 1.3 was released in December of 1990, and was the first release to be developed by IBM without Microsoft. This release focused on RAM usage reduction and cut the requirement to 2MB. This release also added support for Adobe Type Manager fonts.
Much like Windows 1 and 2, OS/2 wasn’t selling particularly well. Partially, this was due to system requirements. RAM and disk space were both extremely expensive in 1980s, and OS/2 required more than most systems had at the time. The OS came on 1.44MB floppy disks as well, which were still somewhat new (much other software at the time had free 5.25” disks for which one could mail in a request if it didn’t ship on 5.25”). To make matters in the market worse, OS/2 sold at a price of $325 (around $843 in 2023) for the Standard Edition, or $795 (around $2063 in 2023) for the Extended Edition. If one were to have purchased 1.0, they’d at least be able to get an upgrade to 1.1 for free. This pricing isn’t unwarranted given that OS/2 cost nearly a billion dollars per year to develop, which could put total cost of development at around two billion (or around $5.7 billion in 2023). For IBM, the low sales volumes for OS/2 were coupled with low sales volumes for IBM’s PS/2 machines. These machines had switched to a new BIOS and to IBM’s proprietary MicroChannel Architecture bus (as opposed to ISA). In the minds’ at Microsoft, it’s rather easy to imagine that they felt tied to a dying company with IBM having sold just under two hundred thousand copies by November of 1989.
Microsoft invested heavily in marketing Windows 3, and Windows 3 was a massive success. Microsoft’s early Windows products were neither as stable nor as advanced as OS/2, but they were cheaper both in dollars and in system requirements. Additionally, Microsoft rightly viewed other software developers as absolutely crucial to the success of their platform while IBM thought of that same group as just more customers. Microsoft’s marketing game was also substantially better. On a more subjective note, Windows was far easier to use. In Windows, setting up a printer was a simple two step process: install the driver, set any configuration in Control Panel. In OS/2 1.2, a user must install the device driver for the printer, setup a printer queue, create a printer object, associate the device driver with the object, associate the queue with the object, setup the COM port configuration for the serial/parallel printer, use the spool command to direct output to the port, and finally set any optional settings desired.
Initially, IBM saw Microsoft as a valuable partner, and they offered to help Microsoft with a promotional rollout of Windows 3 in exchange for the rights to the software itself (in stark contrast to the DOS deal). Bill Gates didn’t like this at all. His refusal was felt as a sort of betrayal within IBM which led directly to a corporate divorce between the two companies. Their settlement allowed for cross compatibility, the use of each others software technologies developed through September of 1993, and a payment of an undisclosed sum to IBM from Microsoft. Microsoft pivoted from OS/2 to NT which was not included in the divorce agreement. Microsoft’s new system would have more similarity to VMS than to prior OS/2 releases, and IBM would make a wholly new OS/2 2.0 that was fully 32 bit.
OS/2 2.0 was released in April of 1992 (the same month as Windows 3.1) at a price of $195 (about $420 in 2023) while Windows was around $45 dollars cheaper. This was a 32 bit, protected mode, multi-threaded, preemptively multitasking operating system with paged virtual memory capable of running software for OS/2, for Windows 3.0, and for DOS (version 5). This time multiple DOS applications could be run simultaneously in the Workplace Shell (WPS). This version required a minimum of a 386SX and 4MB of RAM. Version 2 shipped with a boot manager for those wanting to multiboot, and it supported object orientation with IBM’s System Object Model. The Workplace Shell was a major improvement over the Presentation Manager of the prior release, and this GUI involved a small deal with Commodore for parts of the look and feel of the system. In return for some of Commodore’s design, Commodore received a license for REXX which was seen in AmigaDOS 2.0. The WPS was object oriented to a degree that still seems cool. Want to print? Drag it to the printer. Want to set a color? Drag the color from the color palette. This version was marketed as a better DOS than DOS, and better Windows than Windows. This is somewhat more than marketing hype. In OS/2, Virtual DOS Machines were preemptively multitasked and Windows applications were run in separate VDMs. As a result, any one DOS or Windows application being run could not interfere with any other DOS or Windows application. This is something that was not true at all for DOS or for Windows themselves. In one of the few good marketing moves for OS/2, IBM installed Microsoft Flight Simulator and started a dozen instances of it concurrently, and they all operated flawlessly.
OS/2 2.0 was more successful than its predecessors. Lotus, WordPerfect, Borland, and Novell along with roughly 250 others all declared their intent to support OS/2 with their products. By October of 1992, IBM had shipped over one million seven hundred thousand copies. While not even in the same ballpark as Windows, this was a serious improvement.
IBM released OS/2 2.1 in May of 1993. This release improved support for non-IBM hardware, added Advanced Power Management support (APM), added PCMCIA support, the Multimedia Presentation Manager/2 (MMPM/2) became included by default, and Windows 3.1 support was added. Version 2.11 SMP shipped in July of 1994 with support for symmetric multiprocessing with support for up to 16 CPUs, and this version was only shipped with SMP hardware. There was a non-SMP version of 2.11 but this was mostly a bugfix release. By the end of 1993, IBM had secured just shy of four percent of the desktop market, but it had begun to claw its way into both the server market and the embedded market.
OS/2 Warp version 3 was released in October of 1994. There were once again updates to the GUI; the most visible of which was a floating dock that reminds me of CDE. This version also brought internet connectivity to OS/2, lowered system requirements, broadened hardware support, and shipped with a basic office suite called IBM Works. This release shipped in two versions. One was nicknamed “Blue Spine” and was a full installation. The cheaper version was “Red Spine” which was intended as an upgrade from Windows 3. Warp also bumped the Windows compatibility to version 3.11. Being an IBM product, OS/2 was also ported to PowerPC with Warp.
Windows 95 completely dominated the OS market following its release in August of 1995. As a result of Microsoft’s clear success, OS/2 Warp 4 didn’t get as much attention as it otherwise would have when it launched in September of 1996. Warp4 improved most areas of the system and it included Java and the JDK, VoiceType, OpenGL, OpenDoc, Win32 compatibility, and Netscape among other packages. IBM also released several dedicated server products: Warp Server (February of 1996) and Warp Server Advanced (September of 1996), WorkSpace on-Demand (November of 1997), and Warp Server for e-Business (April of 1999). By the end of 1996, OS/2 had gained nearly thirteen percent of the server market. Having reached a height of almost five percent of the desktop market, by the end of 1996 OS/2 stood at just over three percent of the desktop market. While OS/2’s dedicated server versions were technically excellent and a good value, NT was rapidly overtaking OS/2, and Linux was rising as well.
The last version of OS/2 was IBM Warp version 4.52 released in 2000 with sales ceasing in 2001. In these later years, most sales were to banks and insurance companies where IBM’s mainframes were common. This customer base leads to some rather amusing finds up to the present day.
IBM doesn’t like to break promises as noted earlier. To this end, IBM granted the rights to continue sales and development of OS/2 to Serenity Systems International under an OEM license. This did not, however, give Serenity Systems full access to OS/2 sources or to internal developer documentation at IBM. While improvements to the product were made, they weren’t enough to make OS/2 competitive in the market. Serenity’s product was named eComStation, and it mostly served IBM’s largest OS/2 customers while they endeavored to find replacement products.
In February of 2015, Arca Noae bought Serenity Systems. Under the development and management of Arca, OS/2 (now named ArcaOS) has seen some modernization. For example, Arca added ACPI, AHCI, NVME support, improved USB support, a package manager that utilizes RPMs, SMBv4, Kerberos, and higher screen resolutions (the limit is 65535x65535x32bpp).
Ultimately, OS/2 didn’t fail for any technical reason. OS/2 was a great product. This was even felt by many within Microsoft prior to the divorce, and OS/2 was used internally for the development of other Microsoft products. The failure of OS/2 was down to IBM’s culture and business practices. IBM didn’t put enough marketing behind OS/2, and they also failed to see the value of independent software developers. Adding to this that IBM’s share in the desktop hardware market was dwindling due to missteps with PS/2 and MCA, IBM ought to have tried to get OEMs onboard to have OS/2 preinstalled and they failed to do so. IBM was a company continuing to operate as though it were the computer market despite this not having been the case for a while.