Versions
The term Windows is used as a collective term for several generations of products, which can be classified into the following categories:
- 16-bit Operating environments. Although they are often thought of as just graphical user interfaces or desktops, mostly because they use MS-DOS for filesystem services, 16-bit Windows versions already have their own executable file format and provide their own device drivers (graphics, printer, mouse, keyboard and sound). Most important, from the beginning they allow the user to (non-preemptively) multi-task graphical applications, something which competitors like GEM do not offer. Finally, they implement an elaborated segment-based software virtual memory scheme, which allows to run applications larger than available memory: code segments and resources are swapped in and thrown away when useless or memory becomes scarce and data segments move in memory when a given application has relinquished processor control. Examples include Windows 1.0 (1985) and Windows 2.0 (1987) and its close relative Windows/286.
- Hybrid 16/32-bit operating environments. Windows/386 introduced a 32-bit protected mode kernel and virtual machine monitor. For the duration of a Windows session, it provided a device virtualization for the disk controller, video card, keyboard, mouse, timer and interrupt controller. The user-visible consequence was that it became possible to preemptively multitask multiple MS-DOS environments in separate windows (graphical applications required switching the window to full screen mode). Windows applications were still multi-tasked cooperatively inside one of such real-mode environments. Windows 3.0 (1990) and Windows 3.1 (1992) perfected the design, notably thanks to virtual memory and loadable virtual device drivers (VxDs) which allowed them to share arbitrary devices between multitasked DOS windows. Most important, Windows applications could now run in 16-bit protected mode (when Windows was running in Standard or 386 Enhanced Mode), which gave them access to several megabytes of memory and removed the obligation to participate in the software virtual memory scheme. They still ran inside the same address space, where the segmented memory provided a degree of protection, and multi-tasked cooperatively. For Windows 3.0 Microsoft also rewrote critical operations from C into assembler, making this release faster and less memory-hungry than its predecessors.
- Hybrid 16/32-bit operating system. With the introduction of 32-Bit File Access in Windows for Workgroups 3.11, Windows could finally stop relying on DOS for file management. Leveraging this, Windows 95 introduced Long File Names, reducing the 8.3 DOS to the role of a boot loader. MS-DOS was now bundled with Windows; this notably allowed to make it (partially) aware of long file names when its utilities where run from within Windows, but angered the competition. The most important novelty was however the possibility of running 32-bit multi-threaded preemptively multitasked graphical programs. Windows 95 had three versions (first one in 1995, subsequent bug-fix versions in 1996 and 1997; they notably added support for FAT32) and two versions of Windows 98 (1998 and 1999, named "Windows 98 Second Edition"). In 2000, Microsoft released Windows ME, which used the same core as Windows 98 but adopted the visual appearance of Windows 2000.
- Fully 32-bit operating systems originally designed and marketed for higher-reliability business use with no DOS heritage. Examples include Windows NT 3.1 (1993, numbered "3.1" to match the Windows version), NT 3.51, NT 4.0, Windows 2000, Windows XP, and Windows Server 2003. Windows CE, for embedded systems, is also a true 32-bit operating system.
- 64-bit operating systems are one of the newest operating systems, compatible with AMD's AMD64 CPU architecture and Intel's IA-64, the Intel Architecture 64-bit. Examples of Windows 64-bit OSes are Windows XP 64 Bit Edition and Windows Server 2003.