맨위로가기

DJGPP

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

DJGPP는 프로그래머에게 ANSI C 및 C99 표준, DOS API, POSIX와 유사한 환경을 제공하는 C/C++ 컴파일러, 링커, 디버거를 포함하는 개발 도구 모음이다. 32비트 보호 모드에서 실행되지만, 16비트 DOS 및 BIOS 호출에 의존하여 x86-64 시스템에서 에뮬레이션이나 가상화를 통해 작동해야 한다. DJGPP는 32비트 코드를 생성하며, DOS 환경에서 최대 4GB의 RAM에 액세스할 수 있으며, UNIX/리눅스 등에서 DOS용 소프트웨어를 크로스 컴파일하는 데에도 사용될 수 있다.

더 읽어볼만한 페이지

  • 도스 확장자 - DOS/32
    DOS/32는 x86 기반 PC에서 32비트 보호 모드를 제공하여 DOS 프로그램이 4GB 메모리에 접근하고 32비트 명령어 집합으로 실행 속도를 높이는 DOS 확장기이다.
  • 도스 확장자 - DOS/4G
    DOS/4G는 프로그래머가 특수 코드를 작성하지 않고도 확장 메모리에 접근할 수 있도록 해주는 메모리 확장 라이브러리이며, 왓콤 C/C++ 컴파일러와 함께 배포된 DOS/4GW는 DOS/4G의 하위 집합이다.
  • 1989년 소프트웨어 - 한/글
    한/글은 1980년대 후반부터 개발된 대한민국의 대표적인 워드프로세서로, 다양한 운영체제 지원, 정부 전자 문서 시스템에서의 역할, 꾸준한 기능 발전과 사용자 편의성 및 국제 표준을 고려한 업데이트를 통해 발전해왔다.
  • 1989년 소프트웨어 - 마이크로소프트 오피스
    마이크로소프트 오피스는 마이크로소프트에서 개발한 사무용 소프트웨어 제품군으로, 워드 프로세서, 스프레드시트, 프레젠테이션 도구 등 다양한 응용 프로그램을 포함하며, 1989년 맥용으로 처음 출시된 이후 다양한 플랫폼에서 사용 가능하며, 구독형 서비스인 마이크로소프트 365로 전환을 가속화하고 있다.
  • C 컴파일러 - GNU 컴파일러 모음
    GNU 컴파일러 모음(GCC)은 리처드 스톨먼이 1987년 처음 출시한 자유 소프트웨어 컴파일러 시스템으로, C, C++, Fortran, Ada, Go 등 다양한 프로그래밍 언어를 지원하며 여러 명령어 집합 아키텍처와 플랫폼에서 널리 사용된다.
  • C 컴파일러 - MinGW
    MinGW는 윈도우에서 GNU 툴체인을 사용할 수 있게 해주는 프로젝트이며, MSYS를 통해 유닉스 셸 환경을 제공하고, C, C++, Objective-C 등 다양한 언어를 지원하며 윈도우 API를 직접 호출하여 호환성 계층 DLL을 요구하지 않는다.
DJGPP - [IT 관련 정보]에 관한 문서
기본 정보
개발자DJ Delorie
최신 버전2.05
최신 릴리스 날짜2015년 11월 3일
운영체제도스 및 32비트 윈도우
장르컴파일러
라이선스GNU GPL
웹사이트DJGPP 공식 웹사이트
개요
설명DOS용 GNU 툴체인 구현

2. 호환성

DJGPP는 프로그래머에게 ANSI CC99 표준, DOS API, 그리고 POSIX와 유사한 환경과 호환되는 인터페이스를 제공한다. 컴파일된 바이너리는 긴 파일 이름(LFN)을 인식하며, 기본적으로 대부분의 32비트 Windows 환경에서 해당 이름을 처리할 수 있지만, Windows에서 그래픽 프로그램이 필요로 하는 Win16 또는 Win32 API는 사용할 수 없다.[4]

2. 1. 운영체제 호환성

컴파일러는 기본 OS 지원을 위해 16비트 도스 호출로 전환하는 동안 32비트 보호 모드에서 네이티브로 실행되는 32비트 코드를 생성한다. 그러나 오픈 왓콤 C/C++과 달리 제로 기반 플랫 모델이 아닌데, 이는 더 나은 안정성을 위해 NULL 포인터 보호를 선호하기 때문이다. 현재는 일종의 COFF 포맷에 기반을 둔다. 적절한 DPMI 호스트(예: CWSDPMI r7 또는 HDPMI32)를 사용할 때 순수 도스에서 최대 4GB의 RAM에 접근이 가능하다.[4]

DJGPP는 프로그래머에게 ANSI CC99 표준, DOS API, 그리고 이전 POSIX와 유사한 환경과 호환되는 인터페이스를 제공한다. 컴파일된 바이너리는 긴 파일 이름(LFN)을 인식하며, 기본적으로 대부분의 32비트 Windows 환경에서 해당 이름을 처리할 수 있지만, Windows에서 그래픽 프로그램이 필요로 하는 Win16 또는 Win32 API는 사용할 수 없다. 일반 DOS 또는 Windows NT 4 환경에서 LFN을 지원하기 위한 상주 프로그램(TSR)이 있다.

DJGPP는 32비트 보호 모드에서 실행되지만, 스텁과 라이브러리는 많은 16비트 DOS 및 BIOS 호출에 크게 의존한다. Windows의 x86-64 버전은 16비트 프로그램에 대한 지원을 제공하지 않기 때문에,[5][6] NTVDM이 없으며, DJGPP 응용 프로그램은 실행할 수 없다. x86-64 시스템에서는 이러한 응용 프로그램이 에뮬레이션(예: DOSBox), x86 가상화(예: VirtualBox) 또는 유사한 방식(예: Linux의 DOSEMU)을 통해서만 작동한다. 이 문제는 긴 모드에서 x86-64 프로세서가 IA-32 프로세서에서 16비트 코드를 실행하는 데 사용되는 가상 8086 모드를 지원하지 않기 때문에 발생한다. VT-x를 갖춘 최신 x86 CPU는 페이지 기반 리얼 모드 및 무제한 게스트 모드 실행을 지원한다.

2. 2. 하드웨어 호환성 문제

DJGPP는 32비트 보호 모드에서 실행되지만, 스텁과 라이브러리는 많은 16비트 DOS 및 BIOS 호출에 크게 의존한다. Windows의 x86-64 버전은 16비트 프로그램에 대한 지원을 제공하지 않기 때문에,[5][6] NTVDM이 없으며, DJGPP 응용 프로그램은 실행할 수 없다. x86-64 시스템에서는 이러한 응용 프로그램이 DOSBox와 같은 에뮬레이션, VirtualBox와 같은 x86 가상화, 또는 Linux의 DOSEMU와 같은 유사한 방식을 통해서만 작동한다. 이 문제는 긴 모드에서 x86-64 프로세서가 IA-32 프로세서에서 16비트 코드를 실행하는 데 사용되는 가상 8086 모드를 지원하지 않기 때문에 발생한다. VT-x를 갖춘 최신 x86 CPU는 페이지 기반 리얼 모드 및 무제한 게스트 모드 실행을 지원한다.

3. 구성 요소

DJGPP는 32비트 코드를 생성하며, 기본적인 OS 지원을 위해 16비트 DOS 호출로 전환하면서 32비트 보호 모드에서 네이티브로 실행된다. Open Watcom C/C++ 컴파일러와 달리, 안정성을 위해 NULL 포인터 보호를 선호하기 때문에 제로 기반 플랫 모델은 아니다. 현재 COFF 형식의 변형을 기반으로 하며, 적절한 DPMI 호스트(예: CWSDPMI r7 또는 HDPMI32)를 사용할 경우 순수한 DOS 환경에서 최대 4GB의 RAM에 액세스할 수 있다.

DJGPP를 사용하여 UNIX/리눅스 등에서 DOS용 소프트웨어를 크로스 컴파일하는 것도 가능하다. DJGPP 라이브러리와 프로그램을 모두 이런 방식으로 컴파일하고, 링크한 다음 DOS 또는 DOS 에뮬레이터가 있는 컴퓨터에 배포할 수 있다.

3. 1. 핵심 개발 도구

현재, DJGPP 2의 주요 구성 요소는 다음과 같다.

구성 요소버전
GNU 컴파일러 모음9.3.0 (10.2.0도 사용 가능)
Autoconf2.5.9
Automake1.9.4
Binutils2.34
GNU Bash4.1.17
GNU Bison, Flex2.4.1, 2.5.4
GNU Emacs24.5
GNU MPC, MPFR1.1.0, 4.1.0


3. 2. 기타 유틸리티

DJGPP는 32비트 보호 모드에서 네이티브로 실행되며, 기본적인 OS 지원을 위해 16비트 DOS 호출로 전환하면서 32비트 코드를 생성한다. Open Watcom C/C++ 컴파일러와 달리, 안정성을 위해 NULL 포인터 보호를 선호하기 때문에 제로 기반 플랫 모델은 아니다. 현재 COFF 형식의 변형을 기반으로 하며, 적절한 DPMI 호스트(예: CWSDPMI r7 또는 HDPMI32)를 사용할 경우 순수한 DOS 환경에서 최대 4GB의 RAM에 액세스할 수 있다.[1]

2020년 8월 현재, DJGPP 2의 주요 구성 요소는 다음과 같다.[1]

구성 요소버전
GNU 컴파일러 모음9.3.0 (10.2.0도 사용 가능)
Autoconf2.5.9
Automake1.9.4
Binutils2.34
GNU Bash4.1.17
GNU Bison2.4.1
Flex2.5.4
GNU Emacs24.5
GNU MPC1.1.0
MPFR4.1.0



DJGPP를 사용하여 UNIX/리눅스 등에서 DOS용 소프트웨어를 크로스 컴파일하는 것도 가능하다. DJGPP 라이브러리와 프로그램을 모두 이런 방식으로 컴파일하고, 링크한 다음 DOS 또는 DOS 에뮬레이터가 있는 컴퓨터에 배포할 수 있다.[1]

참조

[1] 간행물 Announce: DJGPP V2.05 Released https://groups.googl[...] 2015-11-03
[2] 웹사이트 The DJGPP Project http://www.delorie.c[...] 1999-07
[3] 웹사이트 The history of djgpp http://www.delorie.c[...]
[4] 서적 The Definitive Guide to GCC https://books.google[...] Apress
[5] 웹사이트 Guide: What is DJGPP? http://www.delorie.c[...] 2015-11-22
[6] 웹사이트 List of limitations in 64-Bit Windows http://support.micro[...] 2007-10-11
[7] 뉴스 Announce: DJGPP V2.05 Released https://groups.googl[...] comp.os.msdos.djgpp 2015-11-03
[8] 웹인용 The DJGPP Project http://www.delorie.c[...] 1999-07
[9] 서적 The Definitive Guide to GCC https://books.google[...] Apress



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com