Windows 95
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 operating system and Microsoft Windows graphical user shell into a single product, removing the requirement to install Windows on top of a separate copy of MS-DOS, 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, 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. 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, the same date the contemporary WindowsNT3.51 and all previous versions of Windows also reached end-of-life.
Development
The initial design and planning of Windows 95 can be traced back to around March 1992, just around the time 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. 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. But soon into the project, the idea of MS-DOS 7 was abandoned and the decision was made to develop only an integrated graphical OS Windows "Chicago."
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, 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, 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 :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 :Coordinates access to supported file systems. Windows 95 initially shipped with support for FAT12, FAT16, the VFAT extension, ISO 9660, 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, this meant that in Windows 95 a crash which incorrectly modified this shared memory could still cause harm to other programs or the system.
The Win32 API is implemented by three modules, each consisting of a 16-bit and a 32-bit component:
;Kernel:Provides high-level access to memory and process management, and access to the file system. Consists of KRNL386.EXE, KERNEL32.DLL, and VWIN32.VXD.
;User:Responsible 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 : 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. This contrasts with earlier versions of Windows which rely on MS-DOS to perform file and disk access. 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 do not affect Windows programs. DOS games, which could not be executed on Windows 3.x, can run inside Windows 95. As with Windows 3.x, DOS programs that use EGA or VGA graphics modes run in windowed mode.
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 in Windows 95 OSR2. 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.