Virtual Device Drivers

As mentioned previously, DOS applications typically address hardware devices directly using interrupts. This is permissible in a single tasking DOS environment, since it can be safely assumed that the application has complete and exclusive control over the hardware. However, in the OS/2 Version 2.0 environment where multiple applications may be executing concurrently in virtual DOS machines, it is clearly not allowable, since applications could interfere with one another to the detriment of application and system integrity.

Multiple DOS applications accessing the same hardware devices from within VDMs require those hardware devices to be virtualized; virtualization implies separate simulation of the physical hardware (I/O ports, device memory, and ROM BIOS) for each virtual DOS machine. This virtualization is accomplished by installable virtual device drivers, which in turn communicate with physical device drivers to address hardware devices.

The following virtual device drivers are provided with the OS/2 Version 2.0 operating system:

VDD

VBIOS VCMOS VDMA VDSK VFLPY VKBD VLPT VNPX VPIC VTIMER VCOM VDPMI VDPX VXMS VEMM VWIN VMOUSE VCDROM VVIDEO

These virtual device drivers are described in Standard Virtual Device Drivers. Those indicated with an (1) form the base set of OS/2 V2.0 and are automatically loaded at system initialization time. The others are installed at operating system initialization time, using DEVICE= statements in CONFIG.SYS, as shown in Figure "Virtual Device Driver Statements in CONFIG.SYS". The first two virtual device drivers in Figure "Virtual Device Driver Statements in CONFIG.SYS" communicate with the corresponding physical device drivers from Figure "Physical Device Driver Statements in CONFIG.SYS".

Virtual device drivers perform four main functions:

  • Maintain the hardware state for each VDM

  • Prevent an application in one VDM from corrupting another VDM

  • Support fast screen I/O

  • Support fast communications I/O.


    [Back: Physical Device Drivers]
    [Next: Loading Virtual Device Drivers]