Justin R. Erenkrantz Where do you want to go today?

[Editor's note: Well, this document was originally written circa 1998 when I actually used NT. A lot has changed. Of course, there is now Win2k and WinXP. Joy! -- justin]

What Is Windows NT?

The time is 1988. Imagine the largest computer company in the world asking a small company (by comparison) to help them out. Then, imagine that the little company says, "We want control or we leave." Being the big company that it is, the large company tells the small company to take a hike and that they can do just fine without them. The small company goes off on its own without having its largest benefactor beside. Fast forward a few years, this 'small' company is bashing the 'large' company into the ground without any thought. Well to the surprise of non-techies, the large company was IBM and the small little company was Microsoft. Oh, how the mighty fall.

The story of Windows NT (or as much as I'll tell).

Windows NT was initially part of OS/2 3.0, but IBM and Microsoft parted ways after developement began. Microsoft renamed their portion to Windows NT and decided to strike it out on their own. The head of the new NT project was Dave Cutler, who was in charge of the design of Digital's VMS operating system. VMS was the operating system of choice for Digital's VAX computer. Microsoft commissioned this project so that it would eventually replace 16-bit DOS (if it was aging in 1988?). Microsoft continued to work with IBM for the continued existance of their LAN Manager network system and SQL Server (licensed from Sybase). As an aside, Microsoft's just released SQL Server 7.0 is the first ground-up rewrite of SQL Server since the Sybase days.

Windows NT is a preemptive multi-tasking operating system designed to run on many different platforms. However, since the release of NT 4.0, Microsoft has dropped support for all processors except the Intel x86 and Compaq's (formerly Digital's) Alpha AXP chip. The initial design of NT called for it to run on many different platforms through a system called the Hardware Abstraction Layer (HAL). All NT-specific code would be written for a special API (no, not the Win32 API!) that talks to the HAL. The HAL then concerns itself with how to translate these calls into raw processor calls. However, with the removal of processor support, this portability will end up suffering. The only hope is that Compaq continues the Alpha chip development. Intel also has the rights to the design patents for the Alpha AXP chip, but will probably sit on them so that there is no competition for their upcoming Merced processor.

But, so what? What is pre-emptive multi-tasking mean? Multi-tasking means that it can do many things at once. But, in the current generation of computers (and not considering SMP - two or more processors), this is only a façade. A computer can not do more than one thing at a time. So, NT is capable of switching code in and out by use of a scheduling system. A pre-emptive multi-tasking system allows the operating system to have a certain program stop a running process whenever it wants to. Let's say that you are using Microsoft Word and you want Outlook to popup when you have mail, Outlook will be idle until the specified time and then it will take over your processor (without user intervention) and check your mail, then it will return control back to Word. Generally, a pre-emptive multi-tasking operating means that it is much more stable. In a non-multi-tasking operating system, you can only have one program running at a time (even DOS had rudimentary multi-tasking support via software interrupts and TSRs). In a cooperative multi-tasking system, each program has control of the processor until it decides that it is finished. So, if a program decides to go into an infinite loop (for whatever reason), you are toast. Now you know why Windows 3.x and portions of Windows 9x are not suitable for enterprise computing.

One of the other neat aspects of NT is its native file system called (NTFS - New Technology File System). It was designed to replace the ancient FAT (File Allocation Table). The FAT system is limited to 11 character filenames (8.3). FAT is also limited to 65k files per disk with 2n cluster sizes. Therefore, if you have a file that just says "Hi" (which can be represented in 3 bytes - H, I, and EOF char), under a FAT system with 64K (216clusters, the entire file would take up 64K of disk space. These limitations are a complete joke. But, Microsoft has alleviated some of these problems with FAT32 (first seen in Windows95 OSR2) which switches to 232 max files (32-bit pointers, which allows 2K clusters under ~4 gig). While the UNIX file system has some advantages, I believe it has grown quite archaic in recent years, so vendors have developed their own new UNIX filesystems that are incompatible with each other. This leads to chaos. Remember that NTFS was designed in the late 1980s.

Windows NT's NT File System (NTFS) has the following features:

  1. Filenames can be up to 254 characters (case sensitive, spaces, and multiple periods).
  2. NTFS has a smarter disk-space allocation algorithm, which reduces disk fragmentation. That's not to say that NTFS frags.
  3. NTFS is a 64-bit file system (meaning it can easily scale into the terabytes).
  4. NTFS has inherent file compression (using a LZW variant I believe).
  5. NTFS has inherent lazy writes, if drive is corrupted, it will restore the transaction.
  6. NTFS has hotfix sector repair - if it finds a bad sector during a write, it will mark it as bad and write the data to another part of the drive.

Over time, NT has come to the forefront of networking computing. It is now a serious contender to UNIX in the enterprise system. Would I want NT as the operating system running a nuclear power plant? Not yet. I'd hate to see a BSOD (Blue Screen of Death) come up right before a meltdown. Various variants of UNIX have been out for almost thirty years. All of the significiant problems have been ironed out. UNIX deserves its place as a rock-solid operating system. But, NT is slowly gaining acceptance in all fields save mission-critical functionality. NT provides stellar performance and excellent reliability (though not at the levels where you can leave it up for years at a time like UNIX variants).

There is approximately 4 to 5 million lines of code and 200 man-years in the current generation of NT 4. Current estimates place Windows NT 5 around 30-40 million lines of code.

One of the most interesting things is that Microsoft has recently announced that Windows NT 5 will no longer be called Windows NT, but rather Windows 2000 with the tag line "Built on NT technology." This signals a Redmond paradigm shift from the Windows 9x series to the NT series. While Windows 2000 will always be NT to me, it signals Microsoft's increased reliance upon NT.

The Origin of the NT Name

A lot of people wonder where the NT name from. Well, the emergent programming language at the time was C++. If you understand the history of the NT project (primarily that Dave Cutler came from Digital's VMS team), this makes a lot of sense. What is VMS++? WNT (Windows NT). In fact, Dave Cutler apparently wondered how long it would take others to found this out.

Editor's Note: The following is shamelessly copied from Netystadt.org (excuse the grammar).

From: Uri London <uril@microsoft.com>

This is a very old stuff. Anyway, this is just half of the story. About
a year and a half after the beginning of the developing process of NT,
someone discover that WNT is VMS++. so he  asked Dave about that, and
his answer was: "wow, It took you too long to find that".
Hey, the men kept his mouth close 18 months, just because he wants to
discover how long does it takes others to find it out.

Uri London
uril@microsoft.com

Sources used in writing this page:


Last Modified Friday, 20-Aug-2010 02:42:31 EDT These pages were made by Justin R. Erenkrantz unless otherwise stated. This work is licensed under a Creative Commons License. These pages will look best in an XHTML 1.0 compliant browser.

Creative Commons Attribution License Valid XHTML 1.0 Strict! Valid CSS!
[Blue Ribbon Campaign icon] [frdm] Support SFLC