Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Платформа программирования GNU DJ ( DJGPP ) [2] - это пакет разработки программного обеспечения для уровня Intel 80386 и выше, совместимых с IBM PC, который поддерживает операционные системы DOS . Он руководствуется DJ Delorie, который начал этот проект в 1989 году является портом из GNU Compiler Collection (GCC), и в основном GNU утилиты , такие как Bash , находка , деготь , Ls , G AWK , СЭД и л.д. в DOS Интерфейс защищенного режима (DPMI). Поддерживаемые языки включаютC , C ++ , Objective-C / C ++, Ада , Фортран и Паскаль . DJGPP был описан как «устаревший» продукт в 2004 году [3].

Обзор [ править ]

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

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

  • GNU Compiler Collection 9.3.0 (также доступна версия 10.2.0)
  • Autoconf 2.5.9
  • Automake 1.9.4
  • Binutils 2.34
  • GNU Bash 4.1.17
  • GNU Bison 2.4.1, Flex 2.5.4
  • GNU Emacs 24.5
  • GNU MPC 1.1.0, MPFR 4.1.0

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

Совместимость [ править ]

DJGPP представляет программисту интерфейс, совместимый со стандартами ANSI C и C99 , API DOS и более старой POSIX- подобной средой. Скомпилированные двоичные файлы поддерживают длинные имена файлов (LFN) и могут обрабатывать такие имена в большинстве 32-разрядных Windows по умолчанию, но они не могут использовать API Win16 или Win32, которые необходимы графическим программам в Windows. [3] Доступны программы Terminate and Stay Resident (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 действительно поддерживают страничный реальный режим и неограниченное выполнение в гостевом режиме.

См. Также [ править ]

  • FreeDOS
  • Cygwin
  • EMX (среда программирования)
  • GnuWin32
  • MinGW
  • Откройте компилятор Watcom C / C ++
  • Аллегро
  • Подсистема Windows для Linux

Ссылки [ править ]

  1. ^ Анонс: DJGPP V2.05 выхода , comp.os.msdos.djgpp, 3 ноября 2015
  2. ^ Эли Зарецкий (июль 1999). «Проект DJGPP» . Проверено 20 июля 2009 года .
  3. ^ a b Валл, Курт; Фон Хаген, Уильям (2004). Полное руководство по GCC . Апресс. С. 47–48. ISBN 9781590591093. Другой популярной, хотя и устаревшей, системой разработки на основе GCC является DJGPP, бесплатная 32-разрядная среда разработки DJ [sic] Делори для систем DOS.
  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».

Внешние ссылки [ править ]

  • Официальный веб-сайт