How Windows 98 Handled System File Updates
During software updates and installations, Microsoft Windows 98
managed system file replacements through a combination of boot-time
staging files, early system utilities, and new verification tools.
Because the operating system could not directly overwrite core
dynamic-link libraries (DLLs) and executable files currently loaded into
memory, it relied on the WININIT.INI file to stage
replacements for the next reboot. Additionally, Windows 98 introduced
the Version Conflict Manager (VCM) and the System File Checker (SFC) to
prevent older software installers from downgrading critical files, an
issue widely known as "DLL Hell."
In-Use File Locking and WININIT.INI
When an installer needed to replace a file currently locked by the
operating system, it could not overwrite the target file immediately.
Instead, the installer copied the updated file to a temporary location
or named it with a temporary extension, then registered a
file-replacement request in a configuration file named
WININIT.INI located in the C:\WINDOWS
directory.
The WININIT.INI file contained a [Rename]
section using a specific destination-equals-source syntax:
[Rename]
C:\WINDOWS\SYSTEM\TARGET.DLL=C:\WINDOWS\TEMP\TEMPFILE.DLL
NUL=C:\WINDOWS\SYSTEM\OLDDELETEME.DLLIf an installer intended to delete an obsolete file upon reboot, it
mapped the destination path to NUL.
The Boot-Time Execution Phase
The actual file replacement occurred during the early stages of system startup, before the 32-bit graphical user interface loaded into memory.
- As the system booted,
WININIT.EXEexecuted in real mode. - The executable processed every line within the
[Rename]section ofWININIT.INI. Because no system DLLs, drivers, or graphical subsystems were active yet, the files were unlocked and writable. - Once all files were moved, renamed, or deleted,
WININIT.EXEdeletedWININIT.INIto prevent duplicate processing on subsequent boots. - The system continued loading the Windows shell with the updated files safely in place.
The Version Conflict Manager (VCM)
In earlier versions like Windows 95, third-party software installers
frequently overwrote newer operating system libraries with older bundled
versions, causing system instability. Windows 98 addressed this by
integrating the Version Conflict Manager (VCMUI.EXE).
During setup or update routines, Windows examined file version
resources. If an installer attempted to replace a newer file with an
older one, Windows retained the newer file and backed up the older
installer-provided version into the C:\WINDOWS\VCM folder.
Users could later open the Version Conflict Manager to inspect these
conflicts, see which application initiated the change, and manually
restore the older version if compatibility issues arose.
System File Checker (SFC)
Windows 98 also introduced the System File Checker utility
(SFC.EXE). This utility maintained a baseline database of
core operating system files, tracking file sizes, dates, and cyclic
redundancy check (CRC) checksums.
If an update corrupted or improperly modified a system file, SFC could scan the system, detect the unauthorized divergence, and prompt the user to restore the original, intact system file directly from the Windows 98 installation media or local setup files.