Examining Other Boot Process Files
This section will take at a look at some additional files that are related to the boot process. These will include smartdrv.exe, the MS-DOS disk caching utility which improves disk access times; win.ini and system.ini which store configuration information for Windows, primarily Windows 9x, but they are also used by Windows 2000 and Windows XP; finally you will see the sysedit.exe utility.
smartdrv.exe
Caching within computers has been implemented at different levels. Smart drive (smartdrv.exe) represents one of those levels. smartdrv.exe is a disk-caching program, which means that it reads additional data from the drive in anticipation of your program's request. Anticipating reads is the read caching feature of smartdrv.exe. smartdrv.exe also performs write caching, which is when it collects the write requests from several seconds and then commits all of the data to the disk at once. Disk caching improves drive I/O performance by reading and writing to the drive in larger units, which requires less drive head movement than performing reads and writes in smaller units.
smartdrv.exe is usually loaded only when creating a boot disk or installing Windows 9x. Windows 9x has its own built-in disk caching software. If you have some older applications that won't work with Windows 9x's disk caching, you can disable it and load smartdrv.exe. To disable the Windows 9x disk caching, right-click My Computer → Performance → File System → Troubleshooting → Disable write-behind caching for all drives → OK → OK.
smartdrv.exe can be loaded through either config.sys or autoexec.bat. If you have an old disk controller that will not work with memory that is provided by emm386.exe, then you will have to load smartdrv.exe through config.sys with the double_buffer option. Double buffering will only be required on a few very old SCSI hard drives, so you should not expect to encounter a time when you will need this option. To load smartdrv.exe with this option, add the following line to your config.sys, by editing the file with a text editor:
device=c:\dos\smartdrv.exe /double_buffer
The smartdrv.exe line must appear before the line that loads emm386.exe if you are using the double_buffer option.
Most of the time, you will load smartdrv.exe from the command prompt or through autoexec.bat. Table below contains the main options that you will use with smartdrv.exe.
smartdrv.exe SwitchesOption | Description |
---|---|
drive_lette + or - | Lets you enable or disable caching on specific drives by using this command:smartdrv.exe a- c+ d- When you load smartdrv.exe, it automatically enables read and write caching on all hard drives, read caching on floppy drives and CD-ROM drives, and it ignores network drives and flash memory-card drives. |
Initial Cache Size | If you specify a size in kilobytes after the smartdrv.exe command, then it will be treated as the initial cache size. This tells smartdrv.exe how big to make the cache. (Table 6-9 describes how the default cache sizes are set.) This value can be set as high as 16,383K. In general, the larger the cache, the less often you will have to read from the drive. To set the cache size to 2MB, you would use the command smartdrv.exe 2048. |
Windows Cache Size | Specifying only one size in kilobytes after the smartdrv.exe command sets the initial cache size, and the Windows cache size is still based on the values in Table 6-9. If you want to control the Windows cache size as well as the initial cache size, you provide two values after the smartdrv.exe command. To set the initial and Windows caches to 4MB, you would use this command: smartdrv.exe 4096 4096. The initial cache is always the first number and it has to be as large or larger than the Windows cache. If you set the Windows cache to a value that is higher than the initial cache, smartdrv.exe uses the Windows cache size for the initial cache size. |
/X | Disables write caching on all drives. It takes several seconds after your application tells smartdrv.exe to write to the drive before the information is actually written to the drive. If the power is interrupted during this time, the data will be lost. If you are concerned about the loss of data, then you will want to disable write caching. |
/C | This switch is used from the command prompt to instruct smartdrv.exe to write all outstanding information to the drive. |
/V | Verbose mode makes smartdrv.exe display status and error messages when it loads. |
/Q | Quiet mode makes smartdrv.exe hide status messages when it loads. It still displays error messages. |
/S | This switch is used from the command prompt to display the status of smartdrv.exe. |
Warning When using MS-DOS, you should make sure that your computer has finished writing information to the drive, prior to turning off your computer; you can ensure that smartdrv.exe has committed all data to the drive by typing smartdrv.exe /c at the command prompt. smartdrv.exe will automatically commit data to your drive if you reboot by pressing Ctrl+Alt+Delete.
The initial cache size and Windows cache sizes can be set when loading smartdrv.exe but will default to the values listed in Table below. The default values are based on the amount of extended memory on the computer.
smartdrv.exe Default Cache SizesAmount of Extended Memory | Initial Cache Size | Windows Cache Size |
---|---|---|
0-1MB | All extended memory | 0 |
1-2MB | 1MB | 256K |
2-4MB | 1MB | 512K |
4-6MB | 2MB | 1MB |
6MB and up | 2MB | 2MB |
In this tutorial:
- System Files and the Boot Process
- Power-On Self-Test (POST) Process
- Standard Boot Process for Windows XP
- ntbootdd.sys
- ARC pathnames
- ntdetect.com
- The device load process
- Loading the shell
- Understanding the Boot Process for MS-DOS and Windows 9x
- msdos.sys
- config.sys
- command.com
- autoexec.bat
- win.com and vmm32
- Managing Memory
- Expanded memory
- Upper memory
- himem.sys
- Examining Other Boot Process Files
- system.ini
- win.ini