DJGPP - DJGPP

DJGPP
Djgpp logo.svg
Среда DJGPP, использующая GCC
Среда DJGPP, использующая GCC
Разработчики)Диджей делори
Стабильный выпуск
2.0.5 / 3 ноября 2015 г.; 5 лет назад (2015-11-03)[1]
Репозиторий Отредактируйте это в Викиданных
Операционная системаДОС и 32-битный Windows
ТипКомпилятор
ЛицензияGNU GPL
Интернет сайтwww.delorie.com/ djgpp

Платформа программирования GNU от DJ (DJGPP)[2] это пакет разработки программного обеспечения для Intel 80386 -уровень и выше, IBM Совместимость с ПК который поддерживает ДОС операционные системы. Им руководит DJ Delorie, который начал проект в 1989 году. порт из Коллекция компиляторов GNU (GCC), и в основном GNU утилиты, такие как Баш, найти, деготь, ls, ГAWK, sed, и ld к Интерфейс защищенного режима DOS (ДПМИ). Поддерживаемые языки включают C, C ++, Цель-C / C ++, Ада, Фортран, и Паскаль. DJGPP был описан как «устаревший» продукт в 2004 году.[3]

Обзор

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

По состоянию на август 2020 г., основные компоненты DJGPP 2 включают:

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

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

Пока DJGPP работает в 32-битном защищенный режим, его заглушка и библиотека сильно зависят от многих 16-битных вызовов DOS и BIOS. Поскольку x86-64 версии Windows отсутствие поддержки 16-битных программ,[4][5] здесь нет НТВДМ, и приложения DJGPP не могут быть запущены. В системах x86-64 эти приложения работают только посредством эмуляции (например, DOSBox ), виртуализация x86 (например. VirtualBox ) или аналогичные (например, 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. ^ а б Валл, Курт; Фон Хаген, Уильям (2004). Полное руководство по GCC. Апресс. С. 47–48. Другой популярной, хотя и устаревшей, системой разработки на основе GCC является бесплатная 32-разрядная среда разработки для систем DOS DJGPP, D.J. [sic] Delorie.
  4. ^ «Гид: Что такое DJGPP?». Получено 22 ноября, 2015. Целевой аппаратной платформой для программ DJGPP является платформа ПК ... работающая под DOS ... или DOS-совместимая операционная система. Программы DJGPP, запускаемые под окнами "dos prompt" Windows.
  5. ^ Microsoft (октябрь 2007 г.). «Список ограничений в 64-битной Windows». Получено 18 мая 2010. 16-битные утилиты MS-DOS и Microsoft Windows 3.x не запускаются. При попытке запустить такую ​​программу появляется сообщение об ошибке «Program.exe не является допустимым приложением Win32».

внешние ссылки