NT and OS/2

OS/2 and Windows NT have an interesting and checkered common history. Until late 1990, the operating system eventually released as Windows NT was known as NT OS/2. Despite its name, NT had very little in common with OS/2 as it existed at the time (that is, OS/2 1.x) in terms of design or source code. The core NT design team led by Dave Cutler, mostly consisting of ex-Digital programmers, had very little experience with OS/2 or even PCs. At the same time, the plan was to provide compatibility with existing OS/2 applications and for OS/2 to be the dominant ‘personality’ of NT.

The NT kernel’s (or more correctly the NT Executive’s) design was radically different from the design of OS/2 1.x. While OS/2 1.x was a 16-bit OS designed exclusively for the segmented architecture of the Intel 286/386 CPUs, NT was a portable 32-bit OS with paged virtual memory, deliberately ported to the 386 PC platform relatively late in its development cycle. While OS/2 could not run on anything but a 286/386 without a complete rewrite, NT could not run on a 286 ever.

Dave Cutler did not get along at all with Gordon Letwin, Microsoft’s chief OS/2 architect. Cutler also had many clashes with Darryl Rubin, the lead developer of LAN Manager (which was OS/2 based at the time). [1]

The relationship between NT and 32-bit OS/2 is very murky. It is known that Microsoft was working on 32-bit OS/2 2.0 in the late 1980s. It is also known that NT was initially meant to support a 32-bit OS/2 API, but that plan was later scrapped for obvious political reasons. At least one feature—exception handling—is so similar between OS/2 2.0 and NT and at the same so unique in context of other operating systems that it was clearly designed by the same group of people, and the implementations were intended to be compatible.

In 1990, after Microsoft internally decided to dump OS/2 and concentrate entirely on Windows, most of Microsoft’s OS/2 developers were reassigned to NT. However, that did not influence the basic design of NT, which had been created long before then. NT adopted several technologies from OS/2, but very little or no code (16-bit Intel assembly code was of little use within NT). HPFS and FAT filesystem support was written from scratch for NT, the NDIS network driver interface underwent a major overhaul, LAN Manager components were rewritten.

On a more mundane level, OS/2 was the platform used to build NT before NT became self-supporting. After all, who wanted to develop on DOS…. Aside from editors and compilers, OS/2 also ran the Intel i860 emulator used in the very early stages of NT development, before any hardware was available.

After the Microsoft-IBM split, the relationship between NT and OS/2 became somewhat schizophrenic. Microsoft sometimes tried to pretend that OS/2 had never existed and sometimes loudly bad-mouthed anything IBM did with OS/2. At the same time, NT (up to and including Windows 2000) shipped with an OS/2 subsystem which ran character-mode 16-it OS/2 applications. Microsoft also had a Presentation Manager add-on for NT which supported OS/2 GUI applications, a semi-secret product hinted at in documentation but never actually advertised.

In the end, Windows NT survived and OS/2 did not, although OS/2’s demise had arguably more to do with Windows 3.1 and Windows 95 than NT.

[1] Zachary, G. Pascal (1994). Showstopper!. The Free Press/Macmillan. ISBN 0-02-935671-7
This entry was posted in NT, OS/2. Bookmark the permalink.

5 Responses to NT and OS/2

  1. djhayman says:

    “Microsoft also had a Presentation Manager add-on for NT which supported OS/2 GUI applications, a semi-secret product hinted at in documentation but never actually advertised.”

    Have you ever used the OS/2 PM subsystem for NT? I have copies for NT 3.51 and NT 4. I’ve only been able to test the NT 4 version, and it’s a bit weird…

    Firstly, once you’ve run the installer, you’ll need to add C:\OS2\DLL to the PATH environment variable for anything to work at all (the install script doesn’t do this).

    Secondly, the “PM Shell” program must be run before any other OS/2 PM programs, and it will display an error saying as much if you try to launch another program first.

    The “PM Shell” creates a separate full-screen desktop area that looks just like the real OS/2 PM desktop, but only has a “Print Manager” icon in the lower left, and a Windows logo in the lower-right (which returns you to the NT desktop if you double-click it). You interact with it similarly to a full-screen DOS program – there is a Taskbar button which will bring the PM Shell back to full-screen mode when clicked. And quitting the PM Shell is a bit strange… If you just try to right-click the taskbar button and select Close, Windows will tell you that the program is frozen (similar to a busy DOS command prompt). Instead, inside the PM Shell itself, right-click on the desktop somewhere and click “Shutdown PM” in the “Task List” window.

    Running any other OS/2 PM program from NT will take you back to the PM Shell desktop, and the program will start there. Visually, it seems to represent OS/2 1.3 – and in fact, if you run “OS_2 System Editor” and go Help -> About, it says version 1.3.

  2. michaln says:

    Yes, I’ve seen the 3.51 and 4.0 NT PM subsystem packages. The PM Shell is clearly a very straight port from the OS/2 1.3 code base. It’s using the OS/2 VGA driver, probably with very few modifications. It’s very different from the Windows 3.1 subsystem in NT, far less integrated, clearly something Microsoft didn’t want to spend too much time on.

  3. Hi Michal,

    Over the last few weeks I’ve had a great time reading all your posts here in reverse order. What a fascinating collection of information! I’ve certainly learned a ton about x86 architectures and the genesis of Windows and OS/2. Thank you so much for taking the time to write the posts. I am well aware of how much time a well-researched post takes and am amazed at the depth you’re able to go into.

    I’m always looking forward to a new post! (No pressure 🙂 )

    Have a great weekend,
    Matt Ghali – San Francisco, CA

  4. Michal Necasek says:

    Thanks for the kind words! I’m just a curious person and at some point I realized that I had to keep notes… and there it is.

  5. Bruce Stenman says:

    OS/2 was vastly superior to Windows then and now. I can crash any Windows OS by inserting a doggle into a USB port as the kernel is not protected from exception handling. This was done by Microsoft to circumvent the patents of IBM. OS/2 had a communications manager that protected the kernel and also enabled true mulit-tasking and parallel threading, something that is only partially enabled even with Windows 10.

    The reason OS/2 lost against Windows in the marketplace is very simple. Novell Netware was quickly becoming the dominant network server application and its primary competitor in the 1990’s was IBM LAN Manager. IBM had only a 10% share of the network software market and decided to use its OS/2 software to improve the situation by having only an OS/2 client for LAN manager and not producing one that would work with Novel Netware. So the 90% of shops with Netware servers could only use Windows with its Netware Client. IT managers when deciding between LAN Manager with OS/2 or Netware with Windows, understandably went with Netware as that was what they found superior and they could care less about whether their users had OS/2 or Windows so long as the business application software worked OK.

Leave a Reply

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