djgpp 是一个编译器以及一组相关的工具,它们能使你在 MS-DOS/MS-Windows 下编写 32 位保护模式的程序。
所
有使用 djgpp 编译的程序,以及随 djgpp 发布的开发工具看上去都像一个标准 DOS 程序。他们依靠 MS-DOS 和 BIOS
进行文件 I/O 以及其他基本功能,如:键盘输入、屏幕光标位置等等。但是一个 djgpp 程序的内核是真正的 32 位保护模式代码;djgpp
程序使用“DPMI”(DOS 保护模式接口,DOS Protected Mode Interface)以便在保护模式下对 DOS/BIOS
功能进行调用。因此,任何一个可以运行 DOS 程序并且提供 DPMI 支持的环境都可以运行 djgpp 程序。已知的与 djgpp
兼容的环境包括:MS-DOS、Caldera's
DR-DOS()、NWDOS、FreeDOS(http:
//)、Windows 3.X/9X/NT、OS/2 以及 Linux DOSEmu。当 djgpp
程序运行在 Windows 9x 和 Caldera's DR-DOS 下时,它们支持长文件名。
djgpp 的核心是移植到
MS-DOS 的 GNU C/C++ 编译器、GCC 以及辅助工具,例如汇编程序、连接程序、Make 和一个超文本文档浏览器。djgpp C
库是为 djgpp 特别重写的,主要由 DJ Delorie 一人完成,当然还离不开一小部分志愿者的帮助。核心工具和库仍然在开发和维护当中。
djgpp
提供了一系列与 ANSI 和 Posix 完全兼容的工具。GCC 兼容 ANSI/ISO 标准 C;djgpp C 库则同时兼容 ANSI 和
Posix(但一小部分 Posix 特性没有实现,例如“fork”系统调用);并且 C++ 库也与最新的标准兼容;djgpp 使用的 GNU
开发工具也全部兼容 Posix。因此,djgpp 工具在微软操作系统上提供了完整一致的 Posix
层,甚至对于用户和开发人员来说,那些不为人知的 DOS 限制和 DOS/Windows 与 Unix 之间的不兼容之处也几乎被完全隐藏了起来。
djgpp 可以被用来:
C/C++ 编程教学
在 MS-DOS 和 MS-Windows 上学习使用 Linux/Unix 开发工具
编写游戏和图形程序(Quake 的 DOS 版本就是使用 djgpp 编译的)
建立一个 Unix 和 MS-DOS 通用的开发环境
编写可移植的 DOS/Unix 程序
将 Unix 程序移植到微软操作系统下
从
2.0 版开始,djgpp 程序不再需要一个独立的 DOS 扩展器,只需要一个 DPMI 服务器就可以运行;djgpp 包括一个免费的 32
位 DPMI 服务器,可以在一个缺少 DPMI 服务器的纯 DOS 环境中支持 32 位、4G 线性地址空间以及最大 512M 的虚拟内存。
阅读(1983) | 评论(0) | 转发(0) |