stringtranslate.com

DJGPP

Платформа программирования GNU DJ ( DJGPP ) [2] представляет собой пакет разработки программного обеспечения для уровня Intel 80386 и выше, совместимый с IBM PC , который поддерживает операционные системы DOS . Им руководит DJ Delorie, который начал проект в 1989 году. Это порт коллекции компиляторов GNU (GCC) и в основном утилит GNU , таких как Bash , find , tar , ls , G AWK , sed и ld , для DOS. Интерфейс защищенного режима (DPMI). Поддерживаемые языки включают C , C++ , Objective-C /C++, Ada , Fortran и Pascal .

Обзор

Компилятор генерирует 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. [3] Доступны резидентные программы завершения и пребывания (TSR) для поддержки LFN под простой DOS или Windows NT 4 .

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

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