Config.sys

CONFIG.SYS is the primary configuration file for the DOS, OS/2 as well as similar operating systems. It is a special file that contains setup or configuration instructions for the computer system. CONFIG.SYS was first used in DOS 2.0.

Usage
The directives in this file configure DOS for use with devices and applications in the system. The CONFIG.SYS directives 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 file.

CONFIG.SYS is composed mostly of name=value directives which look like variable assignments. In fact, these will either define some tunable parameters often resulting in reservation of memory, or load files, mostly device drivers and TSRs, into memory.

In DOS, CONFIG.SYS is located in the root directory of the drive from which the system was booted.

Some versions of DOS will probe for alternative filenames taking precedence over the default CONFIG.SYS filename if they exist:

While older versions of Concurrent DOS 3.2 to 4.1 did not support CONFIG.SYS files at all, later versions of Concurrent DOS 386 and Concurrent DOS XM, as well as Multiuser DOS, System Manager and REAL/32 will probe for CCONFIG.SYS (with "C" derived from "Concurrent") instead of CONFIG.SYS. Some versions of Multiuser DOS seem to use a filename of CCONFIG.INI instead, whereas REAL/32 is known to look for MCONFIG.SYS. These operating systems support many additional and different configuration directives not known under MS-DOS/PC DOS.

Under DR DOS 3.31, PalmDOS 1.0, Novell DOS 7, OpenDOS 7.01, and DR-DOS 7.02 and higher, a file named DCONFIG.SYS, if present, will take precedence over CONFIG.SYS. This was used in conjunction with disk compression software since DR DOS 6.0, where the original boot drive C: would become drive D: (hence the name) after loading the compression driver, but it is since commonly used to help maintain multiple configuration files in multi-boot scenarios. In addition to this, OpenDOS 7.01 and DR-OpenDOS 7.02 will look for a file named ODCONFIG.SYS, whereas some issues of DR-DOS 7.02 and higher will instead also look for DRCONFIG.SYS. Further, under DR DOS 6.0 and higher, the  command can be used to change the default file extensions. For example, with  the written Volume Boot Record would look for a renamed and modified IBMBIO.703 system file (instead of the default IBMBIO.COM) and the IBMBIO.703 would look for IBMDOS.703 and [D]CONFIG.703 (instead of IBMDOS.COM and [D]CONFIG.SYS), so that multiple parallel sets of files can coexist in the same root directory and be selected via a boot-loader like LOADER, supplied with Multiuser DOS and DR-DOS 7.02/7.03. The SHELL directive is enhanced to provide means to specify alternative AUTOEXEC.BAT files via /P[:filename.ext] and in this specific scenario, COMMAND.COM will accept file extensions other than " " as well (both features are also supported by 4DOS). Under DR DOS 6.0 and higher, the CONFIG.SYS directive CHAIN=filespec can be used to continue processing in the named file, which does not necessarily need to reside in the root directory of the boot drive. DR-DOS 7.02 and higher optionally support an additional parameter as in CHAIN=filespec,label to jump to a specific :label in the given file. DR-DOS 7.03 and higher support a new  parameter in order to copy the corresponding CONFIG.SYS and AUTOEXEC.BAT files alongside with the system files.

FreeDOS implements a similar feature with its FDCONFIG.SYS configuration file.

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 even parse the CONFIG.SYS file during the Windows boot process, loading those settings from the Windows Registry instead:
 * HKLM\System\CurrentControlSet\Control\SessionManager\Environment
 * HKLM\System\CurrentControlSet\Control\SessionManager\Environment

Under FlexOS, CONFIG.SYS is a binary file defining the resource managers and device drivers loaded.

CONFIG.SYS directives

 * : (DR DOS 5.0 and higher only) : Defines labels in CONFIG.SYS as jump targets for CHAIN, DRSWITCH</tt>, GOTO</tt>, GOSUB</tt> and SWITCH</tt> directives.
 * ; (DOS 6.0 and DR DOS 6.0 and higher) : Similar to REM</tt>, but can be used also for in-line comments (following other CONFIG.SYS directives). See COMMENT</tt>. (Under MS-DOS/PC DOS the inline-comment is not ignored if put in double-quotes.)
 * ? (DR DOS 3.41 and higher and FreeDOS only) : Displays a Yes/No query and (since DR DOS 5.0) optional message to ask the user for confirmation to execute the following CONFIG.SYS directives. (FreeDOS does not support optional messages, but optional conditions in conjunction with boot menus defined with MENU</tt> and MENUDEFAULT</tt>.) (DOS 6.0 and higher supports a similar feature by adding a ?</tt> after the corresponding CONFIG.SYS directive, f.e. DEVICE?</tt> or DEVICE?=</tt> instead of ?DEVICE</tt>. This variant is also supported by DR DOS.)
 * ! (FreeDOS only) : Unconditionally execute the following CONFIG.SYS directive.
 * ACCDATE (MS-DOS 7.0 and higher only, ignored under DR-DOS 7.02 and higher) : Configures which drives should store file access date stamps in FAT file systems or not.
 * AUX (DR-DOS 7.02 and higher only) : Changes internal default serial device driver (COM1:</tt> to COM4:</tt>) for AUX:</tt> device.
 * AVAILDEV (DOS 2.0-2.1 and DR-DOS 7.02 and higher only) : Disables the availability of character devices outside of phantom \DEV directory.
 * BEEP (DR-DOS 7.02 and higher only) : Emits a short beep, even if audible notifications are disabled via SWITCHES=/Q</tt>.
 * BREAK (DOS 2.0 and DR DOS 3.31 and higher) : Sets or clears extended checking.
 * BUFFERS (DOS 2.0 and DR DOS 3.31 and higher) : Specifies the number of disk buffers to allocate.
 * BUFFERSHIGH (MS-DOS 7.0 and DR-DOS 7.02 and higher and FreeDOS only) : Same as <tt>BUFFERS</tt>, but explicitly loads buffers into HMA or UMB (like <tt>HIBUFFERS</tt> under DR DOS 6.0 and higher).
 * CAPSLOCK (DR-DOS 7.02 and higher only) : Specifies whether the keyboard status is turned on or off.
 * CHAIN (DR DOS 5.0 and higher only) : Continues CONFIG.SYS processing in new file and (since DR-DOS 7.02) at optional label.
 * CLS (DR DOS 6.0 and higher only) : Clears screen.
 * COM1 (DR-DOS 7.02 and higher only): Defines count and logical order and configures I/O address and timeout for COM1: device.
 * COM2 (DR-DOS 7.02 and higher only) : Defines count and logical order and configures I/O address and timeout for COM2: device.
 * COM3 (DR-DOS 7.02 and higher only) : Defines count and logical order and configures I/O address and timeout for COM3: device.
 * COM4 (DR-DOS 7.02 and higher only) : Defines count and logical order and configures I/O address and timeout for COM4: device.
 * COMMENT (DOS 4.0 and higher and RxDOS, ignored under DR-DOS 7.02 and higher) : Redefines the lead-in character(s) for CONFIG.SYS inline-comments, or causes the following line to be ignored.
 * COUNTRY (DOS 3.0 and DOS Plus 2.1 with FIDDLOAD and DR DOS 3.31 and higher) : Enables and configures international support.
 * CPOS (DR DOS 6.0 and higher only) : Sets display cursor to specified position for configuation menus.
 * CPSW (MS-DOS 4.00-4.01 only, ignored under DR-DOS 7.02 and higher) : For codepage switching support.
 * CPU386 (DR-DOS 7.02 and higher and PTS-DOS only): Conditional execution on 386 and higher CPUs only, f.e. <tt>CPU386 DEVICE=C:\DOS\EMM386.EXE</tt> or <tt>CPU386 GOTO label386</tt>
 * DEBLOCK (DR DOS 6.0 (1993 update) and higher only) : Specifies the memory segment address up to which multi-sector disk data deblocking is allowed.
 * DEBUG (DR DOS 3.31 - 6.0 and 7.02 and higher only) : Enables internal debugger support.
 * DEVICE (DOS 2.0 and DOS Plus 2.1 with FIDDLOAD and DR DOS 3.31 and higher) : Loads a device driver into memory.
 * DEVICEHIGH (DOS 5.0 and DR DOS 6.0 and higher) : Loads a device driver into upper memory. (Same as <tt>HIDEVICE</tt> in DR DOS 5.0.)
 * DISKCACHE (OS/2 only, ignored under DR-DOS 7.02 and higher) : Internal use.
 * DOS (DOS 5.0 and DR DOS 6.0 and higher) : Specifies whether to load DOS into the high memory area and/or use upper memory. (Similar to <tt>HIDOS=ON</tt> under DR DOS 5.0.)
 * DOSDATA (PC DOS 7.0 and higher and FreeDOS only) : Specifies whether to load DOS tables (<tt>BUFFERS</tt>, <tt>FCBS</tt>, <tt>FILES</tt>, <tt>LASTDRIVE</tt>, <tt>STACKS</tt>) into upper memory.
 * DRIVPARM (DOS 3.2 and higher) : Define parameters for unrecognized drives.
 * DRSWITCH (DR DOS 7.02 and higher only) : See <tt>SWITCH</tt>.
 * ECHO (DR DOS 5.0 and higher and FreeDOS only) : Displays a message on screen.
 * EECHO (FreeDOS only) : Displays a message including ANSI Escape sequences.
 * ERROR (DR DOS 6.0 and higher only) : Specifies an error / return code to be assumed in the following.
 * EXIT (DR DOS 6.0 and higher only) : Finishes CONFIG.SYS processing before the end of the file has been reached (except for <tt>SWITCHES</tt> and <tt>SHELL</tt> directive processing under some conditions).
 * FASTOPEN (DR DOS 3.31 and higher only): Specified the size of the hash table for fast file open operations. Works considerably different than the external MS-DOS/PC DOS FASTOPEN driver.
 * FCBS (DOS 3.0 and DR DOS 3.31 and higher) : Specifies the number of cached FCBs that can be opened at once. (Under DR-DOS, <tt>FCBS</tt> and <tt>FILES</tt> dynamically share the same internal buffer.)
 * FCBSHIGH (MS-DOS 7.0 and DR-DOS 7.02 and higher only) : Same as <tt>FCBS</tt>, but explicitly loads FCBs into upper memory.
 * FILES (DOS 2.0 and DR DOS 3.31 and higher) : Specifies the number of files that can be opened at once.
 * FILESHIGH (MS-DOS 7.0 and DR-DOS 7.02 and higher and FreeDOS only) : Same as <tt>FILES</tt>, but explicitly loads file handles into upper memory.
 * GETKEY (DR DOS 6.0 and higher only) : Waits for key (or timeout) and sets error level to its ASCII code (or 1024 on timeout).
 * GOTO (DR DOS 5.0 and higher only) : Continues CONFIG.SYS processing at specified label.
 * GOSUB (DR DOS 6.0 and higher only) : Continues nested CONFIG.SYS processing at specified label, with <tt>RETURN</tt> returning to old location.
 * HIBUFFERS (DR DOS 6.0 and higher only) : See <tt>BUFFERSHIGH</tt> or <tt>DOS=HIGH,UMB</tt> or <tt>DOSDATA</tt>.
 * HIDEVICE (DR DOS 5.0 and higher only) : See <tt>DEVICEHIGH</tt>.
 * HIDOS (DR DOS 5.0 and higher only) : See <tt>DOS=HIGH,UMB</tt>.
 * HIFCBS (DR DOS 7.02 and higher only) : See <tt>FCBSHIGH</tt> or <tt>DOSDATA</tt>.
 * HIFILES (DR DOS 7.02 and higher only) : See <tt>FILESHIGH</tt> or <tt>DOSDATA</tt>.
 * HIINSTALL (DR DOS 5.0 and higher only) : See <tt>INSTALLHIGH</tt>.
 * HILASTDRIVE (DR-DOS 7.02 and higher only) : See <tt>LASTDRIVEHIGH</tt> or <tt>DOS=UMB</tt> or <tt>DOSDATA</tt>.
 * HISHELL (DR-DOS 7.02 and higher only) : See <tt>SHELLHIGH</tt>.
 * HISTACKS (DR-DOS 7.02 and higher only) : See <tt>STACKSHIGH</tt> or <tt>DOSDATA</tt>.
 * HISTORY (DR DOS 3.41 and higher only) : Enables and configures console and command line history buffer and extended pattern search functionality.
 * IFS (MS-DOS 4.00-4.01 only, ignored under DR-DOS 7.02 and higher) : For installable file system support.
 * INCLUDE (DOS 6.0 and higher, not DR-DOS, not FreeDOS) : Include directives from another menu block. (Can be emulated using <tt>GOSUB</tt> and <tt>RETURN</tt> under DR-DOS.)
 * INSERT (DR-DOS 7.02 and higher only) : Specifies whether the keyboard mode status is turned on or off.
 * INSTALL (DOS 4.0 and DR DOS 3.41 and higher) : Installs a TSR program into memory.
 * INSTALLHIGH (DOS 6.0 and DR DOS 6.0 and higher) : Installs a TSR program into upper memory. (Same as <tt>HIINSTALL</tt> in DR DOS 5.0.)
 * LASTDRIVE (DOS 3.0 and DOS Plus 2.1 with FIDDLOAD and DR DOS 3.31 and higher) : Specifies the maximum of drives that can be accessed.
 * LASTDRIVEHIGH (MS-DOS 7.0 and DR-DOS 7.02 and higher and FreeDOS only) : Same as LASTDRIVE, but explicitly loads the Current Directory Structure (CDS) into upper memory.
 * LOGO (MS-DOS 7.0 and higher only, ignored under DR-DOS 7.02 and higher) : Configures boot logo support.
 * LPT1 (DR-DOS 7.02 and higher only) : Defines count and logical order and configures I/O address and timeout for LPT1: device.
 * LPT2 (DR-DOS 7.02 and higher only) : Defines count and logical order and configures I/O address and timeout for LPT2: device.
 * LPT3 (DR-DOS 7.02 and higher only) : Defines count and logical order and configures I/O address and timeout for LPT3: device.
 * LPT4 (some versions of DR-DOS 7.02 and higher only) : Enables, defines count and logical order and configures I/O address and timeout for LPT4: device.
 * MENU (FreeDOS only) : Defines menu options.
 * MENUCOLOR (DOS 6.0 and higher, not DR DOS, not FreeDOS) : Specifies menu colors. (Can be emulated using <tt>ECHO</tt> under DR-DOS.)
 * MENUDEFAULT (DOS 6.0 and higher and FreeDOS, not DR DOS) : Specifies the default menu block. (Can be emulated using <tt>TIMEOUT</tt> and <tt>SWITCH</tt> under DR-DOS.)
 * MENUITEM (DOS 6.0 and higher, not DR DOS, not FreeDOS) : Specifies a menu block. (Can be emulated using <tt>ECHO</tt> and <tt>SWITCH</tt> under DR-DOS.)
 * MULTITRACK (DOS 4.0 and DR-DOS 7.02 and higher) : Specifies whether multitrack disk operations are used or not.
 * NOCHAR (DR-DOS 7.02 and higher only) : Specifies the default No character in Yes/No/Resume questions.
 * NUMLOCK (DOS 6.0 and Novell DOS 7 and higher) : Specifies whether the keyboard status is turned on or off.
 * ONERROR (DR DOS 6.0 and higher only) : Conditional execution depending on last return code/error status only, f.e. <tt>ONERROR > 0 GOTO failload</tt> or <tt>ONERROR > 10 ONERROR <> 17 ONERROR <= 30 ECHO Error 11-16 or 18-30 occured</tt>.
 * PRN (DR-DOS 7.02 and higher only): Changes internal default printer device driver (<tt>LPT1</tt> to <tt>LPT3</tt>, or even <tt>LPT4</tt>) for PRN device.
 * REM (DOS 4.0 and DR DOS 3.31 and higher) : Allows comments in CONFIG.SYS.
 * RESUMECHAR (DR-DOS 7.02 and higher only): Specifies the default Resume character in Yes/No/Resume queries.
 * RETURN (DR DOS 6.0 and higher only) : Returns nested CONFIG.SYS processing at previous location of <tt>GOSUB</tt> or <tt>SWITCH</tt> directive. An optional return code can be given, otherwise 0 is assumed.
 * RMSIZE (OS/2 only, ignored under DR-DOS 7.02 and higher) : Defines the real mode memory size.
 * SCREEN (FreeDOS only) : Specifies the video mode to be used.
 * SCROLLOCK (DR-DOS 7.02 and higher only) : Specifies whether the keyboard status is turned on or off.
 * SET (DOS 6.0 and DR DOS 6.0 and higher) : Sets environment variables.
 * SHELL (DOS 2.0 and DR DOS 3.31 and higher) : Loads the command interpreter shell.
 * SHELLHIGH (DR-DOS 7.02 and higher and FreeDOS only) : Same as <tt>SHELL</tt>, but supports an additional <tt>SIZE</tt> parameter to define the size of the pre-allocation for COMMAND.COM to relocate its resident portion into the HMA (with ). Can be useful to avoid HMA fragmentation in conjunction with third-party shells which cannot load into the HMA.
 * STACK (ignored under DR DOS 3.31-5.0 and 7.02 and higher only) : Compatibility dummy - DR DOS 3.31 - 6.0 were mostly reentrant and had a different stacks layout.
 * STACKS (DOS 3.2 and Novell DOS 7 and higher, ignored under DR DOS 6.0) : Specifies the number of stacks for hardware interrupts.
 * STACKSHIGH (MS-DOS 7.0 and DR-DOS 7.02 and higher and FreeDOS only) : Same as <tt>STACKS</tt>, but explicitly loads buffers into upper memory.
 * STRING (MS-DOS 3.0 only, ignored under DR-DOS 7.02 and higher) : Internal use.
 * SUBMENU (DOS 6.0 and higher, not DR DOS, not FreeDOS) : Specifies a submenu block. (Can be emulated using <tt>CLS</tt>, <tt>ECHO</tt> and <tt>SWITCH</tt> under DR-DOS.)
 * SWITCH (DR DOS 6.0 and higher only) : Conditionally continues nested CONFIG.SYS processing at one of the specified labels depending on keys pressed, with <tt>RETURN</tt> returning to old location.
 * SWITCHAR (DOS 2.0-2.1, DOS Plus 2.1 with FIDDLOAD, DR-DOS 7.02 and higher, FreeDOS and RxDOS only): Defines the default SwitChar used by the system (either '/' or '-').
 * SWITCHES (DOS 4.0 and Novell DOS 7 and higher) : Specifies special options.
 * TIMEOUT (DR DOS 6.0 and higher only) : Specifies the timeouts in CONFIG.SYS single-stepping and with <tt>SWITCH</tt>, <tt>GETKEY</tt> and <tt>?</tt>, and the default answers for Yes/No queries and <tt>SWITCH</tt> selections.
 * TRACE (DR-DOS 7.02 and higher and PTS-DOS only) : Globally or locally enables or disables CONFIG.SYS (and AUTOEXEC.BAT) single-stepping execution.
 * VERIFY (DR-DOS 7.02 and higher only) : Enables or disables disk write verification.
 * VERSION (FreeDOS only) : Specifies the DOS version to be reported to programs.
 * YEAR2000 (DR-DOS 7.02 and higher only) : Configures the built-in Year 2000 support.
 * YESCHAR (PalmDOS 1.0, DR DOS 6.0 updates and Novell DOS 7 and higher only) : Specifies the default Yes character in Yes/No/Resume queries.

Examples
Example CONFIG.SYS for MS-DOS 5 or higher: DOS=HIGH,UMB DEVICE=C:\DOS\HIMEM.SYS DEVICE=C:\DOS\EMM386.EXE RAM DEVICEHIGH=C:\DOS\ANSI.SYS FILES=30 SHELL=C:\DOS\COMMAND.COM C:\DOS /E:512 /P
 * The first line causes DOS to use the high memory area and upper memory when possible, freeing up more conventional memory for applications to use.
 * The second line loads the HIMEM.SYS driver that enables DOS to use the high memory area.
 * The third line loads the EMM386 memory manager, which emulates expanded memory. The command line argument <tt>RAM</tt> allows the use of the upper memory area. Another argument that can be given to EMM386.EXE is <tt>NOEMS</tt>, which allows use of the upper memory area without emulating expanded memory. The <tt>NOEMS</tt> switch also frees up more upper memory blocks.
 * The fourth line loads the ANSI.SYS device driver into the upper memory area.
 * The fifth lines sets the maximum numbers of files that can be opened to 30.
 * The last 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 <tt>/P</tt> indicates that it is the primary process and therefore cannot be shut down by using the EXIT command.

As of MS-DOS version 6.0, 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.

Example CONFIG.SYS with MS-DOS 6.0 boot menu:

[MENU] MENUITEM=WIN, Windows MENUITEM=XMS, DOS with only Extended Memory MENUDEFAULT=WIN, 10 [COMMON] DOS=HIGH,UMB DEVICE=C:\DOS\HIMEM.SYS SHELL=C:\DOS\COMMAND.COM C:\DOS /E:512 /P [WIN] DEVICE=C:\DOS\EMM386.EXE RAM DEVICEHIGH=C:\DOS\ANSI.SYS [XMS] DEVICE=C:\DOS\EMM386.EXE NOEMS The layout of the DOS boot menu is fairly self-explanatory. The <tt>[MENU]</tt> section defines menu entries. The option, <tt>MENUDEFAULT</tt>, allows a default choice with a countdown timer before it starts up (10 seconds here). The <tt>[COMMON]</tt> 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 chosen selection through a special %CONFIG% environment variable and thereby could branch into separately configured areas within this batch file as well.

More features of CONFIG.SYS menu are described here:


 * http://dos.rsvs.net/DOSPAGE/CONFMENU.HTM

In general, .SYS-type files are loaded 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 device drivers dynamically from the command line (with DEVLOAD or DYNALOAD) as well as program files during CONFIG.SYS processing (with <tt>INSTALL</tt>, <tt>INSTALLHIGH</tt>, or <tt>HIINSTALL</tt> directives).

Issues
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 customize 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 <tt>SHELL</tt> directive (or the file is corrupt or missing), DOS typically searches for COMMAND.COM in the root directory of the boot drive. If this is not found, versions of DOS before 6.0 will not start up. MS-DOS 6.0/PC DOS 6.1 and Novell DOS 7 and higher will instead display a prompt to enter the path and filename of a command processor. This recovery prompt is also displayed when the primary command processor is aborted due to faults or if it is exited deliberately. (In the case of COMMAND.COM, the internal  command is disabled only when the shell was started with  .) This also provides limited means to replace the shell without having to reboot the system. Since the MS-DOS 7.0 and higher COMMAND.COM executable is incompatible with DR-DOS, but typically resides in the root of drive C: in dual-boot scenarios with DR-DOS, DR-DOS 7.02 and higher no longer allow to bypass <tt>SHELL</tt> directives in (+)// "skip"/"trace"/"step" modes. (Some later issues added (+) to reinvoke the former "skip" behaviour in order to allow recovery from problems with invalid <tt>SHELL</tt> arguments as well.) Also, if no <tt>SHELL</tt> directive could be found when skipping CONFIG.SYS processing via (+) (and also with (+)/, when the default file extension has been changed with  ), the user is prompted to enter a valid shell file name before trying to load COMMAND.COM from the root. Pressing without specifying a file will assume the former default.

Depending on the version, the size of the CONFIG.SYS file is limited to a few kilobytes under MS-DOS/PC DOS (up to 64 KB in most recent versions), whereas the file's size is unlimited under DR-DOS. This is because the former operating systems will compile the file into some tokenized in-memory representation before they sort and regroup the directives to be processed in a specific order (with device drivers always being loaded before TSRs), whereas DR-DOS interprets the file and executes most directives line-by-line, thereby giving full control over the load order of drivers and TSRs via <tt>DEVICE</tt> and <tt>INSTALL</tt> (for example to solve load order conflicts or to load a program debugger before a device driver to be debugged) and allowing to adapt the user interaction and change the flow through the file based on conditions like processor types installed, any type of keys pressed, load or input errors occuring, or return codes given by loaded software. This becomes particularly useful since <tt>INSTALL</tt> can also be used to run non-resident software under DR-DOS, so that temporary external programs can be integrated into the CONFIG.SYS control flow.

In MS-DOS/PC DOS 2.0 through 4.01 the length of the <tt>SHELL</tt> line was limited to 31 characters, whereas up to 128 characters are possible in later versions. DR-DOS even accepts up to 255 characters. CONFIG.SYS directives do not accept long file names.

Dual Booting DOS and Windows 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 Windows 95 versions are made as CONFIG.W40 and AUTOEXEC.W40 files.

When Caldera DR-DOS 7.02/7.03 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
OS/2 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.

There are many undocumented or poorly documented CONFIG.SYS directives used by OS/2.