PMODE

PMODE

PMODE는 1990년대 중후반 여러 IBM PC 호환 DOS 어플리케이션에 사용되는 DOS 익스텐더다.토마스 "트란" 파이텔에 의해 만들어졌으며, 1994년에 첫 번째 버전이 공개되었다.원래의 PMODE는 특히 볼랜드의 TASM을 사용하여 x86 조립자로 작성된 프로그램과 함께 사용되도록 작성되었다.이후 PMODE/W라는 이름으로 DOS/4GW의 드롭인 대체품으로 사용하기 위해 확대되었다.

PMODE는 유통 아카이브에 소스코드가 포함된 상태로 출시되었는데, 그 사용에 대한 유일한 제약은 이윤을 위해 판매할 수 없고, 이윤을 위해 판매할 익스텐더의 커널로 사용할 수 없다는 점이었다.이전 출판물들은 또한 원작자들에게 이 제품에 대한 공로를 인정해줄 것을 요청하였다.

원래 PMODE/W에 대한 소스 코드는 무료 소프트웨어에서 제한 없이 사용할 수 있지만, 저자가 제품에 인정받았다는 요청으로 다시 한번 대중에게 제공되지 않았다.PMODE/W를 사용하는 상용 및 쉐어웨어 릴리스에서는 라이센스를 구매해야 한다.대학생들이 100달러 할인된 가격으로 라이선스를 구입할 수 있지만 PMODE/W v1.33 출시(1996) 당시 비용은 500달러였다.

2002년 현재 PMODE/W는 상용 소프트웨어에서 자유롭게 사용될 수 있다. 단, 소프트웨어가 DOS 익스텐더가 아닐 경우.

특징들

PMODE는 다른 DOS 익스텐더와 마찬가지로 도스 운영 체제의 기본 실행 모드인 리얼 모드와 반대로 386+ CPU의 보호 모드에서 실행되는 32비트 도스 애플리케이션의 생성에 사용되며, 구형 x86 프로세서(예: 8086)가 지원하는 유일한 운영 모드다.특히 1MB(1024^2바이트) 이상의 메모리에 대한 간편한 액세스를 용이하게 하며, 확장된 메모리 보드 등 특별한 하드웨어가 없으면 실제 모드에서 처리할 수 없다(A20 라인이 활성화된 80286 이상 프로세서에서 세그먼트:오프셋 주소는 최대 1114095(65536*16+65520, 16개 세그먼트 64K eac)를 허용한다.h, 그리고 분할된 메모리가 첫 번째 메가바이트를 초과하여 작동하는 방식 때문에 16바이트 문단이 1개 미만인 추가 세그먼트. 1MB 이상의 추가 공간은 HMA 또는 High Memory Area로 알려져 있다.)

PMODE와 다른 인기 있는 확장자 사이의 주요 차이점은 작은 풋프린트로 PMODE 전체를 DOS 확장 실행 파일에 포함시킬 수 있으며, PMODE의 크기를 약 10(이진) 킬로바이트까지 늘릴 수 있으며, 압축(실행 가능한 압축 참조)은 스토리지 설치 공간을 더 줄일 수 있도록 지원되지만 런타임 밈은 지원하지 않는다.요구 사항).따라서 PMODE는 크기가 (일반적으로 구형 컴퓨터 시스템에 있었던) 문제인 경우 종종 적절하지만, 별도의 (*) DOS 익스텐더에 대한 외부 의존성을 없앨 수 있는 장점도 있다(예: DOS 기반 "구조 디스크" 환경에서는 당연히 고려할 수 없다).(DOS4G/W와 같은 대부분의 다른 확장자는 보호 모드 실행 파일의 시작 부분에 소형 리얼 모드 프로그램(스텁이라고 함)을 부착해야 하며, DOS4GW.EXE와 같은 외부 DOS 확장 실행 파일을 찾아 로드할 수 있는 스텁이다.

PMODE는 DOS 보호 모드 인터페이스(DPMI) 사양 버전 0.9의 서브셋과 DPMI의 일부가 아닌 특정 확장을 구현한다. PMOD DOS 확장 실행 파일이 실행될 때 DPMI 호스트가 이미 로드되어 있을 때 PMODE는 다소 수동적인 역할을 수행하며 일반적으로 DPMI 요청을 원래 제공자에게 전달한다.그러나 다른 DOS 확장자와는 달리 PMODE는 XMS(HIMEM의 확장자 등)와 모두 호환되지만 메모리 관리자의 존재는 요구하지 않는다.SYS) 및 VCPI(EM386과 같은 확장 메모리 관리자 제공).EXE 또는 QEMM), 그리고 가능하다면 그러한 서비스를 이용할 것이다.Windows NT 기반 Windows 시리즈(예: XP 또는 Vista)에서는 DOS 호환성 기능이 3.x/9x 시리즈(Windows Millennium 포함)만큼 고도로 개발되지 않았지만 DPMI 호환성은 Windows가 로드되는 동안 많은 PMODE 프로그램을 실행할 수 있게 한다.

불완전한 DPMI 구현과 가상 메모리에 대한 지원 부족(수요 페이징, 스와핑 등)이 PMODE가 일부 애플리케이션에 적합하지 않을 수 있는 이유다.PMODE는 전적으로 x86 어셈블리 언어로 작성되었으며, 초기 버전은 고급 언어(C 포함)로 작성된 프로그램에서 직접 사용할 수 없었다.PMODE/W의 가격은 당시 대부분의 다른 DOS 익스텐더들이 비슷한 또는 더 높은 가격(예: Phar Lap DOS 익스텐더)을 명령했음에도 불구하고 일부에 대한 억제책이었을 수 있다.

Intel 80386 설명서에 기술된 사용률이 저조한 고급 기능의 실제 적용을 보여주는 샘플 코드로서의 PMODE의 역할도 과소평가해서는 안 된다. 많은 개발자의 경우, 이는 DOS 확장자로서 PMODE의 중요성을 능가할 수 있기 때문이다.

파생 버전

PMODE/WWatcom C/C++ 컴파일러용 PMODE 버전이다.찰스 "데어데빌" 셰폴드와 토마스 파이텔이 개발했다.최종 실행 파일의 설치 공간은 추가된 기능 때문에 원래 PMODE보다 약간 크지만, 자체 설명서에 따르면 여전히 12 킬로바이트 미만이다.

PMODE/DJ는 Matthias GrimrathDJGPP 컴파일러와 함께 사용하기 위해 PMODE 3.07에서 도출한 DOS 익스텐더다.PMODE/DJ는 Free Pascal과 함께 사용할 수도 있다.

PMODE를 사용한 애플리케이션

PMODE는 원래 데모센 데모와 함께 사용하도록 설계되었으며, 성능과 콤팩트함 때문에 매우 인기를 끌게 된 응용 분야였다.PMODE의 이러한 특징들은 또한 게임과 임베디드 시스템의 개발자들과 관련이 있게 만들었다.

PMODE/W는 오픈 와트콤 컴파일러 배포에 포함된 4개의 DOS 확장기 중 하나이다.PMODE/W는 TMT Pascal이 사용하는 기본 DOS 확장기도 하다.

외부 링크