DJGPP
"오늘의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 C 및 C99 표준, 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 C 및 C99 표준, 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도 사용 가능) |
Autoconf | 2.5.9 |
Automake | 1.9.4 |
Binutils | 2.34 |
GNU Bash | 4.1.17 |
GNU Bison, Flex | 2.4.1, 2.5.4 |
GNU Emacs | 24.5 |
GNU MPC, MPFR | 1.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도 사용 가능) |
Autoconf | 2.5.9 |
Automake | 1.9.4 |
Binutils | 2.34 |
GNU Bash | 4.1.17 |
GNU Bison | 2.4.1 |
Flex | 2.5.4 |
GNU Emacs | 24.5 |
GNU MPC | 1.1.0 |
MPFR | 4.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