OS/2 2.0, Spring ’91 Edition

Thanks to a generous reader, a curiously nondescript box labeled “OS/2 32-Bit Pre-release” recently turned up at the OS/2 Museum. The box looks very much like retail IBM products from the early 1990s, but has no identifying description except for a mysterious “PR00001” label. There is no real part number, no version number, no date. Given the professional packaging, I assumed it to be perhaps OS/2 2.0 LA from late 1991, or some other beta version not far from the final March 1992 release.

A mysterious 32-bit box

After opening the box, I wasn’t much wiser. There were three loose sheets of paper constituting a “Getting Started” brochure. This included real gems such as “we believe the PS/2 Model 90 and the PS/2 Model 95 are supported at this time”. That does not exactly inspire a lot of confidence.

The Getting Started manual (all of it)

The floppy labels were no more illuminating, except for a tiny “4/91” inscription at the bottom of each label. That would make this one of the earliest IBM OS/2 2.0 betas, older than build level 6.149/6.605 from Summer 1991.

OS/2 32-bit Pre-release diskettes dated 4/91

After checking the floppy contents (all 13 were error-free), a clearer picture emerged. The printer driver floppies were from late March 1991, which makes sense for an April 1991 release. But the rest was slightly older…

The system diskettes were created earlier, with timestamps from the first half of February 1991. The boot screen clearly reveals the vintage of this disk set:

OS/2 2.0 rev 6.123 booting

OS/2 2.0 internal revision 6.123 was reportedly the last (third) MS OS/2 2.0 SDK, released in February 1991. According to surviving fragments of information, build 6.123 was distributed by Microsoft as part of the complete SDK (including development tools and documentation), and separately distributed by IBM as a bare OS with no development tools, quite likely due to licensing issues (IBM probably did not have the right to re-distribute all of the required development tools owned by Microsoft). Who might have actually received the boxed pre-release from IBM is unclear. This particular box came from a former IBMer, not an IBM customer.

At first glance, build 6.123 looked a lot like the newer 6.149 revision (produced by IBM without Microsoft’s involvement). Many of the differences are mentioned in this contemporary review of build 6.149. The older 6.123 build did not come with MOST (Boot Manager), and the installer had no graphical part (it was essentially the same as the OS/2 1.2 installer, text mode only).

The 6.123 beta was probably the first pre-release of OS/2 2.0 distributed by IBM. Perhaps it could be called the “divorce edition”, still made by Microsoft just before Microsoft disowned OS/2. Revision 6.149 was the first post-divorce beta developed by IBM.

What’s noteworthy is that revision 6.123 is a midpoint in the public OS/2 2.0 beta cycle. The first MS OS/2 2.0 SDK was released in January 1990 (finalized at the end of Dec ’89, revision 6.43), revision 6.123 appeared in February 1991, about 14 months later. Another 14 months later was April 1992, the official release of OS/2 2.0 (internal revision 6.307). In addition, revision 6.123 also represents exactly how far Microsoft got (or didn’t get) with OS/2 2.0 development. So how far was that?

At first glance, OS/2 2.0 from February 1991 looked just like its contemporary, OS/2 1.3 (released just a few months earlier). The default color scheme was different but visually there are far more similarities than differences. Here’s OS/2 2.0 in Feb ’91:

OS/2 rev 6.123 Desktop Manager

And for comparison, here’s OS/2 1.3 in Dec ’90:

OS/2 1.3 SE Desktop Manager

Under the hood, there were huge differences. The kernel was to a large extent (but not purely) 32-bit, with support for much more memory than the 16MB maximum of OS/2 1.x. The OS supported paging with a uniform 4KB page size (defined by the hardware), much easier to manage than swapping of segments with variable sizes of up to 64KB in OS/2 1.x.

Given that 32-bit applications had not yet been written, the most visible difference from OS/2 1.x was DOS support. Instead of a single full-screen DOS session, OS/2 2.0 revision 6.123 could run multiple DOS sessions at the same time, in a mix of windowed and full-screen (with a way to switch between windowed and full-screen at run-time). That included support for running VGA graphical applications in a window, such as Windows 2.11:

Windowed Windows 2.11 on OS/2 2.0 build 6.123

There was no support for Windows 3.0 yet, that had to wait until the Comdex build (internal revision 6.167 in Oct ’91).

The DOS subsystem (called MVDM, for Multiple Virtual DOS Machines) was clearly pretty far along. There were numerous settings used to tweak configuration (memory sizes etc.), performance, and compatibility, but users could only guess what many of them did because the Help button simply did nothing.

DOS Settings in OS/2 rev 6.123

By the time OS/2 6.149/6.605 (Summer 1991) appeared, the DOS settings user interface was reworked to be considerably more usable:

DOS Settings in OS/2 rev 6.605

The OS was clearly very, very unfinished. There were gaping holes, such as completely non-functional Tutorial and PM REXX icons:

The missing Tutorial

It’s apparent (and hardly surprising) that Microsoft’s focus in the OS/2 SDKs was to provide an OS that developers could work with and design applications for, not necessarily a polished product for end-users.

In the year between the 32-bit preview build 6.123 and OS/2 2.0 GA, IBM did a huge amount of work. The final product was almost unrecognizable. Workplace Shell, Windows 3.0, reworked disk subsystem, and more:

OS/2 2.0 desktop

What have we learned from this? If nothing else, those old OS/2 pre-releases are lurking out there, waiting to be discovered. Since the beginning of 2017, this is the third OS/2 2.0 pre-release to be recovered or completed (6.123, 6.605, 6.177). More likely than not, there’s still more out there.

This entry was posted in IBM, Microsoft, OS/2, PC history, Pre-release. Bookmark the permalink.

34 Responses to OS/2 2.0, Spring ’91 Edition

  1. Yuhong Bao says:

    I wonder exactly when OS/2 2.0 MVDM was switched to the DOS 5.0 codebase.

  2. Michal Necasek says:

    Most likely sometime around September 1991. Beta 6.605 (Sep ’91, though based on an older build) still used the old DOS support, while beta 6.167 (Oct ’91) included DOS 5.0 style DOS support. At any rate it was after IBM took over. WPS, built-in Windows 3.0, and DOS 5.0 based MVDM all showed up at the same time.

  3. Richard Wells says:

    April 24, 1991 was when IBM announced the brief availability* of OS/2 2.0 Beta on the Atlanta BBS. It was an 18 MB file which is about as big as one can go with 9600 bps modems. Development tools couldn’t fit into that space. IBM’s marketing strategies were a bit confusing to those outside the company. But license restrictions were not the sole reason for releases without development tools.

    I know a little later there was another effort to get end user test copies of beta OS/2 2.0 to select large companies who were expected to test critical existing software, not develop any. Most evidence of this is Usenet venting by those who couldn’t get their request approved.

    * About 3 days

    https://groups.google.com/forum/#!topic/comp.windows.ms/80O14G3BOAM%5B51-75%5D should include the copied announcement.

  4. Michal Necasek says:

    For a download that’s already gigantic, it makes perfect sense to limit the size. But what I have here is a box of floppies, and so far I haven’t found any evidence that IBM ever shipped Microsoft’s development tools in the OS/2 2.0 beta period (although they did ship some years later, as part of the OS/2 DDK).

    It seems clear that Microsoft’s focus was strictly developers (and the OS/2 2.0 SDK cost what, $2,600?), while IBM also wanted end-user (for some definition of “end user”) compatibility testing by existing OS/2 users. I know IBM had several different programs, and if one wasn’t in the US, it was a whole lot more complicated. I believe IBM charged relatively modest prices for the previews.

  5. Michal Necasek says:

    I see that in Sep ’91 InfoWorld reported that a $175 IBM OS/2 2.0 development kit was available, including OS/2 2.0 build 6.149 and IBM’s CSet/2 compiler/debugger.

  6. Fernando says:

    Something that I observed in your reviews and probably all the reviews that I have seen of OS/2 2.x is that never show (test?) the OS/2 1.x compatibility, nor at the console or Presentation Manager. Probably because it’s a given or is there is not interest, interesting?. I would expect good compatibility at least the the Microsoft development tools, Lan Manager, Communication Server, etc. I would expect that it was important for Microsoft and IBM this compatibility but probably was more for software made in house in the different clients and there was not a lot of shrink wrap software to show. Most probably was sufficient important this segment to include this compatibility in Windows NT.
    Just a though.

  7. Mike K says:

    Has anyone ever said why IBM changed binary formats at the last second? Was this solely a “screw you” to Microsoft and the people who may have been devloping with the tools in the MS SDKs or were there real reasons to make a major change like that at the last second?

  8. Michal Necasek says:

    Microsoft did the same thing with NT, changing the executable format. I’m pretty sure it was done for purely technical reasons, because it was still possible (only unsupported beta software used the old format).

    The OS/2 LE to LX change was relatively minor, but the two formats are certainly incompatible. One change was page alignment, with LX allowing pages in the disk image to be tightly packed or aligned on sector or other boundaries (LE required page-size alignment, i.e. 4K).

    The LX format has also a different object page table, allowing for much larger executables and compressed pages.

  9. Michal Necasek says:

    Compatibility with existing OS/2 1.x software was quite good, and IBM cared about it. I think for the most part there was really nothing to write about 🙂

  10. Richard Wells says:

    The primary incompatibilities using software for OS/2 1.x with OS/2 2.0 and later were with some 16-bit drivers. Driver FAQ covers that in some detail. I am not sure what caused the OS/2 1.0 program I had maintained to fail on OS/2 2.1; the client was unwilling to pay the costs of performing an upgrade.

  11. Josh Rodd says:

    Even with drivers, support for 1.x drivers was surprisingly good; for example, the ActionMedia II drivers and related DLLs were all built for 1.x, but functioned fine on 2.0 (and continued to function well into the 3.0 and 4.x eras).

    OS/2 2.0 itself was built on a great deal of 16-bit software, much of which will function fine on a 1.x system if it has enough related DLLs present. 32-bit OS/2 was a unique system in that it had a completely hybrid design.

  12. RetroCPU says:

    Where did my comment go? I tried posting but it simply got deleted.

  13. RetroCPU says:

    Would it be possible for you to upload a copy of this, since you actually have the original disks this time? I would personally be interested in running this OS just to see how much that OS/2 2.0 had changed between this release and the final release (and testing some applications along with it), and I also happen to know of some people online who would also be interested in seeing it.

    Also, I tried to post here earlier, but for some reason my comments kept getting deleted. Previously I was using Microsoft Edge and Internet Explorer 11, though now I’m trying to post this in Google Chrome just to see if it would work here.

  14. Chris M. says:

    Someone out there is making an OS/2 emulator and gets into some technical detail about the hybrid 16-32bit nature of the OS/2 API. Makes for some interesting reading.

    https://www.patreon.com/posts/project-2ine-16513790
    https://www.patreon.com/posts/2ine-16-bit-exe-19337541

    Windows had the same segmented mess with Win16, but Microsoft wisely went 32-bit clean when they created Win32 since it was meant to be portable to different architectures from the start.

  15. Michal Necasek says:

    It got queued for moderation. Not sure why exactly.

  16. RetroCPU says:

    Would it still be possible for you to actually upload a copy of this? I have access to some old Microsoft and IBM items that I might want to trade with you if you did.

    I hope that I’m not sounding like a broken record like I’m begging or something, and as I already said to you above, I would gladly give you a few things for it in return.

  17. Michal Necasek says:

    Check vetusware.

  18. Michal Necasek says:

    Yes. The driver model in OS/2 2.0 was fundamentally the same but not identical to OS/2 1.x. There was no real mode support and therefore no mode switching and no bi-modal code. On the other hand there were VDDs. There was also support for larger RAM which required changes to some drivers. I would guess that adapting 1.x drivers to work properly on 2.0 was easy unless there was a need to provide a VDD for DOS session support.

  19. Josh Rodd says:

    I seem to recall a number of drivers that were “incompatible” with systems with over 16MB of RAM. I’m guessing they were quick and dirty ports of 1.x drivers that didn’t take into account mapping physical addresses beyond 24 bit addressing.

    Of interest is the the OS/2 storage driver model was entirely 16-bit. OS/2 2.0 really did not have any 32-bit drivers other than VDDs, quite similar to the Windows 3.0 model.

  20. Chris M. says:

    Didn’t OS/2 purposely put 16-bit device drivers in Ring 2 to isolate them? I remember Ring 2 usage being one of the reasons why it was so hard to virtualize. Guess 16-bit wasn’t that big of a deal as long as it was protected mode code (unlike Windows 9x supporting DOS drivers and having to switch in and out of real mode).

    The Ring 2 usage got me thinking. Was OS/2 the last totally protected mode OS made specifically for the IBM PC Compatible? Windows 9x was a weird hybrid with DOS underneath and Windows NT was designed to be portable from the start (security model was limited to Ring 0 and Ring 3).

  21. Yuhong Bao says:

    Not drivers. It was only used by applications for IOPL code.

  22. Richard Wells says:

    Netware 3.x was a protected mode OS for IBM PC compatibles that was started after OS/2. After that, there are obscure OSes like SkyOS and a number of systems inspired by older OSes.

    The Dietel/Kogan book refers to the elements that used Ring 2 as Presentation Drivers which seems to cause confusion. Ring 1 and 2 for Device Drivers is common in the Intel illustrations of ring system but I think most OSes optimized for fewer transitions.

  23. Michal Necasek says:

    The most widespread driver with 24-bit limitation might have been the Adaptec 154x SCSI one. But in that case the 24-bit limitation came from the hardware, not software.

    For Warp Server for e-Business (Aurora), IBM reworked the storage drivers to allow 32-bit components (especially file systems). That was the last significant work on the OS/2 kernel I believe. Until then yes, all drivers were 16-bit except VDDs. And yes, the VDDs were not unlike Windows VxDs, after all they were written by the same company, if not the same people. The other OS/2 and Windows 3.x drivers bore very little resemblance to each other.

  24. Michal Necasek says:

    Drivers mostly ran at Ring 0, but applications could use “IOPL segments” running at Ring 2 and capable of port I/O. That was often used by display drivers (maybe printer drivers, too) which typically did not use interrupts. And yes, it was all protected-mode code, very different from Windows 3.x/9x where 32-bit code worked with 16-bit protected-mode code and 16-bit real-mode code.

    Windows 9x was evolution of Windows/386 more than anything else. I’m not sure what the timeline of QNX 4.x was, that’s also a protected-mode PC OS.

    The PC operating systems in use today are all very, very old. The newest design is arguably NT (1989), the newest implementation Linux (1991). OS X goes further back than that.

  25. Michal Necasek says:

    I should add that FreeBSD/NetBSD/OpenBSD are probably the oldest operating systems in use today. They have more or less unbroken history going back to around 1970. Which means they’re nearly 50 years old!

  26. Richard Wells says:

    BSD in any form only started in 1977 and didn’t replace the AT&T core until about 1990. Having a few extra utilities is not a momentous event in computing. That does cause a bit of philosophical Ship of Theseus issue as parts of an older OS are replaced but is it still the same OS?

    Pick is almost certainly the oldest OS still developed and sold.

  27. @Fernando Excel 3.0 works best, Word 1.1 will load but it has issues minimizing and maximizing itself.

    MS-DOS based emulation seems to be more of the 3.30 era emulation, as there is no DPMI to be found at all.

    16bit command line seems to be solid otherwise. I haven’t tried any networking at all.

  28. Michal Necasek says:

    The DOS core in the beta is supposedly based on DOS 4.0 (wrote Ray Duncan back in the day). I’m wondering what the story with DPMI is, because supposedly (Duncan again) DPMI was in fact designed for OS/2 2.0 by Microsoft. I can’t see any trace of DPMI in revision 6.605 (Sep ’91), but it’s there in 6.167 (Oct ’91).

  29. Michal Necasek says:

    That’s exactly why I said that it has history going back to about 1970. There’s no question that BSD started out as AT&T UNIX, but over the years turned into something different. When it turned into what is a very interesting historical question, but the lineage can be traced pretty clearly.

    Pick is still around, but does is it still being developed as a stand-alone OS? I thought it was strictly hosted nowadays. If yes then it may well be the oldest, going back to 1965.

  30. Richard Wells says:

    The only review of OS/2 DPMI support I can find on Usenet is credited to Chuck Grandgent which points to 6.304 as the first version able to run Rational Instant C which did not run on 6.177. It looks like DPMI was shown off at the 1991 Technical Seminar with version 6.140 which also had the general purpose VDM (boot any DOS). It seems IBM kept DPMI out of wide spread betas while it was very unstable.

  31. That is kind of interesting, especially with the Citrix Multiuser which shipped with 6.177 which not only runs DOS4G/W (DooM v1.1), but also has the hooks and support for running Windows 3.0 in standard mode.

    I should try to transplant the Citrix kernel onto 1.123 to see if it’ll even boot up. If it can use the newer disk drivers then it’ll at least open up the types of emulation it’ll run on.

  32. Fernando says:

    Thanks Jason Stevens.

    The newest operating systems probably would be that of the Xbox One or the operating systems for the cloud from Amazon/Microsoft/Google or IBM Summit but this are purpose built, closed and there is no information about them.

  33. Fernando says:

    For me the oldest operating system would be that of IBM Z, according to IBM you can take a program from System/360 (1964) and execute it directly.

    Now, I don’t want to open a can of worms but the problem is if we want to search for the older (or newest operating system) we need to define what is needed. for example, is needed that it executes the original binary or a recompilation of the source code?. It needs just the API to be compatible?. It has to have some source code in it from the original?. The original operating system running in an emulator counts?, it is my understanding that there are Wang VS, System/36 ,General Electric/Honeywell/Bull GECOS and Burroughs/Unisys MCP running in production within commercial emulators.

  34. Michal Necasek says:

    The criteria I’d be looking for are clearly traceable history (not necessarily any remaining code from the 1960s) and software still maintained and enhanced. Probably also some minimum number of users to exclude exotics with 5 users worldwide 🙂

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.