DJGPP

DJGPP
開発者DJデロリー
安定版リリース
2.05 / 2015年11月3日[ 1 ] (2015年11月3日
オペレーティング·システムDOSおよび 32 ビットWindows
タイプコンパイラ
ライセンスGNU GPL
Webサイトwww.delorie.com/djgpp
リポジトリ

DJのGNUプログラミング・プラットフォームDJGPP[ 2 ]は、 Intel 80386レベル以上、IBM PC互換機用のソフトウェア開発スイートであり、 DOSオペレーティングシステムをサポートしています。1989年にプロジェクトを開始したDJ Delorieが主導しています。これは、GNUコンパイラ・コレクション(GCC)と、主にBashfindtarls、G AWKsedldなどのGNUユーティリティをDOSプロテクト・モード・インターフェース(DPMI)に移植したものです。サポートされている言語は、CC++Objective-C /C++、AdaFortranPascalです。当初はDJGCCと呼ばれていましたが、後にC++サポートが追加された際にDJGCCからDJGPPに改名されました。ただし、「PP」は「Plus Plus」ではなく「Programming Platform」の略だと言われています。[ 3 ]

概要

このコンパイラは32ビットコードを生成し、ネイティブでは32ビット保護モードで動作しますが、OSの基本的なサポートが必要な場合は16ビットDOSコールに切り替えます。ただし、Open Watcom C/C++コンパイラとは異なり、安定性向上のためNULLポインタ保護を優先するため、ゼロベースのフラットモデルではありません。現在はCOFF形式のバリアントに基づいています。適切なDPMIホスト(CWSDPMI r7またはHDPMI32など)を使用する場合、純粋なDOS環境で最大4GBのRAMにアクセスできます。

2025 年 4 月現在、DJGPP 2 の主なコンポーネントは次のとおりです。

DJGPP を使えば、UNIX / Linux などのソフトウェアを DOS 向けにクロスコンパイルすることも可能です。DJGPP ライブラリとプログラムはどちらもこの方法でコンパイル、リンクし、DOS または DOS エミュレータを搭載したマシンに展開できます。

互換性

DJGPPは、ANSI CおよびC99規格、DOS API、そして古いPOSIX系環境と互換性のあるインターフェースをプログラマに提供します。コンパイルされたバイナリは長いファイル名(LFN)に対応しており、ほとんどの32ビットWindowsではデフォルトでLFNを処理できますが、 Windows上のグラフィカルプログラムに必要なWin16またはWin32 APIは使用できません。[ 5 ]通常のDOSまたはWindows NT 4でLFNをサポートするためのTSR( Terminate-and-Stay-resident)プログラムが利用可能です。

DJGPP は 32 ビット保護モードで動作しますが、そのスタブとライブラリは多くの 16 ビット DOS および BIOS 呼び出しに大きく依存しています。Windowsのx86-64バージョンは16 ビット プログラムをサポートしていないため、[ 6 ] [ 7 ] NTVDMはなく、DJGPP アプリケーションは実行できません。x86-64 システムではこれらのアプリケーションはエミュレーション ( DOSBoxなど)、x86 仮想化( VirtualBoxなど)、または類似のもの (Linux のDOSEMUなど) を通じてのみ機能します。この問題は、ロング モードの x86-64 プロセッサが、IA-32 プロセッサで 16 ビット コードを実行するために使用される仮想 8086 モードをサポートしていないために発生します。VT -xを備えた新しい x86 CPU は、ページングされたリアル モードと無制限のゲスト モード実行をサポートしています。

参照

参考文献

  1. ^ 「お知らせ:DJGPP V2.05 リリース」ニュースグループ:  comp.os.msdos.djgpp。2015年11月3日。
  2. ^ Eli Zaretskii (1999年7月). 「DJGPPプロジェクト」 . 2009年7月20日閲覧
  3. ^ 「djgppの歴史」
  4. ^ 「メールアーカイブ: djgpp-announce/2024/10/01/13:27:52」 . www.delorie.com . 2025年4月12日閲覧
  5. ^ Wall, Kurt; Von Hagen, William (2004). The Definitive Guide to GCC . Apress. pp.  47– 48. ISBN 9781590591093もう 1 つの人気のある (ただし古くなった) GCC ベースの開発システムは、DJ[sic] Delorie の DOS システム用の無料の 32 ビット開発環境である DJGPP です
  6. ^ 「ガイド:DJGPPとは?」 。 2018年8月1日時点のオリジナルよりアーカイブ2015年11月22日閲覧。DJGPPプログラムの対象ハードウェアプラットフォームは、DOSまたはDOS互換オペレーティングシステムを搭載したPCプラットフォームです。DJGPPプログラムはWindowsの「DOSプロンプト」ボックスで実行されます。
  7. ^ Microsoft (2007年10月11日). 「64ビットWindowsの制限事項一覧」 . 2010年4月20日時点のオリジナルよりアーカイブ2010年4月20日閲覧。16ビットMS-DOSおよびMicrosoft Windows 3.xユーティリティは起動しません。これらのプログラムを起動しようとすると、「Program.exeは有効なWin32アプリケーションではありません」というエラーメッセージが表示されます。