Djgpp的历史
The History of Djgpp (1998)

原始链接: https://www.delorie.com/djgpp/history.html

DJGPP 约于 1989 年以 djgcc 的名称开始,因为其创建者挑战了 Richard Stallman 关于 GCC 无法在 MS-DOS 上运行的说法。他首先在 ISC Unix 上构建了 GCC 1.35,添加了自定义系统调用替换,移植了 BSD 的 libc,并创建了 Go32 以提供虚拟内存。首个 DOS 构建版本使用 GCC 1.37。头文件来自早期 g++ 的 include。项目在加入 C++ 支持后更名为 djgpp。早期里程碑包括 1.03 的流行、1.05 的商业可用性、1.06 添加 VCPI、1.10 添加 DPMI,以及 1.11 添加 DPMIEMU。版本 2 为实现自举而开发,部分应 Cygnus 的要求;它引入了 djasm 并依赖 DPMI,CWSDPMI 提供 DPMI 服务。DJGPP 得到广泛使用,支持 Quake、Info-Zip、GhostScript 等应用。版本 2.00 于 1996 年 2 月发布,随后 2.01 于 1996 年 10 月发布,2.02 于 1998 年 12 月发布。

黑客新闻 新 | 过去 | 评论 | 提问 | 展示 | 招聘 | 提交 登录 Djgpp 的历史 (delorie.com) 14 分,由 atan2 发布,2 小时前 | 隐藏 | 过去 | 收藏 | 3 条评论 帮助 Dwedit,14 分钟前 | 下一条 [–] 需要在标题里加 "1998"。 回复 InsideOutSanta,26 分钟前 | 上一条 [–] 根据链接文章,这个标题正确地将 djgpp 大小写化。 回复 urbnspacecowboy,17 分钟前 | 父评论 [–] DJGPP 的作者对拼写和大小写有一些有趣的想法,包括他自己的名字 DJ Delorie(不是“D. J.”之类)。我猜这是他个人的“没有棕色 M&M's”规则! 回复 指南 | 常见问题 | 列表 | API | 安全 | 法律 | 申请 YC | 联系 搜索:
相关文章

原文
The history of djgpp
  www.delorie.com/djgpp/history.html   search  
The history of djgpp
Note: DJGPP is spelled all upper case when it would normally be capitalized, and all lower case otherwise. It is never correct to spell it ``Djgpp''. Also, please be careful not to let your fingers get confused and type something like dgjpp or gjgpp.

How it all began

DJGPP was born around 1989 (originally called djgcc), when Richard Stallman spoke at a meeting of the Northern New England Unix Users Group (NNEUUG) at Data General, where I then worked. I asked if the FSF ever planned on porting gcc to MS-DOS (I wanted to use it to write a 32-bit operating system for PCs), and he said it couldn't be done because gcc was too big and MS-DOS was a 16-bit operating system. Challenge in hand, I began.

The first gcc I built was 1.35, which I built on an ISC Unix system running on a 386/16. I wrote custom replacements for the system calls, linked with ISC's libc.a, write a custom program to turn the resulting binary into a 32-bit EXE that Phar Lap's extender could use, and had the first gcc that ran on MS-DOS.

Because Phar Lap hadn't discovered virtual memory yet, and I didn't have enough physical memory to let gcc compile itself, I had to write an extender that could provide virtual memory. Go32 was born. The first files were control.c, mswitch.s, paging.c, and valloc.c, among a few other minor files. By the time I got this working, gcc 1.37 was out, so that was the first version that was built on a dos platform. I used this version for a while to work on my 32-bit OS, which I still have lurking around on my hard drive (in source form).

I scrounged through the net and found the recently free'd BSD sources, and ported their libc.a to MS-DOS. This, and many custom routines, was the basis for djgpp's standard library. The headers were based on the original g++-includes from g++ 1.37. This is why the headers don't match the libraries all the time.

The first version that made it big was djgpp 1.03, which can still be found in a few shareware catalogs, even though 1.03 was pre-grok-copyleft, and those shareware dealers are distributing it illegally.

The name was changed from djgcc to djgpp when C++ was added. I forget which release this was. Since C++ is integral to gcc, djgpp no longer stands for "DJ's G++" but probably stands for something like "DJ's GNU Programming Platform".

djgpp 1.05 was another big hit, as this was one of the first that was commercially available. djgpp 1.06 added VCPI. 1.10 added DPMI. 1.11 added DPMIEMU, the first step towards version 2, and appeared on the GNU Compiler Binary CD-ROM. Today, djgpp appears in many programming journals and on many CD-ROM distributions in many countries and languages.

Version 2 began due to a need to have a system that could be fully self-bootstrapping. Since go32 requires a Borland compiler to build, it didn't fit the bill. Cygnus, a big user of djgpp for their DOS-based products, requested a self-bootstrapping version, so version 2 was born. The first part was writing an assembler that could produce the 16-bit stub, so djasm was written. This stub relies on DPMI, a break from djgpp's traditional "run on anything" policy. The old go32 was used to provide DPMI services through an offspring product called CWSDPMI (Charles Sandmann), which will ship with djgpp. Eventually, even the DPMI server will be written in a combination of 32-bit gcc code and 16-bit djasm code, or if gcc can produce 16-bit code by then, in that.

Many "third-party" software has been written for djgpp, and many applications that are outgrowing their 16-bit roots are being rewritten to take advantage of djgpp's 32-bit environment. Popular examples of these (some are still in the works) are Quake, Info-Zip, GhostScript, Executor/DOS, WatTCP, Xemu, DESQview/X's developers kit, and countless data processing programs used by companies and individuals throughout the world.

Where we are now

Version 2.00 shipped on February 5, 1996, after more than two years of development. Version 2.01 shipped October 19, 1996. Version 2.02 shipped December 6, 1998.
联系我们 contact @ memedata.com