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-bit 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.

8 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.

  6. To Mr. Stenman – if you would come back anytime :
    Well, even the OS/2 was superior from many aspects to Windows generally – there were more points of view than simply the network manager.That would be also considered which led to not select to use for an average user so also a person who responsible for a decision making in business or at home.
    I admit : you probably thought only business users, but think about that those workers (including a CEO) who would have used OS/2 on their workplace by such a decision .. those also could have a PC at their home – possibly a a Windows 3.x or DOS (16 bit era) or a Windows 9.x (32 bit era) so they socialized in this environment. I had experienced resistance at that time to switch other OS than windows (OS/2 or Linux) at that time. I had talked many of them at that time and they refused to use OS/2 as they would have :
    — learn how to use it as it was different from the system they know (laziness and fear);
    — could not run their recent games on it (lack of win 32 support)
    The game support was and still is very huge aspect regarding PC usage .. however
    now you can play on game consoles, mobiles, tablets, smart TVs, etc. itself.
    — they had to hunt for drivers or reduce their selection in hardware for OS/2 supported HW devices due to OS/2 device driver support. This is not due to the IBM’s fault but the HW device vendor’s fault who had not applied someone to develop OS/2 drivers as well for their product.
    — they would have read a lot ( 🙂 ) to find a solution or how to do what they want — meanwhile for Windows they could find answers from newspapers or even a friend or a colleague .
    As you should consider : it was still pre- dominant internet era – although the average people started to use internet, the general use to learn or get help there for your problem – that was still not general. The persons still got support primarily personally or by call. Only advanced users used e-mail or mailing lists. Still no forums or wiki pages as well. 😉
    Also I am not sure that the decision maker was always an IT expert : what to buy and how to design the business supporting system at the company. First existed what they had bought earlier and when turned out the company can achieve extras from connected computers or even an integrated system .. then could come up that situation that you mentioned – to check out what supports our existing HW/SW base we have actually — how we can connect them or even integrate them.

  7. Marty Hammel says:

    I remember using (and developing drivers, etc, in) os/2, lan manager and the first versions of Windows NT. Os/2 was far superior in multitasking. It was extremely clear. I really missed OS/2 when it started dying. I certainly don’t hate Windows, but it was sad to see a superior architected/performing OS die. It was a pleasure to use.

  8. Micro Man says:

    I remember using OS/2 back in 1992 with 32-bit OS/2 2.0. It was rather different from the Microsoft Windows 3.1 that I had been using, and I found it rather cool. I did notice some needed areas of improvement, which OS/2 2.1 brought, especially MS Windows 3.1 compatibility. It was with version 2.1 that I really got to like OS/2. Its object-oriented interface was pretty easy to get the hang of and worked very well. IBM advertised it as “a better DOS than DOS, and a better Windows than Windows.” This proved to be true. My DOS programs, including games, worked surprisingly well under OS/2, and XMS/EMS memory management was great for this. My few MS Windows programs (MS Word, MS Excel, and I think one other) likewise did well. If you had enough DRAM, you could do fully preemptive multitasking with Win16 programs under 32-bit OS/2. With 16MB (expensive in 1993!), I had enough DRAM. 🙂 For word processing, the majority of what I did since I was in school, I had DeScribe 5.0, a very good 32-bit word processor for OS/2. Sure, there was the synchronous input queue problem, but overall, OS/2 2.1 was way better than any version of Microsoft Windows of that time.

    OS/2 Boot Manager had to be the best boot manager of that time, easily booting multiple OS’s. And the HPFS did a fine job as well.

    OS/2 3.0 brought additional polish and some more bug fixes, including mitigation of the synchronous input queue problem. This just made me like the OS even more. It did very nearly everything that I needed to do with an OS at that time. When I started working with Windows NT, I had NT 3.5, NT 3.51, OS/2 3.0, and MS-DOS on the same computer. This was a Pentium-133 with a 1.2GB SCSI disk (Adaptec 2940 controller) and 64MB DRAM (absolutely huge for that day). NT 3.1 was a dog, buggy and nearly unusable. NT 3.5 was leaps and bounds better. NT 3.51 brought the extra polish, much like OS/2 3.0 had. Depending on what I had to do, I would boot either OS/2 3.0, NT 3.5 (later 3.51), or DOS 6. OS/2 Boot Manager was invaluable for managing my different OS’s. I like to think that today’s GRUB was somewhat inspired by OS/2 Boot Manager.

    Why did OS/2 not make it? I was in the middle of all that. NetWare was one reason, but not the major one. The major reason was OS preloads by the computer makers. Microsoft structured their licensing scheme so that unless you put only Microsoft OS’s on your computers, you’d pay a whole lot more per license of MS Windows. They got convicted for this, and other monopolistic practices, in 1998 in Judge Thomas Penfeld Jackson’s court. Basically, MS ran into a tech-savvy judge who couldn’t be bamboozled. But by then, the damage was done, and OS/2 is no more. Read the “Evangelism is WAR!” paper that came out during the various trials against Microsoft, both in the USA and in Europe.

    Also, IBM didn’t execute their marketing well. They didn’t encourage hardware vendors to write drivers. They didn’t encourage software makers to write to the OS/2 API. Microsoft did a smart thing by making the Win32 API extremely similar to the Win16 API. The popularity of Windows 3.x made this very important. Development houses said, “it’s easy to decide to develop for the upcoming Windows 95.” The result was that the applications for 32-bit OS/2 were very good (e. g. DeScribe, PMView, McAfee VirusScan, the GNU toolchain), they weren’t numerous. This affected OS/2’s popularity also.

    Fortunately, I had GNU/Linux to move to. This is what I use today.

Leave a Reply

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

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