コンテンツにスキップ

英文维基 | 中文维基 | 日文维基 | 草榴社区

DJGPP

出典: フリー百科事典『ウィキペディア(Wikipedia)』
DJGPP
DJGPP環境上で動作するGCC
開発元 DJ Delorie
最新版
2.05 / 2015年11月3日 (8年前) (2015-11-03)[1]
リポジトリ ウィキデータを編集
対応OS DOSおよび32-bit版Windows
種別 コンパイラ
ライセンス GNU GPL
公式サイト www.delorie.com/djgpp
テンプレートを表示

DJ's GNU Programming Platform (DJGPP)[2]DOSが動作するIntel 80386以上相当のIBM PC/AT互換機用のソフトウェア開発スイートである。プロジェクトはDJ Delorieにより1989年に立ち上げられた。GNUコンパイラコレクション(GCC)や、Bashfindtarls、GAWKsed、およびldなどのユーティリティプログラム(多くはGNUプロジェクトのものである)をDOS Protected Mode Interface (DPMI)へ移植したものである。C言語C++Objective-C/C++、AdaFortran、およびPascalなどに対応している。

概要

[編集]

コンパイラは32ビットのプロテクトモードでネイティブに動作し、32ビットのコードを生成する。ただし、OSの機能を利用する際に16ビットのDOS呼び出し命令を使用する。安定のためヌルポインタを保護するためzero-based flat model[訳語疑問点]ではない点でWatcom C/C++コンパイラ英語版と異なる。現在[いつ?]COFFの派生種を使用する。適切なDPMIホスト(例: CWSDPMI r7やHDPMI32)の下では純粋なDOSから最大4 GBのRAMを利用可能である。

2020年8月 (2020-08)現在、DJGPP 2は主要なコンポーネントとして以下を含む:

DJGPPを使用して例えばUNIX/LinuxからDOSへクロスコンパイルすることも可能である。DJGPPライブラリとプログラムはともにDOSまたはDOSエミュレータを搭載したマシンへコンパイル・リンク・デプロイすることができる。

互換性

[編集]

DJGPPはプログラマに対しANSI CC99の規格、DOSのAPI、およびより古いPOSIXライクな環境と互換性を持つインターフェイスを提供する。コンパイルされたバイナリは長いファイル名(Long filename、LFN)に対応し、32ビットのWindowsのそのようなファイル名を扱うことができる。しかし、多くのGUIアプリケーションが必要とするWin16およびWin32 APIは利用できない。[3]DOSおよびWindows NT 4でLFN対応のTerminate and Stay Resident (TSR)プログラムが利用可能である。

DJGPPは32ビットのプロテクトモードで動作するが、そのスタブやライブラリは多くの16ビットでのDOSやBIOSへの呼び出しを必要とする。x86-64版のWindowsは16ビットのプログラムをサポートせず[4][5]NTVDMも存在しないため、DJGPPによるアプリケーションを実行できない。x86-64システムではこれらはエミュレーション(DOSBoxなど)やx86仮想化VirtualBoxなど)、もしくはそれに類似した方法(LinuxのDOSEMU英語版など)が必要となる。これはLongモードのx86-64プロセッサが、16ビットの命令を実行するためIA-32プロセッサが利用する仮想86モードをサポートしていないためである。VT-xを利用できるより新しいx86のCPUはページ化されたリアルモードと無制限のゲストモードでの実行をサポートしている。

関連項目

[編集]

脚注

[編集]
  1. ^ "Announce: DJGPP V2.05 Released". Newsgroupcomp.os.msdos.djgpp. 3 November 2015.
  2. ^ Eli Zaretskii (Jul 1999). “The DJGPP Project”. 20 Jul 2009閲覧。
  3. ^ Wall, Kurt; Von Hagen, William (2004). The Definitive Guide to GCC. Apress. pp. 47–48. ISBN 9781590591093. https://books.google.com/books?id=VV1gB-9S9BIC&pg=PA47. ""Another popular, though aging, GCC-based development system is DJGPP, D.J.[sic] Delorie's free 32-bit development environment for DOS systems."" 
  4. ^ Guide: What is DJGPP?”. November 22, 2015閲覧。 “"The target hardware platform for DJGPP programs is a PC platform ... running DOS ... or a DOS-compatible operating system DJGPP programs run under Windows' "dos prompt" boxes."”
  5. ^ Microsoft (11 Oct 2007). “List of limitations in 64-Bit Windows”. 20 April 2010時点のオリジナルよりアーカイブ。20 Apr 2010閲覧。 “"16-bit MS-DOS and Microsoft Windows 3.x utilities will not start. If you attempt to start such a program, you receive a "Program.exe is not a valid Win32 application" error message."”

外部リンク

[編集]