Windows 95 is a consumer-oriented operating system developed by Microsoft, released to manufacturing on July 14, 1995, and to retail on August 24, 1995. The first of the Windows 9x line of operating systems, Windows 95, which replaced Windows 3.1, merged Microsoft's MS-DOS and Microsoft Windows operating systems into a single product, and featured major changes to the core components of the operating system, such as moving from the mainly cooperatively multitasked 16-bit architecture of its predecessor to a 32-bit preemptive multitasking architecture.
Windows 95 featured a new graphical user interface (GUI), introducing the Windows Explorer file manager, a taskbar with the Start menu and a notification area, and file shortcuts on the desktop, and implemented a number of improvements over its predecessor, including Plug-and-Play driver integration, native Internet integration, and support for longer filenames (from 8 to 255 characters). Accompanied by an extensive marketing campaign that generated much prerelease hype, it was a major success and is regarded as one of the most significant products in the personal computing industry.
Three years after its introduction, Windows95 was followed by Windows98. Microsoft ended mainstream support for Windows95 on December 31, 2000, with extended support lasting until December 31, 2001.
Development
The initial design and planning of Windows 95 can be traced back to around March 1992 (three years before the official release of Windows 95),Comes v. Microsoft. .Comes v. Microsoft. .Comes v. Microsoft. . just before the release of Windows 3.1. At this time, Windows for Workgroups 3.11 and Windows NT 3.1 were still in development. At this point, Microsoft's strategy was to have a next generation, high-end OS based on Windows NT, namely, Cairo, and a low-end, consumer-focused one as an evolution of Windows 3.1. The latter strategy was to develop a 32-bit underlying kernel and filesystem with 32-bit protected mode device drivers in Windows for Workgroups 3.11, to be used as the basis for the next version of Windows, code named "Chicago". Cairo would be Microsoft's next-generation operating system based on Windows NT, featuring a new user interface and an object-based file system, but it was not planned to be shipped before 1994. Cairo would never be shipped, however, although elements from the Cairo project eventually shipped in Windows NT 4.0 in late July 1996, without the object-based file system, which would later evolve into WinFS.
Simultaneously with Windows 3.1's release, IBM started shipping OS/2 2.0. Microsoft realized they required an updated version of Windows that could support 32-bit applications and preemptive multitasking, but could still run on low-end hardware (Windows NT did not). Initially, the "Chicago" team did not know how the product would be packaged. Initial thoughts were there might be two products, MS-DOS 7, which would just be the underlying OS, an evolution of the Windows for Workgroups 3.11 kernel, with a character mode OS on top, and a fully integrated graphical Windows OS.
Beta Before Windows 95's official release, users in the United States and United Kingdom had an opportunity to participate in the Windows 95 Preview Program. For US$19.95/£19.95, users would receive several 3.5-inch floppy disks that would be used to install Windows 95 either as an upgrade from Windows 3.1 or as a fresh installation. Participants were also given a free preview of The Microsoft Network (MSN), the online service that Microsoft launched with Windows 95. During the preview period, Microsoft established various electronic distribution points for promotional and technical documentation on Chicago,Microsoft Windows Chicago Reviewer's Guide, p.282 including a detailed document for media reviewers describing the new system highlights. The preview versions expired in November 1995, after which the user would have to purchase their copy of the final version of Windows 95.
Architecture
Windows 95 was designed to be maximally compatible with existing MS-DOS and 16-bit Windows programs and device drivers while offering a more stable and better performing system. The development team purchased a copy of every PC software at a local Egghead Software and tested them on the operating system. The Windows 95 architecture is an evolution of Windows for Workgroups' 386 enhanced mode. Configuration Manager (CONFIGMG)Responsible for implementing Plug and Play functionality; monitoring hardware configuration changes; detecting devices using bus enumerators; and allocating I/O ports, IRQs, DMA channels and memory in a conflict-free fashion. Installable File System Manager (Input/Output Subsystem)Coordinates access to supported file systems. Windows 95 initially shipped with support for FAT12, FAT16, the VFAT extension, ISO 9660 (CDFS), Joliet and network redirectors, with later releases supporting FAT32.
Access requests to physical media are sent to Input/Output Supervisor, a component responsible for scheduling the requests. Each physical media has its device driver: access to the disk is performed by a port driver, while access to a SCSI device is handled by a miniport driver working atop the SCSI layer. Port and Miniport drivers perform I/O operations in 32-bit protected mode, bypassing MS-DOS and BIOS, significantly improving performance. In case there is no native Windows driver for a certain storage device, or if a device is forced to run in compatibility mode, the Real Mode Mapper can access it through MS-DOS.
32-bit Windows programs are assigned protected memory segments, which can be adjusted to any desired size, and memory areas outside the segment cannot be accessed by a program, that limited harm to other programs and the system when a program crashed. Before this, programs used fixed non-exclusive 64 KB segments. While the 64 KB size was a serious handicap in DOS and Windows 3.x, lack of guarantee of exclusiveness was the cause of stability issues because programs sometimes overwrote each other's segments, a crashing Windows 3.x program could knock out surrounding processes. Unfortunately for compatibility reasons some parts of the 32-bit Windows program memory was non-exclusive and shared among the whole system (most famously the first 1MiB of the address space), this meant that in Windows 95 a crash which incorrectly modified this shared memory could still cause harm to other programs or the system (full memory protection only came to consumer Windows systems with the launch of Windows XP).
The Win32 API is implemented by three modules, each consisting of a 16-bit and a 32-bit component:
KernelProvides high-level access to memory and process management, and access to the file system. Consists of KRNL386.EXE, KERNEL32.DLL, and VWIN32.VXD. UserResponsible for managing and drawing the various user interface components, such as windows, menus and buttons. Consists of USER.EXE and USER32.DLL. Graphics Device Interface (GDI) Responsible for drawing graphics in a device-independent way. Consists of GDI.EXE and GDI32.DLL.
Dependence on MS-DOS
To end-users, MS-DOS appears as an underlying component of Windows 95. For example, it is possible to prevent the loading of the graphical user interface and boot the system into a real-mode MS-DOS environment. This was done by inserting command.com into the autoexec.bat file or changing the BootGUI variable in the MSDOS.SYS file to 0. This sparked debate amongst users and professionals regarding the extent to which Windows 95 is an operating system or merely a graphical shell running on top of MS-DOS.
When the graphical user interface is started, the virtual machine manager takes over the filesystem-related and disk-related functionality. MS-DOS itself is demoted to a compatibility layer for 16-bit device drivers. Windows 3.1 and Windows for Workgroups 3.11 could also largely bypass MS-DOS when 32-bit file access or 32-bit disk access were enabled. Keeping MS-DOS in memory allows Windows 95 to use DOS device drivers when suitable Windows drivers are unavailable. Windows 95 is capable of using all 16-bit Windows 3.x drivers.
Unlike Windows 3.x, DOS programs running in Windows 95 do not need DOS drivers for the mouse, CD-ROM and sound card; Windows drivers are used instead. HIMEM.SYS is still required to boot Windows 95. EMM386 and other memory managers, however, are only used by DOS programs. In addition, CONFIG.SYS and AUTOEXEC.BAT settings (aside from HIMEM.SYS) do not affect Windows programs. DOS games, which could not be executed on Windows 3.x, can run inside Windows 95 (games tended to lock up Windows 3.x or cause other problems). As with Windows 3.x, DOS programs that use EGA or VGA graphics modes run in windowed mode (CGA and text mode programs can continue to run).
On startup, the MS-DOS component in Windows 95 responds to a pressed key by temporarily pausing the default boot process and presenting the DOS boot options menu, allowing the user to continue starting Windows normally, start Windows in safe mode or exit to the DOS prompt. As in previous versions of MS-DOS, there is no 32-bit support and DOS drivers must be loaded for mice and other hardware.
As a consequence of DOS compatibility, Windows 95 has to keep internal DOS data structures synchronized with those of Windows 95. When starting a program, even a native 32-bit Windows program, MS-DOS momentarily executes to create a data structure known as the Program Segment Prefix. It is even possible for MS-DOS to run out of conventional memory while doing so, preventing the program from launching. Windows 3.x allocated fixed segments in conventional memory first. Since the segments were allocated as fixed, Windows could not move them, which would prevent any more programs from launching.
Microsoft partially removed support for File Control Blocks (an API hold-over of DOS 1.x and CP/M) in Windows 95 OSR2 (OEM Service Release 2). FCB functions can read FAT32 volumes, but not write to them.
With merging Windows together with MS-DOS, Microsoft had effectively locked-in users who may have been using a different non-Microsoft DOS, like PC DOS and DR DOS, who could previously make use of Windows 3.x without requiring Microsoft's MS-DOS. Caldera demonstrated that Windows 95 could in fact run on top of its DR DOS operating system, and argued that Microsoft was being anti-competitive, which would prove useful in a later court case between Caldera and Microsoft.
User interface Windows 95 introduced a redesigned shell based around a desktop metaphor; File shortcuts (also known as shell links) were introduced and the windows were re-purposed to hold shortcuts to applications, files and folders, reminiscent of the Classic Mac OS. In part because of this, the ability to enter full screen mode was added to most that are functionally robust enough.
In Windows 3.1, the desktop was used to display icons of running applications. In Windows 95, the currently running applications were displayed as buttons on a taskbar across the bottom of the screen. The taskbar also contained a notification area used to display icons for background applications, a volume control and the current time.
The Start menu, invoked by clicking the "Start" button on the taskbar or by pressing the Windows key, was introduced as an additional means of launching applications or opening documents. While maintaining the program groups used by its predecessor Program Manager, it also displayed applications within cascading sub-menus.
The previous File Manager program was replaced by Windows Explorer and the Explorer-based Control Panel and several other special folders were added such as My Computer, Dial-Up Networking, Recycle Bin, Network Neighborhood, My Documents, Recent documents, Fonts, Printers, and My Briefcase among others. AutoRun was introduced for CD drives.