dpmi

DPMI 是 DOS Protected Mode Interface(DOS保护模式接口)的缩写,它是一种在 DOS 环境下运行保护模式程序的应用程序接口规范。


DPMI 的背景与作用

在早期的个人计算机中,DOS 运行在 实模式(Real Mode) 下,只能直接访问 1MB 的内存空间(其中 640KB 供应用程序使用)。随着处理器的发展,Intel 80286 及更高型号的 CPU 引入了 保护模式(Protected Mode),能够访问更多的内存(如 16MB 或更多),并提供内存保护、多任务等功能。然而,DOS 本身并不支持保护模式,因此需要一种机制使 DOS 程序能够利用保护模式的优势。

DPMI 应运而生,它充当 DOS 与保护模式之间的桥梁,允许程序在保护模式下运行,同时仍能调用 DOS 和 BIOS 的服务。


DPMI 的主要功能

  1. 内存管理

    • 允许程序访问超过 1MB 的扩展内存。
    • 提供内存分配、释放和映射功能。
  2. 模式切换

    • 在保护模式和实模式之间进行切换,以便调用实模式的 DOS 和 BIOS 中断。
  3. 中断处理

    • 在保护模式下重定向硬件中断,并允许程序处理这些中断。
  4. 多任务支持

    • 为在 DOS 上运行的多任务环境(如 Windows 3.x)提供基础支持。

DPMI 的实现方式

DPMI 通常由一个 DPMI 主机(DPMI Host) 实现,例如:

  • DOS 扩展器(DOS Extender):像 DOS/4GW、Phar Lap 等,它们将程序加载到保护模式,并通过 DPMI 调用访问 DOS 服务。
  • 操作系统:Windows 3.x 在增强模式下内置了 DPMI 服务。

程序通过 软件中断 0x31 调用 DPMI 功能,例如:

  • 分配内存
  • 修改段描述符
  • 调用实模式中断

DPMI 的应用场景

  • 大型 DOS 游戏和应用程序:例如《DOOM》、《Wolfenstein 3D》等使用 DOS 扩展器来突破 640KB 内存限制。
  • 多任务环境:Windows 3.x 在 386 增强模式下使用 DPMI 运行多个 DOS 程序。
  • 开发工具:保护模式的编译器、调试器等。

DPMI 与 VCPI 的区别

在 DPMI 之前,还有另一种标准 VCPI(Virtual Control Program Interface),主要用于 UNIX 类的多任务系统。DPMI 由 Microsoft 和 Intel 共同制定,更适用于 DOS 和 Windows 环境,并逐渐取代了 VCPI。


总结

DPMI 是 DOS 时代的重要技术,它解决了实模式内存限制的问题,使程序能够利用 386 及以上 CPU 的保护模式功能。尽管现代操作系统已不再依赖 DPMI,但它在 PC 发展史上具有重要地位,为许多经典游戏和应用程序提供了关键支持。

所有内容均由人工智能模型生成,其生成内容的准确性和完整性无法保证,不代表我们的态度或观点。