Archived content. No warranty is made as to technical accuracy. Content may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.

Windows 95 Professional

A Publication of The Cobb Group

Published April 1997

We recently received a letter from a subscriber whose system kept running out of memory while he was trying to use a DOS-based program. After running the MEM/C utility in an MS-DOS Prompt window, he realized that the DRVSPACE.BIN file was using a large amount of conventional memory. Unfortunately, he couldn't find the commands that told his system to load this file.

As we researched the reader's problem—which centered on a new NetWare requester he had installed—we discovered that although Windows 95 may initially appear to boot in the same way as DOS, the two boot sequences are actually quite different. We also found a lot of contradictory information on this subject and very few sources that describe the process from start to finish.

In this article, we'll discuss the Windows 95 boot sequence in detail. As we do, we'll explain how to reconfigure various aspects of the process. We'll cover the boot process from the time you power up your PC only to the time when the graphical user interface (GUI) loads.

You've probably noticed that Windows 95 places a large number of files in the root directory. In this article, we'll be referring to many of these files. (These commands are listed at the end of this article under the table "Windows 95 root directory files") Also, the boot sequence we'll discuss applies only to a normal boot procedure. If you select another type of boot from the Startup Menu shown in Figure A, the boot sequence will vary accordingly. If you want to observe each step of the boot process we'll describe, you should begin by pressing the [F8] key when Windows 95 displays the Starting Windows 95… message. When you see the Microsoft Windows 95 Startup Menu, choose the Step-by-step confirmation option. Windows 95 will check with you before performing each step that it automatically executes in the normal boot sequence. Since you'll want to observe the entire process, you should answer Yes to all prompts. However, since we're describing a normal boot sequence, we won't include these prompts in our discussion.


Figure A: : If you boot your system using any Startup Menu option other than Step-by-step confirmation, your boot process will differ from the procedure we explain here.

Windows 95 versus DOS

Many people argue over whether Windows 95 is a true operating system—some say it is, and others contend it's just Windows 4 riding atop DOS 7. Both sides of the debate make convincing arguments, but that's because your stance on the issue depends largely on your definitions of DOS and Windows.

There's no question that the GUI, which many people equate with Windows, functions on top of a lower-level operating system that looks and behaves much like DOS. However, even though this subordinate part of the OS looks like DOS, its system files are very different from those in all previous DOS releases.

Through version 6.22, DOS loaded the IO.SYS and MSDOS.SYS files. These files were hidden system files that you couldn't reconfigure unless you knew how to use a hex editor. In Windows 95, IO.SYS and MSDOS.SYS still exist, but they play dramatically different rolls than they once did.


The 32-bit IO.SYS is really a combination of DOS's IO.SYS, MSDOS.SYS, CONFIG.SYS, and AUTOEXEC.BAT files. The new IO.SYS contains all the instructions the operating system needs to initially interact with your hardware. IO.SYS also loads some default CONFIG.SYS and AUTOEXEC.BAT commands, and it controls much of the remaining boot sequence.

As you probably know, Windows 95 can run without a CONFIG.SYS or an AUTOEXEC.BAT file. That's because these files are built into IO.SYS, which automatically executes a set batch of commands. (These commands are listed at the end of this article under the table "Commands Included in IO.SYS,") Even though you can't edit the IO.SYS file, you can use your CONFIG.SYS and AUTOEXEC.BAT files to override these commands. For example, IO.SYS automatically sets your file handles to a maximum of 60. If you wanted to change this value to 100, you'd add to your CONFIG.SYS file the line FILES=100, which would override the FILES=60 command in IO.SYS.


After IO.SYS loads its built-in CONFIG.SYS and AUTOEXEC.BAT commands, it loads MSDOS.SYS. Unlike previous DOS versions of the file, Windows 95's MSDOS.SYS is a text file that you can edit. It lets you set several Windows 95 boot options, including the GUI status, network support, and the boot menu.

After it finishes loading MSDOS.SYS, IO.SYS loads the system's Registry (as long as you haven't told it not to do so). Windows 95 stores the Registry in two hidden files—USER.DAT and SYSTEM.DAT—in the \WINDOWS directory. After Windows 95 processes the Registry, it creates backup copies of each of these files, called USER.DA0 and SYSTEM.DA0, respectively. If Windows 95 can't load the Registry through normal means, it will try to use these backup files.

If you've requested a logged boot or if your last boot was unsuccessful, Windows 95 will next copy BOOTLOG.TXT to BOOTLOG.PRV and then create a BOOTLOG.TXT file as the operating system loads.


The next step in Windows 95's boot sequence is to load COMMAND.COM, CONFIG.SYS, and AUTOEXEC.BAT. Since we mentioned that Windows 95 can run without a CONFIG.SYS or AUTOEXEC.BAT file, you may be wondering about their purpose. By default, Windows 95 loads protected-mode drivers for your hardware along with the settings we detail in the sidebar "Commands Included in IO.SYS."

Booting Windows 95 without loading CONFIG.SYS and AUTOEXEC.BAT is the preferred method because it increases your machine's speed by loading 32-bit drivers instead of 16-bit DOS-based drivers. This technique also saves conventional memory in a DOS session.

For example, in our test, we added the 16-bit CD-ROM driver NEC_IDE to our CONFIG.SYS file and the MSCDEX command to the AUTOEXEC.BAT file. Next, we rebooted and opened an MS-DOS Prompt window. When we executed the MEM/C command, we could see the added files loaded in conventional memory. At that point, Windows 95 reported that the system had 555 KB of free conventional memory, as Figure B shows.


Figure B: : When we loaded the CD-ROM drivers from CONFIG.SYS and AUTOEXEC.BAT, the MEM utility reported 555 KB of free conventional memory.

Then, we removed the two commands and repeated the procedure. When our PC rebooted, we opened an MS-DOS Prompt window. We could still access our CD-ROM drive because Windows 95 detected the drive and loaded its own 32-bit protected-mode drivers. However, this time when we executed the MEM/C command, the utility didn't list the files, and it reported that our system had 603 KB of free conventional memory, as shown in Figure C.


Figure C: : When we let Windows 95 automatically detect the CD-ROM drive and load its own real-mode drivers, the MEM utility reported 603 KB of available conventional memory.

Since omitting the CONFIG.SYS or AUTOEXEC.BAT file increases conventional memory and processing speed, you may wonder why Microsoft even includes these files in Windows 95. The main reason is to ensure compatibility with legacy hardware and software. Not all hardware manufacturers include Windows 95 drivers with their products, so Microsoft included CONFIG.SYS and AUTOEXEC.BAT to enable you to load a DOS-based driver and use the hardware anyway. In addition, some software may require special commands in the CONFIG.SYS or AUTOEXEC.BAT file. For example, many older programs require that file handles be set to at least 20. Windows 95 automatically sets file handles to 60, but some programs actually read the CONFIG.SYS file and check for the existence of a FILES command. If you had a program like this, you could add the line


to CONFIG.SYS to make your program run correctly.

If you decide to delete your CONFIG.SYS and AUTOEXEC.BAT files, remember that Windows 95's protected-mode drivers are available to all Windows and DOS-based programs. However, if you select the Restart the computer in MS-DOS mode option in the Shut Down Windows dialog box, none of the drivers will be available to you unless you've loaded them in CONFIG.SYS or AUTOEXEC.BAT.

If you have a specific need that requires you to use the Restart the computer in MS-DOS mode option but you still don't want to limit yourself by using a CONFIG.SYS or an AUTOEXEC.BAT file, remember that this option automatically executes the DOSSTART.BAT file (we'll discuss this file more in a future issue). You won't be able to execute CONFIG.SYS-type commands in DOSSTART.BAT, but you can include anything else you'd normally put in an AUTOEXEC.BAT file, such as a path, a prompt, and calls to other programs.

Graphical User Interface

After Windows 95 executes AUTOEXEC.BAT, it automatically loads WIN.COM. Then, WIN.COM loads the GUI.


Although Windows 95 may appear to boot in the same way as DOS, the two processes are actually quite different. In this article, we've described the Windows 95 boot sequence in detail and we've explained how to reconfigure various aspects of it.

Windows 95 Root Directory Files

Table A: Root Directory Files




The Windows 95 equivalent of the DOS AUTOEXEC.BAT file. You should use AUTOEXEC.BAT to load only real-mode drivers, and only if a protected-mode driver isn't available. In most cases, your AUTOEXEC.BAT file should be empty. For example, on a DOS-based system with a CD-ROM drive, you'd have to load MSCDEX from AUTOEXEC.BAT. In Windows 95, you don't need to do this unless you have an incompatible CD-ROM drive. That's because Windows 95 will automatically load a protected-mode driver. Windows 95 loads the drivers listed in AUTOEXEC.BAT before it starts the 32-bit portion of the operating system.


A mirror of the original AUTOEXEC.BAT file from your previous operating system. Windows 95 uses this file when you boot to your previous version of MS-DOS.


A copy of BOOTLOG.TXT from the previous boot. When you boot Windows 95, it copies BOOTLOG.TXT to BOOTLOG.PRV before creating a new BOOTLOG.TXT file.


A log of the Windows 95 boot sequence. Windows 95 creates this file when you request a logged boot or when it determines that your attempt to boot to the previous version of DOS was unsuccessful.


The Windows 95 command-line processor.


The COMMAND.COM file from your previous operating system. Windows 95 uses this file when you boot to your previous version of DOS.


A copy of the CONFIG.SYS file from your previous operating system. Windows 95 uses this file when you boot to your previous version of DOS.


A companion to AUTOEXEC.BAT that loads real-mode drivers. This file isn't necessary unless you have special hardware for which Windows 95 doesn't have protected-mode drivers.


A record of the previous hardware-detection process. When you tell Windows 95 to detect new hardware, it first changes the filename DETLOG.TXT to DETLOG.OLD. By having a record of an effective hardware configuration, Windows 95 is able to recover if something goes wrong during the detection phase.


A log file of the Windows 95 automatic hardware-detection procedure. Windows 95 adds to the file each time the operating system detects a new piece of hardware. If Windows 95 crashes during the hardware-detection process, it accesses this file to determine the cause of the problem.


The renamed IO.SYS file from your previous version of DOS. Windows 95 uses this file when you boot to your previous copy of DOS.


A combination of several files. IO.SYS is the Windows 95 equivalent of DOS's IO.SYS, MSDOS.SYS, CONFIG.SYS, and AUTOEXEC.BAT files. We've provided a chart that breaks down the CONFIG.SYS commands loaded by IO.SYS in the sidebar "Commands Included in IO.SYS" on page 5.


A 320-by-400, eight-bit wallpaper file of the Windows 95 logo you see during the boot sequence. You can actually create a 320-by-200, eight-bit file in Paint, name it LOGO.SYS, copy it to your root directory, and display it during the boot sequence instead. Just be sure to back up the original LOGO.SYS, since using your own bitmap can occasionally cause palette problems.


The renamed MSDOS.SYS file from your previous version of DOS. Windows 95 uses this file when you boot to your previous operating system.


A file that controls some boot options in Windows 95, unlike its DOS counterpart. We've included a chart that explains how to edit MSDOS.SYS in the sidebar, "Editing MSDOS.SYS," on page 8.


A log file of the OEM (Original Equipment Manufacturer) pre- installation. It's not necessary for operation, and you can safely delete it.


A log file that records the results of the most recent ScanDisk operation. ScanDisk overwrites this file each time you run it.


A record created during Windows 95 setup that stores each phase of the process. If Setup crashes, Windows 95 refers to this file to help determine the cause of the crash.


A copy of all master boot records and partition boot records from both before and after Windows 95 was installed. This file is used by the Windows 95 Uninstall program.


A backup copy of the Registry from the first time Windows 95 was installed. If your Registry ever becomes corrupted, this file can be used to return the computer to an operational state.


A compressed backup of the Windows 3.x files replaced by Windows 95. This file is decompressed when you run Windows 95's UNINSTALL program. Although the file isn't necessary for Windows 95 to function correctly, we recommend keeping it in case you ever need to restore Windows 3.x.


A companion to W95UNDO.DAT that lists the files stored in WIN95UNDO.DAT and tells Windows 95 how to restore them. You can't restore the files in WIN95UNDO.DAT without this file.

Commands Included in IO.SYS

Table A: IO.SYS commands and functions

CONFIG.SYS setting



Specifies that DOS should load in the high memory area. The UMB parameter isn't included unless you run EMM386.EXE from CONFIG.SYS, since IO.SYS won't execute EMM386.EXE.


Allows access to the high memory area and enables you to run a real-mode memory manager such as EMM386.EXE.


Enables file and print sharing and facilitates 32-bit disk access.


Helps with backward compatibility. Some legacy applications require a specific version of DOS. SETVER.EXE "tricks" such applications into thinking they're running under the desired version of DOS.

FILES=60 *

Sets the number of DOS file handles.


Specifies the highest letter you can assign to a network drive or other device.


Sets the number of file buffers to create.

STACKS=9,256 *

Specifies the number and size of stack frames.


Tells Windows 95 what command interpreter to use. The /P switch indicates that this is a permanent setting and that programs shouldn't unload the command interpreter.

FCBS=4 *

Specifies the number of file control blocks that Windows 95 can have open simultaneously.

* This command isn't required by Windows 95, but Microsoft included it for compatibility reasons.




Sets the location for temporary files.


Specifies the location for temporary files.


Sets the DOS prompt to C:\> format.




DOS search path.


Tells Windows 95 the location of the COMMAND.COM file.



The article entitled "Understanding the Windows 95 boot Sequence" was originally published in Windows 95 Professional, April 1997. Copyright © 1997, The Cobb Group, 9420 Bunson Parkway, Louisville, KY 40220. All rights reserved. For subscription information, call the Cobb Group at 1-800-223-8720.

We at Microsoft Corporation hope that the information in this work is valuable to you. Your use of the information contained in this work, however, is at your sole risk. All information in this work is provided "as is," without any warranty, whether express or implied, of its accuracy, completeness, fitness for a particular purpose, title or non-infringement , and none of the third-party products or information mentioned in the work are authored, recommended, supported or guaranteed by Microsoft Corporation. Microsoft Corporation shall not be liable for any damages you may sustain by using this information, whether direct, indirect, special, incidental or consequential, even if it has been advised of the possibility of such damages.