IBM OS/2

OS/2 Warp 3 icon

IBM OS/2 2.0 was the world's most advanced 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, DOS 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 BSD-based MacOS X did an 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 DOS programs in virtual-8086 (V86) mode of Intel processors, many DOS 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.

Despite all its improvements, 32-bit OS/2 suffered from MSDOS 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.

A GUI similar to OS/2 is XFCE. xfce-panel imitates OS/2 Warp's Launch Pad.

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

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