is the primary configuration file
for the DOS
and OS/2 operating systems
. It is a special file that contains setup or configuration instructions for the computer system.
The commands in this file configure DOS for use with devices and applications in the system. The commands also set up the memory managers in the system. After processing the CONFIG.SYS file, DOS proceeds to load and execute the command shell
specified in the shell=
line of CONFIG.SYS, or COMMAND.COM
if there is no such line. The command shell in turn is responsible for processing the AUTOEXEC.BAT
CONFIG.SYS is composed mostly of name=value statements which look like variable assignments. In fact these will either define some tunable parameters often resulting in reservation of memory, or load files, mostly TSRs and device drivers, into memory.
In DOS, CONFIG.SYS is located in the root directory of the drive from which DOS was booted. In some versions of DOS it may have an alternate filename, e.g. FDCONFIG.SYS in FreeDOS, or DCONFIG.SYS in some versions of DR-DOS.
Both CONFIG.SYS and AUTOEXEC.BAT can be found included in the root folder of Windows 95, and Windows 98 boot drives, as they are based on DOS. Typically these files are left empty, with no content, as they are not strictly required to run Windows programs from these versions. Windows Me does not parse the CONFIG.SYS file during the Windows boot process, instead applying default settings through the registry.
Example CONFIG.SYS for MS-DOS with Windows 3.xx:
shell=c:doscommand.com c:dos /e:512 /p
- The first line loads the himem.sys driver that enables DOS to use the high memory area.
- The second line loads the EMM386 memory manager, which emulates expanded memory. The command line argument ram allows the use of the upper memory area. Another argument that can be given to emm386.exe is noems, which allows use of the upper memory area without emulating expanded memory. The noems switch also frees up more umb blocks.
- The third line causes DOS to use high memory and upper memory when possible, freeing up more conventional memory for applications to use.
- Lines four to five load device drivers into the upper memory area: the first is a mouse driver from Microsoft; the second is a compatibility program.
- Line six sets localisation settings such as setting the country to the UK (code 044) and setting code page 437.
- The final line sets the shell to the default shell, command.com, and starts it with c:dos as the working directory, with an environment size of 512 bytes, and the /p indicates that it is the parent process and therefore cannot be shut down by using the exit command.
As of MS-DOS version 6, an optional DOS boot menu was configurable. With this, the user could configure any number of boot configurations and choose one on start-up. This was of great use because various DOS applications preferred different settings for optimal functionality. In particular, with Windows 9x, it was best to load as few 16-bit DOS drivers and utilities as possible.
Example CONFIG.SYS with MS-DOS 6+ boot menu:
menuitem=XMS, DOS with only Extended Memory
shell=c:doscommand.com c:dos /e:512 /p
The layout of the DOS boot menu is fairly self-explanatory. The "[menu]" section defines menu entries. The option, "menudefault", allows a default choice with a countdown timer before it starts up (10 seconds here). The "[common]" area holds lines that will start for every menu choice, while the later "[WIN]" and "[XMS]" areas are specific to each configuration.
The later boot file, autoexec.bat, would receive the profile names and they could be separately configured there as well.
Recent FDCONFIG.SYS or CONFIG.SYS of FreeDOS:
shell=c:dosfreecom.com c:dos /e:512 /p
In general .sys files are called in config.sys, as above, and .exe programs such as the version of the caching software SMARTDRIVE provided by Microsoft with MS-DOS 6.x, or LBACACHE of FreeDOS, are loaded in the autoexec.bat file. However, there are ways to load .SYS like files later from commandline as well as .EXE files from config file.
The system can still boot if these files are missing or corrupted. However, these two files are essential for the complete bootup process to occur with the DOS operating system. They contain information that is used to change the operating system for personal use. They also contain the requirements of different software application packages. A DOS system would require troubleshooting if either of these files became damaged or corrupted.
If config.sys does not contain a "shell" statement (or the file is corrupt or missing), DOS typically searches for COMMAND.COM in the root directory. If this is not found, the system will not start up.
Dual Booting DOS and Win 9X
When installing Windows 95
over a preexisting DOS/WINDOWS install, CONFIG.SYS and AUTOEXEC.BAT are renamed to CONFIG.DOS and AUTOEXEC.DOS. This is intended to ease dual booting between Windows 9X and DOS. When booting into DOS, they are temporarily renamed CONFIG.SYS and AUTOEXEC.BAT. Backups of the Win95 versions are made as .W40 files.
When Caldera DR DOS 7 is installed on a system already containing Windows 95, Windows' CONFIG.SYS and AUTOEXEC.BAT retain those names. DR DOS' startup files are installed as DCONFIG.SYS (a name already used in earlier versions of DR DOS) and AUTODOS7.BAT.
OS/2 / NT
uses the CONFIG.SYS file extensively for setting up its configuration, drivers and environment before the graphical part of the system loads.
In the OS/2 subsystem of Windows NT, what appeared as CONFIG.SYS to OS/2 programs was actually stored in the registry.