The Evolution of Microsoft Windows


The Evolution of Microsoft Windows

Well before Windows first appeared, the graphical user interface (GUI) revolution began in California's Silicon Valley. In 1968, computer pioneer Douglas Engelbart demonstrated a computer system created at Stanford Research Institute that incorporated a mouse, video display, hypertext links, word processing tools, and online helpall things that we'd insist upon on any computer today, but which were radical innovations at the time. For videos of the original 1968 demonstration, see http://sloan.stanford.edu/MouseSite/1968Demo.html. (You'll need RealPlayer to view them.) Engelbert's spectacular lecture establishedand deliveredthe vision of the computer as a constant companion, "always available, and immediately responsive ."

Researchers at Xerox Corporation's nearby Palo Alto Research Center (Xerox PARC) incorporated these concepts to create the MAXC computer in 1972, which included a high-speed bitmapped graphical display, a mouse, overlapping windows, and cut and paste capability. In 1973, Xerox created the more refined Alto, adding a laser printer and an early version of the Ethernet network (also PARC inventions ). The Alto had a page- sized display, pull-down menus , icons, disk storage, WYSIWYG editing, email, typeset -quality printing, and network file sharing. Virtually all of the technical elements of today's desktop computing paradigm were present.

If the Alto was such a magnificent invention, why have most people never heard of it? The reasons are threefold. First, Xerox corporate management didn't foresee that computers would eventually become as common as indoor plumbing, and decided that a computer meant for use by just one person was unmarketable. Second, the necessary processing and display hardware required for such a computer was very expensive at that time, so the Alto was far too expensive to become a viable mass-market product [*] . And finally, software was not yet considered patentable, so Xerox did not attempt to protect the Alto concept from being copied by others. So, the Alto was used internally at PARC, but never made it out the front door.

[*] In 1981, Xerox finally did release a commercial version of the Alto called the Star, but at nearly $17,000, its cost was three to four times that of a PC or CP/M-based computer. The Star sold only about 30,000 units, mostly in the technical documentation publishing market, where its graphical capabilities were unmatched by any other technology available at the time.

Although the Alto was never sold commercially, it profoundly influenced computer history. Most importantly, it caught the attention of Steve Jobs of Apple Computer. Jobs saw the Alto in 1979, and directed his staff to incorporate its concepts in the Lisa and Macintosh computers that were already under development. The result was the Apple Lisa, released in 1983 to no great fanfare, and the Apple Macintosh in 1984, which was a sensation . An irritatingly slow and clunky sensation to be sure, but it brought the Alto's amazingly intuitive interface to the public at an affordable price for the first time. The Mac smiled at you when you turned it on, and the public smiled back.

The impact and utility of the graphical interface wasn't lost on developers in the PC world. Knowing that Apple was working on the Macintosh, Microsoft and its primary operating systems competitor Digital Research both began projects to develop a graphical operating system for the PC. Digital Research's GEM interface came to market first, in 1983. With GEM on the market, and a VisiCorp competitor named VisiOn and the Apple Macintosh soon to appear, Microsoft responded with a premature demonstration of Windows 1.0 at the Comdex computer industry trade show in November, 1983. This became infamous as the "smoke and mirrors demo," because Windows 1.0 did not actually run at the time; the demo was rigged. But it had its intended effect, and both developers and customers waited for Microsoft's GUI project rather than jumping on the GEM or VisiOn bandwagons. They waited, and waited, until November 1985, when Windows 1.0 was finally released.

While GEM and its early applications were far superior in look, feel, and performance to Windows 1.0 and 2.0 and the early Windows applications, market forces (and business practices that have kept Microsoft in hot water to this day) eventually pushed GEM into obscurity.

16-Bit Windows

Although its initial release was an iffy affair, technical progress and strong-armed marketing have made Windows the world's dominant operating system. Let's take a look how Windows has evolved since it was released in 1985.

Windows 1

Development of a graphical user interface for the IBM PC began in 1981. The goals were: multitasking ability, a graphical user interface, and device-independent screen and printer graphics; that is, application programs would not be required to know the details of how graphics were to be transmitted to each and every supported model of printer and display adapter. The original concept placed the menus at bottom of screen, but this was abandoned for drop-down menus and dialog boxes as seen on Xerox Alto and Macintosh.

Announced in 1983, Windows version 1.01 was not actually released until November 1985, and even then it did not realize its intended potential. In version 1, windows could not be positioned so that they overlapped , but could only be placed side-by-side. Its release really served just as a placeholder, to affirm to the marketplace that Microsoft did intend to release a graphical environment along the likes of Macintosh, GEM, and VisiOn.

While limited in performance and appearance, version 1.0 did include Windows Write and Windows Paint, Notepad, and smaller applications such as Clock, Calculator, Reversi (a game), CardFile, and Terminal, a serial data communications program. It required 256KB of memory, and could run from two double-sided double-density (360KB) floppy disks, or a hard disk. A program called the MS-DOS Executive served as a sort of file manager, and served as the program's shell. It ran entirely in real mode, and could not address memory past the 640KB limit imposed by the initial C architecture. Minor versions 1.03 and 1.04 were released between August 1986 and April 1987 with additional support for national languages, MS-DOS 3.2, more fonts and printers, and additional PC models.

Windows 2

Windows 2 was released in November 1987, and addressed many of the shortcomings of version 1. This release added icons to the interface metaphor, and supported overlapped windows. Version 2 required at least 512KB of memory, but could still be run from floppy disks. Version 2.1, released later, was the first to require a hard disk. Version 2 introduced the Smartdrive disk cache and Dynamic Data Exhange (DDE) support, which allowed a level of automatic interaction between applications.

All program code still ran in "real mode," with a limit of 640KB of RAM directly addressable. However, on computers with enhanced memory, multiple applications whose total memory requirements exceeded 640KB could still be run. As Windows switched between applications it swapped program code and data modules between the lower 640KB and enhanced memory. When memory usage was pushed to the limit, program code modules were discarded from memory and reloaded from the hard disk when needed again. This caused a massive slowdown and the familiar sound of disk "thrashing," but it did work.

Windows 2.10, released in May 1988, permitted the use of mice from other manufacturers, and was the first version to require the use of a hard disk. A new version of the himem.sys driver learned the trick of using the first 64K of extended memory for system code, freeing up memory for applications.

As with Digital Research's GEM windowing system, Windows was available as a "runtime-only" version that software vendors could bundle with application software. Windows version 2.11 was the last to be made available in this bundled format.

Windows 386

Windows 386 was released in 1987 as a specialized version of Windows 2 that required the use of an Intel 80386 processor. The 386 provided hardware support for virtual memory paging, more total system memory, and used the CPU's protected mode to gain direct access to extended memory. The processor also provided a "virtual 86" CPU mode that let Windows run several DOS applications at once, with preemptive multitasking between DOS applications and Windows. Preemptive multitasking gave each DOS application time to run, in round- robin fashion. The memory management and preemptive-multitasking of DOS applications that appeared in Windows 386 were carried forward into the "386 enhanced mode" of Windows 3.0.

Windows 3

Windows version 3.0 was a significant rewrite of Windows, and was released in May 1990. At this time there was a still a significant installed base of 80286-based computers, but 80386 and 80486 processors were found in virtually all newer computers, and it was time for Windows to start to take advantage of these processors' significant memory access improvements.

The 8088 processor used in the original IBM PC and its clones was capable of addressing at most 1MB of memory, due to the processor's design. Programs specified memory locations using two components : a 16-bit address value, and a 16-bit segment register. 16-bit values alone can specify at most 65,535 distinct addresses, but the segment register increased this many fold. When a program makes reference to a memory location, the processor automatically takes the value from a segment register, multiplies it by 10 (in hexadecimal, which is 16 in decimal), and adds the 16-bit address value to get a physical memory address.

Figure 1.1 shows an example. When fetching program instructions in real mode, the CPU uses the address stored in the Program Counter (PC) register, along with the value in the Code Segment (CS) register.

Figure 1.1. Instruction fetching in Real mode.

In this example, the programmer has loaded the CS register with 3000 (hexadecimal). With the PC register holding address 1447, the processor will retrieve the next instruction from physical address 31447. This scheme allows the processor to access at most 1MB of memory.

Note

Using a large segment value and a large address value so that the result is larger than 0FFFFF 16 , the 1MB memory access limit could be raised by about 64KB. This is what the HIMEM.SYS driver did for DOS and Windows. Today, it seems odd that programmers went to such trouble to gain access to just 64KB of memory, but it really did matter back then.


Intel 80286 and later processors could use a more flexible memory access scheme called protected mode . In protected mode, the value of segment register was not used directly, but was instead used to select an entry from a table that contained 24-bit (80286 processors) or 32-bit (80386 or better) base address values, as shown in Figure 1.2. With the ability to add larger segment values, the protected mode scheme lets 16-bit programs access up to 4GB of physical memory.

Figure 1.2. Intel CPU modes and memory access.

Because 16-bit versions of Windows rely upon DOS and the computer's BIOS code to perform input/output operations, and DOS and the BIOS are real-mode programs, Windows needs to be able to rapidly switch the processor back and forth between protected and real mode. The 80286 could not be easily returned to real mode from protected mode. This is why Windows 1 and 2 were forced to rely solely on real mode.

The 80386 and later processors, however, could instantly be switched back and forth between real and protected mode, so with the advent of these processors, Windows 3 was completely redesigned to take advantage of protected mode's vastly larger potential memory space.

For compatibility with older computers, Windows 3.0 could be run in any of three modes:

  • Real mode, with access to at most 1 MB of memory

  • Standard mode, which put the CPU into protected mode, and increased the maximum directly usable memory to 16 MB

  • 386 Enhanced mode, which let the CPU use the 386 processor's hardware support for running multiple DOS programs at once. This mode had been developed and tested in Windows 386. The DOS multitasking came at a slight decrease in performance, so both Standard and 386 Enhanced modes were made available as options.

Windows 3.0 required 640K of main memory plus at least 256K of extended memory, and required MS-DOS 3.1 or better.

The Windows user interface was also significantly revamped . The MS-DOS Executive was replaced with Program Manager, which used icons to represent program groups, and File Manager, which was a graphical file system browser comparable to today's My Computer. VGA graphics adapters were much more common by this point, and Windows graphical code was enhanced to support the use of more than the 16 primitive colors available in Windows 1 and 2. This made it possible for Windows to display photographic images for the first time.

While Windows 3's access to more memory was a huge improvement over Windows 1 and 2, protected mode introduced a new and soon to become annoying occurrence: the General Protection Fault. In real mode, buggy programs (or hardware drivers, or Windows components) that read from or wrote to incorrect memory addresses would often proceed as if nothing had happened , and only later might the system freeze up due to overwritten program code. Protected mode gave Windows the ability to detect when a program tried to access memory it wasn't supposed to (hence the word protected ). Because there was nothing that Windows could really do to remedy the situation, it would just display the protection fault warning and terminate the program.

Unfortunately, when Windows 3.0 was first released, most application programs and drivers contained bugs that had never before been detected . Many were benign , but the protection mechanism couldn't know that. And, with much of Windows freshly rewritten, Windows itself contained countless bugs , too. Windows 3.0 quickly gained a reputation as being a phenomenally improved, but barely usable, operating system.

Windows 3.1

Microsoft released Windows 3.1 in April 1992, and for the first time, really got 16-bit Windows right. Most of the bugs were fixed, and developers had gotten their applications cleaned up. Even the General Protection Fault mechanism itself was improved, and was less often encountered . Some technical advances were made: Real mode support was dropped (for Windows itself; DOS applications were run in Real or Virtual 86 mode). Truetype scalable font support was added, as were extensions for multimedia support. Object Linking and Embedding (OLE) technology was released, which made it possible for applications to cooperate without knowing details about each other's internal operations. Windows 3.1 also included client-side networking support as a standard feature.

By this time, the market was way past ready for a reliable multitasking operating system, and Windows 3.1 sold one million copies in two months. Development of character-mode DOS applications virtually ceased, with WordPerfect Corporation being a notablyand fatallylate exception. The software industry focused almost entirely on Windows, and to a lesser extent on Macintosh.

Windows for Workgroups

Windows for Workgroups (WFWG) was a product line based on Windows 3.1 that included file- and printer- sharing support built in at a small additional cost. This made it possible to build peer-to-peer networks with no additional software, and directly targeted Novell's NetWare and Artisoft's LanTastic products, which up until this point had the small office network market to themselves .

WFWG version 3.1 (based on Windows 3.1) was released in October 1992, and version 3.11 in November, 1993.

Windows 3.11

Windows 3.11 was a bug-fix version, distributed as a free upgrade and installed on new computers, released in December 1993. This was the last issue in the 16-bit Windows product line.

For more details on each of the 16-bit Windows versions, see support.microsoft.com/kb/q32905.

The Windows 9x Family

By the mid-1990s, processor power had increased and memory prices had decreased dramatically since Windows' original release. The Internet had also sprung onto the world stage, from an academic tool to an instrument of global communication and commerce. (You may recall that Windows 3.1 did not even include support for the TCP/IP network protocol used on the Internetyou had to purchase it from a third-party vendor.) Users' expectations likewise had grown with computers' capabilities, and desktop publishing, graphics editing, and multimedia applications had reached the point that 16-bit protected mode's 16MB memory was an obstacle .

The 32-bit Windows NT product line had become successful in the business market (more on this shortly), but it was not yet considered a viable product for the consumer market. The primary reason for this is that Windows NT did not include DOS, and provided no means for user programs to run in real mode. This meant that a huge number of games , multimedia programs, and other consumer and business applications would not run correctly under NT. It would be some time before those products faded away, so Microsoft created a new 32-bit Windows version based on DOS, rather than on the NT kernel. This would let developers write Windows programs that took advantage of the NT 32-bit Windows programming model, while DOS was still underneath to support so-called legacy applications.

Windows 95

Windows 95 was released in August, 1995, as a consumer version of 32-bit Windows, meant to bring 32-bit architecture to the consumer market and hold its place while the Windows NT product line ripened to consumer readiness. Windows 95 was wildly successful, and its user interface is still the reigning interface paradigm today.

Windows 95 used Windows NT's 32-bit programming model, but most of the code was freshly written, not based on NT. Windows 95 uses the 32-bit protected mode made available by Intel 80386 and later processors, illustrated in Figure 1.2. Physically, the segment registers are still present and are still used by Windows itself, but with 32-bit addresses used throughout, application programs can access a 4GB memory address range without having to change the segment registers, and within a given program they can be ignoredthey can use what is termed a "flat memory space." And because Windows 95 and its successors presume an Intel 80386 or later microprocessor, programs could take full advantage of several more efficient instructions that had been added to the Intel platform's instruction set since the original 8086 was released. It also required 4MB of memory as a minimum.

Perhaps the biggest improvement was the introduction of long filename support. The 8.3 filename structure (eight character filenames with a three character extension), which derived from the 1970s TOPS-10 operating system and was copied by CP/M and then MS-DOS, was finally left behind, and files could be named something like "My research notes on the history of DOS and Windows.doc" rather than DOSWHIST.DOC.

Windows 95 also included a significantly improved user interface. The Start button and taskbar appeared, and pop-up context menus (right-click menus) were introduced as a standard feature. DOS applications could be run inside of a window on the desktop and no longer needed to take over the entire screen as they did with Windows 3.1. Built-in networking support included TCP/IP connectivity, dial-up networking, and Internet Explorer and the entire operating system exhibited faster performance, due to the use of 32-bit drivers throughout.

Additional significant improvements included the following:

  • 16-bit (Windows 3.1) applications could still be used, thanks to a "Windows-on-Windows" system that let the older application believe that they were running under the old operating system.

  • Preemptive multitasking was implemented throughout, so that all Windows applications remained at least somewhat responsive even if one application attempted to use all available processing time.

  • Windows 95 had the ability to terminate runaway applications without having to restart Windows to recover lost resources (limited memory space used by Windows to track a program's disk and graphics requirements).

  • Support for Plug and Play meant that Windows could automatically recognize newly added hardware devices and either automatically install the appropriate drivers, or walk the user through the process of locating drivers, through the Add Hardware wizard.

  • The Windows Registry, a single database, was used to store system and application configuration information, rather than multiple text ( .ini ) files.

  • Per-user settings. As an option, Windows 95 could be configured with separate logon names , passwords, desktops, and document folders for more than one user.

As yet, however, Windows did not support USB peripherals.

Windows 95 OSR2

In October 1996, Microsoft released an updated version of Windows 95 called OEM Service Release 2, or OSR2. The OEM part stands for Original Equipment Manufacturer, and indeed, OSR2 was made available only to computer manufacturers for sale with a new computerit wasn't made available as an upgrade, although some parts could be downloaded as hotfixes.

OSR2 included several significant improvements:

  • Supported the FAT32 file system, which permits the use of hard drives up to 2TB in size, and can break large disks into clusters of smaller size than FAT16 for more efficient use of space

  • Enhanced DriveSpace support for compression on volumes up to 2 GB in size

  • Supported Zip drives, removable disk drives, "floptical" media, and detection of CD-ROM disc insertion and removal

  • Included Internet Explorer 3, Internet Mail and News reader, NetMeeting, and Personal Web Server. (Internet Explorer 4 was released as a later, separate update.)

  • Support for the Intel MMX multimedia processor extensions

  • Support for Novell NetWare 4.0 networking software

  • Support for newer PCMCIA (PC Card) peripherals

There was also a host of bug fixes in the release as well.

Subsequent OSR releases 2.1 in August 1997 and 2.5 in November 1997 added support for USB peripherals. USB support was not available as a download or update to Windows 95 or Windows 95 OSR 2.

Windows 98

Windows 98 was released in June 1998. It didn't introduce a radical change in the look and feel of Windows, as Windows 95 did. It was an incremental improvement, with the following major enhancements:

  • Incorporated all of the enhancements and fixes made to Windows 95 since its original release, including the FAT32 file system and 32-bit PC Card support.

  • Improved USB support gave the ability to use USB keyboards and mice without specific drivers, as well as improved support for video devices and scanners . Firewire (IEEE 1394) support was added as well.

  • Advanced Configuration and Power Interface (ACPI) support provided software control over system startup, shutdown, pause and suspend, and power consumption.

  • Multiple monitor support gave users with more than one graphics adapter (or an adapter designed for multiple monitors) the ability to extend the Windows desktop across several monitors .

  • Windows Update provided a web-based utility for downloading important security and bug fixes.

  • Utilities included a disk defragmenter, the Task Scheduler, Internet Explorer 4, and improved accessibility tools.

  • Improved dial-up networking support included logon scripting, Remote Access Server (dial-in) support, and PPTP Virtual Private Networking.

  • The Win32 Driver Model (WDM) made it easier for manufacturers to develop 32-bit device drivers for Windows 98 and subsequent versions.

  • Windows Scripting Host provided a means of writing powerful application automation and data processing scripts in VBScript, JavaScript, and other languages.

In addition, subtle user-interface changes like the ability to right-click and drag a shortcut to the QuickLaunch bar or the Start menu made life easier for power users.

Windows 98 Second Edition (SE)

Windows 98 Second Edition was released in May 1999 on new computers, and was available as an upgrade as well. It included the following significant improvements:

  • Hardware support included DVD-ROMs.

  • Internet Connection Sharing (ICS) permitted a Windows 98 SE computer to share a single dial-up or broadband connection with other computers over a network.

  • Internet Explorer 5.0 was included.

  • Windows Media Player was provided to play not only MP3 music files but also Apple music and video formats.

  • DirectX 6.1 was included to provide driver support for high-performance games and graphics adapters.

  • Y2K fixes were included as well.

Windows Me

The end of the road for the Windows 9x product line is the difficult to explain Windows Me. Does Me stand for me, or for Millennium Edition? If it stands for Millennium Edition, shouldn't it be Windows ME ? And if it's Me they mean, is Windows a verb? Neither me nor I nor Microsoft can give you an answer to these questions, and perhaps that's for the best.

Part of the problem is that Microsoft had promised that a true 32-bit operating system would succeed Windows 98, but a consumer-friendly (that is, game-friendly) version of Windows 2000 could not be created in time, and Windows XP was far off in the future. We can only surmise that Windows Me was produced as way to fish for income from upgrade sales, without having a real product to use as bait.

The marketing campaign stated Windows Me wasn't based on MS-DOS. Actually, it was. Windows Me started up with the assistance of MS-DOS just as its predecessors had. It was really just Windows 98 with the Exit to MS-DOS option removed from the Start menu and better-looking icons. The sys command was also deleted, so that bootable MS-DOS floppy disks could not be created.

Released in September 2000, Windows Me did include some improvements:

  • The Home Networking Wizard was added to simplify the task of joining several computers into a small local area network.

  • Internet Explorer 5.5 was included.

  • A code-signing system brought non-certified drivers to the user's attention during installation, to encourage the use of Microsoft-tested drivers, and hopefully minimize the number of problems caused by poor drivers.

  • Windows Movie Maker encouraged home editing of digital video (although, at the time, disk space was still too expensive and processor power too limited for this to be practical).

  • System Restore let Windows automatically back up system files before significant configuration changes, so that the changes could be rolled back if problems ensued.

  • The Scanner and Camera Wizard greatly simplified the task of copying digital pictures from cameras to the hard disk.

The Windows 9x product line thus ended. Although it was visually slick, it never reached a level of reliability that made it truly acceptable to the business world. You just can't do business with a computer that crashes a couple of times a day (although some tried). But, Windows 2000 and XP were just around the corner. To get to that story we have to back up to the origin of Windows NT.

The Windows NT Family

In April 1987, Microsoft and IBM announced a new operating system initiative, called Microsoft Operating System 2, or OS/2. This was to be the platform to replace DOS, and would be fully 32-bit, memory-protected, preemptively multitasked operating system, written from the ground up. Microsoft and IBM worked on the project jointly, but shortly after the release of Windows 3.0, the relationship soured, and eventually ended.

IBM and Microsoft each continued to work with the project independently. IBM continued to develop OS/2 version 2 on its own, as we mentioned earlier. Microsoft took its initial work on what was to have become OS/2 version 3, and took it in a different direction. In 1988, a team led by Dave Cutler, who was the architect of the RSX-11 and VAX/VMS operating systems for Digital Equipment Corporation, rechristened the project Windows NT, and redesigned and rewrote the "kernel" or minioperating system on which Windows NT was to be built.

To learn more about the kernel and the internal structure of Windows, see "The Windows NT Kernel," p. 126.



Version 3.1

The first release of NT was given version number 3.1 to match the contemporary 16-bit version of Windows. (Magazines of that era claimed the number was also chosen to make it seem more likely to be reliable, as anyone knew that a ".0" release of anything was bound to be buggy.)

Its user interface was visually that of Windows 3.1 but the entire system had been written from scratch; no MS-DOS or Windows 3.1 code was used. From a programming standpoint, as we mentioned earlier in our discussion of Window 9x, a "flat" 32-bit address space freed applications from having to manage 16-bit memory segment registers and their 64KB boundaries. The Windows Application Programming Interface (API) was modified to use 32-bit values in all communication between Windows and applications. This required Windows programmers to make some minor modification to their code in the process of developing applications for the new environment, but the effort required was surprisingly small. Device drivers were completely redesigned, and application programs were totally isolated from each other; it was not possible for an errant application to mangle information stored in memory used by other applications or by Windows itself. And, internally, Windows was made much more robust. For example, an errant application could be terminated , and all of the memory, graphics, files, and other resources it had been using were automatically released and made available for reuse by other programs. These were, of course, not new features for operating systems in general, but it was huge improvement over MS-DOS and Windows 3.1.

Windows NT could still run MS-DOS applications, but MS-DOS itself was not present at all. A clever program called the Windows NT Virtual DOS Machine (NTVDM), using technology Microsoft licensed from Insignia Solutions Inc. that had originally been created to run MS-DOS applications on the Macintosh, provided DOS applications a "fake" DOS environment. NTVDM intercepted the DOS application's attempts to interact with DOS, the display adapter, and other hardware, and issued Windows NT requests to perform the desired functions. A similar (although less complicated) mechanism let Windows NT run 16-bit Windows applications without modification.

Version 3.1 was released August, 1993 in two versions: Workstation, for use by an individual, and Advanced Server, which was basically the same operating system but with a different licensing scheme that allowed it to be used as a file server for larger organizations. Windows NT had taken five years to build, from the point that David Cutler signed on until its release.

Note

During Windows NT's development Microsoft had recognized that it would not be feasible to sell NT to the consumer market for some time...there were simply too many graphics- intensive games and strange , poorly written applications on the market, and NT's emulation system wasn't going to work with them. Thus, the Windows 95 project was initiated independently, to develop a version of 32-bit Windows that was still based on MS-DOS.


The intent was to build a highly reliable system by keeping the NT kernel small, and moving as much code as possible outside of the kernel so that bugs and crashes could cause only limited damage.

Sticking to this concept has made the Novell NetWare, UNIX, and Linux operating systems exceedingly robust, and it might have done so for Windows NT as well. However, this initial version was unacceptably slow, and in subsequent versions, Microsoft moved more and more of the graphical interface program code into the kernel. There, it could run faster, but this brought increased risks that a bug in an errant driver or Windows module could take Windows down with it.

Windows NT 3.5

In April 1994, Microsoft released Windows NT 3.5, in both Workstation and Server versions. This version showed improved performance and reduced memory requirements. This was the first really usable version. Version 3.51 was released in June 1995 and included modifications to make it able to run applications designed for Windows 95.

Windows NT 3.5 servers could not only be licensed to provide shared file service to more than 10 simultaneous users, but could also act as domain controllers, offering authentication (password verification) services for corporate networks. This meant that user accounts could be managed in one place (the server) rather than on each individual workstation.

Windows NT 4.0 Workstation

By the time Windows NT 4.0 was released in August 1996, Microsoft had had time to not only significantly improve NT's performance and reliability, but also to incorporate the Windows 95 user interface, including the Start menu, so the Windows 3.1 program manager was finally left behind.

However, the most significant improvement was the addition of the NTFS file system. Up until this time, all versions of Windows used hard disks formatted with the FAT file system, which Microsoft acknowledges was written in a hurry with only floppy disks in mind. It turned out that FAT-formatted disks were quite vulnerable to data loss due to crashes and power outages. FAT also provided no means of restricting access to files based on usernames, passwords, or other credentials.

Microsoft had worked with IBM to develop the High Performance File System (HPFS) for OS/2, and was able to apply lessons learned there to NTFS. Its goals were:

  • Reliability Protection of changes to directory entries and file sizes against loss due to crashes or power outages, by encapsulating them as "transactions."

  • Security Fine-grained control of who is allowed to create, read, modify, delete, or manage files and folders. An auditing system makes it possible to track who has succeeded or failed to make changes as well.

  • Capacity The ability to handle terabytes of disk capacity.

  • Efficiency Better use of disk space, smaller allocation units, and less I/O needed to read and modify disk structures.

  • Long filenames The ability to store filenames up to 255 characters .

  • Data spaces The ability to store parallel, separate sets of data for a given file. This is used, for example, to accommodate alternative filenames and extended directory information used by different operating systems served by an NT-based file server, or the Macintosh's data and resource forks.

Windows NT 4.0 Workstation was meant as a highly reliable operating system for corporate systems, workstations, and servers.

Windows NT 4.0's Server version included additional networking services such as Windows Internet Naming Service (WINS), Dynamic Host Configuration Protocol (DHCP), Domain Name Service (DNS), Remote Access Service (RAS, a dial-up networking service), and others.

Windows 2000 Professional

Windows 2000 was to have been named Windows NT 5.0, but at this point Microsoft had officially gone berserk with its naming schemes. Windows Me was in the works, and Microsoft would now decide to rearrange their naming schemes for every successive version of Windows. Released in February 2000 after many delays, Windows 2000 was a significant advance in both functionality and reliability. It provided many advantages over Windows NT 4.0, just a few of which are listed here:

  • FAT32 support (up to 32GB per partition) in addition to NTFS and FAT16

  • Windows 98 user interface

  • Microsoft Management Console (MMC) for many maintenance functions (although the split of functions between the Control Panel and the Computer Management MMC tools was somewhat arbitrary and confusing)

  • Support for up to 4GB of RAM

  • A unified driver model, shared with Windows Me, so that hardware vendors could supply a single driver that could be used on either operating system

  • Greatly improved reliability

  • NTFS improvements including reparse points, which give Windows 2000 the ability to redirect file accesses to alternative drives or servers, a UNIX-like mountable file system, and UNIX-like links (multiple directory entries for a single file)

  • Dynamic disk support, which permits on-the-fly partition resizing

  • Improved setup and software installationfewer reboots required, and the Windows Installer service makes it easier to correctly uninstall or repair applications.

  • Plug and Play hardware support, multiple monitors, USB, and FireWire support

  • Safe mode and Recovery Console boot options, to maintain and repair unbootable systems

  • Active Directory, an enterprise management and security tool that allows very fine-grained delegation of management and security policy settings, automatic application deployment, and other services

  • ACPI power management including suspend and hibernate modes, to make it possible to use on laptops.

Windows 2000 was released in several licensing versions:

  • Windows 2000 Professional, for individual users. Dual-processor systems were supported under the Professional license. Windows 2000 Professional became the desktop operating system of choice for business users, luring the last of the Windows 3.1 holdouts into upgrading.

  • Windows 2000 Server, for file server use. Up to four processors supported on the computer's motherboard.

  • Windows 2000 Advanced Server, supporting up to eight processors in a single system and 64GB of RAM (recall that segment registers are still present in 32-bit Protected Mode. At most 4GB of RAM is visible to any one application but if the motherboard is designed for it, Windows can juggle the segment registers to give more applications that much RAM without paging).

  • Windows 2000 Datacenter Server, supporting up to 32 processors in a single system, and clustering, which links redundant servers to permit continuous operation should one fail.

Support for all of the early RISC processors was dropped and Windows 2000 was provided only in versions for the standard Intel x86 (IA-32) architecture.

Windows XP

Released in October 2001, Windows XP officially ended the Windows 9x product line and brought Windows NT to the masses, er, to the consumer. With XP, Microsoft finally managed to make the NT product reasonably compatible with the pool of remaining DOS games and applications (it helped that this pool had been dwindling over the years). Microsoft also made it simple enough to manage, and attractive enough to appeal to end consumers. It also didn't hurt that Microsoft could finally promise and actually deliver a truly reliable operating system. This in itself is remarkable given how much Windows had grown. The original version of Windows fit on two floppy disks. Windows XP required 2GB of disk space just to install . The massive amount of code can be seen in the number of lines of source codethe raw programming text typed by Microsoft's programmersestimates of which are listed in Table 1.1.

Table 1.1. Lines of Code in Windows

Version

Million Lines of Code [*]

Windows NT

10

Windows 95

15

Windows NT 4.0

16

Windows 98

18

Windows 2000

30

Windows XP

40 to 45


[*] Estimated

This is really a staggering amount of code, given that it's estimated that a typical programmer can produce about 100 lines of quality program code per day. If that's true, Windows XP is the product of 1,800 person-years of effort ( assuming those persons get weekends off, and two weeks of vacation a year).

Windows XP introduced several enhancements over Windows 2000:

  • Improved graphical design. Derided by some as "cartoony" at first, it has sort of grown on us.

  • Simple File Sharing makes it easier for consumers and small offices to manage file security on a network and on a given computer when NTFS is used.

  • System Restore, which performs automatic backups of system programs, components, and the Registry at regular intervals and before installing new applications.

  • Fast User Switching makes it possible for several users to be logged on simultaneously , although only one person can use the computer at a time.

  • Remote Desktop allows a user to view and control a Windows XP Professional computer over the Internet.

XP was released in two versions in both Home and Professional versions. XP Professional is the everything-but-the-kitchen-sink desktop operating system and has a licensing allowance for two processors on the motherboard. XP Home Edition, which permits only one processor, had several features that were either restricted or removed. For example, Simple File Sharing cannot be disabled; the Power Users management group cannot be used; and File Encryption, Offline Files, Remote Desktop hosting and domain membership are not available.

Note

Microsoft does not count multicore or hyperthreading CPUs as multiple CPUs for licensing purposes. A dual- core CPU with hyperthreading looks like 4 CPUs to Windows but Windows XP Home Edition will still run on it.


Windows XP Service Pack 2 introduced several additional features and significant security fixes. The three most important additions were

  • An improved Windows firewall, which helps prevent damage and abuse to the system from over the Internet

  • Windows Security Center, which detects and notifies the user of out-of-date antivirus protection and less-than -optimal security configurations

  • Improvements to Internet Explorer to prevent its being hijacked by malicious websites

  • Improvements to Outlook Expressfinally!to prevent its automatically displaying graphic and script content, which can notify spammers that their email has been read

Note

In this book, earlier versions of Windows are occassionally discussed, but for the most part, we assume that you are using Windows XP Home Edition or Professional with Service Pack 2 installed. If you are using Windows XP without Service Pack 2, we strongly encourage you to install it.


...and beyond

Windows XP was not released in server versions. Instead, Microsoft released the successor to Windows 2000 Server with the name Windows Server 2003 (remember, we said they'd gone berserk).

We won't discuss Windows Server versions in any detail here because our focus is maintenance of Windows XP, and to a lesser extent, earlier single-user versions of Windows.

At this point, Microsoft has decided to call the successor to Windows XP "Windows Vista." Due in the second half of 2006, Vista promises to offer greatly improved graphics and file-searching capabilities.

Alternative CPU Versions: Intel, Alpha, MIPS, and Motorola

Windows NT was designed from the beginning not to be tied exclusively to the Intel CPU architecture used in most PCs. Windows NT's design put the processor's unique setup and control instructions into the Hardware Abstraction Layer (HAL) software component. Most of the rest of Windows is written in high-level languages that have no explicit processor dependence. To run on a new processor, Microsoft or a hardware manufacturer merely had to write a new Hardware Abstraction Layer module and a compiler to convert the rest of the Windows code into machine instructions for the new architecture.

When NT was originally released, Microsoft supported four microprocessors:

  • Intel IA-32 (also known as x86), which is the processor architecture in most PCs. x86-compatible CPUs are made by Intel, Advanced Micro Devices (AMD), Winbond, and others.

  • Alpha AXP, a Reduced Instruction Set Computer (RISC) chip manufactured by Digital Equipment Corporation.

  • MIPS R4000, a RISC processor manufactured by MIPS Computer Systems, Inc.

  • PowerPC, yet another RISC processor design, made by IBM.

In addition, some manufacturers developed their own versions of NT for still other architectures under licensing agreements from Microsoft.

Support for alternative architectures was short-lived. One reason for this is that Windows applications had to be compiled and tested for each CPU platform. MS-DOS applications could run thanks to an emulator program that was built into the Virtual DOS environment, but third-party Windows applications were in short supply. This was probably not the largest obstacle, though, as the alternative platforms were usually used primarily to run special-purpose applications.

The main problem facing the RISC chips is that the speed advantage they enjoyed over Intel chips eventually disappeared. While the RISC chips were originally worth the extra expense to get high performance for graphics workstations and servers, once Intel and graphics chip vendors caught up, the commodity PC became as powerful as the workstation at a vastly lower price. Political pressure from Intel and Microsoft also very likely factored into the decisions. Whatever the reasons were, the MIPS and Alpha processors eventually succumbed to decreasing support and demand. Alpha chips are no longer manufactured, nor are MIPS processors, as such; the technology is still available and licensable to chip designers for inclusion in larger designs. IBM still makes PowerPC chips (they are used in Apple Macintosh computers, although Apple plans to switch to Intel), but Windows support for the PowerPC ended after NT 4.0.

Windows XP 64-bit Editions

The CPU story is not over, however. The need for processors capable of handling far more than 4GB of memory has led to development of two competing 64-bit architectures. Intel developed and promoted a 64-bit architecture called IA-64 or Itanium, intended primarily for database and network server computers. Advanced Micro Devices also produced a 64-bit architecture, called x64 or AMD-64. Intel is now manufacturing chips that use the x64 instruction set. x64 processors typically yield better performance than Itanium running 32-bit Windows applications, and thus are better performers in desktop computers. Both new architectures are supported by Microsoft.

Thus, at the time this was written, Windows is available for three architectures:

  • IA-32 (x86) for all versions of Windows

  • IA-64 (Itanium) for Windows Server 2003

  • x64 for Windows XP and Windows Server 2003

The 64-bit versions of Windows are not covered in this book to any great extent. Usage of the x64 version of Windows XP should be very similar to the 32-bit versions with the following exceptions:

  • 64-bit versions of Windows will run 32-bit Windows applications, but will not run 16-bit (Windows 3.1) applications, nor can they use 32-bit drivers that is, drivers written for the standard version of Windows XP. This means that hardware support may be limited until vendors produce 64-bit driver versions.

  • MS-DOS applications cannot be run.

  • DirectX graphics support does not take advantage of hardware graphics acceleration, so gaming performance will likely be less than satisfactory.

DirectX support may be improved in a future Windows version or in a future service pack.

Service Packs , Hotfixes, and Rollups

It's a given that operating systems and large software suites have bugs, and Windows is definitely a member of both categories. The Microsoft method of dealing with bugs in Windows has varied depending on the product line in question.

In the consumer Windows 9x product line, users were largely left on their own. Only the most severe security bugs were addressed, and even then, for the most part, computer owners had to take the initiative to visit Windows Update to download "Critical Updates." It took many yearsand tens of millions of virus-infected computersfor Microsoft to develop an automated method of delivering security updates to Windows 9x users, and even then they had to download this updating mechanism themselves. Bugs that affected Windows functionality but not security were largely left unfixed, with the result that a typical Windows 9x could be expected to crash once a day, in heavy use. Patches called hotfixes were available as downloads from support.microsoft.com for some problems, but finding these was a job that required a high level of training and technological savvy.

However, Microsoft recognized from the start that operating system products sold to business customers had to have a level of support that rivaled that of other enterprise software vendors, so the Windows NT product line has enjoyed a much higher level of support. This is not a trivial or inexpensive undertaking, as proper software quality management is expensive, time-consuming , and involves interactions with customers on several levels:

  • Communicating known bugs to customers.

  • Development and announcement of any possible short- term workarounds, and estimated delivery dates for complete fixes.

  • Thorough testing of all software changes for possible negative interactions with existing hardware, software, and all previous updates (regression testing). If done properly, this involves testing installation and operation of all fixes on every possible combination of supported hardware and software, with and without every combination of other optional software components, versions, patches, updates, and fixes. Testing a single software change against all of these permutations takes an enormous effort.

  • Timely release of individual fixes to customers who are encountering a given problem.

  • Periodic bulk updates that combine all known and tested fixes, to simplify the maintenance job for the majority of customers who are not directly affected by each identified problem. This can be accomplished by releasing new operating system versions, or through an updating mechanism.

To meet these needs, Microsoft has established a system for delivering updates for the Windows NT product line that includes Windows 2000 and XP, with five mechanisms:

  • The Microsoft Knowledge Base contains reports on known problems and solutions, at support.microsoft.com.

  • Hotfixes , interim patches that address known problems, which are made available for download at support.microsoft.com. Hotfixes are intended for use only by customers directly experiencing a given problem (due to, for example, a particular combination of hardware and software that exposes a given bug). They are not necessarily tested with every possible combination of hardware and software. Several hotfixes are typically posted every week.

  • Service Packs are cumulative updates of all hotfixes released since the operating system was original released. When Microsoft constructs a Service Pack, hotfixes are tested much more extensively. In addition, new functionality might be included, as we saw with the inclusion of Windows Firewall in Windows XP Service Pack 2, although Microsoft has stated that they expect this to be a rare occurrence.

    Service Packs are generally tested internally by Microsoft, and then by major computer vendors, and then by large corporate clients and possibly the public, through a beta program, and may go through two or more beta versions before being finalized. Service Packs have typically been released six months to two years apart.

    Note

    On Windows NT 4.0 and earlier, service pack installers copied only files for features in use, and the service pack had to be reapplied if an optional feature was subsequently installed. On Windows 2000 and Windows XP, installing a service pack installs updated files for all Windows features, whether they are in use or not. This ensures that if an optional Windows component is installed later, the updated version will be used.

    Windows service packs include all fixes made since the product's initial release, so it's not necessary to install older Windows service packs before installing a newer Windows service pack. This may not necessarily be true for service packs for other Microsoft products.


  • Rollups , which contain a significant set of hotfixes released since the last service pack. Rollups include only the most important hotfixes, ones likely to affect a large number of customers, and are tested for proper installation and correct operation together as a package. Testing is less extensive than for a service pack. Rollups are designed to make installation of important hotfixes easier, and to make them available in a timely fashion without the burden and expense of a full-scale Service Pack. Rollups are produced only on rare occasion.

  • Critical Updates are patches that address a security risk to the average user. Critical Updates are typically given extensive testing, as they're considered mandatory for all customers. They are distributed through Windows Update, and now through the new Automatic Updates system so that all users will get them in a timely fashion. Critical Updates are typically released once a month on a Tuesday, unless they are considered urgent enough to be released immediately after testing.

  • Optional Updates are updates to Windows components, new versions of Windows applications, or new functions that have no direct security or usability impact, but which for some reason Microsoft feels it is important to distribute. They're made available through the Windows Update tool.

Now that Windows XP Home Edition has brought NT to the consumer Windows product line, this level of support is available to the average consumer as well.

It's a matter of speculation what will happen to the frequency of issuance of Service Packs for Windows XP, as its increased reliability coupled with a regular stream of bug fixes may prove to be a disincentive for purchasing upgrades to later operating systems.

Service packs can be obtained in several ways:

  • On CDs and DVDs, downloaded from Microsoft. These versions contain all of the files needed by any installation of Windows, and typically covers all flavors of the operating system. For example, updates for Windows XP Home Edition, Professional, Media Center Edition, and Tablet PC Edition, are all in the CD version of a Windows XP service pack. At the time this was written, it was not certain that a service pack for Windows XP 64-bit versions would be packaged on the same CD as the 32-bit version, but it is likely that it would be.

  • Via download from Windows Update. The update process first downloads a small tool that analyzes the user's Windows installation and determines which updated files are required. Just the files needed by the user's flavor for Windows are retrieved and installed. This is the easiest download format for users with just one or two computers.

  • Via download from support.microsoft.com. For sites that must update several Windows computers, the entire Service Pack distribution can be downloaded and stored on a shared network folder. This format is preferred by sites that have many computers to update.

In addition, service packs can be merged into the Windows installation setup files in an operation called slipstreaming . Organizations and vendors that install many copies of Windows can use this technique to construct updated Windows installation media. (In addition, a Windows Deployment Toolkit can be obtained from microsoft.com, which lets organizations pre-install applications and customizations onto new computers.)




Upgrading and Repairing Microsoft Windows
Upgrading and Repairing Microsoft Windows (2nd Edition)
ISBN: 0789736950
EAN: 2147483647
Year: 2005
Pages: 128

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net