The Windows 3.x family of Microsoft Windows operating systems were released from 1990 to 1994. The 3.0 release was the first widely successful version of Windows (see history of Microsoft Windows), enabling Microsoft to compete with Apple Computer's Macintosh and the Commodore Amiga on the GUI front.
Windows 3.0
Windows 3.0 (originally codenamed Windows 3.0) was released on May 22, 1990 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, though 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 (called Winfile), thereby simplifying the launching of applications. The Control Panel, previously available as a standard-looking applet has been re-modeled after the one in MacOS. 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 has been complemented with a nice-looking card puzzle named Solitaire.
Windows 3.1 and later
Windows 3.1 (originally codenamed Janus), released on March 18, 1992, added basic multimedia support for audio input and output and a CD audio player application, as well as 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. A very similar in functionality Adobe Type Manager (ATM) font system was previously available for Windows 3.0 from Adobe. A popular software package for DTP at the time was CorelDraw.
TCP/IP networking under Windows 3.x relied on third-party packages, such as Trumpet Winsock. Upgrading to Windows for Workgroups (originally codenamed Kato and Snowball), an extended version of Windows 3.11 which included SMB file sharing support, was another solution. Limited compatibility with the new 32-bit Win32 API used by Windows NT was provided by an add-on package, Win32s.
Windows 3.2 was a Chinese-language release only.
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 officially documented internal structure. By 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 simply behave like ones, while some other people, often primarily using other environments, refuse this label, on grounds sometimes more religious than technical.
Indeed, Windows 3.x requires pre-installation of MS-DOS, which must be booted into on PC startup. Windows is started as an application program, and can be terminated at any time, giving back the MS-DOS prompt. MS-DOS also provides device drivers for certain tasks like CD-ROM or Network access. On the other side, Windows requires specifically written applications, having a specific on-disk file format, which is much more complicated than the format of MS-DOS executables. It has many own device drivers and for the most part its own memory management system.
The first part of the answer lies in 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, as opposed to utilities on disk, is little more than a library of routines for dealing with disk-type peripherals and loading applications from them. Therefore, 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. And this is what happens when Windows starts. How much is bypassed depends on the version. With Windows for Workgroups 3.11 and the so-called 32-bit File Access even the role of accessing files is taken over by native Windows code. Note that bypassing much predates Windows. DOS programs could bypass pretty much everyting if they wanted to achieve maximum performance or functionality.
The second part of the answer lies in the specific architecture of the Intel 80286 and 80386 family of microprocessors. They have several modes of operation: Real mode, 16-bit and 32-bit protected modes and the VM86 mode. By using more or less documented machine instructions, it is possible to switch between modes at will. Switching modes does not destroy memory content, so in effect it is possible to keep different types of code in memory in parallel. It is also possible for a code of a certain type to invoke code of a different type.
So, starting with Windows/386 2.0, the Windows kernel ran in protected mode (except if the user asked to run Windows in Real mode), but was still able to invoke MS-DOS code for specific tasks, to a large extent in the same way as one can invoke a network server.
Windows also leveraged certain undocumented multitasking features present in MS-DOS, and allowing several programs to access MS-DOS functionality at once.
Therefore, Windows did not really run on MS-DOS but instead used MS-DOS in specific circumstances.
The third part of the answer is again related to the features of the Intel processors. An MS-DOS program running in the Windows environment and performing system calls or traps does not necessarily enter MS-DOS immediately, as it would outside of Windows. Windows is able to catch these calls and execute anything else instead. For example, an MS-DOS program running on Windows for Workgroups 3.11 will automatically use the 32-bit File Access rather than the MS-DOS file and disk access routines, which are hence completely bypassed. Similarly, a specially written MS-DOS program running on Windows 95 can access long file names.
This complex collaboration between Windows and MS-DOS was certainly the source of many stability problems.
The same argument applied, although to a lesser extent, to Windows 95 and Windows 98, which still used the same principle and mixed 16-bit with 32-bit code, although DOS was less visible. Windows NT and derivatives, are however stand-alone, fully 32-bit operating systems.