Windows NT


Windows NT is a family of operating systems produced by Microsoft, the first version of which was released on July 27, 1993. It is a processor-independent, multiprocessing and multi-user operating system.
The first version of Windows NT was Windows NT 3.1 and was produced for workstations and server computers. It was intended to complement consumer versions of Windows that were based on MS-DOS. Gradually, the Windows NT family was expanded into Microsoft's general-purpose operating system product line for all personal computers, deprecating the Windows 9x family.
"NT" formerly expanded to "New Technology" but no longer carries any specific meaning. Starting with Windows 2000, "NT" was removed from the product name and is only included in the product version string.
NT was the first purely 32-bit version of Windows, whereas its consumer-oriented counterparts, Windows 3.1x and Windows 9x, were 16-bit/32-bit hybrids. It is a multi-architecture operating system. Initially, it supported several instruction set architectures, including IA-32, MIPS, and DEC Alpha; support for PowerPC, Itanium, x64, and ARM were added later. The latest versions support x86 and ARM. Major features of the Windows NT family include Windows Shell, Windows API, Native API, Active Directory, Group Policy, Hardware Abstraction Layer, NTFS, BitLocker, Windows Store, Windows Update, and Hyper-V.

Naming

It has been suggested that Dave Cutler intended the initialism "WNT" as a play on VMS, incrementing each letter by one. However, the project was originally intended as a follow-on to OS/2 and was referred to as "NT OS/2" before receiving the Windows brand. One of the original NT developers, Mark Lucovsky, states that the name was taken from the original target processor—the Intel i860, code-named N10. A 1998 question-and-answer session with Bill Gates revealed that the letters were previously expanded to "New Technology" but no longer carry any specific meaning. The letters were dropped from the names of releases from Windows 2000 and later, though Microsoft described that product as being "Built on NT Technology".

Major features

A main design goal of NT was hardware and software portability. Various versions of NT family operating systems have been released for a variety of processor architectures, initially IA-32, MIPS, and DEC Alpha, with PowerPC, Itanium, x86-64 and ARM supported in later releases. The idea was to have a common code base with a custom Hardware Abstraction Layer for each platform. However, support for MIPS, Alpha, and PowerPC was later dropped in Windows 2000. Broad software compatibility was achieved with support for several API "personalities", including Windows API, POSIX, and OS/2 APIs – the latter two were phased out starting with Windows XP. Partial MS-DOS compatibility was achieved via an integrated DOS Virtual Machine – although this feature is being phased out in the x86-64 architecture. NT supported per-object access control lists allowing a rich set of security permissions to be applied to systems and services. NT supported Windows network protocols, inheriting the previous OS/2 LAN Manager networking, as well as TCP/IP networking.
Windows NT 3.1 was the first version of Windows to use 32-bit flat virtual memory addressing on 32-bit processors. Its companion product, Windows 3.1, used segmented addressing and switches from 16-bit to 32-bit addressing in pages.
Windows NT 3.1 featured a core kernel providing a system API, running in supervisor mode, and a set of user-space environments with their own APIs which included the new Win32 environment, an OS/2 1.3 text-mode environment and a POSIX environment. The full preemptive multitasking kernel could interrupt running tasks to schedule other tasks, without relying on user programs to voluntarily give up control of the CPU, as in Windows 3.1 Windows applications.
Notably, in Windows NT 3.x, several I/O driver subsystems, such as video and printing, were user-mode subsystems. In Windows NT 4, the video, server, and printer spooler subsystems were moved into kernel mode. Windows NT's first GUI was strongly influenced by that from Windows 3.1; Windows NT 4's interface was redesigned to match that of the brand new Windows 95, moving from the Program Manager to the Windows shell design.
NTFS, a journaled, secure file system, was created for NT. Windows NT also allows for other installable file systems; starting with versions 3.1, NT could be installed on FAT or HPFS file systems.
Windows NT introduced its own driver model, the Windows NT driver model, and is incompatible with older driver frameworks. With Windows 2000, the Windows NT driver model was enhanced to become the Windows Driver Model, which was first introduced with Windows 98, but was based on the NT driver model. Windows Vista added native support for the Windows Driver Foundation, which is also available for Windows XP, Windows Server 2003 and to an extent, Windows 2000.

Development

Microsoft decided to create a portable operating system, compatible with OS/2 and POSIX and supporting multiprocessing, in October 1988. When development started in November 1989, Windows NT was to be known as OS/2 3.0, the third version of the operating system developed jointly by Microsoft and IBM. To ensure portability, initial development was targeted at the Intel i860XR RISC processor, switching to the MIPS R3000 in late 1989, and then the Intel i386 in 1990. Microsoft also continued parallel development of the DOS-based and less resource-demanding Windows environment, resulting in the release of Windows 3.0 in May 1990.
Windows 3.0 was eventually so successful that Microsoft decided to change the primary application programming interface for the still unreleased NT OS/2 from an extended OS/2 API to an extended Windows API. This decision caused tension between Microsoft and IBM and the collaboration ultimately fell apart.
IBM continued OS/2 development alone while Microsoft continued work on the newly renamed Windows NT. Though neither operating system would immediately be as popular as Microsoft's MS-DOS or Windows products, Windows NT would eventually be far more successful than OS/2.
Microsoft hired a group of developers from Digital Equipment Corporation led by Dave Cutler to build Windows NT, and many elements of the design reflect earlier DEC experience with Cutler's VMS and RSX-11, but also an unreleased object-based operating system developed by Dave Cutler for DEC Prism. The team was joined by selected members of the disbanded OS/2 team, including Moshe Dunie.
The VMS kernel was written in VAX Macro, but Windows NT was designed to run on multiple instruction set architectures and multiple hardware platforms within each architecture. The platform dependencies are hidden from the rest of the system by the HAL.
While creating Windows NT, Microsoft developers rewrote VMS in C. Although they added the Win32 API, NTFS file system, GUI, and backwards compatibility with DOS, OS/2, and Win16, DEC engineers almost immediately noticed the two operating systems' internal similarities; parts of VAX/VMS Internals and Data Structures, published by Digital Press, accurately describe Windows NT internals using VMS terms. Instead of a lawsuit, Microsoft agreed to pay DEC $65–100 million, help market VMS, train Digital personnel on Windows NT, and continue Windows NT support for DEC Alpha.
Windows NT and VMS memory management, processes, and scheduling are very similar. Windows NT's process management differs by implementing threading, which DEC did not implement until VMS 7.0 in 1995, likely to compete with Microsoft.
Like VMS, Windows NT's kernel mode code distinguishes between the "kernel", whose primary purpose is to implement processor- and architecture-dependent functions, and the "executive". This was designed as a modified microkernel, as the Windows NT kernel was influenced by the Mach microkernel developed at Carnegie Mellon University, but does not meet all of the criteria of a pure microkernel. Both the kernel and the executive are linked together into the single loaded module ntoskrnl.exe; from outside this module, there is little distinction between the kernel and the executive. Routines from each are directly accessible, as for example from kernel-mode device drivers.
API sets in the Windows NT family are implemented as subsystems atop the publicly undocumented "native" API; this allowed the late adoption of the Windows API. Windows NT was one of the earliest operating systems to use Unicode internally.

Releases

VersionMarketing nameEditionsRelease dateBuild number
3.1Windows NT 3.1Workstation, Advanced ServerJuly 27, 1993528
3.5Windows NT 3.5Workstation, ServerSeptember 21, 1994807
3.51Windows NT 3.51Workstation, ServerMay 30, 19951057
4.0Windows NT 4.0Workstation, Server, Server Enterprise Edition, Terminal Server, EmbeddedAugust 24, 19961381
5.0Windows 2000Professional, Server, Advanced ServerFebruary 17, 20002195
5.0Windows 2000Datacenter ServerSeptember 26, 20002195
5.1Windows XPHome, Professional, Media Center, Tablet PC, Starter, Embedded, Home N, Professional NOctober 25, 20012600
5.1Windows Fundamentals for Legacy PCsJuly 8, 20062600
5.2Windows XP64-bit Edition Version 2003 March 28, 20033790
5.2Windows Server 2003Standard, Enterprise, Datacenter, Web, Storage, Small Business Server, Compute ClusterApril 24, 20033790
5.2Windows XPProfessional x64 Edition April 25, 20053790
5.2Windows Server 2003 R2Standard, Enterprise, Datacenter, Web, Storage, Small Business Server, Compute ClusterDecember 6, 20053790
5.2Windows Home ServerJuly 16, 20073790
6.0Windows VistaStarter, Home Basic, Home Premium, Business, Enterprise, Ultimate
  • Business: November 30, 2006
  • Consumer: January 30, 2007
  • 6000
  • 6001
  • 6002
  • 6003
  • 6.0Windows Server 2008Foundation, Standard, Enterprise, Datacenter, Web Server, HPC Server, Itanium-Based SystemsFebruary 27, 2008
  • 6001
  • 6002
  • 6003
  • 6.1Windows 7Starter, Home Basic, Home Premium, Professional, Enterprise, UltimateOctober 22, 2009
  • 7600
  • 7601
  • 6.1Windows Server 2008 R2Foundation, Standard, Enterprise, Datacenter, Web Server, HPC Server, Itanium-Based SystemsOctober 22, 2009
  • 7600
  • 7601
  • 6.1Windows Home Server 2011April 6, 2011
  • 7600
  • 6.1Windows Thin PCJune 6, 20117601
    6.2Windows 8Windows 8, Windows 8 Pro, Windows 8 Enterprise, Windows RTOctober 26, 20129200
    6.2Windows Server 2012Foundation, Essentials, Standard, DatacenterSeptember 4, 20129200
    6.3Windows 8.1Windows 8.1, Windows 8.1 Pro, Windows 8.1 Enterprise, Windows RT 8.1October 18, 20139600
    6.3Windows Server 2012 R2Foundation, Essentials, Standard, DatacenterOctober 18, 20139600
    10.0Windows 10Home Single Language, Home, Pro, Pro Education, Pro for Workstations, Enterprise, Education, Windows 10 S, IoT Core, Mobile, Mobile EnterpriseJuly 29, 2015
  • 10240
  • 10586
  • 14393
  • 15063
  • 16299
  • 17134
  • 17763
  • 18362
  • 18363
  • 19041
  • 19042
  • 19645
  • 20170
  • 10.0Windows Server 2016Essentials, Standard, Datacenter, Multipoint Premium Server, Storage Server, Hyper-V ServerSeptember 26, 2016
  • 14393
  • 10.0Windows Server 2019Essentials, Standard, Datacenter, Multipoint Premium Server, Hyper-V ServerOctober 2, 2018
  • 17763
  • Windows NT 3.1 to 3.51 incorporated the Program Manager and File Manager from the Windows 3.1x series. Windows NT 4.0 onwards replaced those programs with Windows Explorer, which originally appeared in Windows 95.
    The first release was given version number 3.1 to match the contemporary 16-bit Windows; magazines of that era claimed the number was also used to make that version seem more reliable than a ".0" release. Also the Novell IPX protocol was apparently licensed only to 3.1 versions of Windows software.
    The NT version number is not now generally used for marketing purposes, but is still used internally, and said to reflect the degree of changes to the core of the operating system. However, for application compatibility reasons, Microsoft kept the major version number as 6 in releases following Vista, but changed it later to 10 in Windows 10. The build number is an internal identifier used by Microsoft's developers and beta testers.

    Programming language

    Windows NT is written in C and C++, with a very small amount written in assembly language. C is mostly used for the kernel code while C++ is mostly used for user-mode code. Assembly language is avoided where possible because it would impede portability.

    Supported platforms

    32-bit platforms

    In order to prevent Intel x86-specific code from slipping into the operating system by developers used to developing on x86 chips, Windows NT 3.1 was initially developed using non-x86 development systems and then ported to the x86 architecture. This work was initially based on the Intel i860-based Dazzle system and, later, the MIPS R4000-based Jazz platform. Both systems were designed internally at Microsoft.
    Windows NT 3.1 was released for Intel x86 PC compatible, PC-98, DEC Alpha, and ARC-compliant MIPS platforms. Windows NT 3.51 added support for the PowerPC processor in 1995, specifically PReP-compliant systems such as the IBM Power Series desktops/laptops and Motorola PowerStack series; but despite meetings between Michael Spindler and Bill Gates, not on the Power Macintosh as the PReP compliant Power Macintosh project failed to ship.
    Intergraph Corporation ported Windows NT to its Clipper architecture and later announced intention to port Windows NT 3.51 to Sun Microsystems' SPARC architecture, but neither version was sold to the public as a retail product.
    Only two of the Windows NT 4.0 variants have a full set of service packs available. All of the other ports done by third parties have few, if any, publicly available updates.
    Windows NT 4.0 was the last major release to support Alpha, MIPS, or PowerPC, though development of Windows 2000 for Alpha continued until August 1999, when Compaq stopped support for Windows NT on that architecture; and then three days later Microsoft also canceled their AlphaNT program,
    even though the Alpha NT 5 release had reached RC1 status.
    Microsoft announced on January 5, 2011 that the next major version of the Windows NT family will include support for the ARM architecture. Microsoft demonstrated a preliminary version of Windows running on an ARM-based computer at the 2011 Consumer Electronics Show. This eventually led to the commercial release of the Windows 8-derived Windows RT on October 26, 2012, and the implementation of NT over CE on Windows Phone 8.
    According to Microsoft, it is a common misconception that the Xbox and Xbox 360 use a modified Windows 2000 kernel, for the Xbox operating system was built from scratch but implements a subset of Windows APIs. The Xbox One, however, does use a modified version of Windows 10.

    64-bit platforms

    The 64-bit versions of Windows NT were originally intended to run on Itanium and DEC Alpha; the latter was used internally at Microsoft during early development of 64-bit Windows. This continued for some time after Microsoft publicly announced that it was cancelling plans to ship 64-bit Windows for Alpha. Because of this, Alpha versions of Windows NT are 32-bit only.
    While Windows 2000 only supports Intel IA-32, Windows XP, Server 2003, Server 2008 and Server 2008 R2 each have one edition dedicated to Itanium-based systems. In comparison with Itanium, Microsoft adopted x64 on a greater scale: every version of Windows since Windows XP, has x64 editions.

    Hardware requirements

    The minimum hardware specification required to run each release of the professional workstation version of Windows NT has been fairly slow-moving until the 6.0 Vista release, which requires a minimum of 15 GB of free disk space, a 10-fold increase in free disk space alone over the previous version.
    Windows versionCPURAMFree disk space
    NT 3.1i386, 25 MHz12 MB90 MB
    NT 3.1 Advanced Serveri386, 25 MHz16 MB90 MB
    NT 3.5 Workstationi386, 25 MHz12 MB90 MB
    NT 3.5 Serveri386, 25 MHz16 MB90 MB
    NT 3.51 Workstationi386, 25 MHz12 MB90 MB
    NT 3.51 Serveri386, 25 MHz16 MB90 MB
    NT 4.0 Workstationi486, 25 MHz12 MB124 MB
    NT 4.0 Serveri486, 25 MHz16 MB124 MB
    2000 ProfessionalPentium, 133 MHz32 MB650 MB
    2000 ServerPentium, 133 MHz128 MB650 MB
    XPPentium, 233 MHz64 MB1.5 GB
    Server 2003133 MHz128 MB1.5 GB
    Vista Home Basic800 MHz512 MB20 GB
    Vista 1 GHz1 GB40 GB
    7 for IA-321 GHz1 GB16 GB
    7 for x641 GHz2 GB20 GB
    8 for IA-321 GHz with NX bit, SSE2, PAE1 GB16 GB
    8 for x641 GHz with NX bit, SSE2, PAE2 GB20 GB
    8.1 for IA-321 GHz with NX bit, SSE2, PAE1 GB16 GB
    8.1 for x641 GHz with NX bit, SSE2, PAE, CMPXCHG16b, PrefetchW and LAHF/SAHF2 GB20 GB
    10 for IA-32 1 GHz with NX bit, SSE2, PAE1 GB16 GB
    10 for x64 1 GHz with NX bit, SSE2, PAE, CMPXCHG16b, PrefetchW and LAHF/SAHF2 GB20 GB
    10 for IA-32 1 GHz with NX bit, SSE2, PAE1 GB32 GB
    10 for x64 1 GHz with NX bit, SSE2, PAE, CMPXCHG16b, PrefetchW and LAHF/SAHF2 GB32 GB