OS/2's History and Purpose

By Rod Smith
 * Date: 1996

OS/2 was originally developed jointly by IBM and Microsoft as a multitasking successor to DOS for 286 and better CPUs, but version 1.x never really caught on except in a few specialized applications. With version 2.0, Microsoft dropped out of the OS/2 partnership, and IBM promoted OS/2 to a 32-bit OS requiring a 386 or better CPU. This basic configuration has not changed with OS/2 2.1 or 3.0. The upcoming "Merlin" version of OS/2 (probably to be called 4.0 when it's released) will not be tested with 386 CPUs, and at this point it's unknown whether it will work on a 386 system at all.

OS/2 Warp 3.0 is a multitasking, 32-bit, single-user OS for 386SX and better CPUs with 4MB or more of RAM. It is very DOS-like in some ways (such as the commands used in its command-line interface, and the presence of a CONFIG.SYS file), but resembles the Mac in other ways (e.g., the iconic representation of files from the WorkPlace Shell) and has some similarities to other OSes in still other ways (e.g., pop-up menus when clicking on the desktop itself, which are reminiscent of X Windows under Unix). Warp includes a Graphical User Interface (GUI) known as Presentation Manager (PM), and a desktop metaphor for launching programs and manipulating files called the WorkPlace Shell (WPS). The PM bears some resemblance to Windows, though it's not identical. The WPS is similar to Windows 95's desktop metaphor or the Mac's Finder, but is generally more flexible and more object-oriented than either. A Windows version of the WPS is available.

OS/2 Warp 3.0 comes in several versions with varying levels of networking support. The first-released version has only dial-up networking (SLIP and PPP) support. Two other versions, "Warp Connect" and "Warp Server", include client and server capabilities, respectively. The next release of OS/2, code-named "Merlin", will include client networking features in the base package. When used with Windows for Workgroups 3.1, the WfW networking features are disabled under OS/2, though they can still be used if WfW is run from native DOS.

The lower-end versions of OS/2 also come in two versions each, one that includes a re-compiled version of Windows (often called the "with Win-OS/2" or "Blue Spine" version), the other of which requires that the user already have Windows 3.1 in order to run Windows programs from OS/2 (sometimes referred to as the "for Windows" or "Red Spine" version, though neither term is official). The "with Win-OS/2" version sometimes runs Windows programs slightly faster than does the "for Windows" version, and is easier to set up if the user doesn't already have Windows 3.1 installed; but the "for Windows" version is less expensive.

Out of the box, Warp can run OS/2 text-mode, OS/2 GUI, and DOS programs. Windows is a DOS program which Warp can run, and this is how OS/2 provides Windows support - by running Windows on top of its DOS mode. This method of Windows support will not change with Merlin. Note that Windows 95 CANNOT be used to provide Windows program support for OS/2.

Most new OS/2 users should get the original "for Windows" version of Warp. The "for Windows" version is slightly less expensive and will use less disk space than the "fullpack" version. Somebody who's upgrading from OS/2 2.1 fullpack should buy the upgrade package of the Warp "fullpack," which includes a "sniffer" to detect the old 2.1 code, and won't install if it doesn't find this. Somebody who's building a new computer and who doesn't already have Windows or OS/2 2.x, but who wants to run Windows programs, should buy the non-upgrade "fullpack" version of OS/2, which is the more expensive version, but more convenient than buying the "for Windows" version and a separate copy of Windows.

Major OS Features

 * Multitasking: All OSes can be classified according to how they run multiple programs. At one end are simple OSes that can only run a single program at once, or which, at best, place extreme restrictions on running multiple programs. MS-DOS is an example of such an OS. One step up from this level is an OS that does "co-operative multi- tasking," in which the programs involved must voluntarily switch back and forth. Such a system typically multitasks as well as its least cooperative program; one program can easily "hog" the CPU, preventing other programs from running. Windows 3.1 and the MacOS both use cooperative multitasking. The next level up is "pre-emptive multitasking," and this lets the OS dole out CPU time as it sees fit, thus reducing or preventing problems due to one program's selfish hogging of resources.
 * Pre-emptive multitasking allows, for instance, a reliable high-speed file transfer, spreadsheet recalculation, and floppy disk format to all occur at the same time. Windows 95, Windows NT, most varieties of Unix, and OS/2 all use pre-emptive multitasking, though there are variations in implementation details, particularly concerning the multitasking of DOS and Windows 3.1 programs.
 * Some OSes, including some but not all varieties of OS/2, can also handle symmetric multi-processing (SMP) computers, in which more than one CPU is present. In these systems, one program can run on one CPU while another runs on another.


 * Multithreading: This concept is similar to multitasking, but involves only a single program. In an OS which allows multithreading, a single program can create multiple "threads" of execution in order to improve responsiveness. For instance, a word processor might create a thread for printing a document and then allow you to immediately return to editing the document even while the word processor is still formatting the text for the printer. Note that the OS ENABLES multithreading, but to be useful this feature requires applications that utilize the feature. OS/2, Windows 95, and Windows NT all enable multithreading for native applications, but not for "legacy" Windows 3.1 or DOS programs (unless these programs implement the feature internally).


 * Process protection: In some OSes (such as Windows 3.1), one program can write into memory reserved for another program, or sometimes even the OS, thus crashing the other program or the OS as a whole.
 * OS/2, as well as Windows 95, Windows NT, and most Unixes, includes a method to prevent this from happening. This system is imperfect, but it does work most of the time. OS/2 extends this protection to DOS programs, and can prevent Windows programs from damaging DOS or OS/2 programs. Normally, Windows programs can still damage each other under OS/2, but by running Windows programs in "separate sessions," this protection can be extended to them, as well. Windows NT's level of process protection is roughly comparable to OS/2's, while Windows 95's is comparable only for native Windows 95 programs; it's my understanding that Windows 3.1 and DOS programs run under Windows 95 can still do considerable damage much more easily than they can under OS/2.


 * The "64kB limit.": Because of its 32-bit address space, OS/2 programmers needn't worry about the so-called "64kB limit" imposed by DOS's history. Under DOS, a single data structure is limited to 64K by the 16-bit memory addresses used by DOS, unless a 32-bit DOS extender is used. This 64K limit can be a pain to programmers, though end users needn't ordinarily worry about it. In fact, "32-bit" has been over-hyped by the media. Although some programs may get a speed boost from being 32-bit, others may win a speed decrement if re-coded as 32-bit. Thus, the 32-bit address space is mostly a concern for those doing programming using large data structures. It should be noted that the new Intel Pentium Pro processor wins a speed increment for 32-bit code but a decrement for 16-bit code, compared to a similarly-clocked Pentium processor. Thus, OS/2 users who run mostly native 32-bit OS/2 programs can benefit from the Pentium Pro, but people running DOS/Windows, or even Windows 95 (which contains a substantial amount of 16-bit code internally) may not. Windows NT and most Unices are mostly or completely 32-bit internally and run 32-bit native programs.


 * The "640kB limit.": OS/2's memory architecture also obliterates the so-called "640kB barrier" imposed by DOS. While DOS programs are still limited to less than 1MB of RAM directly (plus whatever EMS, XMS, or DPMI memory they need), OS/2 itself is not so limited. The main upshot of this is that an OS/2 user need not juggle device drivers endlessly to maximize the available main memory. For many devices (such as CD-ROMs), OS/2 gives DOS programs access to the device without explicitly loading a DOS device driver, assuming that an OS/2 device driver is used. Windows 95 is a bit of a cross on this issue; when using native drivers, the 640kB barrier isn't much of an issue, but when using older DOS drivers it is. Windows NT and most Unices are pretty much immune from the 640kB limit, as well.


 * DOS settings: Many DOS and Windows programs require special drivers or other commands in CONFIG.SYS or AUTOEXEC.BAT, and these commands or drivers sometimes interfere with other programs, creating a problem for the user. OS/2 allows the user to specify a unique AUTOEXEC.BAT file and assorted settings that influence the way OS/2 runs the program, thus giving the user great flexibility in running individual DOS programs, and even in running several programs with conflicting requirements simultaneously. Windows 95, Windows NT, and Unices (when they support DOS programs at all), by contrast, are much more limiting in this respect. Windows 95 may produce better results in running some finicky DOS applications individually by shutting itself down into a dedicated DOS mode, but in terms of customizing settings for specific DOS programs, OS/2 is the most flexible OS available.


 * Filesystems: Hard disks must be organized using a disk-spanning data structure known as a "filesystem," which allows the OS to locate specific files. The filesystem used will have an important impact upon system performance and features -- the filesystem determines, for instance, the rules for naming files and the granularity of disk space allocation (e.g., is disk space allocated in 0.5kB chunks, 2kB chunks, etc.).
 * To most people, FAT is the most familiar filesystem, but it isn't a very good one; it includes too many limitations and design problems, some obvious to the user (like the so-called "8.3 filename limit") and others not (like increasingly large disk space allocation units with increasing partition size, which can end up wasting 30% of a 1GB or larger disk's available space). While OS/2 can use FAT, it includes the optional HPFS filesystem, which offers long filenames, a constant 0.5kB allocation block size, better speed, and greater reliability relative to FAT. DOS and Windows programs can run on HPFS partitions from OS/2, but will still suffer from the 8.3 filename conventions of DOS. While switching from FAT to HPFS isn't necessary for OS/2 users, such a switch is often quite beneficial. Other OSes offer other filesystems; for instance, Windows NT offers NTFS, which is quite similar to HPFS in many ways; and Linux uses ext2fs. Windows 95 uses something called VFAT, which is basically FAT with long filename support. Recent systems with Windows 95 preloaded may use VFAT-32, which offers relatively small 2kB allocation block sizes on most hard disks.


 * Networking: Most OSes these days offer some form of networking support. As described above, OS/2 Warp 3.0 comes in different versions with varying levels of network support, though Merlin is slated to simplify matters considerably, bundling client networking capabilities in the base OS.


 * Multimedia: Most OSes today can handle multimedia applications ranging from simple sound playback and recording to full-motion "movies" and dynamic 3-D displays. OS/2 provides the necessary underlying OS components for multimedia support, in the form of MMPM/2. Aside from playing sounds, however, there are few OS/2 programs that utilize multimedia in any substantial way, though this is slowly changing. Most Windows multimedia titles will run under OS/2, though some (particularly those which use MIDI file playback) may produce somewhat "jerky" timing. Integrating the Windows sound card drivers is the weakest point in the OS/2 multimedia link. Because most of the home multimedia titles are aimed at the masses, these titles do work best under Windows 3.1 or Windows 95. Some Unixes do provide native multimedia support, but these OSes generally don't run Windows multimedia titles very well, if at all.


 * Desktop Shell: OS/2's WPS provides a unified method of access to programs and files, something like the Mac's Finder. The WPS is very flexible and extensible, both by the user and by programmers. The main drawback to this flexibility is that it increases system overhead, slowing down certain operations.
 * Windows 95 includes a similar, but not as flexible, user interface, and Windows NT 4.0 introduces this interface for NT. Unix X Windows servers vary considerably in their details.


 * Voice recognition: The vast majority of computer users today give commands to their computers primarily via the keyboard and/or mouse. Emerging technologies are making it possible to use the human voice to accomplish this task, however, as well as to dictate directly into a computer application. While such features can be added to many OSes today, the next version of OS/2 (code-named "Merlin" and due out in late September, the last I'd heard) will include it in the base OS. No matter what OS is used, however, speech recognition will require either specialized add-on hardware or a fairly high- end computer. Merlin will require at least a Pentium-90 with 24MB of RAM, for instance, to accomplish voice dictation, with lesser requirements for voice commands.

These, then, are some major OS features, and where OS/2 fits in on them. As you have probably gathered from this, modern OSes are more alike than unlike on most of these features. For a more direct comparison of OS/2 to Windows 95, see that section. If OS/2 sounds appealing by these measures, then score a point for the "yes" vote to "should I buy OS/2?". Somebody who just uses a computer to run, say, a word processor, and absolutely nothing else, is less likely to be drawn to OS/2, though, since these features offer relatively few advantages to such a person. Somebody who wants pre-emptive multitasking, or who runs lots of DOS programs that require conflicting configurations, may find OS/2 tantalizing. That may not be reason enough to buy it, though....

This is the theory behind OS/2's design. The practice is often less rosy, since there can be device driver conflicts, incompatible hardware, and a considerable learning curve in setting up an OS/2 system optimally. For whatever reason, some people find OS/2's promises of crash protection, better multitasking performance, or whatnot to be only partially fulfilled. This is sometimes the result of flaky or incompatible hardware, sometimes the result of a non-optimal configuration, and sometimes the result of bugs within OS/2. Unfortunately, the only way to know how well OS/2 will work for you is to try it, though at least some hardware problems can be caught before picking up the box (see the hardware section). Configuration problems can often be worked out by getting help on the net. In this respect, somebody who's unwilling to take some time optimizing and possibly debugging a system should probably avoid OS/2 - though such a person should also avoid DOS/Windows or Windows 95 if s/he is new to the PC world, since these configurations can be as difficult to a PC newbie. Such a person should view Unix as the bubonic plague.

It should be noted here that occasional incompatibilities or driver bugs will prevent OS/2 from even installing correctly. In many cases, these problems can be overcome by obtaining updated drivers. These are generally posted on the Cincinnati Team OS/2 Update List (the first choice for this), the IBM Europe device driver repository, software.watson.ibm.com, ftp-os2.nmsu.edu, and ftp-os2.cdrom.com, as well as various BBSes. Driver problems have been reported with IBMKBD.SYS, IBM1S506.ADD, just about every SCSI driver known, and others. If you press while the white square and "OS/2" are visible in the upper left corner of the screen when booting the OS/2 installation disk, OS/2 will print the name of the driver it's loading, so you can track a driver that simply hangs your system. It's important to note, however, that while problems exist with many drivers, they're uncommon with most drivers.