DOS védett mód interfész - DOS Protected Mode Interface

DOS védett mód interfész
Állapot Közzétett
Elkezdődött az év 1989 ; 32 évvel ezelőtt ( 1989 )
Szervezet DPMI bizottság
Tartomány Alkalmazás programozási felületek
Rövidítés DPMI

A számítástechnikai , a DOS Védett mód Interface ( DPMI ) egy leírás 1989-ben bevezetett, amely lehetővé teszi a DOS program fut védett módban , amely hozzáférést biztosít számos jellemzője az új processzort az idő nem áll rendelkezésre valós módban . Eredetileg a Microsoft fejlesztette ki a Windows 3.0 számára , bár a Microsoft később átadta a specifikáció ellenőrzését egy nyílt tagságú ipari bizottságnak. Szinte minden modern DOS -bővítő DPMI -n alapul, és lehetővé teszi a DOS -programok számára, hogy a PC -ben rendelkezésre álló összes memóriát kezeljék, és védett módban működjenek (többnyire a 3. gyűrűben , a legkevésbé jogosult).

Áttekintés

A DPMI lehetővé teszi, hogy egy program védett módban fusson a 80286 sorozatú és újabb processzorokon, és visszahívásokat kezdeményezzen a valós módban futó operációs rendszerre. Például egy DOS program "bekapcsolhatja" a védett módot, de mégis visszahívhatja a DOS -t a szervizeléshez (mondjuk az INT 21h szabványos DOS -szolgáltatás megszakításán keresztül). Ennek legfontosabb oka, hogy lehetővé teszi a védett módú programok működését DOS alatt, amelynek kernelje 16 bites valós módot használt kereskedelmi életében. Mivel az MS-DOS-t (önálló operációs rendszerként) soha nem frissítették 32 bitre, és nem engedélyezték a 24 vagy 32 bites címzést sem, a DPMI "javításként" szolgált, hogy lehetővé tegye a fejlett védett módú programok futtatását a stabil MS-DOS platformon . A DPMI-t úgy lehet elképzelni, mint egy "fordítót", amely (például) védett módú DOS hívásokat fogad, és a regisztereket valós és védett módba fordítja, beleértve a 16 bites szegmentált címeket, és lefordítja azokat egy megfelelő védett mód formátumba.

A DPMI lehetővé teszi egy ideig a 32 bites programok futtatását is Windows 3.x alatt , mivel maga a Windows 16 bites volt. Ez a képesség ma is megmarad a 32 bites Windows „DOS dobozban” egészen a Windows 10 operációs rendszerig (csak 32 bites kiadások) visszafelé kompatibilitási okokból (bár nem hivatalosan elavult).

A DPMI az egyetlen hivatalosan támogatott módszer a védett módú DOS programok futtatására a legtöbb DOS-kompatibilis multitasking operációs rendszerben. Míg a Windows már régóta támogatja a 32 bites programokat, a még mindig létező sok DOS-kompatibilis rendszernek általában DPMI-t kell használnia a védett módú szolgáltatások nyújtásához, vagy fennáll annak a kockázata, hogy nem kompatibilisek. Az olyan rendszereknek, mint a FreeDOS, még mindig van helyük a beágyazott rendszerek programozásában, ahol egyszerűségük, valamint az API -dokumentáció és a fordítóeszközök bősége miatt alacsony végrehajtási és erőforrás -költségeik fontosak.

A DPMI szolgáltatás lehet 16 bites, 32 bites vagy „univerzális”, és DPMI kernelnek , DPMI gazdagépnek vagy DPMI szervernek nevezik . Ezt vagy a gazda operációs rendszer ( virtuális DPMI gazdagép ), vagy egy DOS bővítő ( valódi DPMI gazdagép ) biztosítja. A DPMI kernel része lehet egy DOS bővítőnek , például DOS/4GW vagy DOS/32A , vagy különálló, például CWSDPMI vagy HDPMI .

Történelem

Az első DPMI specifikációs tervezeteket 1989 -ben tette közzé a Microsoft Ralph Lipe . Noha a DPMI for Windows 3.0 prototípusos verziója 386 továbbfejlesztett módban készült, ennek a megvalósításnak számos jellemzőjét eltávolították a hivatalos specifikációból, beleértve az MS-DOS Extensions nevű szolgáltatást vagy a DOS API fordítást , amelyet Ralph Lipe javasolt az eredeti verzióban dámajáték. Ennek nagy része DOS és BIOS interfészeket valósított meg (a történelem miatt néhány INT 21h API -t, például a 4Ch -t minden DPMI implementációnak végre kell hajtania). A DPMI 0.9 verzióját 1990 -ben tette közzé az újonnan alakult DPMI Bizottság . A kapott specifikáció 0.9-es verziószámát úgy választottuk, hogy tükrözze a szabvány lecsupaszított jellegét és hiányos állapotát, amelyekkel a DPMI bizottság tagjai egyetérthetnek. Míg a Windows a DPMI 0.9 verzióját jelenti a kompatibilitásról, valójában megvalósítja a többi alkatrészt is, mivel ezek a rendszer létfontosságú részét képezik. A DPMI dokumentálatlan teljes jellege az iparágban " igazi DPMI " néven vált ismertté . Nem a DPMI szabvány volt az egyetlen erőfeszítés a VCPI specifikáció hiányosságainak kiküszöbölésére. Ezzel egy időben, amikor a Microsoft kifejlesztette a DPMI -t a Windows 3.0 rendszerhez, egy másik iparági szövetség, beleértve az Intel Software Focus Group -ot , a Lotus -t , a Digital Research -t , az Interactive Systems -t és másokat, kifejlesztett egy Extended VCPI ( XVCPI ) elnevezésű specifikációt , hogy a 386 memóriakezelési és multitasking képességeit javítsa . elérhető a kiterjesztett DOS alkalmazásokhoz. Amikor kiderült, hogy a Microsoft DPMI javaslata számos hasonló problémával foglalkozott, és a Windows is támogatta, ezek az erőfeszítések ahhoz vezettek, hogy 1990 februárjában létrehozták a DPMI bizottságot, az Intel Santa Clara -i találkozóján.

1991 -ben a DPMI Bizottság számos pontosítást és kiterjesztést tartalmazva átdolgozta a DPMI -t az 1.0 -s verzióra, de még mindig nem tartalmazta a Windows rendszerben megvalósított hiányzó "valódi DPMI" biteket. Valójában az "igazi DPMI" soha nem vált a hivatalos DPMI specifikáció részévé, és a Windows sem hozta létre a DPMI 1.0 kiterjesztéseket (és nem sok DPMI -gazdagép tette ezt).

Míg a DPMI -t úgy tervezték, hogy kiterjesztett DOS alkalmazási szoftvert futtasson védett módban és bővített memóriában, nem különösen alkalmas rezidens rendszerbővítményekhez. Tovább leírás elemzi DPMS által kifejlesztett Digital Research / Novell 1992 körül, kifejezetten címek követelmények könnyedén költözése módosított DOS meghajtó szoftvert kiterjesztett memóriát futtatni őket védett módban, és ezáltal csökkenti a hagyományos memóriát a kicsi csonkokat . Ezt a Helix Cloaking is támogatja .

A DPMI "módszer" a DOS -ra és az IBM PC -re jellemző. Más típusú számítógépeket 16 bitesről 32 bitesre frissítettek, és a fejlett programtámogatást az operációs rendszer új 32 bites API - val és új memóriakezelési/címzési képességekkel történő frissítése biztosította. Például az OS/2 központi rendszer támogatja a 32 bites programokat, és GUI nélkül is futtatható. Úgy tűnik, hogy a DPMI-megoldás főként a harmadik felek azon igényeinek kielégítésére van szükség, hogy a DOS védett módú programokat stabilan futtassák a Windows 3.x rendszeren, mielőtt a meghatározó operációs rendszer-gyártó, a Microsoft foglalkozhatna vagy foglalkozna a 32 bites Windows jövőjével. Ezenkívül a Microsoft nem a 32 bites átmenetre adott választ 32 bites DOS-nak, hanem inkább egy 32 bites Windowsnak, teljesen más (és nem kompatibilis) API-val.

Kompatibilitás

Míg a Windows 3.0 az "igazi DPMI -t" valósítja meg, és a DPMI 0.9 támogatásáról számol be, a DPMI 1.0 -s verzióját soha nem implementálták a Microsoft Windows rendszerben , ezért a legtöbb programot és DOS -bővítőt többnyire csak a 0.9 -es verzióra írták. Néhány bővítő azonban megvalósítja az "igazi DPMI -t".

A Qualitas 386MAX béta verziói megvalósították az „igazi DPMI -t”, és futtathatták a Windows KRNL386.EXE parancssorát, de azt állították, hogy egy belső e -mailben le van tiltva a kiadott termékben. A DPMIONE (Bob Smith, a 386MAX kód alapján) azonban képes rá. Jelenleg a DPMIONE és a 386 MAX az egyetlen olyan DPMI -gazdagép, amely teljes mértékben támogatja a DPMI 1.0 -t (pl. Nem lekötött memória), és ők a DPMI 1.0 fő támogatói.

A DR DOS "Panther" és a "StarTrek" 1991 óta fejlesztés alatt álló KRNL386.SYS (más néven "MultiMAX") , valamint a Novell DOS 7 , Caldera OpenDOS és DR-DOS 7.02 és újabb EMM386.EXE memóriakezelők beépített DPMI-támogatással rendelkezik, ha az opcióval meg van töltve . A KRNL386.SYS -nek még parancssori lehetősége is volt a DPMI 1.0 vagy 0.9 támogatására. A DOS API fordítását "védett módból 21 megszakításnak nevezték". A többfelhasználós DOS , a Rendszerkezelő és a REAL/32 támogatja a DPMI -t is. /DPMI[=ON]/VER=0.9|1.0

A leghíresebb külön DPMI kernel valószínűleg a CWSDPMI ; támogatja a DPMI 0.9 -et, de nincs dokumentálatlan "DOS API fordítás". Egy másik változat, a "TRAN", azaz Thomas Pytel PMODE nevű változata volt népszerű a 32 bites programozók körében a kilencvenes évek demo jelenetében . Sok játék a DOS/4GW -t használta, amelyet a Rational Systems fejlesztett ki a DOS/4G részhalmazaként, és a Watcom C fordítójával együtt terjesztették .

A HDPMI (a HX DOS Extender része ) "DOS API fordítást" és szinte teljes DPMI 1.0 implementációt biztosít.

DPMI bizottság

A DPMI 1.0 bizottság 1990 és 1991 között ülésezett, és 12 csoportból állt:

Lásd még

Megjegyzések

Hivatkozások

További irodalom

Külső linkek