The Evolution of Microsoft WindowsWell 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.
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 WindowsAlthough 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 1Development 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 2Windows 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 386Windows 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 3Windows 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:
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.1Microsoft 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 WorkgroupsWindows 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.11Windows 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 FamilyBy 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 95Windows 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:
As yet, however, Windows did not support USB peripherals. Windows 95 OSR2In 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:
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 98Windows 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:
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:
Windows MeThe 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 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 FamilyIn 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.
Version 3.1The 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.5In 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 WorkstationBy 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:
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 ProfessionalWindows 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:
Windows 2000 was released in several licensing versions:
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 XPReleased 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
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:
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
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 beyondWindows 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 MotorolaWindows 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:
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 EditionsThe 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:
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:
DirectX support may be improved in a future Windows version or in a future service pack. Service Packs , Hotfixes, and RollupsIt'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:
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:
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:
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.) |