DJGPP

Реализация набора инструментов GNU для DOS

DJGPP
Разработчик(и)Диджей Делори
Стабильный релиз
2.05 / 3 ноября 2015 г. ; 9 лет назад [1] ( 2015-11-03 )
Репозиторий
  • www.delorie.com/bin/cvsweb.cgi/djgpp/
Операционная системаDOS и 32-битная Windows
ТипКомпилятор
ЛицензияGNU GPL
Веб-сайтwww.delorie.com/djgpp

DJ's GNU Programming Platform ( DJGPP ) [2] — это программный пакет для разработки для Intel 80386- уровня и выше, совместимых с IBM PC , который поддерживает операционные системы DOS . Он управляется DJ Delorie, который начал проект в 1989 году. Это порт GNU Compiler Collection (GCC) и в основном утилит GNU, таких как Bash , find , tar , ls , G AWK , sed и ld , на DOS Protected Mode Interface (DPMI). Поддерживаемые языки включают C , C++ , Objective-C /C++, Ada , Fortran и Pascal . Первоначально он назывался DJGCC , а затем был переименован из DJGCC в DJGPP, когда была добавлена ​​поддержка C++, хотя «PP» было сказано, что означает «Programming Platform», а не «Plus Plus». [3]

Обзор

Компилятор генерирует 32-битный код, который изначально работает в 32-битном защищенном режиме , переключаясь обратно на 16-битные вызовы DOS для базовой поддержки ОС. Однако, в отличие от компилятора Open Watcom C/C++ , это не плоская модель с нулевой базой, поскольку он предпочитает защиту указателя NULL для лучшей стабильности. В настоящее время он основан на варианте формата COFF . Он может получить доступ к 4 ГБ ОЗУ в чистом DOS при использовании подходящего хоста DPMI (например, CWSDPMI r7 или HDPMI32).

По состоянию на август 2020 года [обновлять]основными компонентами DJGPP 2 являются:

Также возможно использовать DJGPP для кросс-компиляции программного обеспечения в DOS, например, в UNIX / Linux. И библиотеки DJGPP, и программы могут быть скомпилированы таким образом, связаны и затем развернуты на машинах с DOS или эмуляторами DOS.

Совместимость

DJGPP предоставляет программисту интерфейс, совместимый со стандартами ANSI C и C99 , API DOS и более старой средой типа POSIX . Скомпилированные двоичные файлы поддерживают длинные имена файлов (LFN) и могут обрабатывать такие имена в большинстве 32-разрядных Windows по умолчанию, но они не могут использовать API Win16 или Win32, необходимые графическим программам в Windows. [4] Доступны программы terminate-and-stay-resident (TSR) для поддержки LFN в простых DOS или Windows NT 4 .

Хотя DJGPP работает в 32-битном защищенном режиме , его заглушка и библиотека в значительной степени зависят от многих 16-битных вызовов DOS и BIOS. Поскольку версии Windows x86-64 не поддерживают 16-битные программы, [5] [6] нет NTVDM , и приложения DJGPP не могут быть запущены. В системах x86-64 эти приложения работают только через эмуляцию (например, DOSBox ), виртуализацию x86 (например, VirtualBox ) или подобное (например, DOSEMU в Linux ). Эта проблема возникает из-за того, что в длинном режиме процессоры x86-64 не поддерживают виртуальный режим 8086, используемый для запуска 16-битного кода в процессорах IA-32. Более новые процессоры x86 с VT-x поддерживают страничный реальный режим и неограниченное выполнение гостевого режима.

Смотрите также

Ссылки

  1. ^ "Объявление: Выпущен DJGPP V2.05". Группа новостей : comp.os.msdos.djgpp. 3 ноября 2015 г.
  2. ^ Эли Зарецкий (июль 1999). "Проект DJGPP" . Получено 20 июля 2009 .
  3. ^ "История djgpp".
  4. ^ Уолл, Курт; Фон Хаген, Уильям (2004). Полное руководство по GCC. Apress. С.  47–48 . ISBN 9781590591093. Еще одной популярной, хотя и устаревшей, системой разработки на основе GCC является DJGPP, бесплатная 32-битная среда разработки DJ[sic] Delorie для систем DOS.
  5. ^ "Руководство: Что такое DJGPP?" . Получено 22 ноября 2015 г. Целевой аппаратной платформой для программ DJGPP является платформа ПК ... работающая под управлением DOS ... или совместимой с DOS операционной системы Программы DJGPP запускаются в окнах "dos prompt" Windows.
  6. ^ Microsoft (11 октября 2007 г.). "Список ограничений в 64-разрядной Windows". Архивировано из оригинала 20 апреля 2010 г. . Получено 20 апреля 2010 г. . 16-разрядные утилиты MS-DOS и Microsoft Windows 3.x не запускаются. При попытке запустить такую ​​программу вы получите сообщение об ошибке "Program.exe не является допустимым приложением Win32".
  • Официальный сайт
  • Веб-страница DJ Delorie
Взято с "https://en.wikipedia.org/w/index.php?title=DJGPP&oldid=1260444485"