CONFIG.SYS Sorting trick

I've discovered a little trick about OS/2 that improves boot up time. It's a matter of sorting your CONFIG.SYS into a form that more closely matches the way OS/2 loads various drivers on boot-up.

Applying this trick has shaved off almost a minute of boot-up time on many systems. Your results may vary.

This has only been tested on OS/2 2.1 GA, but I'd imagine it would work on OS/2 2.0 and below, without any trouble.

I've found this order to work the best:

IFS BASEDEV SET statements, sorted alphabetically, to "look nice" Any OS/2-specific commands [PROTECTONLY, DISKCACHE, IOPL, etc] OS/2 devices, sorted alphabetically, where applicable. DOS specific commands [DOS=HIGH,UMB, FCBS=16,8, etc] DOS devices, sorted alphabetically, where applicable. CALL/RUN commands

HPFS-formatted drives should experience less "disk-thrashing" than FAT-formatted drives, since HPFS stores filenames in alphabetical order.

Certain device drivers must be loaded before others, so keep this fact in mind when you are re-arranging your CONFIG.SYS. The loading order of MMPM/2 device drivers should NOT be messed with, but can be moved around in a "group" chunk. The DOS virtual driver, VENH.SYS, should not be sorted.

A user suggested using the shareware text editor, BOXER, and it's Sort function to sort CONFIG.SYS, then using a little cut and paste to move things into the right places. Another user also suggested writing an actual program to sort the CONFIG.SYS automatically, and correctly. I've been pondering on writing that myself, it might be as simple as a little REXX .CMD file!

Keep a boot-disk handy, just in case you foul up somewhere. I suggest using BOOT2X, from IBM EWS, for making a single boot-disk, based on your pre-existing configuration on your hard drive.

I've always kept my SET commands sorted alphabetically, just so they were a bit more organized, whether it improves boot-up time or not, I'm not sure. [I would doubt it would make much of a difference]

If you really want to be a speed demon, store all your BASEDEV's in your root directory, since that's where OS/2 looks first for BASEDEV's. But, since I like to keep my root directory 'tidy', I've chosen to store all mine in the C:\OS2 directory.

** WARNING ** Unsolicited ShareWare plug ** WARNING

IBM's MOUSE.SYS driver hasn't been known for it's speed. On my machine, I have an InPort mouse. MOUSE.SYS will still look at the COM ports for a mouse and thus waste a lot of time during boot-up. [Around 10-15 seconds in my case]

The 3rd party mouse driver, RODENT, uses less CPU time, allows you to use all 3 buttons of your mouse, and also "finds" your mouse MUCH faster than IBM's driver. It's nearly instantanious on most systems I've tried RODENT on. If you have a serial mouse, make sure to tell RODENT which COM port it is attached to, since RODENT will find your mouse just that much faster.

** WARNING ** Unsolicited ShareWare plug ** WARNING

I'd like to hear from others about their experiences using this trick. There may be better sorting configurations, and I'd like to hear about them. If you're ambitious, time the speed difference between your original and sorted CONFIG.SYS and send me the results, I'll include you in this document.

To aid in determining the factor(s) on whether or not certain systems will benefit from a sorted CONFIG.SYS, send me your results and system configuration.


 * CPU Type
 * OS/2 version [Service Pack, bug fixes applied, etc]
 * Amount of RAM
 * HD size and type [IDE, ESDI, RLL, MFM, SCSI, SCSI2, etc]
 * VLB/PCI/EISA/ISA/MCA type motherboard
 * Amount of cache memory on motherboard.
 * Chipset of motherboard [OPTI, ETEK, Austek, CHIPs, etc]
 * Special device drivers you are loading, that "sway" from the default.

Here is an example CONFIG.SYS, sorted:  IFS=C:\OS2\DRIVERS\IFS\HPFS.IFS /CACHE:2048 /CRECL:128 /AUTOCHECK:C IFS=C:\OS2\DRIVERS\IFS\CDFS.IFS /Q BASEDEV=OS2DASD.DMD /Q BASEDEV=PRINT01.SYS BASEDEV=IBM1FLPY.ADD BASEDEV=IBM1S506.ADD /A:0 /U:0 /SMS BASEDEV=SBCD2.ADD /P:220 BASEDEV=OS2CDROM.DMD /Q PROTSHELL=C:\OS2\PMSHELL.EXE SET AUTOSTART=PROGRAMS,TASKLIST,FOLDERS,CONNECTIONS SET BOOKSHELF=C:\OS2\BOOK; SET COMSPEC=C:\OS2\CMD.EXE SET DPATH=C:\OS2;C:\OS2\SYSTEM;C:\OS2\MDOS\WINOS2;C:\OS2\INSTALL;C:\;C:\OS2\BITMAP;C:\OS2\MDOS;C:\OS2\APPS; SET EPMPATH=C:\OS2\APPS; SET GLOSSARY=C:\OS2\HELP\GLOSS; SET HELP=C:\OS2\HELP;C:\OS2\HELP\TUTORIAL; SET IPF_KEYS=SBCS SET KEYS=ON SET OS2_SHELL=C:\OS2\CMD.EXE SET PATH=C:\OS2;C:\OS2\SYSTEM;C:\OS2\MDOS\WINOS2;C:\OS2\INSTALL;C:\;C:\OS2\MDOS;C:\OS2\APPS; SET PROMPT=$i[$p] SET RUNWORKPLACE=C:\OS2\PMSHELL.EXE SET SYSTEM_INI=C:\OS2\OS2SYS.INI SET USER_INI=C:\OS2\OS2.INI SET VIDEO_DEVICES=VIO_SVGA SET VIO_SVGA=DEVICE(BVHVGA,BVHSVGA) LIBPATH=.;C:\OS2\DLL;C:\OS2\MDOS;C:\;C:\OS2\APPS\DLL; PRIORITY_DISK_IO=NO THREADS=256 IOPL=YES MAXWAIT=15 MEMMAN=SWAP,PROTECT SWAPPATH=C:\OS2\SWAP 1024 1024 PRINTMONBUFSIZE=1,0,0 PROTECTONLY=NO RMSIZE=640 CODEPAGE=437,850 COUNTRY=001,C:\OS2\SYSTEM\COUNTRY.SYS DEVINFO=KBD,US,C:\OS2\KEYBOARD.DCP DEVINFO=SCR,VGA,C:\OS2\VIOTBL.DCP DEVICE=C:\OS2\TESTCFG.SYS DEVICE=C:\OS2\DOS.SYS DEVICE=C:\OS2\PMDD.SYS DEVICE=C:\OS2\MOUSE.SYS DEVICE=C:\OS2\POINTDD.SYS DEVICE=C:\OS2\SIO.SYS (1:38400) (2:38400) BREAK=OFF BUFFERS=10 DOS=HIGH,UMB FCBS=16,8 FILES=40 DEVICE=C:\OS2\MDOS\VCDROM.SYS DEVICE=C:\OS2\MDOS\VDPMI.SYS DEVICE=C:\OS2\MDOS\VDPX.SYS DEVICE=C:\OS2\MDOS\VEMM.SYS DEVICE=C:\OS2\MDOS\VMOUSE.SYS DEVICE=C:\OS2\MDOS\VSIO.SYS DEVICE=C:\OS2\MDOS\VSVGA.SYS DEVICE=C:\OS2\MDOS\VWIN.SYS DEVICE=C:\OS2\MDOS\VXMS.SYS /UMB SHELL=C:\OS2\MDOS\COMMAND.COM 