DOS 익스텐더

DOS extender
Tenberry Software의 DOS/4GW 스타트업 배너

DOS 익스텐더는 DOS에서 실행되는 컴퓨터 소프트웨어 프로그램으로, 호스트 운영 체제가 실제 모드에서만 작동 가능하더라도 소프트웨어를 보호 모드 환경에서 실행할 수 있도록 합니다.

DOS 익스텐더는 1980년대에 인텔 80286 프로세서(이후 인텔 80386으로 확장)의 도입에 따라 DOS의 메모리 제한에 대처하기 위해 개발되었습니다.

DOS 익스텐더 동작

DOS 익스텐더는 보호 모드에서 실행되는 프로그램이 기본 DOS API와 투명하게 통신할 수 있도록 DOS를 확장하는 프로그램입니다.이것은 DOS에 의해 제공되는 많은 함수가 16비트 세그먼트와 오프셋 주소를 필요로 하기 때문에 필요했습니다.이것은, 메모리의 최초의 640킬로바이트내의 메모리 위치를 가리키고 있습니다.그러나 보호 모드에서는 세그먼트 레지스터(지금은 셀렉터라고 함)가 세그먼트의 특성을 설명하는 글로벌 기술자 테이블의 엔트리를 가리키기 위해 사용되는 호환되지 않는 주소 지정 방식을 사용합니다.두 가지 어드레싱 방법은 서로 배타적이며 프로세서는 비보호 모드 요구를 처리하기 위해 비용이 많이 드는 실제(또는 V86) 모드로 전환해야 합니다.

DOS 익스텐더는 환경을 설정하고 실행할 실제 프로그램을 로드하는 것 외에 (특히) 1MB 리얼 모드 메모리 장벽 아래에 할당된 버퍼를 유지하는 변환 레이어도 제공합니다.이러한 버퍼는 기반이 되는 리얼 모드 운영 체제시스템과 보호 모드 프로그램 간에 데이터를 전송하기 위해 사용됩니다.Real/V86 모드와 Protected 모드 간의 전환은 비교적 시간이 걸리는 조작이기 때문에 Extender는 자체 보호 모드 환경 내에서 많은 Real 모드 동작의 기능을 복제함으로써 스위치 수를 최소화하려고 합니다.DOS는 운영체제와 사용자 레벨 소프트웨어 간의 통신에 인터럽트를 광범위하게 사용하기 때문에 DOS 익스텐더는 많은 공통 하드웨어(실시간 클럭과 키보드 컨트롤러 등)와 소프트웨어(DOS 자체와 마우스 API 등) 인터럽트를 가로채게 됩니다.일부 익스텐더는 비디오 BIOS 루틴과 같은 다른 일반적인 인터럽트 기능도 처리합니다.

기본적으로 DOS 익스텐더는 기본 운영 체제 자체의 많은 기능을 처리하는 작은 운영 체제와 같습니다.

개발 이력

Tenberry Software의 DOS/4G 제품 로고

DOS 익스텐더는 Phar Lap에 의해 발명되었지만 보호 모드 DOS 프로그램을 대량 시장에 내놓은 것은 Tenberry Software(구 Rational Systems)의 386 익스텐더 DOS/4GW였습니다.386 클래스 프로세서용 Watcom의 C, C++, Fortran 컴파일러에 포함된 이 컴파일러는 곧 id Software의 성공적 Doom과 같은 PC 애플리케이션 및 게임의 유비쿼터스 주류가 되었습니다.

처음에 DOS 익스텐더의 개발을 이끈 것은 메모리 소모가 많은 비즈니스 애플리케이션이었지만, 실제로 DOS 익스텐더를 주목받게 한 것은 PC 게임이었습니다.DOS 익스텐더의 개발의 결과로, 기존의 다양한 메모리 관리 방법에서 발생할 수 있는 많은 잠재적 충돌을 처리하고 클라이언트 프로그램에 통일된 인터페이스를 제공하기 위해 두 개의 새로운 소프트웨어 인터페이스가 생성되었습니다.

이러한 인터페이스 중 첫 번째는 Virtual Control Program Interface(VCPI; 가상 제어 프로그램인터페이스)였지만, 이것은 Windows 3.0의 [1]개발로부터 확대된 DOS Protected Mode Interface(DPMI; 보호 모드인터페이스) 사양에 의해서 급속히 빛을 잃었습니다.이들은 확장 프로그램이 리얼 모드 소프트웨어와 인터페이스하고 메모리를 할당하며 인터럽트 서비스를 처리할 수 있는 API를 제공했습니다.또, 익스텐더가 스위치를 보호 모드로 간단하게 셋업 할 수 있도록 해, 복수의 보호 모드 프로그램이 평화롭게 공존할 수 있도록 했습니다.

DOS 익스텐더

  • DOS/4G 및 DOS/4GW 및 DOS/16M by Tenberry Software, Inc.
  • 286 DOS Extender 및 386 DOS Extender by Phar Lap.이후 TNT Dos Extender로 대체되었습니다.
  • Dobb's[2][3] Journal과 두 권의 [4][5]책으로 출판된 32비트 DOS 익스텐더인 Al Williams의 PROT.이 익스텐더에서는 DOS 및 BIOS 콜을 리얼 모드로 되돌리는 것이 아니라 에뮬레이트 모드로 실행할 수 있습니다.
  • 토마스 파이텔찰스 셰폴드의 PMODE와 PMODE/W.후자는 DOS/4GW의 대안으로 Watcom C를 위한 것이었고 데모센 프로그래머들에게 꽤 인기가 있었다.
  • CauseWay는 DOS4G와 경쟁하는 이전의 독점 익스텐더였습니다.2000년 현재 오픈 소스로 출시되었습니다.DaguneFall과 같은 몇몇 희귀 게임들이 그것을 사용한다.
  • Narech K에 의한 DOS/4G의 대체 수단으로서 DOS/32.
  • Ergo(이클립스, A)I. 설계자) OS/286 및 OS/386 익스텐더 및 DPM16 및 DPM32 서버
  • 386 Power 32bit DOS Extender는 32비트 어셈블리 애플리케이션용 익스텐더입니다.소스 코드를 포함합니다.
  • NT 브런치를 제외한 1990년 이후의 모든 Microsoft Windows 버전에는 DPMI 서버와 DOS [6]익스텐더가 포함되어 있습니다.
  • HX DOS Extender는 Windows 콘솔 및 일부 Win32 GUI 응용 프로그램을 DOS에서 실행할 수 있도록 Win32 지원을 제한합니다.보호 모드 DOS[7] 프로그램과 함께 사용하기 위한 16비트 및 32비트 DPMI 서버(HDPMI16/HDPMI32)가 모두 포함되어 있습니다.
  • DosWin32는 제한된 Win32 지원 제공
  • WDosX는 TMT 파스칼 컴파일러에 의해 사용된 제한된 Win32 지원의 초기 구현입니다.
  • Borland Power Pack은 일부 개발 스위트에 포함된 익스텐더로 Win32 API의 일부에 액세스할 수 있습니다.
  • 다시 볼랜드에서 온 TASM에는 DPMI32VM을 탑재한 32RTM과 DPMI16BI를 탑재한 RTM이 2개 포함되어 있습니다.
  • Charles W. Sandmann의 CWSDPMI. 32비트 보호 모드 DOS DJGPP 프로그램과 함께 사용하는 DPMI 서버.
  • QDPMI by Quarterdeck Office Systems는 QEMM에 포함된 DPMI 호스트입니다.
  • GO32, 이전 버전의 DJGPP 및 Free Pascal에서 사용
  • D3X는 어셈블리에 완전히 작성된 DPMI 서버입니다.아직 알파 상태이지만 완료되기 전에 중단됩니다.
  • DPMIONE도 DPMI 서버입니다.원래 Borland C++와 Delphi가 생성한 32비트 프로그램용으로 개발되었습니다.
  • 주로 FTN77 Fortran 컴파일러에서 사용되는 32비트 보호 모드 DOS 익스텐더인[8] Salford Software의 DBOS
  • FlashTek에 의해 X32 및 X32VM이 지원되며 Digital Mars 컴파일러에 의해 타깃으로 지원됨
  • Blink Inc 버전 3 이상의 BLINKER는 CA-Cliper, Microsoft C/C++, PASCAL, FORTRAN 및 Borland C/C++를 포함한 여러 16비트 DOS 컴파일러에 286 DOS Extender를 제공했습니다.런타임 환경에 따라 실제 모드 또는 보호 모드 중 하나로 실행할 수 있는 고유한 '듀얼 모드' 실행 파일을 지원합니다.
  • EMX

주요 DOS 확장 응용 프로그램

레퍼런스

  1. ^ Duncan, Ray; Petzold, Charles; Schulman, Andrew; Baker, M. Steven; Nelson, Ross P.; Davis, Stephen R.; Moote, Robert (1992). Extending DOS: A Programmer's Guide to Protected-Mode DOS (2nd ed.). Addison-Wesley Publishing Company, Inc. pp. 433–462. ISBN 0-201-56798-9.
  2. ^ Williams, Al (October 1990). "Roll your own DOS extender: Part I". Dr. Dobb's Journal. CMP Technology. 15 (10): 16–18, 20, 24. ISSN 1044-789X.
  3. ^ Williams, Al (November 1990). "Roll Your Own DOS Extender: Part II". Dr. Dobb's Journal. CMP Technology. 15 (11): 74, 76, 80, 81–83, 85, 122–128, 130. ISSN 1044-789X.
  4. ^ Williams, Al (1991). DOS 5: A Developer's Guide. Redwood City, California, USA: Markt&Technik. ISBN 1-55851-177-6.
  5. ^ Williams, Al (1993). DOS 6: A Developer's Guide. Markt&Technik. ISBN 1-55851-309-4.
  6. ^ Williams, Al (1993). DOS and Windows Protected Mode: Programming with DOS Extenders in C. Addison-Wesley. p. 30. ISBN 0-201-63218-7.
  7. ^ "HX DOS Extender".
  8. ^ FTN77 Fortran 컴파일러

외부 링크