Windows NT
Contents
Background
Windows NT started life as NT OS/2. Oringally it was a future thinking version of OS/2 that would be portable, and was targeted for the comming RISC cpu's. The goal was to design a microkernel OS that could run 32 bit POSIX binaries, 16 bit OS/2 1.x binaries, 16 bit MS-DOS & Windows binaries with an improved 32bit OS/2 API & Windowing system. Microsoft hired Dave Cutler away from Digitial to help with the implementation of the OS, back in 1988.
It is important to remember that the NT project started in 1988, and where Microsft was product wise. Released products in 1988 were:
Learning DOS 2.0, Microsoft Stat Pack on CD-ROM, MS-DOS 4.01, Small Business Consultant 1.0 on CD-ROM, SQL Server Network Developers Kit 1.0, Excel for OS/2, Word 5.0 for PC, Quick Basic 4.5, Excel for Windows 2.1, OS/2 Software Development kit 1.2, Microsoft Programmer’s Library on CD-ROM, Quick Basic 1.0 for Mac, MS-DOS CD-ROM Extensions 2.0, COBOL Optimizing Compiler 3.0, Flight Simulator 3.0 for PC, PowerPoint 2.01 for Mac, Learning DOS 2.0, Stat Pack 1.0
NT OS/2 was originally targeted to the Intel i860 cpu. This was done to keep Windows NT portable, and not fall into i386'isims into the original base source. This is where the NT in NT comes from, processor they used was called the "N-Ten" from the i860 XR processor. It was quickly apparent though that the i860 was NOT going to be a good workstation CPU, and the effort was quickly moved to the MIPS CPU, and Microsoft built their own motherboard design the JAZZ.
However after the release of Windows 3.0, Microsoft started to shift the primary API of NT OS/2 to the Windows API. The 16 bit emulation for OS/2 applications remained, however the Graphical Interface for OS/2 programs became a seperate product. This started the rift that would end the Microsoft IBM collaboration.
With NT OS/2 renamed to Windows NT, the first public beta was released in July of 1992, at the Professional Developers Conference in San Francisco. Another beta was released November 11th, 1992.
Architecture
Windows NT is a microkernel design that supported the following subsystems:
- Win32
- NTVDM
- Win16 (WOW)
- OS/
- POSIX
The native API is largely undocumented, and noted by the prefix RTL. The Win32 api is considered it's primary API as the system services, security & console are all win32 applications.
Win32
This is the most commonly used subsystem. This is responsible for running the 32bit windows applications.
NTVDM
Microsoft licensed SoftPC 3.0 to provide a full PC emulated experence on the RISC cpu's and for emulating pc hardware on the i386, but running instructions inside a v86 virtual machine (A hardware feature of the 386 and higher cpu's).
Win16 (WOW
The Win16/WOW subsystem was a specialized copy of Windows 3.1 running in the NTVDM that would pass all the user interface calls up to the Win32 subsystem via thunking. This allowed for a seamless operation of legacy Win16 applications. Because this ran withing the NTVDM, even RISC machines could run legacy i286/i386/i486 Win16 programs. This was typical for Microsoft Office 4.2 as the only known RISC port of Office was Office 97 for the Dec Alpha.
OS/2
The OS/2 subsystem was to support the transition away from 16bit OS/2 applications. Out of the box it only supported running text mode OS/2 applications. There was a seperatly sold addon for the Presentation Manager graphical applications, although it was hard to come by as Microsoft strongly discouraged it's use. An interesting note about the 16bit OS/2 subsystem is that Microsoft had provided a callback facility to allow OS/2 programs to call the Win32 API.
POSIX
Posix compatability was a 'hot topic' for US Government workstations. The POSIX subsystem was thrown together to acheive a 'checkbox' on GSA contracts. This subsystem was heavily crippled by not having a mechanisim to call the Win32 API. As such it provided an enviroment akin to Unix 32v. With no ability to either run, display X11, or connect via TCP/IP it was largely ignored, except by a few who used it's vi tool that was included in the resource kit.
Windows NT 3.1
This was the first public release of Windows NT, and the Win32 API. NT 3.1 was released on July 27th 1993. The build number is 528. NT 3.1 supported the i386 cpu, and the MIPS R4000. Inside some boxes was a coupon for the Dec Alpha version. NT 3.1 was apparently already ported to the Dec Alpha, however none of the ARC capapable machines were 'production grade' so they couldn't certify for certain that it'd work. Later copies of NT 3.1 have an ALPHA directory.
Windows NT 3.1 does NOT support PCI busses. It is limited to ISA/EISA only. However some PCI periphials can be driven by ISA drivers for things that map to ISA space... Like Video cards.
On the i386 the maximum memory supported is 64MB (which was common limitation of ISA machines back then).
Windows NT 3.5
Codenamed Daytona, this relase added several optimizations, and notibly added support for the PCI bus, and the Dec Alpha CPU's shipped on the CD. It was released on September 21st, 1994. The build number was 807.
The Windows NT 3.5 SDK included the Dec Alpha CLI tools. This version also brought a software only port of OpenGL from SGI to make Windows NT more 'workstation like'.
Windows NT 3.51
This release added the PowerPC cpu support that was done by IBM. I've heard that NT 3.51 was actually 'done' 9 months prior to it's release but Microsoft had to wait for IBM to finish the PowerPC port. Meanwhile Microsoft did a LOT of bug fixing making this a very popular release for corporations. While it retained the look & feel of Windows 3.1 the newshell beta was available towards the end of the products lifespan, giving NT 3.51 a Windows 95 feel. It was released on May 30th, 1995 and it's build number was 1057.
NT 3.51 was to sync a lot of user mode components from Windows 95. Key among them was the Windows 95 help system. Although it may not 'look' or feel like Windows 95 in the slightest. This was the last version of Windows NT to incorporate the Progam Manager as the primary interface. Windows NT 3.51 could also run Microsoft Office 95 the first 32bit version of the popular office suite (3.1/3.5 could NOT).
Windows NT 4.0
Windows NT 4.0 was released on August 24th, 1996. It's build number is 1381. Initially it supported the Alpha, i386, Mips and PowerPC cpu's. However the MIPS cpu was dropped right after service pack 1. The PowerPC cpu was dropped right before service pack 3. The Dec Alpha would see mainstream support right thru the Windows NT 4.0 product life cycle. It’s worth noting that the MCA bus (Microchannel) was also dropped from this release.
This release was the most significant user wise, as it incorporated the Windows 95 shell (newshell). Additionally Microsoft had moved the graphics & printing from the win32 user space, into the 'executive' or kernel. This made graphics (GDI) and printing were significantly faster. This did have the downside that video calls, or errors in print raserization (1 point fonts!!) could crash the entire OS.
I have to say that in my opinion this is where Windows NT went from a curiosity and joke into being a real commercial success. Prior to this, Windows NT 3.1/3.5/3.51 ran mostly win16 applications, and ran them significantly slower then Windows 3.1. However with the transition of user desktops to Windows 95, corporate users now had machines with 16MB of ram, or more, and with Office 95 the beginning of 32bit productivity applications started to hit mainstream. Windows 95 proved itself to be unable to multitask that well under heavy system loads, and with Users with Pentium CPU's suddenly Windows NT was viable. In the company where I worked (Fortune 500 type) we had users going out an buying their own copies of NT 4.0 workstation once word got around that it ran Windows 95 applications but didn’t crash 2-3x a day. Another significant thing for users was the built in shell for Novell Netware, and how it outperformed the Novell offering.
Windows NT was also very popular on the server front, as installation and configuration was significantly easier then Novell Netware. With the release of Exchange server 4.0 more and more companies started to transition their mail infrastructure to Windows NT. Along with the rest of the ‘back office’ SQL, SNA Windows NT started to ‘steal’ away the data center.
Another significant aspect of Windows NT 4.0 was that it not only included TCP/IP in the product (it was an add-on for Novell Netware) but it also included a web server, ftp server & gopher server in the IIS product line. This made IIS servers the quickest to deploy for a novice IS person.
The downfall at the time was the numerous hotfixes for Windows NT, and how to apply them. While waiting for the servicepacks was one thing, running NT 4.0 on the internet became a challenge as installing anything could undo a hotfix, and you had to be extra diligent about finding and verifying their installation. Eventually Microsoft released the windows update function thru Internet Explorer, alleviating most of this.
Windows NT 4.0 Terminal Server
This was the first Microsoft multiuser version of Windows, with technology given back from Citrix. I recall Microsoft strongarmed the Citrix people into this 'deal'... Anyways it had Service pack 3 built into it, and thus only supported the Alpha & i386 cpus. It was released around June of 1998.
This was more of a public alpha then a finished product. There were LOTS of quarks with running applications in multiuser enviroments, and NT 4.0 terminal server was the first one to really try to pull it off. You HAD to use it's install & configure utilities to tweak each application to not freak out when more then one copy was running.
There never was a servicepack 6a, just 6 so .net will NOT install. This product was quickly replaced by the Windows 2000 Terminal Services, which honestly did a better job.