DOS 보호 모드 인터페이스
DOS Protected Mode Interface| 약어 | DPMI |
|---|---|
| 상태 | 출판된 |
| 년도시작 | 1989; 전 ( |
| 조직 | DPMI 위원회 |
| 도메인 | 응용 프로그램 프로그래밍 인터페이스 |
컴퓨팅에서 DOS 보호 모드 인터페이스(DPMI)는 1989년에 도입된 규격으로, DOS 프로그램이 보호 모드에서 실행될 수 있도록 하여, 실제 모드에서는 사용할 수 없었던 당시의 새로운 PC 프로세서의 많은 특징에 접근할 수 있게 한다.마이크로소프트는 나중에 공개 멤버십을 가진 산업 위원회에 사양에 대한 제어를 넘겼지만, 처음에 마이크로소프트에 의해 Windows 3.0용에 의해 개발되었다.[1][2]거의 모든 최신 DOS 확장기는 DPMI를 기반으로 하며 DOS 프로그램이 PC에서 사용 가능한 모든 메모리를 다루고 보호 모드(대부분 링 3에서, 가장 낮은 특권)에서 실행되도록 허용한다.[3]
개요
DPMI는 DOS 보호 모드 인터페이스를 의미한다.프로그램이 80286 시리즈 이상 프로세서에서 보호 모드로 실행될 수 있도록 하고, 이러한 CPU 모드를 수동으로 설정할 필요 없이 리얼 모드로 호출을 하는 API이다.DPMI는 또한 다양한 자원, 특히 메모리를 관리하는 기능을 제공한다.이를 통해 DPMI 지원 프로그램은 다중 태스크 OS에서 작동할 수 있으며 OS 커널은 여러 애플리케이션 간에 이러한 리소스를 배포할 수 있다.DPMI는 감독자 모드에서 구현해야 하는 기능만 제공한다.싱글 태스킹 마이크로커널이라고 생각할 수 있다.나머지 기능은 리얼 모드 DOS 및 BIOS 서비스에 대한 호출을 통해 DPMI 지원 프로그램에서 사용할 수 있으므로 DPMI API 자체는 DOS와 거의 독립적으로 유지될 수 있다.DPMI API DOS를 특정하게 만드는 것은 DOS 메모리 관리를 위한 3가지 기능일 뿐이며, "DPMI" 약어로 문자 "D"가 된다.
DPMI 서비스는 16비트, 32비트 또는 "범용"일 수 있으며 DPMI 커널, DPMI 호스트 또는 DPMI 서버라고 불린다.호스트 운영 체제(가상 DPMI 호스트) 또는 DOS 확장자(실제 DPMI 호스트)에 의해 제공된다.DPMI 커널은 DOS/4GW 또는 DOS/32A와 같은 DOS 익스텐더의 일부일 수 있으며, CWSDPMI 또는 HDPMI와 같은 별도일 수 있다.
DPMI API의 주요 용도는 DOS 확장자가 호스트-OS에 구애받지 않는 환경을 제공할 수 있도록 하는 것이다.DOS Extender는 DPMI 커널의 존재를 확인하고, DPMI 커널이 아직 설치되어 있지 않은 경우에만 자체 설치한다.이를 통해 DOS 확장 프로그램은 자체 DPMI 커널을 제공하는 멀티태스킹 OS에서 실행되거나, 도스 익스텐더가 자체 DPMI 커널을 사용하는 베어메탈 DOS 바로 아래에서 실행될 수 있다.윈도 3.x와 9.x의 사용자 모드 커널은 DOS 익스텐더로 구축되어 있기 때문에 윈도 링-0 커널이 제공하는 DPMI API에 전적으로 의존한다.
역사
최초의 DPMI 규격 초안은 1989년 마이크로소프트의 랄프 리페에 의해 발표되었다.[4][1]386 강화 모드에서 윈도 3.0용 DPMI의 프로토타입 버전에 기초하는 동안, 이 구현의 몇 가지 특징들은 공식 규격에서 삭제되었는데, 여기에는 랄프 리페가 초안에서 제안했던 MS-DOS Extensions[5] 또는 DOS API translation이라는 기능이 포함되어 있다.[6]그 대부분은 DOS와 BIOS 인터페이스를 구현하는 것이었다(이력 때문에 4Ch와 같은 일부 INT 21h API는 모든 DPMI 구현에 의해 구현되어야 한다).DPMI 버전 0.9는 1990년에 새로 구성된 DPMI 위원회에 의해 출판되었다.결과 규격의 버전 번호 0.9는 DPMI 위원회 위원들이 동의할 수 있는 표준의 벗겨진 성격과 불완전한 상태를 반영하기 위해 선택되었다.[1]Windows는 DPMI 버전 0.9의 호환성을 보고하지만, 다른 부품도 시스템의 중요한 부분을 나타내기 때문에 실제로 구현한다.[5][1] DPMI의 이러한 미등록 완전성은 업계에서 "진정한 DPMI"로 알려지게 되었다.[7]VCPI 규격의 단점을 극복하기 위한 노력은 DPMI 표준만이 아니었다.동시에 MicrosoftWindows3.0, 인텔의 소프트웨어 포커스 Group,[8][1]Lotus,[8]디지털 리서치, 대화형 시스템 등을 포함한 다른 산업 동맹에 대한 규격 확장 VCPI(XVCPI)이라 불리우는 386확장된 DOS앱을 이용할 수 있는 기억 장치 관리 능력과 멀티 태스킹 능력을 만드는 방법을 개발했다 DPMI을 개발했다.lications.[8][1][9] 마이크로소프트의 DPMI 제안이 많은 유사한 문제들을 다루었고 윈도우의 지원을 받은 것으로 밝혀졌을 때, 이러한 노력들은 1990년 2월 산타 클라라에서 인텔에서 열린 회의에서 DPMI 위원회를 설립하는 데 이르게 되었다.[8][1]
1991년 DPMI 위원회는 다수의 명확화와 확장을 통합하기 위해 DPMI를 버전 1.0으로 개정했지만, 여전히 Windows에서 구현된 누락된 "진정한 DPMI" 비트는 포함하지 않았다.사실, "진정한 DPMI"는 공식 DPMI 규격의 일부가 되지 않았고, Windows도 마찬가지로 DPMI 1.0 확장을 구현하지 않았다(그리고 많은 DPMI 호스트가 구현하지 않았다).
DPMI는 확장 DOS 애플리케이션 소프트웨어를 보호 모드와 확장 메모리로 실행하도록 맞춤화되었지만,[10] 거주자 시스템 확장에는 특별히 적합하지 않다.1992년경 디지털 리서치 / Novell에 의해 개발된 [10]DPMS라는 또 다른 사양은 수정된 DOS 드라이버 소프트웨어를 확장 메모리로 쉽게 재배치하고 보호 모드에서 실행하기 위한 요구 사항을 구체적으로 다루어 기존의 메모리 설치 공간을 작은 스텁으로 줄인다.이것은 또한 헬릭스 클로킹에 의해 지지된다.
DPMI "방법"은 DOS와 IBM PC에 특정된다.다른 컴퓨터 종류도 16비트에서 32비트로 업그레이드되었으며, 새로운 32비트 API와 새로운 메모리 관리/어드레싱 기능으로 운영체제를 업그레이드하여 고급 프로그램 지원을 제공하였다.예를 들어 OS/2 코어 시스템은 32비트 프로그램을 지원하며 GUI 없이도 실행할 수 있다.DPMI 솔루션은 지배적인 운영 체제 공급업체인 Microsoft가 32비트 Windows의 미래를 다루거나 다루기 전에 Windows 3.x에서 안정적으로 DOS 보호 모드 프로그램을 실행해야 하는 제3자의 필요성을 해결하는 데 주로 필요한 것으로 보인다.게다가 마이크로소프트는 32비트 전환에 대한 해답을 32비트 DOS로 보지 않고 완전히 다른(그리고 호환되지 않는) API를 가진 32비트 윈도라고 보았다.
호환성.
윈도 3.0은 "진정한 DPMI"[5]를 구현하고 DPMI 0.9에 대한 지원을 보고하는 반면,[11] DPMI 버전 1.0은 마이크로소프트 윈도에서는 구현되지 않았기 때문에 대부분의 프로그램과 DOS 확장자는 버전 0.9에 대해서만 작성되었다.그러나 "진정한 DPMI"를 구현하는 확장자는 거의 없다.
Qualitas 386MAX 베타 버전은 "진정한 DPMI"를 구현했으며 Windows의 KRNL386을 실행할 수 있었다.커맨드 라인에서 EXE가 나왔지만, 내부 e-메일로 출시된 제품에서 비활성화된 것으로 주장되었다.[5]그러나 DPMIONE (386MAX 코드에 근거한 밥 스미스)는 할 수 있다.현재 DPMIONE과 386은MAX DPMI 1.0을 완전히 지원하는 유일한 DPMI 호스트(예: 커밋되지 않은 메모리)이며 DPMI 1.0의 주요 지지자다.[12]
KRNL386.1991년부터 개발 중인 DR DOS '팬더'와 '스타트렉'의 SYS(일명 "멀티맥스")와 EMM386.[nb 1]Novell DOS 7, [10]Caldera OpenDOS 및 DR-DOS 7.02 이상의 EXE 메모리 관리자는 로딩될 때 DPMI를 기본적으로 지원/DPMI[=ON]옵션의KRNL386.SYS에는 명령줄 옵션도 있었다./VER=0.9 1.0DPMI 1.0 또는 0.9에 대한 지원을 제공한다.[13]DOS API 변환을 "보호 모드에서 인터럽트 21"이라고 불렀다.다중 사용자 DOS, 시스템 매니저 및 REAL/32도 DPMI를 지원한다.
가장 유명한 별개의 DPMI 커널은 아마도 CWSDPMI일 것이다; 그것은 DPMI 0.9를 지원하지만 문서화되지 않은 "DOS API translation"은 없다.토마스 파이텔로 불리는 "TRAN"에 의한 PMODE라고 불리는 또 다른 변종은 1990년대 데모 장면 동안 32비트 프로그래머들에게 인기가 있었다.많은 게임들이 DOS/4GW를 사용했는데, Rational Systems가 DOS/4G의 서브셋으로 개발하여 Watcom C 컴파일러와 함께 배포하였다.
HDPMI(HX DOS Extender의 일부)는 "DOS API 변환"과 거의 완전한 DPMI 1.0 구현을 제공한다.
DPMI 위원회
DPMI 1.0 위원회는 1990년부터 1991년까지 12개 그룹으로 구성되었다.
- 볼랜드 인터내셔널 (볼랜드 C, 터보 파스칼)
- IBM Corporation(PC DOS, OS/2)
- AI 설계자/에고 컴퓨터 솔루션/이클립스 컴퓨터 솔루션/에고 컴퓨팅(OS/286, OS/386 DOS 확장자)
- Intelligent Graphics Corporation(VM/386 다중 사용자 DOS)
- Intel Corporation(286, 386, 486 마이크로프로세서)
- Locus Computing Corporation(Merge)
- Lotus Development Corporation (Lotus 1-2-3)
- Microsoft Corporation(MS-DOS, Microsoft Windows)
- Phar Lap 소프트웨어(DOS 286, DOS 386, TNT)
- Phoenix BIOS, PMate, PForCe, Plink-86)
- 쿼터덱 오피스 시스템(QEMM, DESQview, DESQview/X)
- Rational Systems/Tenberry Software(DOS/16M, DOS/4G, DOS/4GW DOS 확장기)
참고 항목
- 가상 제어 프로그램 인터페이스(VCPI)
- DOS 보호 모드 서비스(DPMS)
- 헬릭스 클로킹
- NetWare I/O 하위 시스템(NIOS)
- 다중 사용자 DOS 연합
메모들
- ^ KRNL386.DR DOS "팬더"의 SYS에는 저작권 문자열 "1991,1992"가 있다.
참조
- ^ a b c d e f g Duncan, Ray (1991-02-12). "Power Programming – An Introduction to the DOS Protected Mode Interface". PC Magazine. Ziff-Davis Publishing Co. 10 (3): 367–371. ISSN 0888-8507. Retrieved 2016-05-21.
[…] The creators of the VCPI were well aware of its limitations and were already hard at work on a second generation specification called Extended VCPI (XVCPI), when Microsoft barged onto the scene with the beta-test versions of Windows 3.0 and its DPMI. For a few months it appeared that the fledgling DOS extender market would fragment into two mutually exclusive directions […] Microsoft turned control of the DPMI specification over to an industry committee with open membership, and the backers of the XVCPI effort decided to join forces behind the DPMI. […] Microsoft agreed to delete the portions of the DPMI that crossed into DOS extender territory - specifically, direct support of the DOS and ROM BIOS interrupts in protected mode. Consequently, DPMI, Version 0.9, the first public version, released by the DPMI Committee in May 1990, defines only the low-level or building-block functions […] Naturally, the higher level or DOS extender interface of Windows 3.0 still exists, but it has receded into the twilight zone of undocumented functionality. Undocumented, but hardly unusable […]
- ^ 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. 2 (2 ed.). Addison-Wesley Publishing Company, Inc. pp. 433–436. ISBN 0-201-56798-9.
- ^ Schmit, Michael L. (1995). Pentium Processor Optimization Tools (1 ed.). Cambridge, MA, USA: Academic Press, Inc. (AP Professional). ISBN 0-12-627230-1.
- ^ Microsoft (Fall 1989), DOS Protected Mode Interface Specification, Revision Prerelease 0.04 (Prerelease ed.)
- ^ a b c d Cole, Dave (1992-05-04). Neiminen, Bruce (ed.). "Re: MS-DOS DPMI extensions" (PDF) (Court document). Microsoft. pp. 123–124. MSC 00779372/00779373, MX3232616/3232617, Cole Exhibit 10, 2001-06-21. Archived (PDF) from the original on 2018-09-18. Retrieved 2018-09-17 – via Comes v. Microsoft - Plaintiff's exhibit 1306.
[…] [Ralph Lipe:] I think, they're checked into Win386 project. In the root MSDOS.DOC (look at all the .DOC files in the root) […] NO! This is an extremely sensitive matter since it basically tells […] ISVs (AKA DR-DOS and IBM) how to run standard mode Windows. You need to clear it with BradSi[lverberg] before distributing it. [Greg Lowney:] SoftNet makes a limulator. They read in the C7 manual that you can run C7 dos-extended if your limulator supports the MS-DOS extensions to the DPMI specification. So […] they called us to get a spec on exactly what those extensions are. Apparently they are not documented. […] They are not that complicated, mostly just what MS-DOS and BIOS calls we map for the application, and Qualitas had no trouble reverse engineering them. (The new 386MAX was, in beta, able to run KRNL386 from the command line, but I believe they disabled that feature in their final product to avoid stepping on our feet. 386MAX does, of course, support C7.) […] Ralph, was the spec distributed to the members of the DPMI committee? […] [Dave Cole:] We should absolutely NOT document this. […]
- ^ Microsoft (1990-10-31). Sokolov, Michael (ed.). "MS-DOS API EXTENSIONS FOR DPMI HOSTS Version Pre-Release 0.02" (Annotated retyped preliminary ed.) (published 1999-04-08). Retrieved 2016-05-23.
- ^ Microsoft (1989). Sokolov, Michael (ed.). "DOS PROTECTED MODE INTERFACE (DPMI) – SPECIFICATION Protected Mode API For DOS Extended Applications" (Annotated incompletely reconstructed ed.) (published 1999-04-08). Retrieved 2016-05-23.
- ^ a b c d Wurthmann, Gerold, Wopperer, 베른하르트, Wiesböck, 요한(1991년)."다이 DPMI-Spezifikation 아이네 클라이네 Einführung –"[그 DPMI 규격에 대한 소개].Vorträge Begleittexte zum 2.Entwicklerforum, Elektronik Thema:PC-Architektur, 17zum 설계 및 재산.9월 1991년, 뮌헨(책)(독일어로)(1판)[179월 1991년 Presentations과 PC구조에 두번째 개발자 포럼을 보조 재료, 뮌헨].뮌헨 독일:마르크트 &, Technik 출판사. Aktiengesellschaft. 우편 223파운드.(NB다.이번 포럼은 독일 잡지 디자인 및에 의해;Elektronik과 인텔.)조직되었다.
- ^ The DPMI Committee (1991-03-12). DOS Protected Mode Interface (DPMI) Specification – Version 1.0 – Application Program Interface (API) for Protected Mode DOS Applications (PDF). 1.0. Intel. pp. 4–5. Intel order code 240977-001. Archived from the original (PDF) on 2013-05-31. Retrieved 2013-05-24.
The initial DPMI prototype was developed by Microsoft for Windows version 3.0, with input from Lotus Corporation and Rational Systems, as part of a general effort to enhance Windows' performance by allowing the Windows kernel to run in extended memory. In parallel, Intel was working with manufacturers of multitasking environments, EMS emulators, and DOS extenders to ensure that an extended VCPI specification could fully utilize the 80386's virtualization and protection features. In February 1990, the parties involved in the above activities agreed to form the DPMI Committee and formulate an industry-wide standard for protected-mode DOS applications. The Committee released the first public DPMI Specification, Version 0.9 in May 1990.
- ^ a b c Schneider, Stefanie (1994-06-17). "Das Ende von DOS ist nur noch eine Frage der Zeit" [The end of DOS is only a question of time]. Computerwoche (in German). Munich, Germany: IDG Business Media GmbH. Archived from the original on 2022-01-02. Retrieved 2022-01-02.
- ^ "FILE: Windows Int 21h and NetBIOS Support for DPMI". Knowledge Base. Microsoft. 2004-08-04 [1999-12-04]. KB65128. Q65128. Archived from the original on 2020-02-20. Retrieved 2016-05-21.
- ^ Sokolov, Michael (1998-05-06). "lA correction to a previous posting". lynx-dev. Archived from the original on 2020-02-20. Retrieved 2020-02-20.
- ^ Schulman, Andrew; Brown, Ralf D.; Maxey, David; Michels, Raymond J.; Kyle, Jim (1994) [November 1993]. Undocumented DOS: A programmer's guide to reserved MS-DOS functions and data structures - expanded to include MS-DOS 6, Novell DOS and Windows 3.1 (2 ed.). Reading, Massachusetts, USA: Addison Wesley. p. 194. ISBN 0-201-63287-X. (xviii+856+vi pages, 3.5"-floppy) Errata: [1][2]
추가 읽기
- An Introduction To The DOS Protected Mode Interface – White Paper. Intel. 1993. Intel order code 240787-003. (22쪽)
- DOS Protected Mode Interface (DPMI) Specification – Protected Mode API For DOS Extended Applications – Version 0.9. Intel. 1990-07-26. Archived from the original on 2012-04-25. (일반 페이지)
- The DPMI Committee (1991-03-12). DOS Protected Mode Interface (DPMI) Specification – Version 1.0 – Application Program Interface (API) for Protected Mode DOS Applications (PDF). Intel. Intel order code 240977-001. Archived from the original (PDF) on 2013-05-31. Retrieved 2013-05-31. (160쪽)
- Sokolov, Michael (1998-04-26). "Some history on DPMI". Archived from the original on 2016-05-22. [3] [4]
- Chui, Paul (1992-02-01). "Undocumented DOS From Protected-Mode Windows 3". Dr. Dobb's Journal. Archived from the original on 2018-09-20. Retrieved 2018-09-20.
- "MS-DOS 5.0 DPMI" (in English and Japanese). 2016-07-24 [2016-06-22]. Archived from the original on 2018-09-17. Retrieved 2018-09-17. (PC-98 플랫폼용 일본어 MS-DOS 5.00A에서의 MSDPMI).
외부 링크
- "DOS Protected Mode Interface (DPMI) Specification – Protected Mode API For DOS Extended Applications – Version 0.9" (HTML converted ed.). Tenberry Software, Inc. 1998 [1990-07-26]. Archived from the original on 2016-05-21. Retrieved 2006-12-19.
- "DPMI 1.0 Programming API Specification" (HTML converted ed.). DJ Delorie. April 1996 [1991]. Archived from the original on 2016-05-21. Retrieved 2019-07-28.
- Sandmann, Charles W. "CWSDPMI". Archived from the original on 2015-11-16.
- Japheth. "HX DOS Extender". Archived from the original on 2014-10-13.
- Smith, Bob. "DPMIONE Documentation File Version 0.91". Archived from the original on 2016-05-21. Retrieved 2019-07-28.