The Struggle for Attention—OS/2 tries but largely fails to attract users
OS/2 1.2 and 1.3 were developed at a time when the relationship between IBM and Microsoft was becoming severely strained. In late 1988, Microsoft started working on NT, initially developed as NT OS/2 (also known as as “Portable OS/2” on the IBM-Microsoft product roadmap) and ultimately released as Windows NT. At the same time, work was underway on a 32-bit OS/2 version (initially referred to as OS/2 386), eventually released by IBM as OS/2 2.0.
OS/2 1.1 was not nearly as successful as Microsoft and IBM had hoped and it was unclear how to proceed. The initial plan was to de-emphasize Windows in favor of OS/2, but Microsoft was reconsidering that decision when OS/2 failed to sell in large numbers. IBM, on the other hand, had nothing to gain from Windows and continued to push OS/2. At any rate, both companies continued developing OS/2.
In late 1989, OS/2 1.2 was released. In some ways it was what OS/2 1.0 should have been, or at least implemented all the major features that IBM and Microsoft had been promising since mid-1987. The GUI was much improved and had a much cleaner and more modern look (later used by Windows 3.0). A major addition to the OS kernel was the support for installable file systems, or IFSs. The first IFS which shipped with OS/2 was HPFS, the High-Performance File System.
HPFS was designed from the ground up by Gordon Letwin, the Chief Architect of OS/2 at Microsoft. The new filesystem overcame most of the limitations of the FAT filesystem and made OS/2 more practical for use as a server system. 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 larger than in FAT—among others, it included the space character.
- Support for Extended Attributes. Each file or directory could have up to 64K of Extended Attributes (EAs) 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 up to 2GB large, HPFS supported up to 64GB volumes, although this theoretical limit was severely restricted by the disk drivers at the time.
- Resistance to fragmentation. While FAT drives needed to be regularly defragmented to prevent sometimes very noticeable loss of performance, HPFS tried to allocate contiguous space for files, keeping fragmentation to a minimum.
- Minimal allocation waste. The largest-sized 2GB FAT volumes allocated space in 64KB clusters, leading to massive disk space waste (easily 50%), whereas HPFS allocated 512 byte sectors, thus minimizing the losses.
- High damage resistance. If the FAT table on a FAT volume was destroyed, the remaining data became a pool of digital goo because all of the allocation information was stored in the FAT. HPFS, on the other hand, duplicated some of the information and kept the disk structures doubly linked (i.e. linked in both directions). This scheme guaranteed that if one area of the disk was damaged, the data loss could be localized to that area of the disk. Even if a directory sector was damaged for instance, the files in that directory could still 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) and directory limits. Moreover, it was specially enhanced performance-wise for file server use.
There are rumors that Letwin in fact wrote HPFS386 first and the “lite” version of HPFS was derived from that. Both IBM and Microsoft clearly saw that FAT just wouldn’t do and decided to write a new filesystem. Each of the companies developed its own filesystem and then both were benchmarked to determine which was faster. HPFS won. Unfortunately it later 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 prototype filesystem.
It is interesting that FAT was known to be more of a liability than an asset even in the 1980s, but Microsoft stuck with it well into the 1990s and beyond. The problem with FAT is that it was designed for low-capacity floppy disks—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 (the author of several excellent books on DOS and OS/2 programming) published in the September, 1989 issue of Microsoft Systems Journal.
The test system for OS/2 1.2 was again a Celeron 300A with 64MB RAM, ATI Rage 128 AGP graphics card and a 4GB IDE harddrive. OS/2 1.2 had the same problem as the earlier versions with KBD01.SYS crashing; the problem was fixed in much the same manner. Apart from that hurdle, the installation was smooth. After installation, users were greeted by the face-lifted Desktop Manager:
The similarity with Windows 3.0 (released several months after OS/2 1.2) was unmistakable:
Many of the fonts, icons, and GUI widgets were identical and the color scheme was very similar. 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 mentioned that feature). The other difference was that Windows came with a large selection of device drivers compared to OS/2’s spartan device support, as well as with a wide range of applets (of questionable utility, apart from Solitaire). OS/2 was much more businesslike and felt somewhat bare in comparison. That may have been one of the reasons why Windows gained much wider acceptance among end users.
The success of Windows 3.0 was the final blow to the IBM-Microsoft partnership. In the mid-1980s, Microsoft knew they needed IBM, or at least couldn’t compete against a different company blessed by IBM. In 1990, Microsoft felt increasingly constrained and at the same time strong enough to continue on their own. Therefore Microsoft focused on Windows 3.0 and NT, while IBM continued developing OS/2. Microsoft still had numerous OS/2 related projects in the works (LAN Manager, SQL Server, etc.) but the platform strategy was now firmly centered around Windows.
OS/2 1.3 was developed primarily by IBM. There were no major new features, in part because OS/2 2.0 was looming large on the horizon. The code was straightened out and slimmed down, reducing memory requirements and increasing performance. IBM was still selling OS/2 with PS/2 machines, preferably in large batches to corporate customers, and it was business as usual.
In the Microsoft camp, things were rather more interesting. The long-term strategy was clearly all-Windows, but that posed serious short-term difficulties. Microsoft needed a platform for their server products, LAN Manager and SQL Server. DOS was clearly not viable for that purpose and Windows NT was a long way off (eventually released in mid-1993). In the interim, Microsoft needed OS/2 even though it was now an “enemy” product. The project known as codename Tiger was Microsoft’s version of OS/2 1.3, sold by Microsoft directly instead of through OEM channels (as the case had been with previous releases of MS OS/2 and MS-DOS.
Because Microsoft’s OS/2 1.3 was primarily intended as a server platform for LAN Manager, Microsoft developed a new disk driver architecture called LADDR. That made it easier to support the new crop of advanced disk controllers, mostly using SCSI. LADDR was the only significant difference between the IBM and Microsoft releases of OS/2 1.3.
IBM released OS/2 1.3 SE on November 30th, 1990, with the EE version scheduled to follow on December 31st. Among the new features was increased performance and reduced memory consumption (2MB RAM minimum, compared to 2.5 MB for OS/2 1.2), REXX scripting language support in both the SE and EE versions, Adobe Type Manager (ATM) with a core set of fonts, and an improved printing subsystem.
Major ISVs were slow in releasing Presentation Manager versions of their flagship applications. In part it was because they were slow in recognizing the importance of GUI environments (Lotus, WordPerfect), in part Microsoft was to blame for making the Presentation Manger API very similar in concept to the Windows API, yet maddeningly different in details. As a result, ISVs who already had Windows applications found it non-trivial to port those to OS/2.
There was, however, one company which offered a reasonably large variety of OS/2 applications: Microsoft. There was an OS/2 version of Excel, now in version 3.0.
There was also a PM version of Microsoft Word, separate from the character-based Word 5.5 which also ran under OS/2.
Microsoft’s development tools had good OS/2 support, and many (if not most) of Microsoft’s developers used OS/2. Even the initial development work on NT was done under OS/2 1.2. All of Microsoft’s professional development tools supported OS/2, both as a host and a target platform.
Microsoft recognized early on that the API incompatibility between OS/2 and Windows was a significant problem. Microsoft and IBM positioned OS/2 as a high end operating system and a successor to DOS/Windows, but developers found it difficult to write software that could run on both Windows and OS/2 Presentation Manager. The PM windowing system was very similar in concept to Windows, based around windows and messages (both were designed by Microsoft, after all), but there were numerous differences—such as inverted coordinate systems—which prevented easy portability.
In hindsight, this was an important design mistake Microsoft had made. However, at the time when the Presentation Manager was written, its developers saw it as an opportunity to fix and improve the Windows API; source (let alone binary) compatibility wasn’t a concern. Microsoft learned from this mistake and when Windows NT was released, it was possible to run many existing 16-bit Windows applications directly, and the Win32s compatibility layer was also available to run 32-bit applications on top of Windows 3.1.
For OS/2, Microsoft’s solution was WLO (pronounced ‘Willow’), a set of libraries providing a Windows API compatibility layer on OS/2. The idea was to let developers recompile a Windows application, link it against the WLO libraries, and thus create a native OS/2 Presentation Manager application.
Some people at Microsoft recognized the need for a portability layer as early as 1988, before OS/2 1.1 was even released. At the time, the layer was deemed unnecessary and counter-productive, because the number of existing Windows applications was tiny and there was fear (quite possibly justified) that the layer would lead developers to write only to the Windows API and ignore the Presentation Manager.
In the end, WLO 0.9 was released in February 1991. At that time, it was too little, and far too late. However, Microsoft successfully used an incarnation of WLO to port its own Excel and Word applications to OS/2 1.2/1.3.
WLO was documented in the Windows 3.0 SDK, but by the time ISVs had a chance to use it, Microsoft had already decided to drop OS/2. One may only speculate why IBM wasn’t interested in taking over WLO. Aside from likely licensing issues, IBM was probably far more focused on the vertical market where cross-platform portability was not a concern.
In the end, limited DOS compatibility and dearth of native Presentation Manager application made OS/2 1.x an unattractive operating system for general desktop use, even though it was used in a number of turnkey vertical applications as a multitasking, multi-threaded OS, a much more solid platform than DOS, with or without Windows.
What are the exact modifications you’ve done so OS/2 1.x (all the versions) are able to run under VirtualBox?
The modifications to OS/2 were the same needed to get OS/2 1.x to boot on modern machines. Actually just one: Patching KBD01.SYS or BASEDD01.SYS to avoid a division by zero on fast CPUs. The modifications to VirtualBox will be incorporated into the product at some point.
“In the Microsoft camp, things were rather more interesting. The long-term strategy was clearly all-Windows, but that posed serious short-term difficulties”
From one of your old pages:
“I have read allegations that Microsoft’s WLO is a blatant ripoff of Micrografx Mirrors, a similar product developed earlier by Micrografx. Supposedly Microsoft’s application division was offered to evaluate Mirrors for potential use in Microsoft products, on the condition that Microsoft systems division doesn’t learn the details. Looks like they did – not very surprising given Microsoft’s track record. ”
Sorry, it’s hard to take anyone who claims that Tim Paterson stole QDOS code from Digital Research seriously.
Some more evidence:
Pingback: Upgrading through Windows NT; Windows NT 3.1 | Fun with virtualization
How many versions/variations of 1.3 are there? From what I’ve gathered, there’s Microsoft OS/2 1.30.1, IBM OS/2 1.3.?? SE and EE. And I saw reference to 1.30.2 on this page: http://www.os2museum.com/wp/?p=437
As far as I’m aware, Microsoft only sold 1.30.1 together with LAN Manager 2.x because they had no choice. I don’t think there were any Microsoft OEM releases of OS/2 1.3.
I don’t know exactly what IBM packaged into boxes but there were versions 1.30, 1.30.1, and 1.30.2. I do not know if the SE and EE releases both existed in all those versions. The one surviving OS/2 1.3 service pack on IBM’s site (wonder if it’s still there!) brought OS/2 1.3 EE up to 1.30.2.
“Display Picture” and “Convert Picture File”, utilities available in OS/2 1.x with Presentation Manager should be used to open PM OS/2 Metafile files (*.MET) and to convert IBM PIF (*.PIF) picture files to Metafile or, Symbol Set (*.SMB) to Font files.
With MS OS/2 1.30.1, when I try to open a .MET file created in OpenOffice.org Draw by exporting the file to OS/2 metafile format, I get a STOP error message…”Graphics file error. The metafile or PIF file contains erroneous data. The picture displayed may be corrupted.”
I think, in relation to PIF, is possible to create IBM picture PIF’s using exporting filters availble in Corel, but I didn’t try.
Any ideas about this error message? Has anyone had success openning .MET or .PIF (what bad idea for a picture filename extension) files? Are both formats limited to sixteen color palette?
Hi! I’ve been looking for a long time for some OS/2 information that I have forgotten. In the 1990-1992 timeframe, I forget exactly when, I was consulting at Software Publishing Corp (makes of Harvard Graphics) doing a port of their as-yet-unreleased client/server database (InfoAlliance) from OS/2 to Windows 386/Windows 3.1.
At that time IBM had released OS/2 with Database Manager – and had announced a major enterprise application software package for OS/2 that was going to be the be-all-and-end-all for enterprise applications. It was a massive failure – I think most of it was never released – and if I remember correctly it cost a very large bundle of money.
But … what was its name? And what were the components that were to be included? I can’t remember for the life of me and can’t find any search terms that have found anything for me on the web.
Do you remember? Thanks! — David
That sounds like OfficeVision/2. Grandiose plans, in the end the product was killed and replaced by Lotus Notes and cc:Mail. If it was OfficeVision you had in mind then it was supposed to include electronic mail, word processing, calendaring, and who knows what else. There’s probably plenty about OfficeVision/2 in old InfoWorld etc. issues on Google Books. I have some old IBM publications from back then, but I’m not entirely sure they have anything on OfficeVision.
Out of curiosity, do you remember what sort of development tools SPC was using back then, both on OS/2 and Windows? I’m interested in that sort of thing 🙂
I’m not sure about OS/2. For Windows it was totally standard Microsoft SDK + Microsoft compilers, all from the command line. Things weren’t that sophisticated back then, you remember, we didn’t have lots of open source projects providing alternative compilers, build tools, IDEs, etc. (There was GNU, but they of course wouldn’t touch Windows with a 85-foot pole.)
To give you an idea: When the port was completed to Windows 3.0 they were going to show it at a conference somewhere on the East Coast. My computer went, but I didn’t. Reason was: We discovered at the last moment that “it ran on my machine” but on not on the machine they were sending to the show. Didn’t have time to figure out why so my machine was boxed up and sent. Turned out, they had bought all their other machines through the IT department, but my machine (I was a consultant) was arranged via some ad-hoc mechanism. And it turned out: My machine had a math coprocessor, and the ‘standard’ machines didn’t! I had used compiler options that assumed the coprocessor …
Clearly we don’t have to worry about that anymore! (Uh, AVX/FMA/XOP/SSE5/4/3/2 cough…)
I’d actually argue that in the 1980s and 1990s the choice of compilers and tools on the PC platform was far greater than today. There were quite a few compilers covering a broad price range (Microsoft, Borland, Watcom, Zortech, Metaware …). Nowadays it’s very different: On Windows it’s hard to do serious work with anything but Microsoft’s own compilers, on Linux the choice is gcc or gcc.
Back in the day I’m not sure if GNU wouldn’t touch Windows with a 10-foot pole or if supporting the segmented 8086 architecture would have required them to throw out the whole compiler and start from scratch 🙂
Great story about the coprocessor dependency! I remember all the different the math options. Nowadays the new instructions are proliferating so fast it’s not funny.
I agree that there were choices … and some inexpensive ones too! But … in my experience at the time it was very difficult to use any alternative to Microsoft’s compilers in a production/commercial setting. ISVs just didn’t really believe in Zortech, or the other small vendors, and didn’t believe there was sufficient reason to use high quality products from Watcom, Metaware rather than the guaranteed success you’d get with Microsoft’s own tools. (Or maybe I was just working for the wrong ISVs.)
BTW, I like your museum site. But I can’t find an RSS icon anywhere, do you have a feed?
When it came to Windows (and OS/2), there was often not much choice. Microsoft’s tools would always support the new Windows versions first. Microsoft’s tools were rarely the best (often very slow, sometimes buggy), but they were decent.
Although I believe Microsoft made a fairly decent push to get other compiler vendors to support NT. Both Watcom and Borland AFAIK supported NT pretty early. Of course it didn’t last very long before Microsoft decided that it really didn’t need the competition 🙂
There is supposed to be a RSS feed and as far as I can tell it’s still working. I don’t know what RSS reader you’re using but http://www.os2museum.com/wp/ should work. Possibly http://www.os2museum.com/wp/?feed=rss2 as well.
HLT-Driver, which I have modified for OS/2 1.x:
Nice! And it should be useful for VMs, too…
It does work for OS/2 1.2 and 1.3.
But for some reason not in 1.1 (Driver installs, but Program closes).
Wow this site is a blast from the past. Thank you! I absolutely loved OS/2 1.2 and 1.3 back in the day. My favorite OS/2 version of all time was actually a pre-release of 2.0 before they duct-taped on the Workplace Shell… it was 32 bit and super speedy. Wish I had saved the huge box of floppies.
Where did you hear about Word for OS/2? It was sure a well kept secret back then, I ended up buying a word processor called Describe.
I don’t remember where I heard about Word for OS/2… Describe was certainly much better known (and advertised). Sadly, I never managed to find the old Describe versions from the early 1990s.
The pre-releases of OS/2 2.0 are something I’ve been looking for for very long time… I’m sure they’re still somewhere out there 🙂
Hopefully someone will have a copy saved.
I would like to play the breakout game that came with one of the MS OS/2 releases, I remember wasting a lot of time on that.
Great site, and read of the comments.
To the last, I rememebr hearing about DeScribe back in the day and how good it was. Never got the chance to pick it up. But now I’m into the retro computing scene, I was chasing it again. There’s one on eBay, but seller wants $60 for it. I offered $40 but was declined. Then…Amazon. Got one on its way now for $23.
Looking forward to having a play.
I had IBM OS/2 1.3 on 5.25″” floppy disks. It came on a phenomenal number of floppies. Does anyone remember how many were in the box?
For OS/2 1.3 SE it would have been around 10 disks, for 1.3 EE it would be probably over 20 disks. I only know that the normal 3.5″ packages had 10 disks in the SE version and 19 disks in EE.
Pingback: [Перевод] Тяжкое наследие прошлого. Проблемы командной строки Windows - Новини дня
Does anybody know which ISA Adaptec SCSI cards are compatable with MS OS/2 1.3 server? Preferable with BIOS to support booting from SCSI HDD. I need to restore a server using a HP C1503 tape drive.
AHA-154x should work. Probably any of the various models.
Probably one with drivers that was supported:
Hi, is it possible to install OS/2 1.3 server on a 2GB SCSI HDD using an AHA-1540C?
At present OS/2 will only see the drive as 1GB, when in Extended BIOS Translation it won’t see the drive at all.
However in my other EISA server with a AHA-1740 I have a 4GB SCSI drive running with 2 2GB partitions.
The AHA-1740 uses a different driver, and it is a newer design. Adaptec supplied their own drivers for OS/2, did they document the supported drive sizes?
It is entirely possible that the OS/2 AHA-1540 driver only supports the old i.e. < 1GB translation with 64 heads and 32 sectors per track. That would make installing on a larger drive very difficult.
Thanks for the information. Do you have any experience or knowledge on the DPT range of SCSI Controllers? I’ve seen a a DPT PM-2021 but can’t find any information as to whether the DPTxxx.bid will work on OS/2 1.3
No, unfortunately I know very little about the DPT HBAs.
I can tell you that BusLogic had drivers for OS/2 1.3, but I don’t know what drive size limitations they might have had. Do you really need such a big disk or is it just that you can’t find a smaller one?
Okay, I tried installing MS OS/2 1.3 using the BusLogic driver on a 5GB SCSI disk. The install actually went fine, but the OS wouldn’t boot. It crashed with a divide error somewhere in the boot loader. FYI, I copied SPARE001.SYS from BusLogic to the MS OS/2 Install Diskette B and installed from that.
Next I tried the same thing with a 2.1 GB SCSI disk. That actually started booting, then died with some error about not being able to load COUNTRY.SYS I think. Then I remembered that I probably need to manually copy that SPARE001.SYS drive to the hard disk (C:). That got me further, but not much — the OS complained that “SWAPPER.EXE does not contain a valid program” and the program manager wouldn’t load.
Next, zapped the partition table, ran the installer again but this time I told it to create a 2,000 MB primary partition rather than using the whole disk. That, after I copied SPARE001.SYS to C:\ again, resulted in a functioning system. I was able to create an extended partition and the a logical drive to use the remaining drive space.
I got the driver from here, but there’s more (much more) here as well.
It’s not surprising that OS/2 1.3 does not handle gigabyte-sized hard disks terribly well. Keeping the boot partition smaller can help, if you let the installer use up the entire disk the resulting partition may not boot.
Brilliant thanks for that info I will have a proper look.
I installed 1.30.2 EE on a 286-24MHz about a year ago, after much fiddling with the install floppies to prevent it from hanging or TRAPing on boot. As of now, I cannot for the life of me figure out what I did because every attempt at booting from floppy – even on real 286 hardware – fails. I tried the patched floppies, manually patching them myself, replacing files on the floppies with the ones on the (working!) installation, to no avail. So now I’ve imaged the crap out of that CF card, to make sure I can start over with a known-good installation 😉
Recent developments include installation of ET4000/W32 drivers to get a bit better resolution, and the addition of a Tekram DC-800B ISA caching SCSI controller. This one is AHA154x-compatible, so the LADDERizing 154x driver seems to work fine (it’s formatting a 2GB HPFS partition as I write this).
The plan is to run a BBS (probably Simplex) with a RS232-WIFI “modem” and a GSM modem, plus perhaps an FTP server. And, if I manage to find one, a HTTPD. That seems kinda hard though, since the first HTTPD was written long after OS/2 1.x was a thing – so my best hope is to find some ancient 16-bit code that works with the FTP Software TCP/IP that I’ve got installed…
You happen to know any other solutions to this HTTPD conundrum? 🙂