热门问题
时间线
聊天
视角

DOS擴展器

来自维基百科,自由的百科全书

Remove ads

DOS擴展器是一個電腦軟件程序,令須保護模式環境的軟件能夠在實模式運行,即使其所處的操作系統衹能在實模式下運作。

Thumb
Tenberry軟件公司DOS/4GW啟動信息

DOS擴展器起初在1980年代誕生,目的是要通過Intel 80286芯片(稍後擴展到Intel 80386)的指令,以應付MS-DOS及其它同類型操作系統的內存限制。

DOS擴展器操作

更多信息 實模式 640K, DOS ...

DOS擴展器,是「擴展的」DOS程序,保護模式程序可藉之透明地使用底層的MS-DOS應用接口。這很重要:因為許多由DOS所提供的函數接口 須為「16位的段:16位的偏移」形式來指向頭640k內存英語Conventional memory中的某一塊內存;然而,保護模式以《全局描述符號表英語Global Descriptor Table》描述各段的特徵,用段寄存器(現稱「選擇子」)指向《表》項,此舉與實模式不兼容。芯片須切換回實模式(或虛擬86模式)以響應某個非保護模式的請求。

除了要「建起環境、載入程序來執行」之外,DOS擴展器還須提供(其它)轉換層,這包括維護它自己在1MB實模式中的所申請的內存緩衝器,這些緩存用於在底層實模式操作系統與保護模式程序之間傳輸數據。因為在實模式/虛擬86模式與保護模式之間切換甚為耗時,所以擴展器會複製許多實模式操作功能函數到它自己的保護模式環境內,以此減少切換次數。例如DOS在操作系統與用戶級別軟件之間的廣泛地以中斷來通訊,DOS擴展器則因而攔截許多公用硬件(例如實時時鐘、鍵盤)與軟件(例如DOS自己、鼠標應用接口)的中斷。許多擴展器更處理公用中斷函數,例如常規視頻BIOS中斷函數。

DOS擴展器在本質上就是小型操作系統,提供了許多操作系統自己的底層功能。

Remove ads

誕生歷史

可考證得DOS擴展器是由Phar Lap英語Phar Lap (company)所創建,但主推者卻是Tenberry軟件公司英語Tenberry Software(以前的 Rational 系統)的386DOS/4GW英語DOS/4GW擴展器,它帶來了保護模式DOS程序。後來更有 Watcom_c在C、C++與Fortran在386芯片級別上的編譯器,很快就無處不在地呈現在PC應用程序、遊戲(例如id Software的成名軟件毀滅戰士)里了。

開始衹是商務程序之類的內存老饕需要DOS擴展器,後來PC遊戲則把DOS擴展器的需求公諸天下。結果DOS擴展器的開發就成功了,兩個新軟件接口被建立出來,以照顧許多潛在衝突,這些衝突源於多種已存在的內存管理方法,現統一到衹給客戶程序提供唯一的接口。

第一個接口是虛擬控制程序接口英語Virtual Control Program Interface(Virtual Control Program Interface,縮寫作VCPI),旋為DOS保護模式接口英語DOS Protected Mode Interface(DOS Protected Mode Interface,縮寫作DPMI)所代,後者在Windows 3.0 開發中誕生[1]。它提供了應用接口,以擴展的程序與實模式軟件銜接、分配內存、處理中斷服務,更讓擴展器自己建立了保護模式切換、允許多個保護模式程序的同時共存。

Remove ads

DOS擴展器舉例

  • Tenberry 軟件公司的DOS/4G、DOS/4GW英語DOS/4GDOS/16M
  • Phar Lap英語Phar Lap (company)286|DOS擴展器、386|DOS擴展器。
  • Al Williams在《Dr. Dobb's Journal》[2][3]內付梓的PROT,是32位DOS擴展器,在另兩冊書亦有[4][5]。該擴展器可在仿真模式運行DOS與調用BIOS的優點,不用真的切換到實模式。
  • Thomas PytelCharles SheffoldPMODE英語PMODEPMODE/W[永久失效連結]後者在Watcom C替代了DOS/4GW,且在demoscene程序員中很流行。
  • Ergo(以前是 Eclipse, formerly A. I. Architects)OS/286、OS/386 擴展,與 DPM16、DPM32 服務。
  • Microsoft Windows在1990年前所有(64位元版本除外)版本的Windows,都包括英語Virtual DOS machine都包括 DPMI服務與 DOS擴展器[6]
  • HX DOS Extender提供的Win32有限支持。
  • DosWin32提供的Win32有限支持。
  • Charles W. Sandman的CWSDPMI英語CWSDPMI,是DPMI英語DOS Protected Mode Interface服務器,使用32位保護模式DOS的DJGPP程序。
  • 舊(pre-v2)版本的GO32使用DJGPPFree Pascal
  • Salford 軟件的DBOS,是32位保護模式DOS擴展器,主用於其FTN77(Fortran編譯器)。
  • Narech K模仿DOS/4GW英語DOS/4GDOS/32英語DOS/32


著名DOS擴展的應用程序

Remove ads

參考

外部連結

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads