Windows 95

Windows 95 is a consumer-oriented graphical user interface-based operating system built on top of MS-DOS. It was released on August 24, 1995 by Microsoft as part of its Windows 9x family of operating systems, and was a significant progression from the company's previous Windows products. During development, it was referred to as Windows 4.0 (Windows 4.00) or by the internal codename Chicago.

Windows 95 integrated Microsoft's formerly separate MS-DOS and Windows products. It featured significant improvements over its predecessor, Windows 3.1, most notably in its graphical user interface (GUI) and relatively simplified "plug and play" features. There were also major changes made at lower levels of the operating system, such as moving from a mainly 16-bit architecture to a pre-emptively multitasked 32-bit architecture.

In the marketplace, Windows 95 was a major success, and within a year or two of its release had become the most successful operating system ever produced. It also had the effect of driving other major players (including OS/2) out of business, something which would later be used in court against Microsoft. Some three years after its introduction, Windows 95 was succeeded by Windows 98.

Development
The initial design and planning of Windows 95 can be traced back to around March 1992, just after the release of Windows 3.1. At this time, Windows for Workgroups 3.1 and Windows NT 3.1 were still in development and Microsoft's plan for the future was focused on Cairo. Cairo would be Microsoft's next-generation operating system based on Windows NT and featuring a new user interface and an object-based file system, but it was not planned to be shipped before 1994 (Cairo would eventually partially ship in July 1996 in the form of Windows NT 4.0, but 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 needed an updated version of Windows which could support 32-bit applications and preemptive multitasking but could still run on low-end hardware (Windows NT did not). So the development of Windows "Chicago" was started and, as it was planned for a late 1993 release, became known as Windows 93. Initially, the decision was made not to include a new user interface, as this was planned for Cairo, and only focus on making installation, configuration, and networking easier. Windows 93 would ship together with MS-DOS 7.0, offering a more integrated experience to the user and making it pointless for other companies to create DOS clones. MS-DOS 7.0 was in development at that time under the code name "Jaguar" and could optionally run on top of a Windows 3.1-based 32-bit protected mode kernel called "Cougar" in order to better compete with DR-DOS.

The Chicago project was led by Brad Silverberg, who, at that time, was senior vice president of the personal systems division at Microsoft. Microsoft's product plan looked as follows:

The first version of Chicago's feature specification was finished on September 30, 1992. Cougar was to become Chicago's kernel.

Beta
Before the official release, the American public was given a chance to preview Windows 95 in the Windows 95 Preview Program. For US$19.95, users were sent a set of 3.5-inch floppy diskettes that would install Windows 95 either as an upgrade to Windows 3.1x or as a fresh install on a clean computer. Users who bought into the program were also given a free preview of The Microsoft Network (MSN), the online service that Microsoft launched with Windows 95. The preview versions expired in November 1995, after which the user would have to purchase their own copy of the final version of Windows 95. Some releases were made that haven't been leaked, such as Chicago 30.

Several Windows 95 betas were released before the final launch:

Release
Windows 95 was released with great fanfare, including a commercial featuring the Rolling Stones' 1981 single "Start Me Up" (a reference to the Start button). It was widely reported that Microsoft paid the Rolling Stones between US$8 and US$14 million for the use of the song in the 95 advertising campaign. According to sources at Microsoft, however, this was just a rumor spread by the band to increase their market value, and Microsoft actually paid a fraction of that amount.

A 30-minute promotional video, labeled a "cyber sitcom", featuring Jennifer Aniston and Matthew Perry, was also released to showcase the features of Windows 95. Microsoft's US$300 million advertising campaign featured stories of people waiting in line outside stores to get a copy.

In the UK, the largest computer chain PC World received a large number of oversized Windows 95 boxes, posters and point of sale material, and many branches opened at midnight to sell the first copies of the product, although these customers were far fewer in number than publicity had suggested. In London, Microsoft gave free newspapers to people.

In the United States, the Empire State Building in New York City was lit to match the colors of the Windows logo. In Canada, a banner was hung from the top of the CN Tower in Toronto. Copies of The Times were available for free in the United Kingdom where Microsoft paid for 1.5 million issues (twice the daily circulation at the time).

The release included a number of "Fun Stuff" items on the CD, including music videos of Edie Brickell's "Good Times"

Architecture
Windows 95 was designed to be maximally compatible with existing MS-DOS and 16-bit Windows applications and device drivers, while under this constraint offering a more stable and better performing system. Architecturally, Windows 95 can be considered an evolution of Windows for Workgroups' 386 enhanced mode. The lowest level of the operating system is formed by a large number of virtual device drivers (VxDs) running in 32-bit protected mode and one or more virtual DOS machines running in virtual 8086 mode. The virtual device drivers can be responsible for handling physical devices (such as video and network cards), emulating virtual devices used by the virtual machines, or providing various system services. The three most important virtual device drivers are:


 * Virtual Machine Manager: The Virtual Machine Manager can be considered the kernel of Windows 95 and is responsible for tasks such as memory management, event and interrupt handling, loading and initialization of virtual device drivers, the creation of new virtual machines, and scheduling of threads.


 * Configuration Manager: The Configuration Manager (CONFIGMG) is responsible for implementing Plug and Play functionality. It detects devices in the system using several bus enumerators, monitors the system for changes to the hardware configuration. It is responsible for assigning various resources (I/O ports, IRQs, DMA channels, and memory) to the devices in a conflict free fashion.


 * Installable File System Manager (Input/Output Subsystem): The Installable File System Manager coordinates the access to various file systems. Windows 95 ships with support for FAT16, and in later releases FAT32, file systems (VFAT), ISO 9660 (CDFS), and several network redirectors. A dynamically sized disk buffer is provided by VCACHE. In the Block I/O Subsystem, requests are scheduled by the Input/Output Supervisor. Access to the disk is performed by a port driver, or in the case of a SCSI device, by a miniport driver working atop the SCSI layer.
 * Like Windows for Workgroups running with 32-bit file (based on IFSHLP.SYS) and disk access enabled, I/O operations can be handled entirely in 32-bit protected mode, bypassing MS-DOS and the BIOS, giving a significant performance improvement. 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 port driver can access it through MS-DOS.

32-bit Windows applications are each assigned their own memory segment, which can be adjusted to any size the user wishes and memory outside the segment cannot be accessed by an application. This eliminated the use of fixed 64k segments, which were a serious handicap in DOS and Windows 3.x and also caused stability issues in the latter because of applications sometimes overwriting others' segments. If a Windows 3.x application crashes, it can knock out surrounding processes, but 32-bit apps will not harm anything else if they crash.

The Win32 API is implemented by three modules, each consisting of a 16-bit and a 32-bit component:
 * Kernel: Kernel (, , and  ) provides high level access to functions such as memory and process management, and access to the file system.
 * User: User ( and  ) is responsible for managing and drawing the various user interface components, such as windows, menus, and buttons.
 * GDI: The Graphics Device Interface ( and  ) is responsible for drawing graphics in a device-independent way.

Dependence on MS-DOS
To end-users, MS-DOS appeared as an underlying component of Windows 95. For example, it was possible to prevent loading the graphical user interface and boot the system into a real-mode MS-DOS environment. This sparked debate amongst users and professionals over the question of to what extent Windows 95 was an operating system or merely a graphical shell running on top of MS-DOS. From an architectural stance, both viewpoints lack nuance.

When the graphical user interface was started, the virtual machine manager took over the filesystem-related and disk-related functionality from MS-DOS, which itself was demoted to a compatibility layer for 16-bit device drivers. This contrasted with earlier versions of Windows which relied on MS-DOS to perform file and disk access (Windows for Workgroups 3.11 could also largely bypass MS-DOS when 32-bit file access and 32-bit disk access was enabled). Keeping MS-DOS in memory allowed Windows 95 to use DOS device drivers if suitable Windows drivers were unavailable. 16-bit applications that utilize DOS INT 21h calls are merely sent to a stub that goes to the equivalent 32-bit OS routine. Windows 95 is capable of using all 16-bit Windows 3.x drivers.

Using DOS applications in Windows 95 was much like 3.1, but DOS drivers are no longer needed for things such as mice, CD-ROM access, and sound card support (Windows' own drivers handle this task when running DOS applications). While HIMEM.SYS is still required to boot up Windows 95, EMM386 and other memory managers aren't and only need to be loaded for DOS applications that need them. In addition, CONFIG.SYS and AUTOEXEC.BAT settings (aside from HIMEM.SYS) have no effect on Windows applications. Most DOS games can run from within Windows 95, while 3.x normally was limited to application software (games tended to lock up Windows 3.x or cause other problems). Protected mode DOS programs were also runnable as Windows 95 provides p-mode emulation (these cannot be used in Windows 3.x at all). As with Windows 3.x, DOS applications that use EGA or VGA graphics modes cannot be run windowed and will be suspended by the OS if this is done (CGA and text mode programs can continue to run).

If F8 is pressed following the POST beep sound, a menu is pulled up allowing the user to continue starting Windows normally, exit to DOS, or start in safe mode. Straight DOS mode works just like in all previous versions; there is no 32-bit support and DOS drivers must be loaded for mice and other hardware.

A negative consequence of keeping MS-DOS around was that Windows had to do some work to keep DOS's internal data structures synchronized with those of Windows itself. When starting an application, even a native 32-bit Windows application, MS-DOS would momentarily execute to create a data structure (the program segment prefix) and it was even theoretically possible for MS-DOS to run out of conventional memory while doing so, preventing the application from launching. Windows 3.x in fact allocated FIXED segments in conventional memory first, which can conflict. And since the segments were allocated as FIXED, Windows could not move them, which would prevent any more applications from launching. This was fixed in Windows 95.

Microsoft partially removed support for the outdated File Control Blocks (a relic of DOS 1.x and CP/M) in Windows 95 OSR B. FCB functions cannot write to FAT32 volumes, only read them.

User interface
Some basic elements of the user interface introduced in Windows 95 – such as the desktop metaphor with the taskbar at the bottom, the Start button, and the Windows Explorer file manager – remain fundamentally unchanged in later versions of Windows years later. The desktop includes shortcuts to launch programs and files, while the taskbar shows buttons for applications that are running. The Start Menu also has shortcuts for various tasks, as well as applications that are sorted into folders. This remained the default layout until Windows XP. The word "Start" was dropped from the button in Windows Vista, the button being labeled with the Windows logo ("Start" is still present as a tooltip and in the classic GUI mode). The flyout menu style was eventually replaced by a redesigned predominantly search-based application launcher, but the ability to browse all installed programs from Start has been retained in newer versions of Windows, such as Windows 7 and Windows 8.

When released for Windows 95, Internet Explorer 4.0 came with an optional shell update known as the Windows Desktop Update that changed the interface significantly. That update gave Windows 95 (and Windows NT 4.0) features that would become major parts of Windows 98.

Technical improvements
Windows 95 included support for 255-character mixed-case long filenames and preemptively multitasked pseudo-protected-mode 32-bit applications. It was the first consumer version of Windows to be its own operating system instead of a shell that rode over top of DOS. While DOS is still used to boot the PC, Windows 95 is otherwise completely self-contained and does not depend on any DOS or BIOS calls to run.

Long file names
32-bit File Access is necessary for the long file names feature introduced with Windows 95 through the use of the VFAT file system extension. It is available to both Windows programs and MS-DOS programs started from Windows (they have to be adapted slightly, since accessing long file names requires using larger pathname buffers and hence different system calls). Competing DOS-compatible operating systems released before Windows 95 cannot see these names. Using older versions of DOS utilities to manipulate files means that the long names are not visible and are lost if files are moved or renamed, as well as by the copy (but not the original), if the file is copied. During a Windows 95 automatic upgrade of an older Windows 3.1 system, DOS and third-party disk utilities which can destroy long file names are identified and made unavailable (Microsoft Anti-Virus for Windows indicated that the upgrade program was itself a computer virus). When Windows 95 is started in DOS mode, e.g. for running DOS programs, low-level access to disks is locked out. In case the need arises to depend on disk utilities that do not recognize long file names, such as MS-DOS 6.x's defrag utility, a program called LFNBACK for backup and restoration of long file names is provided on the CD-ROM. The program is in the \ADMIN\APPTOOLS\LFNBACK directory of the Windows 95 CD-ROM.

32-bit
Windows 95 followed Windows for Workgroups 3.11 with its lack of support for older, 16-bit x86 processors, thus requiring an Intel 80386 (or compatible). While the OS kernel is 32-bit, much code (especially for the user interface) remained 16-bit for performance reasons as well as development time constraints (much of W95's UI code was recycled from Windows 3.1). This had a rather detrimental effect on system stability and led to frequent application crashes.

The introduction of 32-bit File Access in Windows for Workgroups 3.11 meant that 16-bit real mode MS-DOS is not used for managing the files while Windows is running, and the earlier introduction of the 32-bit Disk Access means that the PC BIOS is not used for managing hard disks. This essentially reduces MS-DOS to the role of a boot loader for the protected-mode Windows kernel. DOS can be used for running old-style drivers for compatibility, but Microsoft discourages using them, as this prevents proper multitasking and impairs system stability. Control Panel allows a user to see what MS-DOS components are used by the system; optimal performance is achieved when they are bypassed. The Windows kernel uses MS-DOS style real-mode drivers in Safe Mode, which exists to allow a user to fix problems relating to loading native, protected-mode drivers.

Internet Explorer
Windows 95 originally shipped without Internet Explorer, and the default network installation did not install TCP/IP, the network protocol used on the Internet. At the release date of Windows 95, Internet Explorer 1.0 was available, but only in the Plus! add-on pack for Windows 95, which was a separate product. The Plus! Pack did not reach as many retail consumers as the operating system itself (it was mainly advertised for its add-ons such as themes and better disk compression) but was usually included in pre-installed (OEM) sales, and at the time of Windows 95 release, the web was being browsed mainly with a variety of early web browsers such as Netscape (promoted by products such as Internet in a Box).

Windows 95 OEM Service Release 1 was the first release of Windows to include Internet Explorer (version 2.0) with the OS. While there was no uninstaller, it could be deleted easily if the user so desired. OEM Service Release 2 included Internet Explorer 3. The installation of Internet Explorer 4 on Windows 95 (or the OSR2.5 version preinstalled on a computer) gave Windows 95 active desktop and browser integration into Windows Explorer, known as the Windows Desktop Update. The CD version of the last release of Windows 95, OEM Service Release 2.5 (Version 4.00.950C), includes Internet Explorer 4, and installs it after Windows 95's initial setup and first boot is complete.

Only the 4.x series of the browser contained the Windows Desktop Update features, so anyone wanting the new shell had to install IE4 with the desktop update before installing a newer version of Internet Explorer. The last version of Internet Explorer supported on Windows 95 is Internet Explorer 5.5 which was released in 2000. Windows 95 shipped with Microsoft's own dial-up online service called The Microsoft Network.

Editions
A number of different editions of Windows 95 have been released. Only the original release was sold as a shrink-wrapped product, later editions were provided only to computer original equipment manufacturers (OEMs) for installation on new PCs. For this reason these editions are known as OEM Service Releases (OSR).

Together with the introduction of Windows 95, Microsoft released the Microsoft Plus! for Windows 95 pack, which contained a number of optional components for high-end (486) multimedia PCs, including Internet Explorer, DriveSpace, and additional themes.

Microsoft initially indicated to make updates available to Windows 95 every 6 months in the form of service packs. The growing availability of Internet access meant that Windows updates could now be downloaded from Microsoft directly. The first service pack was made available half a year after the original release and fixed a number of small bugs.

The second service pack mainly introduced support for new hardware. Most notably support for hard drives larger than 2 GB in the form of the FAT32 file system. This release was never made available to end-users directly and was only sold through OEMs with the purchase of a new PC.

A full third service pack was never released, but two smaller updates to the second were released in the form of a USB Supplement (OSR 2.1) and the Windows Desktop Update (OSR 2.5). Both were available as stand-alone updates and as updated disc images shipped by OEMs. OSR 2.5 was notable for featuring a number of changes to the Windows Explorer, integrating it with Internet Explorer 4.0—this version of the Explorer looks very similar to the one featured in Windows 98.

System requirements
Official system requirements were an Intel 80386 DX CPU of any speed, 4 MB of system RAM, and 50–55 MB of hard drive space depending on features selected. These minimal claims were made in order to maximize the available market of Windows 3.1 converts. This configuration was distinctly suboptimal for any productive use on anything but single-tasking dedicated workstations due to the heavy reliance on virtual memory. Also, in some cases, if any networking or similar components were installed the system would refuse to boot with 4 megabytes of RAM. It was possible to run Windows 95 on a 386 SX but this led to even less acceptable performance due to its 16-bit external data bus. To achieve optimal performance, Microsoft recommends an Intel 80486 or compatible microprocessor with at least 8 MB of RAM.

Windows 95 was superseded by Windows 98 and could still be directly upgraded by both Windows 2000 and Windows Me. On December 31, 2001, Microsoft ended its support for Windows 95, making it an "obsolete" product according to the Microsoft Lifecycle Policy.

Even though support for Windows 95 has ended, the software has occasionally remained in use on legacy systems for various purposes. In addition, some video game enthusiasts choose to use Windows 95 for their legacy system to play old DOS games, although some other versions of Windows such as Windows 98 can also be used for this purpose.

Most copies of Windows 95 were on CD-ROM, but a floppy version could also be had for older machines. The retail floppy disk version of Windows 95 came on 13 DMF formatted floppy disks, while OSR 2.1 doubled the floppy count to 26. Both versions exclude additional software that CD-ROM might have featured. Microsoft Plus! for Windows 95 was also available on floppy disks. DMF was a special 19-sector format Microsoft used to store 1.7MB on floppies rather than the usual 1.44MB. While the floppy edition of Windows was normally on 3.5" disks, a 5.25" version could be specially ordered as well.

2GB is the maximum supported hard drive space on the 1st version of Windows 95 and OSR1.

Legacy
Many features that became key components of the Microsoft Windows series, such as the start menu and the taskbar, originated in Windows 95.

Physical RAM limit
The maximum amount of physical RAM in a PC that Windows 95 supports is 480 MB.