Windows & .NET Magazine is 100 issues old! The magazine has changed its name a couple of times, but then so has Windows NT. I first heard about NT back in 1989—when IBM and Microsoft had worked on OSs together since 1981 and seemed like they always would. At a technical briefing for geek journalists, Microsoft was showing us early betas of OS/2 2.0, the company's first serious shot at an OS that exploited the capabilities of Intel's 80386 chip. Multitasking. A good GUI. A lot of memory. We ooohed and aaahed. But then Microsoft started telling us about the even more amazing OS/2 3.0, which it was developing concurrently.
What we didn't know then was that OS/2 3.0 wasn't actually a variety of OS/2 but rather the working name for a new OS that had its roots in Digital's VMS OS. The system's primary architect, Dave Cutler, came not from a PC background but from the minicomputer arena. Microsoft was using the OS/2 name primarily for marketing continuity, but OS/2 3.0 received the Windows NT moniker when IBM and Microsoft parted their decade-long OS alliance in 1991.
Forgotten Goals
NT has become a huge success, but as I look back, I realize that almost none of Microsoft's original intentions for NT turned out to matter—or they disappeared altogether. For example, NT was supposed to be a multipersonality, architecture-independent, microkernel-based OS. At the time, the term multipersonality described the notion that an OS could run software from multiple platforms. NT would feature subsystems that permitted the OS to run both Windows and non-Windows software directly or with minimal porting. The first version of NT had three subsystems. The first was the Win32 subsystem, which ran native 32-bit Windows programs. That subsystem has survived through Windows 9x, NT, Windows 2000, Windows Me, Windows XP, and Windows Server 2003, but it has grown and matured over the past 10 years. The Win32 subsystem also supports the NT Virtual DOS Machines (NTVDMs) that administrators still use to run DOS or 16-bit Windows programs.
You might remember the other two subsystems, OS/2 and POSIX. Microsoft designed the OS/2 subsystem to run OS/2 applications—or more specifically, OS/2 1.x applications. The intention was that you could run applications built for LAN Manager—an OS/2 1.3—based product—on NT (or port them to NT). The POSIX subsystem was a UNIX application environment that, as far as I know, could never run any UNIX programs out of the box but instead let you port UNIX programs to NT. This functionality received much press at the time of NT's release, but I don't recall any UNIX programs actually being ported to NT's POSIX subsystem, except for UNIX tools (e.g., chown) that have shipped with resource kits for years. Despite all the hoopla over NT's sparkling personalities, they're gone now—OS/2 disappeared in Win2K and POSIX in XP.
NT also promised to be an extremely reliable, architecture-independent OS—a huge idea that required PC developers to change the way they thought. The OSs of the 1980s changed by acquiring more bells and whistles (e.g., memory, multitasking, GUIs), but reliability wasn't a chief concern. In the mid-'80s, mainframe computers could run for weeks, months, and even years without a reboot. In contrast, the idea of stabilizing a PC-based computer so that it required only one reboot per day was considered the stuff of dreams. All the OS/2 developers that I talked with agreed that reliability was important, but their PC experience seemed to lead them to set modest reliability goals. A popular goal was that if a PC didn't crash more than a couple of times a week, it was fine.
Cutler expected OSs to run and run and run—and NT was no exception. Bob Muglia, a member of the NT team, said to me in 1992, "Once you get your server shaken down properly, you should never have to reboot it—or we've failed." Muglia was exaggerating, but today I know of many NT-based systems (including Windows 2003, XP, and Win2K systems) that need a reboot only for hotfix installations, server moves, or service pack applications. Obviously, not all NT-based systems are so reliable, but try installing LAN Manager 2.0 and see how long you can keep it running on your system.
To push NT to the level the team wanted—improving the OS's reliability, for example—Cutler needed to yank his developers out of their PC-oriented, Intel-centric mindset. To do so, rather than build the OS around the 386 architecture, he told the developers that NT's design should permit implementation on virtually any 32-bit processor. What better way to break developers of Intel habits than to build the first version of NT not on a 386 but on a MIPS R4000 chip—a powerful but completely Intel-incompatible microprocessor. An intriguing aspect of that first demonstration of OS/2 3.0 was that Microsoft used a MIPS-based computer. I remember thinking, "Perhaps the world is changing. Maybe someday soon we'll debate whether to run NT on an Intel box, a MIPS machine, or Macintosh hardware!"
That debate never occurred. Whereas NT 4.0 supported four completely foreign architectures—Digital Alpha, Intel x86, PowerPC, and MIPS—by the advent of Win2K (aka NT 5.0), the roster of processors that NT supported had shrunk to one: the Intel x86.