DJGPP

DJGPP
開発者DJデロリー
安定版リリース
2.05 / 2015年11月3日[ 1 ] (2015年11月3日
リポジトリ
オペレーティングシステムDOSおよび32ビットWindows
タイプコンパイラ
ライセンスGNU GPL
ウェブサイト 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でデフォルトでそのような名前を処理できますが、 Windows上のグラフィカルプログラムに必要なWin16またはWin32 APIは使用できません。[ 5 ]プレーンDOSまたはWindows NT 4でLFNをサポートするための終了して常駐する(TSR)プログラムが利用可能です

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 もう一つの人気のある、しかし古くなった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アプリケーションではありません」というエラーメッセージが表示されます。