The concept of a device driver is not new to OS/2 Version 2.0; previous versions of OS/2 and DOS have employed device drivers to communicate with hardware devices. Under previous versions of OS/2, however, many device drivers were required to run in both real mode and protected mode in order to accommodate the requirements of applications running in the DOS Compatibility Box. This complicated the design of device drivers under previous versions of OS/2, since they were required to be written in a bi-modal manner. Figure "Structure of Bi-Modal Device Drivers in OS/2 V1.x" shows the structure of bi-modal OS/2 device drivers. MVDM removes the need for real mode device drivers, since DOS applications run in virtual DOS machines, where each VDM is a protected mode task. Real mode device interrupts issued by DOS applications are trapped by the MVDM kernel and routed to device drivers which execute in protected mode. Hence device drivers for OS/2 Version 2.0 need not include real mode sections, and existing device drivers may be updated to remove the real mode components.
Physical device drivers communicate directly with hardware devices, and are installed at system initialization time using DEVICE= statements in CONFIG.SYS, as shown in Figure "Physical Device Driver Statements in CONFIG.SYS".
The advantage of physical device drivers, as with device drivers in previous versions of OS/2, is that the operating system itself need not be changed if a new hardware device or adapter is installed. The corresponding device driver may be installed with the device, and used by applications which require access to the device. The major enhancement in Version 2.0 over previous versions of OS/2 lies in the removal of the real mode component, which simplifies device driver development and improves performance by avoiding the need for processor mode switching.