VOICE Home Page: http://www.os2voice.org | September 2001 [Newsletter Index] [Previous Page] [Next Page] [Feature Index] editor@os2voice.org

##
An OS/2 History Lesson: The Early Years

By Michal Necasek © August 2001

In the last issue I provided a brief description of the wonders offered by Microsoft/IBM Operating System/2 version 1.3, the last 16-bit version of OS/2, released ten years ago. This time I will again set out on a journey against the course of time and take a look at the OS/2 developments that took place in 1988-1990.

#### OS/2 version 1.2

In late 1989, IBM and Microsoft released OS/2 version 1.2. This was a very important event in the history of OS/2 because version 1.2 finally implemented all (okay, most) features promised for OS/2 before it even appeared. Since 1.0, programmers were forewarned not to rely on the 8.3 naming convention present in the FAT filesystem and not to parse file names themselves. In OS/2 1.2, IBM and Microsoft finally realized the threats and added support for Installable File Systems (IFSs) and supplied the first incarnation thereof, the High Performance File System (or HPFS for short).

HPFS was designed from the ground up by Gordon Letwin, Chief Architect of OS/2 at Microsoft. This new filesystem overcame pretty much all the annoying limitations of the FAT filesystem. Among the major features of HPFS were:

- No 8.3 file name limit. File names could be up to 255 characters long and the set of acceptable characters was wider than in FAT - it included the space for instance.
- Support for Extended Attributes. Each file or directory could have up to 64K of Extended Attributes associated with it. Any kind of information could be stored there, such as program icons, descriptions, cataloging information etc.
- Support for large disks. While FAT volumes can only be 2GB large, HPFS supports up to 64GB volumes, although this support was severely limited by the disk drivers at the time.
- Resistance to fragmentation. While FAT drives need to be regularly defragmented to prevent sometimes very noticeable loss of performance, HPFS tries to allocate contiguous space for files, keeping fragmentation to minimum.
- Minimal allocation waste. The largest sized 2GB FAT volumes allocate space in 64KB clusters, leading to massive disk space waste (easily 50%), whereas HPFS allocates 512 byte sectors, thus minimizing the losses.
- Very high damage resistance. If the FAT table on a FAT volume gets destroyed, all the rest becomes a pile of useless junk because the allocation information is 100% concentrated in the FAT. HPFS on the other hand duplicates some of the information and keeps the disk structures doubly linked (ie. linked in both directions). This assures that if one area of the disk gets damaged, the data loss will be localized to that area of the disk. Even if a directory sector dies for instance, the files in that directory will be recovered.

There were two versions of the HPFS filesystem available: the "plain" HPFS and HPFS386. The latter was included with Microsoft LAN Manager (and IBM LAN Server), was considerably faster, allowed much larger cache sizes and had several extensions suitable for servers, such as built in Access Control List (ACLs) or directory limits. Moreover, it was specially enhanced performance-wise for file server use. I have seen some hints that Letwin actually wrote HPFS386 first and the "lite" version of HPFS was based on that. The story goes that IBM and Microsoft saw that FAT just wouldn't do and decided to write a new filesystem. Each of the companies developed their own filesystem and then they benchmarked them to see which was faster. HPFS won. Unfortunately it turned out that it was the 386-only version written in assembler and after rewriting it in C so that it could be used on 286s as well, it was no faster than IBM's filesystem.

It is interesting that FAT was known to be more of a liability than an asset even in the 1980's but Microsoft is still selling it with its Windows 9x line many years later (an eternity in computer time). They have removed some capacity and naming limitations but other problems such as extremely low damage resistance remain completely unaddressed. The problem with FAT is that it was designed for floppies - it was developed by Bill Gates and Marc McDonald in 1977. "When applied to fixed disks, however, the FAT began to look more like a bug than a feature", to quote an article by Ray Duncan (author of several excellent books on DOS and OS/2 programming) published in September, 1989 issue of Microsoft Systems Journal.

But let's get back on topic. OS/2 1.2 also had a new look and feel - which happened to be the same as in OS/2 1.3. Hence I didn't make quite as many screenshots as last time because I would only repeat myself. It is perhaps useful to note that this look and feel was nearly identical to that of Windows 3.0, released a few months after OS/2 1.2. The Presentation Manager itself underwent some changes internally and the API was slightly changed since OS/2 1.1, but changes between 1.2 and 1.3 were negligible. Hence many applications later required either OS/2 1.2 or 1.3, but often wouldn't run on 1.1.

Before I present the screenshots I'll briefly describe the test hardware. This time it was a Celeron 300A with 64MB RAM, ATI Rage 128 AGP card and a 4GB IDE harddrive. Installation was not as smooth as with OS/2 1.3 because one of the base drivers (KBD$) was trapping. Fortunately the trap screen (also known as the Black Screen of Death) provided me with enough information to patch the device driver and fix the crashes. The trap was apparently occurring due to a "too fast" CPU, as I didn't have this problem on another machine equipped with an appropriately antiquated 386DX/20 CPU.

The version I installed was actually IBM OS/2 1.2 EE (Extended Edition) but I will not describe the EE components here. As I mentioned previously, OS/2 1.2 looked very much like 1.3 and there were very few differences. You can see for yourself - here's the Desktop Manager:

IBM's OS/2 1.2 also came with a set of tutorial programs for the EE components as well as for the base OS. Here's what the tutorials looked like:

I believe MS OS/2 did not include any tutorial program but I couldn't verify that, not having access to MS OS/2 1.2.

The similarity between OS/2 1.2 and Windows 3.0 was really striking. In case you already forgot what Windows 3.0 looked like, here's a reminder:

The color scheme was very similar and some of the icons were identical, as well as the fonts. The big difference between OS/2 and Windows was that Windows 3.0 ran on top of DOS and in fact could even run inside the OS/2 1.2 compatibility box (the Windows 3.0 README describes this). The other difference was that Windows came with a vast array of drivers compared to OS/2 as well as a wide range of applets (mostly useless, except for Solitaire of course). OS/2 was much more businesslike and felt somewhat bare in comparison.

Compared to OS/2 1.3, version 1.2 really wasn't very interesting. The feature set was nearly identical as well as the visual appearance. So let's leave OS/2 1.2 behind and delve further into the past, where OS/2 1.1 looms large.

#### Intermission

But before we get to OS/2 1.1, here are two interesting bits of information (or at least interesting rumors) I gleaned from books about Microsoft, namely The Microsoft File and Barbarians Led by Bill Gates (in that order) concerning the OS/2 1.1 and 1.2 era.

The first interesting fact/rumor is that in late 1989, after learning Microsoft's plans for Windows and (non-plans) for OS/2, Jim Cannavino (head of the Personal Systems division at IBM) proposed to kill OS/2 and buy a 40% stake in Microsoft, after determining that the future of OS/2 looked bleak. IBM's CEO John Akers (lucky for us) refused, and one good reason was that IBM had serious doubt the FTC (Federal Trade Commission) would approve of that. So instead, IBM decided to "fix" OS/2 and compete head on with Microsoft. In fact FTC tried to accuse IBM and Microsoft of collusion after they announced in 1989 that IBM's OS/2 would cover the high end market and Microsoft Windows the low end. This accusation was soon revealed as completely unsubstantiated after the Microsoft - IBM "divorce" in 1990 (and then the FTC concentrated its attention solely on Microsoft).

The other somewhat shocking piece of information is that in 1987-1988 Microsoft really was seriously behind OS/2 and wanted to kill Windows. Windows 2.0 would be finished as a platform for Excel but no new versions would be developed. But then some enterprising Microsoft programmers "secretly" converted Windows to run in protected mode as their own pet project and after showing the results to Steve Ballmer and Bill Gates, it was decided to continue the development of Windows. When Windows 3.0 turned out to be a hit in 1990, Microsoft decided that they didn't want to split their profits with anyone else after all and dumped IBM.

I am not trying to claim that any of the above is true. I personally think it doesn't sound too unlikely but I'm not going to try to convince anyone.

#### OS/2 version 1.1

OS/2 1.1 was a major release of OS/2 which appeared in late 1988. The only reason why it wasn't called 2.0 was probably that the GUI had been promised for version 1.0, but wasn't finished in time. The GUI was called Presentation Manager (or PM for short) - almost everything in OS/2 1.x was called "Manager" if you haven't noticed - just by the way, the name Windows 1.0 was developed under was Interface Manager but the Microsoft marketers changed it later, despite protests from programmers.

Presentation Manager was codenamed Winthorn (you can hear Windows there) and I believe it was developed primarily at the IBM Hursley Labs in UK. It was a cross between Microsoft Windows and IBM's mainframe graphical system (GDDM). The programming paradigm strongly resembled Windows - just like Windows it was message based and many of the messages were even identical. But there was a number of significant differences as well:

- Perhaps the first difference programmers noticed was the different coordinate system. While in Windows the 0,0 coordinate was located in the upper left corner (which is logical if you know how PC graphics hardware works), in PM it was in the lower left corner (which is logical if you know how the coordinate systems in math or physics work).
- In Windows all drawing operations went to the Device Context (DC). PM also used DCs but there was an added level of abstraction called Presentation Space (PS). This allowed for much higher flexibility.
- OS/2 had much more powerful drawing functions in its Graphics Programming Interface (GPI) - that was the mainframe heritage. Some of the GPI concepts (like transforms) were later incorporated into Windows NT, but not Windows 95.
- The OS/2 programming model was much cleaner. There was no need to explicitly export the window procedure, no WinMain, no nonstandard function prologs and epilogs. It didn't feel like a hack.

These and other differences meant that porting programs between PM and Windows was not trivial. Of course, in the late 1980's Microsoft was encouraging ISVs to develop for the Presentation Manager. Interestingly enough, Microsoft released PM versions of Excel and Word relatively late - in 1991, at the time when they were already abandoning OS/2.

This could be a conspiracy on Microsoft's part - but I find the explanation given in Barbarians Led by Bill Gates much more credible: Microsoft programmers started writing Windows versions of Word and Excel (remember, Mac versions had existed before that) around 1986-7. At the time they were expected to begin working on OS/2 versions, the Windows versions were nearly done. They simply refused to throw out all they had and rewrite the applications for PM. And when they finally got around to the PM versions, it was already too late. No conspiracy, just a simple lack of organization and clear strategy which happened to work in Microsoft's favor. One proof of the disorganization at Microsoft is that Microsoft's languages division was 100% behind OS/2 - all the "professional" Microsoft compilers (assembler, C, Pascal, FORTRAN, BASIC, COBOL) released between 1988 and 1991 fully supported OS/2 (even if the entry level "Quick" versions were DOS only). Similarly Microsoft's networking efforts were based largely on OS/2 and after abandoning OS/2, Microsoft had no network server software and had to continue selling OS/2 1.3.

But I digress again (can't help it, sorry) and I'd better get back on topic. On the non-GUI side OS/2 1.1 finally implemented named pipes (a mechanism of interprocess communication) which didn't make it into OS/2 1.0. Also added was support for "large" FAT volumes - OS/2 1.0 only supported 32MB volumes just like versions of DOS before 4.0. The "BigFAT" support in OS/2 1.1 could handle volumes up to 2GB in size.

The flavor of OS/2 1.1 I played with was an OEM version (Zenith) of Microsoft OS/2. It came on five 3.5" HD floppies. My test machine was the same as for OS/2 1.2 and I also had the same problem with KBD01.SYS crashing which I fixed in an almost identical manner. For some reason OS/2 1.1 did not work with a Matrox G400 card (the monitor was getting out of sync) but worked fine with the ATI Rage 128 AGP.

The GUI in OS/2 1.1 would certainly not win any beauty contest - one reason was perhaps that it was designed with old graphics cards like CGA in mind. The look and feel strongly resembled Windows 2.x. After bootup the users were greeted with this screen:

You can see the DOS session icon in the lower left corner, next to the Print Manager icon. Note that OS/2 1.1 only supported monochrome icons (1.2 fixed that). The icon in the lower right hand corner is the minimized Task Manager.

The third icon on the left is my own creation:

The PM Camera program I used to get OS/2 1.3 screenshots unfortunately crashed under OS/2 1.1 (and 1.2 as well actually). A brief search for an 1.1-compatible alternative came up with nothing (no big surprise there), so I decided to spend a little while and write some quick and dirty utility on my own. I used a sample program from Charles Petzold's book Programming The OS/2 Presentation Manager (this book was written for OS/2 1.1) as a basis and then considerably extended it (primarily to allow hot key activation and saving of the captured bitmaps). I must say that next to the Print Manager icon, which appears to be drawn by a 5-year-old, my "screen captor" icon (I called the program PM Pentax after my real-world camera) looks positively slick - or at least drawn by a 10-year-old. I strongly suspect that my screen capture applet will be the last program ever written for OS/2 1.1.

The really neat thing about the PM Pentax program though is that it works well on anything from OS/2 1.1 (model 1988) up to OS/2 4.5 (model 2000). It has no problem capturing 16-color 640x480 desktop and flawlessly handles a 1280x1024 high color desktop as well. I find that pretty amazing. It sounds almost as if someone put some forethought into designing the Presentation Manager.

For comparison, here is what Windows 2.1 looked like:

Although it is hard to believe, Windows 2.1 used even uglier color scheme than OS/2 1.1. I find the background color really ghastly. But you can see that all the GUI controls were very similar or identical to the ones used in Presentation Manager. No wonder given that both GUIs were worked on by Microsoft.

Anyway on to more screenshots. Similarly to the later versions, OS/2 1.1 provided a File Manager program:

As you can see, it was not appreciably different from the File Manager supplied with the later versions of OS/2 1.x. Similarly the Control Panel was almost identical to the 1.2 and 1.3 versions, only it used the uglier GUI controls:

OS/2 1.1 was even equipped with some online help (invoked by hitting F1 no less!), but the help viewer was not the same as the Information Presentation Facility introduced in OS/2 1.2 and not nearly as helpful (no search capability for instance):

There were no online books supplied with OS/2 1.1. That had to wait for 1.2.

As is obvious by now, OS/2 1.1 was pretty boring. There were two "demonstration" programs included - perhaps with the intent to make it a little less boring. One of them was a simple alarm clock:

As you can see, it was not terribly fancy. It was probably designed to show off some PM capabilities such as the GUI controls and timers. That seems trivial today but certainly wasn't in 1988, when DOS was still the king of the IBM-compatible world.

The only really nice looking program was the other demo program, called Microsoft Bricks:

It was a GUI clone of the classic Breakout game. It came with several background "brick walls" to make it more interesting. What unfortunately totally spoiled it for me was the fact that it was way too fast on the 300 MHz machine (it was written at a time when a 20 MHz machine was very high end). Or maybe I'm just getting old and my reflexes aren't what they used to be, it's hard to tell.

Strangely enough, OS/2 1.1 did not come with a GUI editor, not even a simple Notepad-like one. It did come with an editor however - it was called E.EXE but only ran in fullscreen text mode and slightly resembled TEDIT:

At any rate OS/2 1.1 was a very interesting piece of software technically, if not visually. I believe it was much more advanced than any other operating system available for personal computers at that time. Both Windows and MacOS were certainly no match for it technically - neither had features like preemptive multitasking, multithreading or virtual memory.

But in the end, it's not the technical merits that matter. OS/2 1.1 certainly had drawbacks too. It supported the major graphics hardware standards (CGA, EGA, VGA) but beyond that the support was rather thin. Printer support was pretty pathetic - OS/2 1.1 only supported a few IBM printers and plotters and that was it. No HP, no Epson, nothing like that. For some strange reason, certain things haven't changed much since then...

Also the resource requirements of OS/2 1.1 were considered fairly heavy for the time. The recommended amount of RAM was 3MB - that was certainly a lot when most PCs had one or two MB. Plus it gobbled up about 8 megabytes of disk space - again, a lot at a time when 40MB harddisks were considered large.

But just like with the other versions, OS/2 1.1 found some happy users. Few of them have been running OS/2 ever since (not me, I met OS/2 much later, only after suffering Windows for a while).

#### Acknowledgements

My description of HPFS is partially based on article by Ray Duncan that appeared in September, 1989 issue of Microsoft Systems Journal.

The "seed" for my screen capture program was one of sample programs from the book Programming The OS/2 Presentation Manager by Charles Petzold, published by Microsoft Press in 1989.

My thanks go to the OS/2 old-timers and not-so-old-timers who provided me with stuff to write about. They are John Martin Alfredsson (Sweden), James E. Burke, Jr. (USA), Vitus Jensen (Germany), David W. Noon (USA), Paul Ratcliffe (UK), Nino Solazzo (Italy?) and Illya Vaes (The Netherlands) - if I have forgotten anyone I sincerely apologize. OS/2 has apparently found followers all around the globe. Special thanks go to Marc L Cohen for providing some interesting insider information.

Barbarians Led by Bill Gates was written by Jennifer Edstrom (daughter of Pam Edstrom of Waggener Edstrom, Microsoft's PR firm) and Marlin Eller (an ex-Microsoft programmer, one of the original Windows developers). This book was published by Henry Holt in 1998. Interestingly enough, this book has been accused of being both pro-Microsoft and anti-Microsoft, which in my opinion greatly increases the probability that it is true.

The Microsoft File: The Secret Case Against Bill Gates was written by Wendy Goldman Rohm and published by Random House in 1998 (was 1998 a bad year for Microsoft or what?). This book quite obviously wasn't written to further the glory of Bill Gates and Microsoft and spills many of the dirty little secrets.

All this information is accurate to my knowledge. I never actively used OS/2 1.x, hence there are bound to be omissions or errors in the text. If you were around in the 1.x days and have some extra information (or some interesting old software), I will welcome any comments at<MichalN@prodigy.net>.

[Feature Index]
editor@os2voice.org
[Previous Page] [Newsletter Index] [Next Page]
VOICE Home Page: http://www.os2voice.org