The
Windows 9x
Windows 9x is a generic term referring to a series of Microsoft Windows computer operating systems produced from 1995 to 2000, which were based on the Windows 95 kernel and its underlying foundation of MS-DOS, both of which were updated in subs ...
series of operating systems refers to the
kernel
Kernel may refer to:
Computing
* Kernel (operating system), the central component of most operating systems
* Kernel (image processing), a matrix used for image convolution
* Compute kernel, in GPGPU programming
* Kernel method, in machine learnin ...
which lies at the heart of Windows 9x. Its architecture is
monolithic
A monolith is a monument or natural feature consisting of a single massive stone or rock.
Monolith or monolithic may also refer to:
Architecture
* Monolithic architecture, a style of construction in which a building is carved, cast or excavated ...
.
The basic code is similar in function to
MS-DOS
MS-DOS ( ; acronym for Microsoft Disk Operating System, also known as Microsoft DOS) is an operating system for x86-based personal computers mostly developed by Microsoft. Collectively, MS-DOS, its rebranding as IBM PC DOS, and a few ope ...
. As a 16-/32-bit hybrid, it requires support from MS-DOS to operate.
Critical files
Windows 95 boots using the following set of files:
32-bit shell and command line interpreter:
*
SHELL.DLL and
SHELL32.DLL – Shell API
*
EXPLORER.EXE
File Explorer, previously known as Windows Explorer, is a file manager application that is included with releases of the Microsoft Windows operating system from Windows 95 onwards. It provides a graphical user interface for accessing the file ...
– Windows shell and file manager
*
COMMAND.COM
COMMAND.COM is the default command-line interpreter for MS-DOS, Windows 95, Windows 98 and Windows Me. In the case of DOS, it is the default user interface as well. It has an additional role as the usual first program run after boot (init proc ...
– command line
shell
Shell may refer to:
Architecture and design
* Shell (structure), a thin structure
** Concrete shell, a thin shell of concrete, usually with no interior columns or exterior buttresses
** Thin-shell structure
Science Biology
* Seashell, a hard o ...
executable
Windows 95 Core:
*
KERNEL32.DLL
The Microsoft Windows operating system supports a form of shared libraries known as "dynamic-link libraries", which are code libraries that can be used by multiple processes while only one copy is loaded into memory. This article provides an ove ...
and
KRNL386.EXE – Windows API for Windows resources
*
ADVAPI32.DLL Functionality additional to the kernel. Includes functions for the Windows registry and shutdown and restart functions
*
GDI32.DLL
The Microsoft Windows operating system supports a form of shared libraries known as "dynamic-link libraries", which are code libraries that can be used by multiple processes while only one copy is loaded into memory. This article provides an ove ...
and
GDI.EXE - Graphic device interface
*
USER32.DLL
Windows USER is a component of the Microsoft Windows operating system that provides core functionality for building simple user interfaces. The component has existed in all versions of Windows, and includes functionality for window management, m ...
and
USER.EXE - GUI implementation
*
COMMCTRL.DLL and
COMCTL32.DLL - Common controls (user interface)
*
DDEML.DLL Dynamic Data Exchange
In computing, Dynamic Data Exchange (DDE) is a technology for interprocess communication used in early versions of Microsoft Windows and OS/2. DDE allows programs to manipulate objects provided by other programs, and respond to user actions affec ...
Management Library (DDEML) provides an interface that simplifies the task of adding DDE capability to an application
*
MSGSRV32.EXE Acts as a 32-bit message server and will never appear in the Windows task list
*
WIN.COM
WIN.COM is the executable file used to load versions of Windows that run from DOS. In Windows 3.11 and its predecessors, it is executed either manually from the DOS prompt or as a line in AUTOEXEC.BAT. In Windows 95 and onward it is automatically ...
- responsible for loading the GUI and the Windows portion of the system
Registry and other configuration files:
*
SYSTEM.DAT
The Windows Registry is a hierarchical database that stores low-level settings for the Microsoft Windows operating system and for applications that opt to use the registry. The kernel, device drivers, services, Security Accounts Manager, and ...
,
USER.DAT
The Windows Registry is a hierarchical database that stores low-level settings for the Microsoft Windows operating system and for applications that opt to use the registry. The kernel, device drivers, services, Security Accounts Manager, and u ...
- contains the
Windows Registry
The Windows Registry is a hierarchical database that stores low-level settings for the Microsoft Windows operating system and for applications that opt to use the registry. The kernel, device drivers, services, Security Accounts Manager, and use ...
*
MSDOS.SYS
MSDOS.SYS is a system file in MS-DOS and Windows 9x operating systems.
In versions of MS-DOS from 1.1x through 6.22, the file comprises the MS-DOS kernel and is responsible for file access and program management. MSDOS.SYS is loaded by the DOS BI ...
- contains some low-level
boot
A boot is a type of footwear. Most boots mainly cover the foot and the ankle, while some also cover some part of the lower calf. Some boots extend up the leg, sometimes as far as the knee or even the hip. Most boots have a heel that is cle ...
settings and resources such as disabling double-buffering and the
GUI
The GUI ( "UI" by itself is still usually pronounced . or ), graphical user interface, is a form of user interface that allows users to interact with electronic devices through graphical icons and audio indicator such as primary notation, inste ...
logo
*
WIN.INI
WIN.INI is a basic INI file that was used in versions of the Microsoft Windows operating environment up to Windows 3.11 to store basic settings at boot time. By default, all font, communications drivers, wallpaper, screen saver, and language set ...
and
SYSTEM.INI - configuration files from Windows 3.1, processed in Windows 9x also
Virtual Machine Manager and configuration manager:
*
VMM32.VXD
Windows 9x is a generic term referring to a series of Microsoft Windows computer operating systems produced from 1995 to 2000, which were based on the Windows 95 kernel and its underlying foundation of MS-DOS, both of which were updated in sub ...
- Virtual machine manager and default drivers. It takes over from io.sys as kernel
Installable file System Manager:
*
IFSHLP.SYS - enables Windows to make direct file system calls bypassing MS-DOS methods
*
IFSMGR.VXD - 32-bit driver for the installable file system
*
IOS.VXD I/O Supervisor that controls and manages all protected-mode file system and block device drivers
*
MPREXE.EXE MPRSERV.DLL and
MPR.DLL - Multiple Provider Router, required for network authentication and user profiles
*
MSPWL32.DLL Password list management library
Device drivers:
*
IO.SYS
is an essential part of MS-DOS and Windows 9x. It contains the default MS-DOS device drivers (hardware interfacing routines) and the DOS initialization program.
Boot sequence
In the PC bootup sequence, the first sector of the boot disk is ...
- executable handling all of the basic functions, such as
I/O routines and also serves as kernel until vmm32.vxd takes over
*
HIMEM.SYS
HIMEM.SYS is a DOS device driver which allows DOS programs to store data in extended memory according to the Extended Memory Specification (XMS). The memory beyond the first 1 MB of address space is required by Windows 9x/ Me in order to load ...
- DOS device driver which allows DOS programs to store data in extended memory via the Extended Memory Specification
*
SYSTEM.DRV,
MMSOUND.DRV,
COMM.DRV ,
VGA.DRV,
MOUSE.DRV,
BIGMEM.DRV,
KEYBOARD.DRV - 16-bit drivers
*
CP 1252.NLS,
CP 437.NLS,
UNICODE.NLS,
LOCALE.NLS - keyboard layouts
*
RMM.PDR Real Mode Mapper Virtual Device
The system may also use
CONFIG.SYS
CONFIG.SYS is the primary configuration file for the DOS and OS/2 operating systems. It is a special ASCII text file that contains user-accessible setup or configuration directives evaluated by the operating system's DOS BIOS (typically residing ...
, which contains settings and commands executed before loading the
command interpreter
A command-line interpreter or command-line processor uses a command-line interface (CLI) to receive commands from a user in the form of lines of text. This provides a means of setting parameters for the environment, invoking executables and pro ...
) and
AUTOEXEC.BAT
AUTOEXEC.BAT is a system file that was originally on DOS-type operating systems. It is a plain-text batch file in the root directory of the boot device. The name of the file is an abbreviation of "automatic execution", which describes its funct ...
, which is a
batch file
Batch may refer to:
Food and drink
* Batch (alcohol), an alcoholic fruit beverage
* Batch loaf, a type of bread popular in Ireland
* A dialect term for a bread roll used in North Warwickshire, Nuneaton and Coventry, as well as on the Wirra ...
automatically executed after loading COMMAND.COM. However, these two files are not critical to the boot process, as IO.SYS contains a default setting for both, in case of absence from the system. In
Windows ME
Windows Millennium Edition, or Windows Me (marketed with the pronunciation of the pronoun "me"), is an operating system developed by Microsoft as part of its Windows 9x family of Microsoft Windows operating systems. It is the successor to Windo ...
, CONFIG.SYS and AUTOEXEC.BAT are not processed and
LOGO.SYS may be used as a splash screen.
Boot sequence
The Windows 9x startup process consists of 6 phases. The first two of these steps are common to any
operating system
An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs.
Time-sharing operating systems schedule tasks for efficient use of the system and may also in ...
booting using the traditional combination of
BIOS
In computing, BIOS (, ; Basic Input/Output System, also known as the System BIOS, ROM BIOS, BIOS ROM or PC BIOS) is firmware used to provide runtime services for operating systems and programs and to perform hardware initialization during the ...
and
Master Boot Record.
Phase 1 - The ROM BIOS bootstrap process
The
ROM BIOS
In computing, BIOS (, ; Basic Input/Output System, also known as the System BIOS, ROM BIOS, BIOS ROM or PC BIOS) is firmware used to provide runtime services for operating systems and programs and to perform hardware initialization during the b ...
starts the execution at the physical memory address FFFF0h. During this phase, BIOS first executes the
Power-on self-test
A power-on self-test (POST) is a process performed by firmware or software routines immediately after a computer or other digital electronic device is powered on.
This article mainly deals with POSTs on personal computers, but many other embed ...
, then checks for the existence of a boot disk on drive A. If it is not found in drive A, the ROM BIOS checks for a hard disk. If the computer has a Plug and Play BIOS, in addition, BIOS checks the RAM for I/O port addresses, interrupt lines and DMA channels for
Plug and Play
In computing, a plug and play (PnP) device or computer bus is one with a specification that facilitates the recognition of a hardware component in a system without the need for physical device configuration or user intervention in resolving resou ...
devices, disables found devices, creates maps of used and unused resources and re-enables devices.
Phase 2 - The master boot record and boot sector
The
Master boot record is loaded at address 7C00h and loads the
boot sector of the Windows
Disk partition
Disk partitioning or disk slicing is the creation of one or more regions on secondary storage, so that each region can be managed separately. These regions are called partitions. It is typically the first step of preparing a newly installed disk ...
. The boot sector contains the disk boot program and
BIOS Parameter Block table which searches for the location of the root directory and IO.SYS file, which then loads the IO.SYS file into memory.
Phase 3 -
IO.SYS
is an essential part of MS-DOS and Windows 9x. It contains the default MS-DOS device drivers (hardware interfacing routines) and the DOS initialization program.
Boot sequence
In the PC bootup sequence, the first sector of the boot disk is ...
file initialization
IO.SYS
is an essential part of MS-DOS and Windows 9x. It contains the default MS-DOS device drivers (hardware interfacing routines) and the DOS initialization program.
Boot sequence
In the PC bootup sequence, the first sector of the boot disk is ...
initializes the minimal
File Allocation Table driver and loads
MSDOS.SYS
MSDOS.SYS is a system file in MS-DOS and Windows 9x operating systems.
In versions of MS-DOS from 1.1x through 6.22, the file comprises the MS-DOS kernel and is responsible for file access and program management. MSDOS.SYS is loaded by the DOS BI ...
into memory. It then displays "Starting Windows" depending on the Boot-Delay line in the MSDOS.SYS file. It then loads the
LOGO.SYS file and displays a
startup image on the screen. If the
DRVSPACE.INI or
DBLSPACE.INI file exists, it also loads drivers for compressed disks. Windows then attempts to open the registry file SYSTEM.DAT. If that fails, it attempts to open SYSTEM.DA0. If configured in MSDOS.SYS or in the registry, double buffering is also enabled.
Phase 4 - CONFIG.SYS and real mode configuration
Windows 95 to Windows 98 now analyze CONFIG.SYS and load MS-DOS
real mode
Real mode, also called real address mode, is an operating mode of all x86-compatible CPUs. The mode gets its name from the fact that addresses in real mode always correspond to real locations in memory. Real mode is characterized by a 20-bit seg ...
drivers. Windows ME ignores this.
If the CONFIG.SYS file does not exist, the IO.SYS file loads the drivers
IFSHLP.SYS,
HIMEM.SYS
HIMEM.SYS is a DOS device driver which allows DOS programs to store data in extended memory according to the Extended Memory Specification (XMS). The memory beyond the first 1 MB of address space is required by Windows 9x/ Me in order to load ...
and
SETVER.EXE. Windows reserves all
upper memory block
In DOS memory management, the upper memory area (UMA) refers to computer memory, memory between the address space, addresses of 640 Kilobyte, KB and 1024 KB (Hexadecimal, 0xA0000–0xFFFFF) in an IBM PC or compatible. IBM reserved the up ...
s for Windows 95 operating system use or for
expanded memory
In DOS memory management, expanded memory is a system of bank switching that provided additional memory to DOS programs beyond the limit of conventional memory (640 KiB).
''Expanded memory'' is an umbrella term for several incompatible tec ...
.
Windows 95 to Windows 98 execute
COMMAND.COM
COMMAND.COM is the default command-line interpreter for MS-DOS, Windows 95, Windows 98 and Windows Me. In the case of DOS, it is the default user interface as well. It has an additional role as the usual first program run after boot (init proc ...
to process AUTOEXEC.BAT. It loads
terminate and stay resident
A terminate-and-stay-resident program (commonly TSR) is a computer program running under DOS that uses a system call to return control to DOS as though it has finished, but remains in computer memory so it can be reactivated later. This technique ...
programs into memory. Windows ME ignores this step, as Real Mode DOS support is disabled and TSRs being loaded can compromise system stability.
Phase 5 - initialize drivers
IO.SYS now runs
WIN.COM
WIN.COM is the executable file used to load versions of Windows that run from DOS. In Windows 3.11 and its predecessors, it is executed either manually from the DOS prompt or as a line in AUTOEXEC.BAT. In Windows 95 and onward it is automatically ...
. WIN.COM loads the
VMM32.VXD
Windows 9x is a generic term referring to a series of Microsoft Windows computer operating systems produced from 1995 to 2000, which were based on the Windows 95 kernel and its underlying foundation of MS-DOS, both of which were updated in sub ...
file into memory or accesses it from the hard disk. This file contains the most important drivers and the 9x kernel.
The real-mode
virtual device driver loader checks for duplicate virtual device drivers that exist both in the Windows\System\Vmm32 folder and the VMM32.VXD file. In a case of duplicates, the driver in the Windows\System\Vmm32 directory will be loaded.
Windows 95 to 98 now query real mode drivers calling
INT 2Fh and search for drivers in registry entry HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD marked to be loaded as an external file. Vmm32 then analyzes the
86 Enhsection of the Windows\System.ini file and loads drivers listed there. Some important drivers are loaded even if they are not listed in the
Windows Registry
The Windows Registry is a hierarchical database that stores low-level settings for the Microsoft Windows operating system and for applications that opt to use the registry. The kernel, device drivers, services, Security Accounts Manager, and use ...
,
SYSTEM.INI or in the Windows\System\Vmm32 directory.
Once the real-mode virtual device drivers are loaded, driver initialization on Windows 95 to Windows 98 occurs. Vmm32 then switches the CPU from
real mode
Real mode, also called real address mode, is an operating mode of all x86-compatible CPUs. The mode gets its name from the fact that addresses in real mode always correspond to real locations in memory. Real mode is characterized by a 20-bit seg ...
to
protected mode
In computing, protected mode, also called protected virtual address mode, is an operational mode of x86-compatible central processing units (CPUs). It allows system software to use features such as virtual memory, paging and safe multi-tasking d ...
.
The next step is the initialization of protected mode drivers, executed in three phases for each device: a critical part of initialization (while interrupts are disabled), device initialization (when file I/O is allowed) and InitComplete phase. After initialization of the display driver, Windows switches to
graphical mode.
Phase 6 - Win32 initialization
Once all of the drivers are loaded, the
Kernel32.dll
The Microsoft Windows operating system supports a form of shared libraries known as "dynamic-link libraries", which are code libraries that can be used by multiple processes while only one copy is loaded into memory. This article provides an ove ...
,
gdi32.dll
The Microsoft Windows operating system supports a form of shared libraries known as "dynamic-link libraries", which are code libraries that can be used by multiple processes while only one copy is loaded into memory. This article provides an ove ...
,
Gdi.exe,
user32.dll
Windows USER is a component of the Microsoft Windows operating system that provides core functionality for building simple user interfaces. The component has existed in all versions of Windows, and includes functionality for window management, m ...
,
User.exe,
shell32.dll and
Explorer.exe
File Explorer, previously known as Windows Explorer, is a file manager application that is included with releases of the Microsoft Windows operating system from Windows 95 onwards. It provides a graphical user interface for accessing the file ...
files are loaded. The next step in the startup process is to load the
network
Network, networking and networked may refer to:
Science and technology
* Network theory, the study of graphs as a representation of relations between discrete objects
* Network science, an academic field that studies complex networks
Mathematics ...
environment. The user is prompted to log on to the network that is configured. When a user logs on, their desktop settings are loaded from the registry, or the desktop configuration uses a default desktop. Windows then starts programs defined in the
StartUp folder,
WIN.INI
WIN.INI is a basic INI file that was used in versions of the Microsoft Windows operating environment up to Windows 3.11 to store basic settings at boot time. By default, all font, communications drivers, wallpaper, screen saver, and language set ...
and programs defined in registry keys Run, RunOnce, RunServices and RunServicesOnce inside the branches HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion and HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\. After each program in the RunOnce registry key is started, the program is removed from the key.
Kernel
The Windows 9x kernel is a 32-bit kernel with
virtual memory
In computing, virtual memory, or virtual storage is a memory management technique that provides an "idealized abstraction of the storage resources that are actually available on a given machine" which "creates the illusion to users of a very l ...
. Drivers are provided by .VXD files or, since Windows 98, the newer
WDM drivers can be used.
However, the
MS-DOS
MS-DOS ( ; acronym for Microsoft Disk Operating System, also known as Microsoft DOS) is an operating system for x86-based personal computers mostly developed by Microsoft. Collectively, MS-DOS, its rebranding as IBM PC DOS, and a few ope ...
kernel stays resident in memory. Windows will use the old MS-DOS 16-bit drivers if they are installed, except on Windows Me. In Windows Me, DOS is still running, but Windows will ignore any attempt to load its device drivers when parsing the AUTOEXEC.BAT, and will move the environment variables that it still recognizes from the CONFIG.SYS into the Windows Registry.
See also
*
Architecture of Windows NT
The architecture of Windows NT, a line of operating systems produced and sold by Microsoft, is a layered design that consists of two main components, user mode and kernel mode. It is a preemptive, reentrant multitasking operating system, whic ...
*
Microsoft Windows
Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for serv ...
*
Caldera v. Microsoft
Microsoft has been involved in numerous high-profile legal matters that involved litigation over the history of the company, including cases against the United States, the European Union, and competitors.
Governmental
In its 2008 annual report, Mi ...
*
WinGlue
DR-DOS (written as DR DOS, without a hyphen, in versions up to and including 6.0) is a disk operating system for IBM PC compatibles. Upon its introduction in 1988, it was the first DOS attempting to be compatible with IBM PC DOS and MS-D ...
*
FreeWin95
References
Further reading
*
* (xviii+856+vi pages, 3.5"-floppy) Errata
https://web.archive.org/web/20190417212906/https://www.pcjs.org/pubs/pc/programming/Undocumented_DOS/#errata-2nd-edition]
*
* (NB. Also on MS-DOS 7+ HMA usage and \WINDOWS\IOS.LOG.)
*
*
https://archive.today/20190428182007/http://www.fybertech.com/misc/qwkview/qwkview.pl?conf=3010]
*
*
*
*
*
*
External links
*
*
*
{{Microsoft Windows components
Monolithic kernels
Windows 9x
Windows 9x is a generic term referring to a series of Microsoft Windows computer operating systems produced from 1995 to 2000, which were based on the Windows 95 kernel and its underlying foundation of MS-DOS, both of which were updated in subs ...
Windows 95
Windows 98
Windows ME