Book Review: Inside OS/2

A Few Decades Late Book Reviews

Inside OS/2, by Gordon Letwin
Microsoft Press, February 1988; 302 pages, ISBN 1-55615-117-9; $19.95

Letwin’s Inside OS/2 was one of the first books devoted to OS/2. What sets Inside OS/2 apart from other OS/2 books published at the time is that it neither teaches how to use OS/2 or how to develop OS/2 applications, nor is it a reference book. Instead, Inside OS/2 explains why the system was designed the way it was designed; in fact, Gordon Letwin was one of the very few people who could have written such a book, having worked as chief architect of systems software at Microsoft.

The foreword to Inside OS/2, written by Bill Gates, is famous for quotes such as “OS/2 is destined to be a very important piece of software”, a valuable reminder that predictions of future events are to be taken with a very large grain of salt.

The book is divided into three parts: The Project, The Architecture, and The Future. The Architecture section forms the bulk of Inside OS/2.

In the Project part, Letwin starts by providing a brief history of DOS, the most significant ancestor of OS/2. This is followed by a brief chapter on the OS/2 design goals, such as multitasking and compatibility with existing DOS-based applications.

The last chapter of the first part is called “The OS/2 Religion” and is arguably the key part of the book. Here Letwin explains the “major architectural dogmas of OS/2”: maximum flexibility, a stable environment, localization of errors, and the software tools approach. A stable environment and localization of errors are each a major departure from the world of DOS, where all system resources were owned by everyone and no one, and errors could go undetected for a shockingly long time. The software tools approach is a reiteration of the classic UNIX “sharp tools” methodology.

The second part of Inside OS/2 explains the architecture of OS/2 in moderate detail: multitasking, threads and scheduling, memory management, interprocess communication, file systems, user interfaces, and more. Most of the concepts were new to  DOS programmers, but many of them were also fairly new in the industry as a whole (multi-threading, dynamic linking). This part of Inside OS/2 was no doubt especially useful for programmers who had experience with application development on other platforms but not on OS/2; at the time the book was published, that was just about everyone.

Letwin doesn’t provide ready-made recipes for using specific parts of the OS/2 API but rather explains why certain features were implemented or what their expected usage is. Many OS/2 APIs are mentioned by name, but no details are given and no code samples are provided; that is a good thing as space isn’t wasted on nitty-gritty details readily available elsewhere.

Inside OS/2 also covers several topics that are rarely, if ever, explained in OS/2 programming literature. These include signals, interactive programs (including Ctrl-C processing), device monitors, and hard error handling. Also included is a good overview of the Family API.

The coverage of device drivers and debugging is very basic and takes up very little space in the book. That is unfortunate, although the topic of device drivers alone might easily require a whole book. Not much more space is devoted to the “3x Box”, the DOS compatibility environment in OS/2. DOS support in OS/2 was technically very interesting, yet at the same time Letwin understandably preferred to explain how to design new OS/2 software rather than how old DOS software was supported.

The final and shortest part of the book deals with the future of OS/2—as usual, a very tricky business. Letwin presents plans for a new file system with enhanced capabilities and a different access protection scheme (ACLs), as well as “OS/2-386”, the 32-bit variant of OS/2 with multiple real mode boxes.

Inside OS/2 is written in a style that is technical yet easy to read—a rare combination. The author is clearly very erudite, but doesn’t try to hide a good sense of humor. Inside OS/2 is a valuable book because it explains why things were designed the way they were designed, rather than listing individual features or detailing which knobs can be turned and how.

The cover of Inside OS/2 deserves a mention. Unusually for technical literature, the cover includes a photo of the author; yet rather than a portrait, it is a depiction of the “Wizard of OS/2”, surrounded by computer technology paraphernalia and bathed in the warm glow of CRTs.

Inside OS/2 is also notable for inspiring Helen Custer’s Inside Windows NT (1993), which in turn spawned the popular Windows Internals series dealing with the architecture and implementation of Windows.

This entry was posted in Books, Microsoft, OS/2. Bookmark the permalink.

4 Responses to Book Review: Inside OS/2

  1. This also represents the end of the ‘old’ Microsoft era as Gordon was part of the 1970′s Microsoft, and as we all know with the hire of Cutler & Co there was a long term shift as Microsoft could now stand independent of IBM.

    I’ve always liked this book as it gives a good overview of OS/2 and does an excellent job of selling OS/2… Even though it was next to impossible to acquire back then..

  2. michaln says:

    I don’t know if Letwin cared one way or another about Microsoft vs. IBM, but you have to wonder if he became “tainted” once OS/2 turned into the product to destroy. And yeah, it’s known (well, Showstopper! says so) that he didn’t get along with Cutler.

    The book is definitely good though… one of the better OS books out there.

  3. Yuhong Bao says:

    Well let’s dig back to PX00307 from 1990, where it was thought that 32-bit Windows extenders was an acceptable substitute to OS/2 2.0. Notice neither Dave Cutler nor Gordon Letwin was in the To: field! I think it should be obvious none of them would consider 32-bit Windows extenders or for that matter DOS extenders to be an acceptable substitute for OS/2 2.0.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>