Przedłużacz DOS - DOS extender

Baner startowy DOS/4GW firmy Tenberry Software

DOS extender jest oprogramowanie komputerowe Program działa pod DOS , który umożliwia oprogramowanie do uruchamiania w trybie chronionym środowisku, mimo że system operacyjny hosta jest zdolny tylko do pracy w trybie rzeczywistym .

Rozszerzacze DOS zostały początkowo opracowane w latach 80-tych po wprowadzeniu procesora Intel 80286 (a później rozszerzone o Intel 80386 ), aby poradzić sobie z ograniczeniami pamięci DOS .

Działanie ekstendera DOS

Rozszerzacz DOS to program, który "rozszerza" DOS tak, że programy działające w trybie chronionym mogą przezroczyście łączyć się z podstawowym API DOS . Było to konieczne, ponieważ wiele funkcji dostarczanych przez DOS wymaga 16-bitowych adresów segmentowych i offsetowych wskazujących na lokalizacje pamięci w obrębie pierwszych 640 kilobajtów pamięci . Jednak tryb chroniony używa niezgodnej metody adresowania, w której rejestry segmentu (obecnie nazywane selektorami) są używane do wskazywania wpisu w tablicy globalnych deskryptorów, która opisuje charakterystykę segmentu. Te dwie metody adresowania wzajemnie się wykluczają, przy czym procesor musi dokonywać kosztownych przełączeń na tryb rzeczywisty (lub V86 ) w celu obsługi żądań trybu niechronionego.

Oprócz skonfigurowania środowiska i załadowania rzeczywistego programu do wykonania, ekstender DOS zapewnia również (między innymi) warstwę translacji, która utrzymuje bufory przydzielone poniżej 1 MB bariery pamięci trybu rzeczywistego. Bufory te służą do przesyłania danych między systemem operacyjnym trybu rzeczywistego a programem trybu chronionego. Ponieważ przełączanie między trybem rzeczywistym/V86 i trybem chronionym jest operacją stosunkowo czasochłonną, przedłużacz próbuje zminimalizować liczbę przełączników przez powielanie funkcjonalności wielu operacji w trybie rzeczywistym we własnym środowisku trybu chronionego. Ponieważ DOS intensywnie używa przerwań do komunikacji między systemem operacyjnym a oprogramowaniem na poziomie użytkownika, ekstendery DOS przechwytują wiele typowych przerwań sprzętowych (np. zegar czasu rzeczywistego i kontroler klawiatury) i programowych (np. sam DOS i API myszy). Niektóre ekstendery obsługują również inne popularne funkcje przerwań, takie jak procedury BIOS-u wideo.

Zasadniczo przedłużacz DOS jest jak miniaturowy system operacyjny, obsługujący większość funkcji samego systemu operacyjnego.

Historia rozwoju

Logo produktu DOS/4G firmy Tenberry Software

Rozszerzacz DOS został prawdopodobnie wynaleziony przez Phar Lap , ale to rozszerzenie 386 DOS/ 4GW firmy Tenberry Software (dawniej Rational Systems) wprowadziło programy DOS w trybie chronionym na rynek masowy. Dołączony do kompilatorów C, C++ i Fortran firmy Watcom dla procesorów klasy 386, wkrótce stał się wszechobecną ostoją aplikacji i gier na komputery PC, takich jak odnoszący sukcesy Doom firmy id Software .

Chociaż początkowo to aplikacje biznesowe wymagające dużej ilości pamięci napędzały rozwój ekstenderów DOS, to gry komputerowe naprawdę przyciągnęły je do centrum uwagi. W wyniku rozwoju ekstenderów DOS stworzono dwa nowe interfejsy programowe, które zajęły się wieloma potencjalnymi konfliktami, które mogą wyniknąć z istniejących już zróżnicowanych metod zarządzania pamięcią, a także zapewniły jednolity interfejs dla programów klienckich.

Pierwszym z tych interfejsów był Virtual Control Program Interface (VCPI), ale został on szybko przyćmiony przez specyfikację DOS Protected Mode Interface (DPMI), która wyrosła z rozwoju systemu Windows 3.0. Zapewnili API, za pomocą którego rozszerzony program może łączyć się z oprogramowaniem trybu rzeczywistego, alokować pamięć i obsługiwać usługi przerwań. Zapewniły również łatwą metodę konfiguracji przełącznika w trybie chronionym przez przedłużacz i pozwoliły wielu programom trybu chronionego na pokojowe współistnienie.

Przedłużacze DOS

  • DOS/4G i DOS/4GW i DOS/16M firmy Tenberry Software, Inc.
  • 286|DOS Extender i 386|DOS Extender autorstwa Phar Lap . Później zastąpiony przez TNT Dos Extender.
  • PROT autorstwa Ala Williamsa, 32-bitowego ekstendera DOS opublikowanego w Dr. Dobb's Journal oraz w dwóch książkach. Ten ekstender miał tę zaletę, że uruchamiał wywołania DOS i BIOS w trybie emulowanym, zamiast przełączać się z powrotem do trybu rzeczywistego.
  • PMODE i PMODE/W autorstwa Thomasa Pytela i Charlesa Sheffolda . Ta ostatnia była dla Watcom C jako alternatywa dla DOS/4GW i była dość popularna wśród programistów demosceny
  • CauseWay był wcześniej zastrzeżonym przedłużaczem, który konkurował z DOS4G. Od 2000 roku został wydany jako open source. Używa go kilka rzadkich gier, takich jak DaggerFall .
  • DOS/32 jako alternatywa dla DOS/4G autorstwa Narech K.
  • Ergo (dawniej Eclipse, dawniej AI Architects) ekstendery OS/286 i OS/386 oraz serwery DPM16 i DPM32
  • 386Power 32-bit DOS Extender to rozszerzenie dla 32-bitowych aplikacji do montażu . Zawiera kod źródłowy .
  • wszystkie wersje systemu Microsoft Windows od 1990 roku, z wyjątkiem gałęzi NT, zawierają zarówno serwer DPMI, jak i ekstender DOS.
  • HX DOS Extender zapewnia ograniczoną obsługę Win32, aby umożliwić działanie konsoli Windows i niektórych aplikacji Win32 GUI w systemie DOS. Zawiera 16-bitowe i 32-bitowe serwery DPMI (HDPMI16/HDPMI32) do użytku z programami DOS w trybie chronionym
  • DosWin32 zapewnia ograniczoną obsługę Win32
  • WDosX był wczesną implementacją ograniczonej obsługi Win32, używaną przez kompilator TMT Pascal.
  • Borland Power Pack był rozszerzeniem dołączonym do niektórych ich pakietów programistycznych, które mogły uzyskać dostęp do ograniczonej części API Win32.
  • TASM , ponownie firmy Borland, zawierał 32RTM z DPMI32VM i RTM z DPMI16BI, dwa hosty DPMI.
  • CWSDPMI autorstwa Charlesa W. Sandmanna, serwer DPMI do użytku z 32-bitowymi programami DOS DJGPP w trybie chronionym .
  • QDPMI firmy Quarterdeck Office Systems był hostem DPMI dołączonym do QEMM .
  • GO32, używany w starszych (przed v2) wersjach DJGPP i Free Pascal
  • D3X to serwer DPMI napisany w całości w Assembly . Wciąż w stanie alfa, ale przerwane przed ukończeniem.
  • DPMIONE to kolejny serwer DPMI. Pierwotnie opracowany dla 32-bitowych programów generowanych przez Borland C++ i Delphi.
  • DBOS firmy Salford Software, 32-bitowy przedłużacz systemu DOS w trybie chronionym używany głównie przez ich kompilator FTN77 Fortran
  • X32 i X32VM firmy FlashTek i obsługiwane jako cel przez kompilatory Digital Mars
  • BLINKER firmy Blink Inc w wersji 3 i nowszych dostarczył 286 DOS Extender dla kilku 16-bitowych kompilatorów DOS, w tym CA-Clipper, Microsoft C/C++, PASCAL, FORTRAN i Borland C/C++. Obsługiwane unikalne pliki wykonywalne „Dual Mode”, które mogą działać w trybie rzeczywistym lub chronionym, w zależności od środowiska wykonawczego.
  • EMX

Godne uwagi rozszerzone aplikacje DOS

Bibliografia

Zewnętrzne linki