Original URL: http://www.theregister.co.uk/2013/08/20/nt_at_20/
Windows NT: Remember Microsoft's almost perfect 20-year-old?
It all went a bit pear-shaped later... but it DID stop people switching to OS/2
Posted in Operating Systems, 20th August 2013 09:32 GMT
Feature If you want to be reminded that you're getting old, ask a youngster what Windows NT is. Chances are, there'll be blank looks all round. Windows What? Is it, like, a codename for a new version?
You can't blame them. There hasn't actually been a proper "Windows NT" release since the late 1990s, so for almost anyone under 30 it's an anachronism. I've checked. For anyone old enough to remember the OS wars of 1990 to 1995, Windows 8, 7, Vista, XP are still "NT", no matter what the Microsoft marketing department calls it.
NT, first released in 1993, really has four phases in its history: the FUD phase, before it was launched; the brief few years when it was almost perfect - and nobody used it; then a long period of mismanagement and decline; and then, more recently, the WinMin and Metro era. I'd venture that the first two were the most important, and I got a closer look at it than most.
Two decades ago, in another life, I was beta-testing NT months before it was released, for the mighty Digital Equipment Corporation (DEC). Or I should say, the "still-quite-mighty-but-falling-fast" DEC. My employer, a scientific instruments supplier, had made DEC lots of money from its clever VAX-based kit, and so was treated to software and hardware long before it became public. This workstation had the new Alpha chip, which everybody knew was the dog's bollocks. Alpha and NT: this looked like the future. It was a shame that for weeks the lack of a keyboard driver meant it could only boot to a BSOD.
In 1992 NT was, for any professional developer, the mighty juggernaut that you couldn't avoid. You'd been hip to Unix-flavoured systems at college, or maybe even taught yourself how to use them in your own time. But NT threatened all that hard won know-how.
In the unwritten taxonomy of technology companies, Microsoft was still firmly in the comedy category for many of us. Evidently driven by marketing rather than technical excellence, for years it had coat-tailed on much bigger outfits - first IBM and then others, via 1991's short-lived and speculative Advanced Computing Environment consortium – comprised of Compaq, Microsoft, MIPS Computer Systems, DEC and the Santa Cruz Operation.
Windows
Microsoft's position owed everything to a ludicrous but ubiquitous business software product: MS-DOS. And yet Microsoft had contrived, by 1987, with Windows 2.0, to take this primitive OS – barely an OS, really – and make it even slower and buggier.
Microsoft had portfolio breadth but not quality. There was a clutch of so-so applications and so-so development tools. Enthusiasts preferred Borland's Turbo products while pros who wanted performance opted for Watcom's C compiler, the fastest out there. Microsoft was universally seen as holding the industry back. At least, that was the received wisdom among my *ix-savvy brethren.
But we all saw how the Great Industry Powers squabbled over the Unix world and created a great vacuum, and NT threatened to fill in that gap. Unix was then (and still is) an idea almost anyone can implement. And lots of people do. And we knew this first hand, due to considerable time spent ensuring our builds on HP-UX, Ultrix, OSF/1 and AIX all succeeded on various bits of hardware. Every developer knew their processor endians. (The Register's first slogan in 1994 was "the only good endian is a dead endian".)
My, how this made tracking down bugs so much more fun. Honestly. But worst of all was the time required to produce something workable when a squabbling Unix industry couldn't. Developers today use Qt to create sophisticated cross-platform applications – such as Skype or Google Earth – that work nicely across Linux, Mac and Windows. That's because the target platforms are themselves are rich, mature and (generally) stable. But back then, even attempting a basic GUI that worked "cross-Unix" was difficult, and the end result might as well have been modem noise piped into a frame-buffer.

Nostalgia ... Who else immediately played the boot-up jingle in their heads upon seeing this?
With warring factions unable to agree on standards and interfaces, the lowest common denominators were (no pun intended) primitive. The X Window system and the most basic X toolkits spawned thousands of pages of documentation – which incidentally gave "technology-transfer" kingpin Tim O'Reilly his big break – merely to create a simple widget, such as a tickbox. Each "cure" was a design-by-committee atrocity.
One API to rule them all
NT was built to be scalable, processor-independent, reasonably secure, and with a rich GUI. And it had one API to rule them, which meant everyone could see what NT could offer.
Every major industry vendor bar Sun promised a port; it would run on Intel, MIPS, PowerPC, PA RISC and Alpha. Microsoft published the Win32 specs in the early summer of 1992, a kind of firing pistol. One senior Linux figure today told me that by 1993, every crack Unix dev he knew in the Bay Area was secretly cribbing up on the Win32 APIs in Windows NT. I have no trouble believing him, it was no different in the UK. And Windows NT promised to run everywhere.
Microsoft had never come up with anything "grown-up" before, and spent much of the time alluding to the fact it was "VMS improved" (referring to DEC's VMS operating system). They even invented some retrospective mythology - that if you added the next letter in the alphabet to each letter in the acronym VMS (Virtual Memory System), you would have WNT. In fact, NT owes its name to the code name for the chip it was designed on: "N-Ten", the nickname of the Intel i860 XR processor. The mythology was invented to impress journalists. (Nowadays, it means "New Technology".)
Six of the original seven NT engineers were VMS architects, but most of NT had nothing to do with VMS daddy Dave Cutler's kernel team - and instead featured layers of code ripped wholesale from Windows and OS/2. Architectural compromises would take it a long way from VMS.
As I wrote here, recalling the OS wars, the main value of NT in its first few years was as a propaganda bunker-buster. From 1992 to 1994 it was used to stop people switching to Unix or OS/2. There were barely any applications. Performance on Intel chips was, to put it kindly, "stately".
Not just a pretty face
Even before it had appeared it had forced the warring factions within Unix to switch lanes and bury many disagreements: too little and too late, it turned out. The industry giants were still making lots of money from high-margin minicomputers and workstations and fat support contracts, and their engineering focus was on making Unix as robust as the minis – a job that would last well into the last decade.
To the giants, Microsoft was just a slightly sinister comedy turn, and ultimately, the established IT vendors didn't just didn't see the importance of attractive applications.
The first three years were a honeymoon for NT. Which is when people started using it. Then things really started to go a bit pear-shaped.
The reason was a familiar one for Microsoft: complacency, caused by huge shedloads of cash. At one time the plan had been to shift people from DOS-based Windows as rapidly as possible. But the competitive threat from Apple and OS/2 collapsed faster than anyone anticipated. So Microsoft was making tons of money from Windows 95 and grew complacent. After '95, it would crank out three more DOS-based versions of Windows, and it would be 2001 – eight years after NT launched – that Microsoft would finally ditch NT as an individual product.

RAM MONSTER ... Wow, 24,128KB
NT could once boast stability, but the architectural changes made in 1996 removed much of that. BSODs, once rare, became fairly commonplace, as poorly written graphics drivers ran amok. During the NT honeymoon Microsoft had made little or no practical differentiation between a server and a workstation. This ended in 1996, when it began to market the server for serious cash and limit the TCP/IP connections a workstation could make.
Bugs... what bugs?
Worse, with cash a' plenty and no urgency, Microsoft lost the ability to manage NT's development. It became project out of control. Three hundred developers had worked on NT from the time of the IBM/Microsoft divorce in September 1990 – in 10 to 12 isolated teams. This ultimately rose to 1,600 devs for Windows 2000 and from 6 million lines of code to 29 million.
The pace of development slowed. NT4 had rolled out in autumn 1996, and developers received a very crude NT5 a year later. Yet it would be three years before the code was deemed fit for release – and even then, there were 63,000 bugs still needing attention just weeks before release. In fact, it was only Intrinsa's testing tool - a source code analyser designed for embedded systems – that saved the day. Microsoft granted the Linux team a special award.
Microsoft had been breezily indifferent to security. Note the proximity of this report of the Feds investigating security holes to this strategic epiphany from Bill Gates. It's not unreasonable to infer that Microsoft had become a national security liability to USA Inc.
In getting NT consumer-ready, Microsoft had made some appalling decisions. Some, like allowing the default user to run at admin/root privilege without a password, really defy belief.
Sinofsky's legacy: Code bloat put on diet
In the past few years the code sprawl has been tamed, and it's the one bright note of Sinofsky's legacy that he took this seriously. WinMin was a long-term project to strip down the bloat away to something Cutler's founding team would recognise, a core of a kernel and components with a small footprint of a few tens of megabytes, rather than gigabytes.
Windows 7 was the first version to see the benefits of this, requiring lower resources than Vista, and Windows 8 is even nippier than 7. The result is that NT can be squeezed into tablets and phones: Windows Phone 8 today runs the ARM port of NT, smoothly and nimbly compared to Google's VM-powered Android.
(Readers with very long memories will see an irony here. The original 1981 IBM PC, which made Gates' fortune, shipped with a choice of the then-very-fashionable UCSD p-Machine, a VM-based OS, and Microsoft's MS-DOS, which was rebranded as PC-DOS. Users preferred the native code to the VM system. James Gosling would later cite p-Machine as a major inspiration for Java. Android is a Java system.)
Now look at it ... Windows NT 6.2 aka Windows 8 with Metro interface
Much of the controversy about Windows 8 is forcing a discombobulating tablet experience onto desktop users, but it's a decent tablet experience and underneath, Windows is in better health than it has been for years.
What's striking is how much the installed base casts a shadow over new development. XP has been around for 12 of NT's 20 years on the market, and it refuses to go away. With two in five PCs still running XP, Microsoft will be pressured to continue issuing patches after the 2014 cut-off date. It's a remarkable run.
There are actually many areas where NT didn't clean up: it failed to make an impact on the embedded world, where specialist systems such as QNX and VxWorks – and of course Linux – are a natural choice. Internet infrastructure largely runs on Linux too. But Microsoft won't be too unhappy, at 20, to see what the original team achieved. ®
