Windows 1.0, released on November 20, 1985, was Microsoft's first attempt to implement a multi-tasking graphical user interface-based operating environment on the PC platform.


Unlike later versions, Windows 1.0 offered limited multitasking of existing MS-DOS programs and concentrated on creating an interaction paradigm, an execution model and a stable API for native programs for the future. Due to Microsoft's extensive support for backward compatibility, it's not only possible to execute Windows 1.0 binary programs on current versions of Windows to a large extent, but also to recompile their source code into an equally functional "modern" application, with just limited modifications.

Windows 1.0 was often mistakenly regarded as a "front-end to the MS-DOS operating system", a description which was also applied to subsequent versions of Windows. Indeed, Windows 1.0 was started from MS-DOS, Windows 1.0 programs could call MS-DOS functions, and GUI programs were run from .exe files just like MS-DOS programs. However, Windows .exe files had their own "new executable" (NE) file format, which only Windows could process and which for example allowed demand-loading of code and data. Applications were supposed to handle memory only through Windows' own memory management system, which implemented a software-based virtual memory scheme allowing for applications larger than available RAM.

The treatment of Windows 1.0 as a "DOS front-end" fails to take into consideration that it was designed to be just a graphics environment used by applications, rather than a full-fledged operating system. Windows 1.0 included original device drivers for video cards, mice, keyboards, printers and serial communications. Applications were supposed to only invoke APIs built upon these drivers. Given that contemporary graphics support in MS-DOS was extremely limited and given the limited usefulness of the other services, MS-DOS applications had to go to the bare hardware (or sometimes just to the BIOS) to get work done. Therefore, rather than being a front-end to MS-DOS, Windows 1.0 complemented and partially replaced it. The level of replacement would increase in subsequent versions.

Version history

The first release version was actually numbered 1.01. However, it is rumored that version 1.00 was actually released but quickly pulled due to a severe flaw. There were also experimental versions that got out, such as the 0.9 beta.

Version 1.02, released in May 1986 was international and had editions in several European languages.

Version 1.03, released in August 1986, was US-only, with enhancements making it consistent with the international release. It included drivers for European keyboards and additional screen and printer drivers.

Version 1.04, released in April 1987, added support for the VGA graphics adapters of the new IBM PS/2 computers. At the same time Microsoft and IBM announced the introduction of OS/2 and its graphical OS/2 Presentation Manager, which were supposed to ultimately replace both MS-DOS and Windows.

Windows 1.x was superseded in November 1987, with the release of Windows 2.0.


The system requirements for Windows 1.0 constituted MS-DOS 2.0, 256 KB RAM, and 2 double-sided disk drives or a hard drive.

This first version of Windows ran a shell program known as MS-DOS Executive. Other supplied programs were Calculator, Calendar, Cardfile, Clipboard viewer, Clock, Control Panel, Notepad, Paint, Reversi, Terminal, Write, and the command prompt.

One of the interesting aspects of the system were the non-overlapping windows, which were instead tiled. Only dialog boxes could appear over other windows.

Windows 1.0 executables, while having the same .exe extension and initial file header as MS-DOS programs, did not yet contain the so-called MS-DOS stub which prints the "This program must be run under Windows" or similar message and exits when the program is run outside of Windows. Instead, the file header was formatted in such a way as to make DOS reject the executable with a "program too large to fit in memory" error message.

From the beginning, Windows was intended to multitask programs (although this originally only applied to native applications and for many versions the multitasking was non-preemptive), so Windows programs always had their own menu bar rather than switching a single menu bar at the top of the screen like Apple Macintoshes did.

Originally Windows was designed to have the pull-up menus at the bottom of windows, as it was common with the DOS programs of the time; however, this was changed before the first release.

Competitors on the IBM PC platform

The history of Windows dates back to September 1981, when the project named "Interface Manager" was started. It was first presented to the public in November 10, 1983, renamed to "Microsoft Windows"; the two years of delay before release led to charges that it was 'vaporware'. The initially announced version of Windows had features so much resembling Macintosh interface that Microsoft had to change many of them: overlapping windows, although supported by the GUI engine, weren't allowed for exactly this purpose. The announcement of Windows' imminent arrival in 1985 probably did not help the sales of VisiCorp's Visi On environment which debuted at the same time. However, even when finally released, Windows 1.0 aroused little interest as well, showing the market was simply not yet ready for a switch-over from MS-DOS.

Another GUI for the PC platform at the time was GEM. It had a nicer look, notably because it copied more aspects from the Macintosh GUI, for example the trash can concept (which Microsoft would in turn copy in future windows releases) and more generally the desktop interaction. GEM was eventually used as the standard GUI for the Atari's ST range of 68k-based computers, which were sometimes referred to as Jackintoshes as a slurry of thought (the company being run by Jack Tramiel). GEM's resemblance to the Macintosh OS later caused legal trouble to the manufacturer, Digital Research, who were obliged to seriously cripple the desktop's appearance and functionality (applications were not affected).

But GEM was not multitasking, so users had to close one program in order to run another one. Collections of related programs, like GEM Draw, had tricky File menu items like Close (to Edit) to facilitate switching.

An alternative multitasker released shortly before was DESQview, a successor of IBM's failed TopView from 1984. It did not have graphical capabilities initially, but was able to multitask DOS applications in windows as long as they were well-behaved or had a specially written "loader" which could fix them on the fly.

As the result of this heavy competition, Windows gained very little market share – until Aldus PageMaker shipped in January 1987 with a Windows executable. This was the first WYSIWYG desktop publishing program available on the PC platform, and it finally gave people a reason to buy Windows. Later Windows compatible products included Excel and Corel Draw.


Windows 2.x is a family of Microsoft Windows graphical user interface-based operating environments that succeeded Windows 1.0. Windows 2.x was said to look similar to the original Mac OS and more closely matched Microsoft's pre-release publicity for Windows 1.0.

Windows 2.0

Released on November 1, 1987, Windows 2.0 allowed for windows to overlap each other, in contrast to Windows 1.0, which could only display tiled windows (this limitation was artificially imposed due to lawsuits from Apple Computer; dialogs and drop-down menus were in fact overlapping windows in Windows 1.0). This version also introduced the window-manipulation terminology of "Minimize" and "Maximize", as opposed to "Iconize" and "Zoom" in Windows 1.0, and a more sophisticated keyboard-shortcut mechanism in which shortcut keys were identified by underlining the character that, in conjunction with the "Alt" key, would cause them to be selected. File management tasks were still managed by use of the MS-DOS Executive program, which was more list-driven than icon-oriented.

The first Windows versions of Microsoft Word and Microsoft Excel ran on Windows 2.0. Third-party developer support for Windows increased substantially with this version (some shipping the Windows Runtime software with their applications, for customers who had not purchased the full version of Windows). However, most developers still maintained DOS versions of their applications, as Windows users were still a distinct minority of their market.

Windows 2.1x

Less than a year later, Windows/286 2.1 and Windows/386 2.1 were released on May 27, 1988. These versions could take advantage of the specific features of the Intel 80286 and Intel 80386 processors.


Windows/286 took advantage of the HMA to increase the memory available to Windows programs. It introduced the himem.sys DOS driver for this purpose. It also included support for several EMS boards for this same purpose (this support was not related to the 80286 processor per-se). The segmented nature of Windows programs was quite suited to the usage of EMS, as portions of code and data could be made visible in the first megabyte of memory accessible to real-mode programs only when the program using them was given control. Microsoft encouraged users to configure their computers with only 256KB of main memory, leaving the address space from 256-640KB available for dynamic mapping of EMS memory.


Windows/386 was much more innovative. It introduced a protected mode kernel, above which the GUI and applications were running as a virtual 8086 mode task. It allowed several MS-DOS programs to run in parallel in virtual machines, rather than always suspending background applications. (Windows applications could already run in parallel through cooperative multitasking.) Each DOS application could use as much low memory as was available before Windows was started, minus a few kilobytes of overhead. Windows also provided EMS emulation, using the memory management features of the processor to make RAM beyond 640K behave like the banked memory previously only supplied by add-in cards and used by popular DOS applications. (By overwriting the WIN200.BIN file with, it was possible to use the EMS emulation in DOS without starting the Windows GUI.) There was no disk-based virtual memory, so multiple DOS programs had to fit inside the available physical memory; Microsoft suggested buying additional memory (and cards) if necessary.

Neither of these versions worked with DOS memory managers like CEMM or QEMM or with DOS extenders, which had their own extended memory management and ran in protected mode as well. This has been remedied in version 3.0 which was compatible with VCPI in "standard mode" and with DPMI in "386 enhanced" mode.

The various Windows 2.x versions were superseded by Windows 3.0 in May 1990.


Windows 3.0 was the third major release of Microsoft Windows, and came out on May 22, 1990. It was the first widely successful version of Windows (see history of Microsoft Windows), enabling Microsoft to compete with Apple Macintosh and the Commodore Amiga on the GUI front.


Windows 3.0 succeeded Windows 2.1x and included a significantly revamped user interface as well as technical improvements to make better use of the memory management capabilities of Intel's 80286 and 80386 processors. Text-mode programs written for MS-DOS could be run within a window (a feature previously available in a more limited form with Windows/386 2.1), making the system usable as a crude multitasking base for legacy programs. However, this was of limited use for the home market, where most games and entertainment programs continued to require raw DOS access.

The MS-DOS Executive file manager/program launcher was replaced with an icon-based Program Manager and a list-based File Manager, thereby simplifying the launching of applications. The MS-DOS Executive was still included as an alternative user interface program. The Control Panel, previously available as a standard-looking applet, had been re-modeled after the one in Mac OS. It centralized system settings, including limited control over the color scheme of the interface. A number of simple applications were included, such as the text editor Notepad and the word processor Write (both inherited from earlier versions of Windows), a macro recorder (new; later dropped), and a calculator (also inherited). The earlier Reversi game was complemented with a card game named Solitaire.

Windows 3.0 was the last version of Windows to advertise 100% compatibility with older Windows applications.

Memory modes

Windows 3.0 was the only version of Windows that could be run in three different memory modes:

  • Real mode, intended for older computers with a CPU below Intel 80286, and corresponding to its real mode;
  • Standard mode, intended for computers with a 80286 processor, and corresponding to its protected mode;
  • 386 Enhanced mode, intended for newer computers with a Intel 80386 processor or above, and corresponding to its protected mode and virtual 8086 mode.

On a 286 or later, Real mode set the CPU to run in real mode, as though it were an Intel 80186, including the limitation that it could only address 1 MB of RAM. The expanded memory scheme was used to utilize any memory the computer had beyond 1 MB. This slowed down the computer significantly, and was used only by users of legacy applications that would crash in protected mode. Windows 3.0 was the last version of Windows that could run in real mode.

Standard mode on a 286 or later switches the CPU to protected mode, and therefore let the CPU directly access up to 16 MB of RAM at once, enabled virtual memory, and used memory protection to make Windows more stable in the event of an application fault. Support for standard mode was dropped in Windows for Workgroups 3.11.

386 Enhanced mode implemented all the benefits of Standard mode, plus 32-bit addressing and paging for faster memory access, plus virtual 8086 mode for safer execution of MS-DOS programs: each of them now ran in a virtual machine. In the previous modes, multiple MS-DOS programs could only be run in full-screen, and only the program currently active was executing; but in 386 enhanced mode, they could be run simultaneously in separate windows.

The Multimedia Extensions

The Multimedia Extensions were released in Autumn 1991 to support CD-ROM drives and sound cards, which were then becoming available. The Multimedia Extensions were released to Original Equipment Manufacturers (OEMs), mainly CD-ROM drive and sound card manufacturers, and added basic multimedia support for audio input and output and a CD audio player application to Windows 3.0. The Multimedia Extensions' new features were not available in Windows 3.0 real mode. Windows 3.1x would later incorporate many of its features.


This version of Windows was the first to be pre-installed on hard drives by PC-compatible manufacturers. Zenith Data Systems had previously shipped all of its computers with Windows 1.0 or later 2.x on diskettes but committed early in the development of Windows 3.0 to shipping it pre-installed. Indeed, the Zenith division had pushed Microsoft hard to develop the graphical user interface because of Zenith's direct competition with Apple in the college & university market. Then, two weeks before the product launch, Microsoft succeeded in convincing Dell to pre-load the operating system software as well.


Windows 3.1

Windows 3.1 (originally codenamed Janus), released on March 18, 1992, included a TrueType font system (and a set of highly legible fonts already installed) which effectively made Windows a serious desktop publishing platform for the first time. (Similar functionality was available for Windows 3.0 through the Adobe Type Manager (ATM) font system from Adobe.)

Windows 3.1 was designed to have a large degree of backward compatibility with older Windows platforms. As with Windows 3.0, version 3.1 had File Manager and Program Manager. But unlike all previous versions, Windows 3.1 and later supported 32-bit disk access, couldn't run in real mode, and included Minesweeper instead of Reversi.

A special version named Windows 3.1 for Central and Eastern Europe was released that allowed the use of Cyrillic and had fonts with diacritical marks, characteristic for the Central and Eastern European languages. There was also Windows 3.1J with support for the Japanese language.

Microsoft also released an update for Windows 3.1 which (aside from installing new files) changed the Windows version displayed in "About" dialog boxes to 3.11. Thus, Windows 3.11 wasn't a standalone version of Windows, but rather an update from Windows 3.1, much like modern Windows service packs. For those who did not own Windows 3.1, full disk sets of Windows 3.11 were sold.

Windows 3.2

There existed an update to the Simplified Chinese version of Windows 3.1; the updated system identified itself as Windows 3.2. The update was limited to this language version, as it fixed only issues related to the complex writing system of the Chinese language.

Windows for Workgroups

Windows for Workgroups 3.1 (originally codenamed Kato), released in October 1992, featured native networking support. WfW 3.1 is an extended version of Windows 3.1 which came with SMB file sharing support via the NetBEUI and/or IPX network protocols, included the Hearts card game, and introduced VSHARE.386, the Virtual Device Driver version of the SHARE.EXE TSR.

Finally, Windows for Workgroups 3.11 (originally codenamed Snowball) was released in December 1993. It supported 32-bit file access, full 32-bit network redirectors, and the VCACHE.386 file cache, shared between them. Standard mode is no longer supported in Windows for Workgroups 3.11.

A Winsock package was required to support TCP/IP networking in Windows 3.x. Usually third-party packages were used, but in August 1994 Microsoft released an add-on package (codenamed Wolverine) which provided limited TCP/IP support in Windows for Workgroups 3.11.

Limited compatibility with the new 32-bit Windows API used by Windows NT was provided by another add-on package, Win32s.

Windows 3.x was eventually superseded by Windows 95, Windows 98, and later versions which integrated the MS-DOS and Windows components into a single product.

Full OS or MS-DOS shell?

Pre-NT Windows systems, not only 3.x and earlier but also 95, 98 and ME, have a complex, original, hybrid and not fully documented internal structure. Most notably, they require MS-DOS in order to run, and run 'on top' of MS-DOS. As a consequence, it can be difficult to decide whether they are operating systems or MS-DOS extension shells. Many users consider them to be operating systems, because they appear to behave as such, while other people, often having used other environments, refute this label.

Windows 3.x requires pre-installation of MS-DOS, which must be booted on PC startup. Windows is started as an application program, and can be terminated at any time, returning the user to the MS-DOS prompt. MS-DOS also provides device drivers for certain tasks such as CD-ROM or network access, specifically remote disk drive or remote printer access; these drivers run in real mode. However, in 386 enhanced mode of Windows for Workgroups, the networking drivers are running in protected mode. On the other hand, Windows requires specifically written applications, and has a specific on-disk file format, which is much more complicated than the format of MS-DOS executables. It has many of its own device drivers and for the most part its own memory management system.

Other considerations include the fact that MS-DOS does not isolate applications from the hardware and does not protect itself from applications. The memory-resident part of MS-DOS is akin to a library of routines for dealing with disk-type peripherals and loading applications from them; an MS-DOS program is free to do whatever it desires, notably replacing or bypassing part or all of MS-DOS code, temporarily or permanently. Windows took advantage of this, and the degree to which bypassing was performed increased with every new release. Windows 3.1 and its 32-bit Disk Access superseded the BIOS code for accessing disks, while 32-bit File Access of Windows for Workgroups 3.11 bypassed the native MS-DOS code for accessing files. This opened the way for Windows 95's support for long file names, which made DOS file code and related 8.3 utilities obsolete.

Furthermore, an MS-DOS program running in the Windows environment could take advantage of those features of Windows which were natively unsupported by DOS. An MS-DOS program running on Windows for Workgroups 3.11 would automatically use 32-bit File Access rather than the native MS-DOS file and disk access routines. Similarly, a specially written MS-DOS program running on Windows 95 can access long file names.

The same operating principles applied to Windows 95, Windows 98, and Windows Me which still mixed 16-bit and 32-bit code. With each successive version, however, 16-bit code became less apparent.

Windows NT, Windows 2000, and their successors represent operating systems completely separate from MS-DOS legacy and their kernel is entirely composed of 32-bit code. MS-DOS (and Windows 3.x) programs run inside virtual DOS machines, which are implemented over the normal system API rather than underlying the system.