Windows 98 Offline Boot Process

When DOS Was Still the Boss

When you pressed the power button on a Windows 98 computer, Windows itself was actually one of the last components to arrive at the party. Long before the desktop appeared, a chain of firmware and DOS components had already been hard at work preparing the system.

The journey began with the Power-On Self-Test (POST). During this phase, the system firmware checked whether essential hardware components such as the processor, memory, keyboard, video adapter, and storage devices were functioning correctly. If everything passed inspection, control remained with the BIOS and the boot process continued.

Next, the BIOS searched for a bootable device according to the configured boot order. Once a suitable hard disk was found, the BIOS loaded the first sector of that disk into memory and executed it. This sector is known as sector 0 because of it is physical location on the hard drive, for hard drives it sector 0 was also called the Master Boot Record (MBR).

The MBR contained two critical pieces of information: a partition table and a small amount of executable boot code. Although it occupied only the first 512 bytes of the disk, it played a crucial role. Once the BIOS executed the MBR, ownership of the boot process was effectively transferred from the firmware to the code stored on the hard disk. The BIOS had completed its job and stepped aside.

The MBR then located the active partition and executed its boot sector, commonly referred to as BOOTSECT.DOS. This component was responsible for starting the DOS boot sequence and preparing the operating environment that Windows 98 depended on.

From there, IO.SYS was loaded into memory. This file initialized low-level hardware access and loaded essential DOS functionality required by the operating system. Think of IO.SYS as the stage crew preparing everything behind the scenes before the main show could begin.

Once hardware initialization was complete, MSDOS.SYS took over. In earlier DOS versions, MSDOS.SYS contained a significant portion of the DOS kernel. By the Windows 98 era, it had evolved into a more configuration-oriented component, but it still remained a vital part of the startup sequence.

The next step was COMMAND.COM, the DOS command interpreter. For decades, this executable was the familiar face of DOS computing. It provided the command-line environment, processed batch files, and served as the control center for DOS operations.

Only after DOS was fully operational could Windows 98 finally start its graphical environment. This is an important distinction: Windows 98 did not boot independently. Instead, DOS booted first, and then DOS launched Windows.

This dependency is what makes Windows 98 fundamentally different from later operating systems such as Windows XP. If DOS failed to start, Windows 98 could not start either. DOS was still the foundation, while Windows 98 acted as the graphical layer running on top of it.

That is why Windows XP represented such a major milestone. With the introduction of components such as NTLDR, BOOT.INI, NTDETECT.COM, and ultimately NTOSKRNL.EXE, Windows no longer relied on DOS to get off the ground. Windows itself became the operating system rather than an environment running on top of another one.

Windows 98: “I need DOS to start.”

Windows XP: “I am the operating system.”

Yours truly,
Lady Itris | The Feminine Nerd đź’ś