Compatibility with OS/2 V1.3

OS/2 Version 2.0 generally provides compatibility with OS/2 V1.3 device drivers written to the published OS/2 V1.3 device driver interface. Device driver incompatibilities with OS/2 V2.0 are summarized here:

  • Drivers that directly modify or utilize the contents of the Global Descriptor Table (GDT)

  • The PhysToVirt DevHlp returns different results to what is expected

  • Drivers that set up their own GDT call gate will not work

  • Drivers that switch to real mode will fail

  • Device drivers that were written to support a single DOS session can fail if accessed by more than one DOS session concurrently.

    Although OS/2 V2.0 device drivers remain 16-bit, the 32-bit architecture of OS/2 V2.0 can affect performance characteristics:

  • OS/2 V2.0 provides 32-bit demand-paging virtual memory management based on Intel 386 while OS/2 V1.3 provides 16-bit segment-swapping virtual memory based on Intel 286

    Therefore, I/O requests are no longer guaranteed to occur in a single physically contiguous memory range. For compatibility, OS/2 V2.0 detects an OS/2 V1.3 device driver and breaks application I/O requests into multiple I/O requests to the OS/2 V1.3 driver at physical memory boundaries rather than a single I/O request as before in OS/2 V1.3.

  • OS/2 V2.0 supports more than 16 MB of physical memory

    For compatibility, when a device driver utilizes an OS/2 V1.3 compatible request to lock memory for DMA transfers, OS/2 V2.0 rearranges memory so that the requested physical memory address range is below 16 MB.


    [Back: Device Driver Support]
    [Next: Virtual Device Drivers]