DOS扩展器

更新时间:2023-01-14 17:48

DOS扩展器是一个电脑软件程序,令须保护模式环境的软件能够在实模式运行,即使其所处的操作系统只能在实模式下运作。

介绍

DOS扩展器是一个电脑软件程序,令须保护模式环境的软件能够在实模式运行,即使其所处的操作系统只能在实模式下运作。

DOS扩展器起初在1980年代诞生,目的是要通过Intel 80286芯片(稍后扩展到Intel 80386)的指令,以应付MS-DOS及其它同类型操作系统的内存限制。

DOS扩展器操作

DOS扩展器,是“扩展的”DOS程序,保护模式程序可藉之透明地使用底层的MS-DOS应用接口。这很重要:因为许多由DOS所提供的函数接口 须为“16位的段:16位的偏移”形式来指向头640k内存中的某一块内存;然而,保护模式以《全局描述符号表》描述各段的特征,用段寄存器(现称“选择子”)指向《表》项,此举与实模式不兼容。芯片须切换回实模式(或虚拟86模式)以响应某个非保护模式的请求。

除了要“建起环境、载入程序来执行”之外,DOS扩展器还须提供(其它)转换层,这包括维护它自己在1MB实模式中的所申请的内存缓冲器,这些缓存用于在底层实模式操作系统与保护模式程序之间传输数据。因为在实模式/虚拟86模式与保护模式之间切换甚为耗时,所以扩展器会复制许多实模式操作功能函数到它自己的保护模式环境内,以此减少切换次数。例如DOS在操作系统与用户级别软件之间的广泛地以中断来通讯,DOS扩展器则因而拦截许多公用硬件(例如实时时钟、键盘)与软件(例如DOS自己、鼠标应用接口)的中断。许多扩展器更处理公用中断函数,例如常规视频BIOS中断函数。

DOS扩展器在本质上就是小型操作系统,提供了许多操作系统自己的底层功能。

诞生历史

可考证得DOS扩展器是由Phar Lap所创建,但主推者却是Tenberry软件公司(以前的 Rational 系统)的386DOS/4GW扩展器,它带来了保护模式DOS程序。后来更有Watcom_c在C、C++与Fortran在386芯片级别上的编译器,很快就无处不在地呈现在PC应用程序、游戏(例如id Software的成名软件毁灭战士)里了。

开始只是商务程序之类的内存老饕需要DOS扩展器,后来PC游戏则把DOS扩展器的需求公诸天下。结果DOS扩展器的开发就成功了,两个新软件接口被创建出来,以照顾许多潜在冲突,这些冲突源于多种已存在的内存管理方法,现统一到只给客户程序提供唯一的接口。

第一个接口是虚拟控制程序接口(Virtual Control Program Interface,缩写作VCPI),旋为DOS保护模式接口(DOS Protected Mode Interface,缩写作DPMI)所代,后者在Windows 3.0 开发中诞生。它提供了应用接口,以扩展的程序与实模式软件衔接、分配内存、处理中断服务,更让扩展器自己创建了保护模式切换、允许多个保护模式程序的同时共存。

DOS扩展器举例

著名DOS扩展的应用程序

Windows 9x自称为“操作系统”系列,但实为高级的更灵活扩展了MS-DOS代码的Window

免责声明
隐私政策
用户协议
目录 22
0{{catalogNumber[index]}}. {{item.title}}
{{item.title}}