DJGPP
La
Plataforma de programación GNU de DJ (DJGPP) es una suite de desarrollo de software para PC IBM de nivel Intel 80386 y superior, compatible con sistemas operativos DOS. Está guiado por DJ Delorie, quien comenzó el proyecto en 1989. Es una adaptación de la Colección de compiladores GNU (GCC) y principalmente de utilidades GNU como Bash, find, tar, ls, GAWK, sed y ld para proteger DOS. Interfaz de modo (DPMI). Los lenguajes admitidos incluyen C, C++, Objective-C/C++, Ada, Fortran y Pascal.
Descripción general
El compilador genera código de 32 bits, que se ejecuta de forma nativa en modo protegido de 32 bits mientras vuelve a llamadas DOS de 16 bits para soporte básico del sistema operativo. Sin embargo, a diferencia del compilador Open Watcom C/C++, no es un modelo plano de base cero debido a que prefiere la protección de puntero NULL para una mejor estabilidad. Actualmente se basa en una variante del formato COFF. Puede acceder a hasta 4 GB de RAM en DOS puro cuando se utiliza un host DPMI adecuado (por ejemplo, CWSDPMI r7 o HDPMI32).
A partir de agosto de 2020, los componentes principales de DJGPP 2 incluyen:
- GNU Compiler Collection 9.3.0 (10.2.0 también está disponible)
- 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
También es posible utilizar DJGPP para realizar una compilación cruzada de software en DOS, por ejemplo en UNIX/Linux. Tanto las bibliotecas DJGPP como los programas se pueden compilar de esta manera, vincularlos y luego implementarlos en máquinas con DOS o emuladores de DOS.
Compatibilidad
DJGPP presenta al programador una interfaz que es compatible con los estándares ANSI C y C99, las API de DOS y un entorno antiguo similar a POSIX. Los binarios compilados reconocen los nombres de archivos largos (LFN) y pueden manejar dichos nombres en la mayoría de Windows de 32 bits de forma predeterminada, pero no pueden usar las API Win16 o Win32 que necesitan los programas gráficos en Windows. Hay disponibles programas de terminación y permanencia (TSR) para admitir LFN en DOS o Windows NT 4.
Si bien DJGPP se ejecuta en modo protegido de 32 bits, su código auxiliar y su biblioteca dependen en gran medida de muchas llamadas de DOS y BIOS de 16 bits. Debido a que las versiones x86-64 de Windows no son compatibles con programas de 16 bits, no hay NTVDM y no se pueden ejecutar aplicaciones DJGPP. En sistemas x86-64, estas aplicaciones funcionan sólo mediante emulación (por ejemplo, DOSBox), virtualización x86 (por ejemplo, VirtualBox) o similar (por ejemplo, DOSEMU de Linux). Este problema surge porque en modo largo los procesadores x86-64 no admiten el modo virtual 8086 utilizado para ejecutar código de 16 bits en procesadores IA-32. Las CPU x86 más nuevas con VT-x admiten el modo real paginado y la ejecución en modo invitado sin restricciones.
Contenido relacionado
Cifrado basado en certificados
Sistema de instalación programable de Nullsoft
Gunpei Yokoi