OS/2 Warp 3 icon

IBM OS/2 2.0 was the world's most advanced GUI operating-system -- in 1992.

Preemptive multi-tasking, threads, 32-bit 80386 paged-mode, 512MB virtual memory for every process, "crash-protection" by separate address spaces, object-oriented GUI, PCDOS emulation, containment of Windows programs and Windows itself, etc.

From ~1993 until ~1999, this author used OS/2 2.1, Warp 3, Warp 4. In ~1993, in terms of technical superiority, OS/2 2.1 was by far the best operating-system, surpassing Amiga OS. By comparison, Windows 3.x was bug-infested garbage.

What this author remembers most about OS/2 is that it was stable, ran fast under heavy load, plenty of virtual memory, its GUI involved manipulating objects (more about this later), useful help documents. Not until MacOS X, based on FreeBSD, did any operating-system seem so well-designed and polished.

This author had a 80486 PC with 8MB memory. With OS/2 Warp 3, system was intentionally overloaded, running Win-OS/2, web browser, games, etc, until swap-space grew to 64MB. Amazingly, OS/2 still ran fast, yet hard-disk was continually thrashing swap-space. OS/2, FreeBSD, MacOS are the only other operating-systems this author has used that can perform under heavy load. What these three OSs share in common is Mach micro-kernel and/or its virtual-memory system.

IBM developed "Workplace Shell" as OS/2's GUI. It had graphical objects for user to manipulate, these objects had properties user could configure. These graphical objects could be programmed with functions, and could communicate or interact with each other (IIRC).

IBM advertised 80386 separate address spaces as OS/2's "crash-protection" feature. OS/2 2.1 could run Windows 3.1 (Win-OS/2) in full-screen or in a window. When (not if) Windows 3.1 crashed, OS/2 would continue running. Win-OS/2 was actually faster than Microsoft's build since IBM used a better C compiler (Watcom IIRC). OS/2 2.1 ran PCDOS programs in virtual-8086 (V86) mode of Intel processors, many PCDOS games could be run in a window.

Much GNU software was ported to OS/2 2.x. Eberhard Mattes ported gcc as EMX GCC. X11 was ported. Running GNU software on OS/2 made some sense as early versions of Linux were clunky in ~1994 (Linux remains clunky [~2021]).

Despite all its improvements, 32-bit OS/2 suffered from PCDOS vestiges and unnecessary limitations. It still had drive letters. It still had equivalent of CONFIG.SYS/AUTOEXEC.BAT. HPFS (High Performance File System) maybe was faster at finding files, but overall wasn't super-fast, and HPFS chkdsk was tortuously slow IIRC. UNIX is smart enough to dynamically adjust its buffer-cache with available memory, but HPFS cache was limited to a fixed size.

OS/2's worst flaw is that it had one message queue shared by all programs. If one program failed to dequeue its message, that message would block the queue, then OS/2 would jam. IBM later claimed a kludge solved it but never really did.

Extinction of OS/2 had many causes, many documented in Wikipedia. IBM wasn't able to think strategically. Any company who tries to sell an operating-system must lure developers, who then lure users. IBM ought to have included all of their developer tools for free, yet instead, IBM asked $~1000 for their C/Set C/C++ compiler plus paid subscriptions to their IBM Developer Connection.

IBM imitated Apple IIGS, busy indicator was a clock, clicking icons draws expanding rectangle with sound fx. Rather than advancing their distinct Workplace Shell GUI, IBM degenerated OS/2 Warp 4 into a look-alike of MacOS that soon could not be installed on newer PCs.

OS/2 is still alive. Hobbes OS/2 Archive was, and still is, the main FTP site to download OS/2 software, still being updated [2020/11], even with recent versions of Firefox.

Screen-pix of OS/2 Warp 3 running FORTH programming language that author ported to OS/2 on author's 80486 PC:

FORTH system screen  FORTH startup on OS/2 with a 64MB (megabyte) dictionary
FORTH system screen  FORTH drawing a Moire pattern on OS/2
FORTH system screen  FORTH drawing color spectrum on OS/2, EPM editor showing code