Follow-up: the family links between DOS, OS/2, NT and VMS

Mar 06, 2017 14:37

My previous post was an improvised and unplanned comment. I could have structured it better, and it caused some confusion on https://lobste.rs/

Dave Cutler did not write OS/2. AFAIK he never worked on OS/2 at all in the days of the MS-IBM pact -- he was still at DEC then.

Many sources focus on only one side of the story -- the DEC side, This is important but only half the tale.

IBM and MS got very rich working together on x86 PCs and MS-DOS. They carefully planned its successor: OS/2. IBM placed restrictions on this which crippled it, but it wasn't apparent at the time just how bad this would turn out to be.

In the early-to-mid 1980s, it seemed apparent to everyone that the most important next step in microcomputers would be multitasking.

Even small players like Sinclair thought so -- the QL was designed as the first cheap 68000-based home computer. No GUI, but multitasking.

I discussed this a bit in a blog post a while ago: http://liam-on-linux.livejournal.com/46833.html

Apple's Lisa was a sideline: too expensive. Nobody picked up on its true significance.

Then, 2 weeks after the QL, came the Mac. Everything clever but expensive in the Lisa stripped out: no multitasking, little RAM, no hard disk, no slots or expansion. All that was left was the GUI. But that was the most important bit, as Steve Jobs saw and nobody much else did.

So, a year later, the ST had a DOS-like OS but a bolted-on GUI. No shell, just a GUI. Fast-for-the-time CPU, no fancy chips, and it did great. It had the original, uncrippled version of DR GEM. Apple's lawsuit meant that PC GEM was crippled: no overlapping windows, no desktop drive icons or trashcan, etc.



Microsoft was also playing around with GUIs. Windows 1 was, like PC GEM, crippled. Windows 2 was better, and some successful apps used it -- Pagemaker, Excel, the Omnis database, and so on. But it mainly sold as a runtime environment. Nobody -- including MS -- took it very seriously.

OS/2 was the future. Multitasking. That was the big deal. OS/2 1.0 shipped -- RTM, media, launch party, OEM bundling the works -- without the GUI because it wasn't finished! That is how little importance IBM and MS attached to GUIs. You could leave that bit until later. It didn't really matter.

OS/2 1 bombed. V1.1 added the GUI, v1.2 improved it, v1.3 was half decent, but it was poor at running DOS apps. Both MS and IBM underestimated the importance of that legacy code.

But Windows 2 wasn't a product. It was 3 products. Windows 2, for the 8086, just a GUI, and not a very good one. Windows 2/286, a DOS extender (kinda sorta), enabling apps to access 16MB of RAM.

https://blogs.msdn.microsoft.com/oldnewthing/20040407-00/?p=39893

16MB was a very large amount in 1988 or so. And Windows 2/386, which could do all that _and_ access the 80386's Virtual 86 mode to efficiently multitask DOS apps.

https://en.wikipedia.org/wiki/Windows_2.1x

Windows 3 was a skunkworks project. OS/2 was dying in the market. MS didn't know where to go next. There was no Plan B. Bear in mind that MS wasn't always wedded to DOS and the PC -- it offered Xenix, a Unix clone, in its early days. Xenix even ran on the Apple Lisa, while MS products ran on Apples and Commodores and Ataris and Tandys and Dragons.

With the failure of OS/2, IBM and MS started to squabble and fall out.

Meantime, in the background, a bunch of MS engineers had found a way to cleverly bolt together the 3 different editions of Windows 3 into 1 project, and give the tired UI a facelift using tech from Presentation Manager, the OS/2 GUI -- proportional fonts, fake-3D window widgets, a 2-level-hierarchical Program Manager.

https://blogs.msdn.microsoft.com/oldnewthing/20100517-00/?p=14013/

On an 8086 (or a machine with only 640 kB of RAM) it ran in Real Mode, as a DOS app, and was mainly just a GUI.

On a 286 with over 1MB of RAM, it could run in Standard Mode, and you got all that plus Windows apps that could access a meg or more of continuous RAM -- something almost impossible on DOS.

And on a 386 with 2MB of RAM, you got 386 Enhanced Mode: all of Standard Mode, plus fast reliable hardware-assisted multitasking of DOS apps, in scalable windows (!).

https://blogs.msdn.microsoft.com/oldnewthing/20130208-00/?p=5303

It was useful even to people who didn't want Windows apps. It was a pretty good DOS multitasker -- a small but important market segment, one that standalone products like DESQview (as I mentioned before) sold just by catering for.

If the OEM bundled Windows, a power user buying a fast PC got a DOS multitasker with a friendly GUI for free. This was a pretty good deal and it meant that Windows 3 became desirable even for stalwart DOS holdouts, of which there were quite a few.

Result? Suddenly, Windows, a tired old product line, whose version 1.0, 2.0 & 3 different editions of 2.1 had all flopped, was a best-seller.

Suddenly, Microsoft turned on a dime. It pivoted, in industry parlance. Forget OS/2, now Windows was the future. IBM got OS/2.

This left MS with a skeleton of a potential future product -- Portable OS/2, AKA OS/2 3 -- and no clear plan what to do with it, because IBM had the rights to the 386 version -- the obvious direction.

Aside: one of the problems with OS/2 2, IBM's 386-mode OS, was that as it was derived from a 286 product, it had a number of 286 (16-bit) elements. Yes, the kernel was 386 code, but the filesystem (HPFS) was 16-bit, the GUI (PM) was initially mostly 16-bit, and all apps shared a single (I believe 16-bit) input queue, so if that crashed or froze, although your OS was still running and apps updating, you could not interact with the OS any more. Not even in order to shut it down cleanly.

This is where Dave Cutler comes on the scene: into the middle of a complex story involving several industry giants -- IBM and Microsoft and the whole of the PC industry. DEC is almost peripheral to this.

Cutler is hailed as the architect of VMS, but it was not his only OS project. He also did RSX-11 and VAXELN before that, and worked on others.

So when Cutler came on board, with some of his core team and a plan in his head for a portable successor to VMS, he got handed the existing Portable OS/2 project. There wasn't a lot of code in it, and Microsoft wanted to distance it from OS/2.

As per https://www.itprotoday.com/compute-engines/windows-nt-and-vms-rest-story VMS did not have multiple OS personalities. Neither did OS/2. It had its own API, as did its subcomponents Presentation Manager, LAN Manager, Communications Manager, Database Manager etc. It also has a DOS mode for running DOS apps -- a single DOS app in OS/2 1, multiple ones in OS/2 2 _et seq._

Windows NT is different. It has its own kernel API, but that is private and not officially documented outside MS, AFAIK. It supports personalities: at launch, it offered OS/2, (complete with HPFS, but *not* Presentation Manager), Win32, POSIX and a bundled DOS emulator.

It's an oversimplification to say that NT is a 386 version of VMS. It isn't. It is a portable OS -- it has in its history run on Intel i860, SUN SPARC, IBM/Apple PowerPC, SGI MIPS, DEC Alpha, Intel x86-32, x86-64 and Itanium, and most recent addition, ARM.

It has 2 parents: OS/2 and VMS. It inherited some code in the early days from OS/2, because MS co-owns OS/2. That's why IBM can't open-source OS/2. It doesn't inherit code from VMS, because VMS was DEC property, later Compaq, later HP, and now VMS Software Inc. However, as the Windows IT Pro article makes plain, it inherits a lot of concepts and terminology and even filenames -- but VMS was not conceived as a portable OS. VMS was co-designed with the DEC VAX minicomputer. Later it was ported to DEC's Alpha RISC CPU, and later again to Intel Itanium. VMS Software is currently working on porting it to x86-64 and apparently this is not a trivial job.

vms, nt, 80386, windows, 80286, os/2, dos

Previous post Next post
Up