GNU 公告,第 1 卷,第 16 期,1994 年 1 月
目录
- GNU 是谁
- GNU 公告
- 什么是自由软件基金会?
- 什么是 Copyleft?
- 捐款转化为自由软件
- Cygnus 匹配捐款!
- GNU 快讯
- 什么是 LPF?
- 来自 LPF 的新闻
- 自由软件支持
- GNU 项目愿望清单
- 迈向操作系统设计的新策略
- 日本第二届年度 GNU 研讨会
- GNU 和日本的其他自由软件
- 免费提供的文本
- GNU 项目状态报告
- GNU 文档
- 现在可用的 GNU 软件
- OCEAN 集成电路设计系统
- Hundred Acre Consulting 扩展
- 源代码 CD-ROM
- 编译器工具二进制文件 CD-ROM
- 磁带和 CD-ROM 订阅服务
- 如何获取 GNU 软件
- 豪华发行版
- MS-DOS 发行版
- 微型计算机的自由软件
- FSF T 恤
- 感谢 GNUs
GNU 公告是自由软件基金会的半年刊,为您带来有关 GNU 项目的新闻。
Free Software Foundation, Inc. Telephone: +1-617-876-3296
675 Massachusetts Avenue FAX: +1-617-492-9057
Cambridge, MA 02139-3309 FAX (in Japan):
USA 0031-13-2473 (KDD)
Electronic mail: gnu@prep.ai.mit.edu 0066-3382-0158 (IDC)
GNU 是谁
Michael Bushnell 继续致力于 Hurd 的工作,同时也维护 tar。Roland McGrath 维护 make 和 GNU C 库,协助 Emacs 19,并且现在正在研究 Hurd。Jan Brittenson 正在研究 Hurd 网络服务器。
Noah Friedman 是我们的系统歧义消除器、发布协调员,并在他大量的空闲时间里维护一些程序。Carl Hoffman 是我们的募款人和会议组织者。
Lisa `Opus' Goldstein 是我们的财务主管。Robert J. Chassell 正在撰写 Emacs Lisp 编程入门,并仍然在我们的董事会任职。Larissa Carlson 是 Lisa 的办公室助理。Charles Hannum 负责排版和许多其他工作。
Jim Blandy 已经离开去追求学术兴趣。Melissa Weisshaus 和 Tom Lord 也已经离开了 FSF。他们三个仍然兼职做志愿者。
Richard Stallman 继续作为志愿者,他做了无数的任务,例如 Emacs 维护。志愿者 Len Tower 仍然是我们在线的万事通,处理邮件列表和 gnUSENET、信息请求等。
GNU 公告
撰写和编辑:Jan Brittenson、Noah S. Friedman 和 Leonard H. Tower Jr.
插图:Etienne Suvasa 和 Jamal Hannah
日文版:Mieko Hikichi 和 Nobuyuki Hikichi
GNU 公告每年一月底和六月底出版。请注意,没有邮寄列表。要获得副本,请将您的姓名和地址以及您的请求发送到首页上的地址。附上一个商业尺寸的自我寻址盖章信封(0.52 美元)和/或几美元的捐款,不胜感激,但不是必需的。如果您来自美国境外,则发送邮寄标签而不是信封,并为大约 100 克的包裹提供足够的国际回邮券,不胜感激,但不是必需的。(包括一些额外的国际回邮券用于复印费用,也表示感谢。)
版权 (C) 1994 自由软件基金会,公司。
此页面根据 知识共享署名-禁止演绎 3.0 美国许可协议 获得许可。
什么是自由软件基金会?
自由软件基金会致力于消除人们在使用、复制、修改和重新分发计算机程序方面的权利限制。我们提倡在所有使用计算机的领域开发和使用自由软件。具体来说,我们正在构建一个名为“GNU”(“GNU's Not Unix”,发音为“guh-new”)的完整、集成软件系统,它将与 Unix 向上兼容。该系统的大部分部件已经在使用和分发。
我们名称中的“自由”一词指的是自由,而不是价格。您可能需要或不需要花钱来获取 GNU 软件,但无论如何,一旦您获得它,您将拥有两个特定的自由:第一,复制程序并将其赠送给您的朋友和同事的自由;第二,通过完全访问源代码,随心所欲地更改程序的自由。您可以研究源代码并了解这些程序是如何编写的。然后,您可能能够移植它、改进它,并与他人分享您的更改。如果您重新分发 GNU 软件,您可以收取分发费或免费赠送。
其他组织分发任何恰好可用的自由软件。相比之下,自由软件基金会专注于开发新的自由软件,致力于建立一个足够完整的 GNU 系统,以消除购买专有系统的需求。
除了开发 GNU 之外,FSF 还为 GNU 软件和手册收取分发费,并接受礼物(在美国可免税)以支持 GNU 的开发。FSF 的大部分资金来自这项分发服务。
基金会的官员是:Richard M. Stallman,总裁,以及 Lisa Goldstein,财务主管/秘书。基金会董事会成员是:Richard M. Stallman、Gerald J. Sussman、Harold Abelson、Robert J. Chassell 和 Leonard H. Tower Jr.
什么是 Copyleft?
使程序自由的最简单方法是将其置于公有领域,不拥有版权。但这允许专有修改,剥夺了其他人使用和重新分发改进的自由;这与增加自由软件总量的意图背道而驰。为了防止这种情况,copyleft 以一种新颖的方式使用版权。通常,版权会剥夺自由;copyleft 保留它们。它是一种法律工具,要求那些传递程序的人包括使用、修改和重新分发代码的权利;代码和权利在法律上变得不可分割。
GNU 项目使用的 copyleft 由常规版权声明和 GNU 通用公共许可证 (GPL) 组合而成。GPL 是一种复制许可证,基本上说明您拥有上述自由。另一种形式,GNU 库通用公共许可证 (LGPL),适用于一些 GNU 库。此许可证允许在某些条件下将库链接到专有可执行文件中。所有 GNU 源代码发行版和许多手册中都包含相应的许可证。印刷副本可应要求提供。
我们强烈建议您 copyleft 您的程序和文档,并且我们已使您尽可能简单地做到这一点。有关如何应用任一许可证的详细信息出现在每个许可证的末尾。
捐款转化为自由软件
如果您喜欢 Emacs、GNU CC、Ghostscript 和其他自由软件,您可能希望帮助我们确保未来有更多自由软件--记住,捐款转化为更多的自由软件!
您对我们的捐款在美国可免税。我们很乐意接受所有货币,尽管美元是最方便的。
如果您的雇主有慈善捐款的匹配礼物计划,请安排您的雇主(或在某些情况下,由 Cygnus Support,请参阅“Cygnus 匹配捐款!”)匹配您的捐款。如果您不知道,请咨询您的人事部门。还尝试让 FSF 列入任何匹配礼物计划的组织列表中。
$500 $250 $100 $50 other $________ Other currency:________
圈出您捐赠的金额,剪下此表格,并与您的捐款一起发送至
Free Software Foundation 675 Massachusetts Avenue Cambridge, MA 02139-3309 USA
您还可以使用 Visa、Mastercard、JCB、Diner's Club 或 Carte Blanche 支付捐款。也可以通过电子邮件将捐款发送至 gnu@prep.ai.mit.edu 或传真至 +1-617-492-9057;在日本,传真至:0031-13-2473 (KDD) 或 0066-3382-0158 (IDC)
Card type: __________________ Expiration Date: _____________ Account Number: _____________________________________________ Your Signature: _____________________________________________
Cygnus 匹配捐款!
为了鼓励向自由软件基金会捐款,Cygnus Support 将继续贡献公司资金给 FSF,以配合其员工及其客户及其员工的捐赠。
符合资格的人员应将支付给自由软件基金会的捐款发送给 Cygnus Support,该公司将添加其礼物,并将总额按季度转发给 FSF。FSF 将向捐助者提供收据,以确认捐款(这在美国纳税申报表中可以免税)。有关更多信息,请联系 Cygnus,地址为 info@cygnus.com。
GNU 快讯
- 编译器工具二进制文件光盘 我们现在提供一张光盘,其中包含一些供应商在发布操作系统时未附带编译器的系统适用的 GNU 编译器工具可执行文件。这将允许这些系统的用户编译 GNU 和其他自由软件,而无需购买专有编译器。有关更多详细信息,请参阅“编译器工具二进制文件光盘”。我们希望每次更新此光盘时都能包含更多系统。如果您可以帮助为新系统构建二进制文件,或者有系统建议,请通过封面上的任何一个地址与我们联系。
- FSF 通过 DAT 磁带分发 我们现在通过 4mm DAT 磁带提供我们的软件。有关更多信息,请参阅“自由软件基金会订购单”。
- 源代码光盘订阅 除了我们的磁带订阅服务外,我们现在还提供源代码光盘订阅服务。以 3 张光盘的价格,您可以获得我们制作的接下来 4 张光盘。目前我们每年进行两次更新,但我们可能会更频繁地更新。请参阅文章“磁带和光盘订阅服务”。
- FSF 接受信用卡 FSF 接受以下信用卡:Visa、万事达卡、大莱俱乐部卡、JCB 卡和 Carte Blanche 卡。请注意,我们会被收取订单总额约 5% 的信用卡处理费。请考虑改用支票付款,或者额外捐赠 5% 以弥补差额。
- FSF 接受通过传真进行的订单和捐款 您现在可以通过传真向 FSF 发送订单和捐款。请传真一份填妥的订单表格,包括信用卡信息,因为订单必须预付。我们不接受采购订单。号码是美国 +1-617-492-9057,除日本以外的其他任何地方。在日本,传真号码是免费的:0031-13-2473 (KDD) 和 0066-3382-0158 (IDC)。
- FSF T 恤改进了! 我们刚刚在 T 恤背面添加了 GNU 通用公共许可证的副本,以前背面是空白的。请参阅文章“FSF T 恤”。
- 非正式的“GCC 联盟” 包括英特尔、摩托罗拉、德州仪器和模拟器件在内的一组公司已共同出资支持 GNU CC 的中央维护,该维护现在由纽约大学的 Richard Kenner 完成。中央维护的任务是负责修复错误、集成和清理贡献、进行发布以及编写高优先级的改进。Richard Stallman 希望这能使他开始一个新项目。
- GCC 2 发布,GCC/G++/libg++ 1 已弃用 自 2.5.7 版以来,GNU C 编译器已脱离测试版。FSF 不再维护或分发 G++ 和 GCC 1 版。此外,libg++ 1 版也已弃用。
- 自由软件与硬件捆绑销售 位于康涅狄格州威尔顿的 Field Technology, Inc. 正在销售仅使用版权所有和公共领域的软件的“Linux 机器”。这些与 Unix 兼容的系统已准备好运行,其中包含 TeX、Emacs、GNU C/C
++、X Window System 和 TCP/IP 网络等常用程序。Field Technology 为售出的每个系统向自由软件基金会捐款。有关更多信息,请联系info@fieldtech.com或 +1-203-761-9363。 - 实验磁带暂停 我们目前不分发实验磁带,因为磁带上的大多数程序现在都已稳定。GCC、GAS、Binutils、libg++ 和 GNU C 库已移至语言磁带,取代了以前的版本。Oleo 和 GNU Graphics 现在位于实用程序磁带上。
- SNePS 现在是自由软件 当前 2.1 版本的语义网络处理系统 (SNePS) 已根据 GNU 通用公共许可证的条款公开提供。之前,它需要支付许可费才能使用。SNePS 是对命题知识表示和推理的完全内涵理论的实现。SNePS 2.1 需要 Common-Lisp,并在使用 SunOS 4 的 SPARC 以及 TI Explorer I/II 上运行。以前的版本在 Symbolics CL、AKCL 和 VAX Common-Lisp 上运行,但当前版本在这些系统上仍未经过测试。可以通过匿名 FTP 从
ftp.cs.buffalo.edu的 `/pub/sneps' 获取 SNePS。 - C++ 程序员的 Lisp 类库 Lily 是一个 C
++类库,提供类似于 Lisp 的功能,包括自动垃圾回收。Lily 可通过匿名 FTP 从sunsite.unc.edu获取。有关更多信息,请写信至sheldon@kong.gsfc.nasa.gov。 - 自由窗口小部件基金会宣布窗口小部件 自由窗口小部件基金会 (FWF) 是一项草根志愿者活动,旨在创建一组强大、灵活且可自由访问的 X 图形用户界面模块(窗口小部件)。自 1990 年成立以来,FWF 发布版已发展到 40 多个窗口小部件,现在已在多个流行的 X 应用程序中使用。FWF 与自由软件基金会无关,但它与我们具有相同的目标,即使高质量的软件可以自由再分发。有关信息或志愿服务,请通过匿名 FTP 从
a.cs.uiuc.edu获取 `/pub/FWF/README',写信至free-widgets-info@flute.cs.uiuc.edu,或写信给The Free Widget Foundation c/o Brian Totty Department of Computer Science University of Illinois -- Urbana 1304 W. Springfield Avenue Urbana, IL 61801 USA
什么是 LPF?
编程自由联盟 (LPF) 旨在保护编写软件的自由。这种自由受到“外观和感觉”界面版权诉讼和软件专利的威胁。LPF 不支持自由软件或 FSF。
联盟的成员包括程序员、企业家、学生、教授,甚至软件公司。
摘自联盟会员表格
编程自由联盟是由教授、学生、商业人士、程序员和用户组成的草根组织,致力于恢复编写程序的自由。联盟不反对国会制定的法律制度——对单个程序享有版权。我们的目标是扭转法官最近为回应特殊利益而做出的改变。
联盟的会员费为程序员、经理和专业人士每年 42 美元;学生为 10.50 美元;其他人员为 21 美元。
要加入,请发送支票和以下信息
- 您的姓名和电话号码(家庭、工作或两者)。
- 用于接收联盟邮件的地址,每年发送几次(请注明是您的家庭地址还是工作地址)。
- 您工作的公司和您的职位。
- 您的电子邮件地址,以便联盟可以联系您进行政治行动。(如果您不想为此而被联系,请说明,但无论如何请提供您的电子邮件地址。)
- 请提及任何关于您的情况,以便您对 LPF 的认可可以给公众留下深刻印象。
- 请说明您是否愿意帮助 LPF 活动。
联盟与自由软件基金会无关,它本身也不是自由软件组织。FSF 支持 LPF,因为像任何小于 IBM 的软件开发商一样,它受到软件专利的威胁。您也处于危险之中!在您或您的雇主被起诉之前,很容易忽略这个问题,但更明智的做法是在此之前组织起来。
如果您尚未下定决心,请写信给 LPF 以获取更多信息
League for Programming Freedom
1 Kendall Square - #143
P.O. Box 9171
Cambridge, MA 02139
USA
Phone: +1-617-243-4091
Email: lpf@uunet.uu.net
来自 LPF 的新闻
作者:Christian D.. Hofstader,cdh@prep.ai.mit.edu
美国专利商标局 (PTO) 将于 1994 年初就软件专利主题举行听证会。PTO 认识到当前政策存在严重问题,并且正在寻求关于如何纠正此事的意见。LPF 正在努力邀请一位代表作证,并将呼吁成员和其他关注这些问题的人员向 PTO 写信。有关详细信息,请联系 lpf@uunet.uu.net。
在过去的几个月中,LPF 一直在为 Lotus v. Borland 上诉案向上诉法院提交一份法庭之友简报。该简报仅针对莲花公司对 123 中宏语言的版权主张,该主张已在下级法院获得 Keeton 法官的批准。该简报于 1993 年 12 月 14 日代表第一巡回法院的 20 多位著名计算机科学家提交。
LPF 组织签署简报的团体包括 Marvin Minsky、John McCarthy 和 Robert Boyer 等计算机科学领域的主要贡献者。Borland 副总裁兼总法律顾问 Bob Kohn 表示:“凭借这个团体,LPF 应该能够改变知识产权法的进程。从未有过如此令人印象深刻的计算机科学家团队聚集在一起。”
LPF 将在此案中进行补充备案。如果您有兴趣签名或认识您认为愿意加入此列表的人,请将相关信息转发给 LPF。
自由软件支持
自由软件基金会不提供任何技术支持。虽然我们创建软件,但我们将其留给其他人来谋生,以提供支持。我们将程序员视为提供服务的人员,就像现在的医生和律师一样;医疗和法律知识都是可以自由再分发的实体,从业者会收取分发和服务费。
我们维护一个提供支持和其他咨询服务的人员列表,称为 GNU 服务目录。它位于 GNU Emacs 发行版中的文件 `etc/SERVICE`、GCC 发行版中的 `SERVICE` 以及匿名 FTP 主机 prep.ai.mit.edu 上的 `/pub/gnu/GNUinfo/SERVICE` 中。如果您想要打印的副本或希望将其列在其中,请与我们联系。
如果您发现任何 GNU 软件存在缺陷,我们希望知道。我们有许多用于错误报告、公告和问题的互联网邮件列表。它们还通过网关连接到 USENET 新闻,作为 gnu.* 新闻组。您可以从封面上的任何一个地址请求邮件列表列表。
当我们收到错误报告时,我们通常会尝试修复问题。虽然我们的错误修复可能看起来像个人帮助,但它们不是。我们的任务非常庞大,我们必须专注于对整个社区有益的事情;我们没有资源来帮助个人。我们可能会向您发送一个错误补丁,以帮助我们测试修复并确保其质量。如果您的错误报告没有引起我们的解决方案,您仍然可能从阅读我们错误报告邮件列表的其他用户那里获得解决方案。否则,请使用服务目录。
请不要要求我们帮助您安装软件或弄清楚如何使用它,但请告诉我们安装脚本在哪里不起作用或文档不清楚。
如果您没有互联网访问权限,则可以通过 UUCP 获取邮件和 USENET 新闻。请联系当地的 UUCP 站点或商业 UUCP 站点,例如
UUNET Communications Services
3110 Fairview Park Drive - Suite 570
Falls Church, VA 22042
USA
Phone: 1-800-4UUNET4 or (703) 204-8000
Fax: (703) 204-8001
E-mail: info@uunet.uu.net
商业 UUCP 和互联网服务提供商的冗长列表会定期发布到 USENET 的 news.announce.newusers 新闻组中,主题为“如何成为 USENET 站点”。
在选择服务提供商时,请询问您正在考虑的那些提供商为自由软件开发做了多少贡献,例如,通过向自由软件开发项目捐款或编写自由软件改进本身供通用使用。通过部分基于此因素做出决定,您可以帮助鼓励那些从自由软件中获利的人为自由软件的增长做出贡献。
GNU 项目愿望清单
本期希望为
- 欢迎志愿者在技术会议、贸易展览会、本地和全国用户组会议等场合分发本公告。请拨打封面上的电话号码或发送电子邮件至
gnu@prep.ai.mit.edu进行安排。 - 用于商业的Oleo扩展程序和其他免费软件,例如簿记软件。
- 600+兆字节的SCSI硬盘,为我们提供更多的空间来开发软件。
- 一台具有200+MB磁盘空间和以太网卡的386或486 PC兼容机。
- 一台4毫米DAT磁带驱动器、一台8毫米Exabyte磁带驱动器、一台Sun SPARCstation和一台Sun-3/60或4/110。
- 公司借给我们有能力的程序员和技术作家至少六个月。真正的“魔法师”可能在较短的时间内受欢迎,但我们发现,一个优秀的程序员完成一个有价值的项目至少需要六个月的时间。
- 帮助编写程序和文档的志愿者。请发送邮件至
gnu@prep.ai.mit.edu获取任务列表和编码标准。 - 为尚未在编译工具二进制CD-ROM上的系统(尤其是那些没有配备C编译器的系统)构建二进制文件的志愿者。请通过封面上的任一地址与我们联系。
- 可能有兴趣赞助或聘请研究助理在FSF的支持下进行GNU开发的教授。
- 语音和字符识别软件和系统(如果设备不太奇怪),如果可能的话,最好附带设备驱动程序。这将有助于部分残疾人士(包括我们认识的一些人)提高生产力。
- 新的引言和文章思路,用于GNU公告。我们特别喜欢突出那些参与免费信息交流的组织、使用GNU通用公共许可证的软件,以及将提供免费软件支持作为主要业务的公司。
- 提及GNU项目或GNU软件的报纸和期刊文章的副本。请将这些寄到封面上的地址,或将引用发送至
gnu@prep.ai.mit.edu。 - 资金。如果您使用并欣赏我们的软件,请捐款。一种给予我们少量资金的方式是订购发行磁带软盘或CD-ROM。一种给予我们较多资金的方式是订购豪华发行版。这些可能不被视为税务上的捐款,但可以作为商业支出。如果您在一家“捐款”一词令人反感的公司工作,这一点尤其有用。
迈向操作系统设计的新策略
本文解释了为什么FSF正在开发一种名为Hurd的新操作系统,它将成为整个GNU系统的基础。Hurd建立在CMU的Mach 3.0内核之上,并使用Mach的虚拟内存管理和消息传递工具。GNU C库将提供Unix系统调用接口,并调用Hurd以获取自身无法提供的所需服务。Hurd的设计和实现由Michael Bushnell领导,Richard Stallman、Roland McGrath、Jan Brittenson和其他人提供协助。
第一部分 - 一种更实用的操作系统设计方法
操作系统(OS)的基本目的是使各种程序能够高效且富有成效地共享一台计算机。这需要内存保护、抢占式调度分时、对I/O外围设备的协调访问以及其他服务。此外,操作系统还可以允许多个用户共享一台计算机。在这种情况下,效率需要提供以下服务:保护用户免受彼此伤害,使他们能够在没有事先安排的情况下共享,以及调解对物理设备的访问。
在当今的计算机系统中,程序员通常通过一个名为内核的大型程序来实现这些目标。由于所有用户程序都必须可以访问此程序,因此它是向系统添加功能的自然场所。由于进程交互的唯一模型是内核提供的特定、单独服务,因此没有人创建其他位置来添加功能。随着时间的推移,越来越多的功能被添加到内核中。
传统的系统只允许那些既了解大部分内核又在系统内具有特权状态的用户向内核添加组件。测试新组件需要比测试其他程序更痛苦的编辑-编译-调试循环。当其他人正在使用系统时,无法进行此操作。错误通常会导致致命的系统崩溃,进一步中断其他用户对系统的使用。整个内核通常是不可分页的。(有些系统具有可分页内核,但决定哪些可以分页是很困难且容易出错的。通常,这些机制很复杂,即使在添加简单的扩展时也难以使用。)
由于这些限制,除非是绝对必要的,否则通常不会将应该位于传统内核背后的功能添加到系统中。许多好的想法,最好使用开放/读取/写入接口完成,但由于传统系统的单一性质而无法实现。此外,即使在那些有耐力实施新想法的人中,只有那些是计算机特权用户的才能这样做。软件版权系统通过阻止未授权的人阅读内核源代码来使情况更加糟糕。
一些系统尝试解决这些难题。Smalltalk-80和Lisp Machine都代表了一种解决这个问题的方法。系统代码与用户代码没有区别;用户可以访问所有系统,并且可以根据需要进行更改。这两个系统都是围绕易于替换和扩展的语言构建的,并且取得了适度的成功。但是它们在相互隔离用户和程序方面都相当差,未能实现操作系统设计的主要目标之一。
大多数使用Mach 3.0内核的项目都延续了操作系统设计中难以更改的传统。内部结构不同,但用户和系统之间仍然存在相同的巨大障碍。单服务器虽然相对容易构建,但继承了单体内核的所有缺陷。
多服务器将内核功能划分为具有明确定义的接口的逻辑块。如果做得正确,则更容易进行更改和添加功能。因此,大多数多服务器项目都做得更好一些。系统的可分页性更高。您可以更轻松地调试系统。您可以在不干扰其他用户的情况下测试新的系统组件。但是用户和系统之间的障碍仍然存在;没有特殊特权的用户无法跨越它。
相比之下,GNU Hurd旨在尽可能限制系统代码的区域。程序只需要与内核的几个基本部分进行通信;系统的其余部分是可动态替换的。用户可以使用他们想要的系统的其余部分,并且可以轻松地自己添加组件,以供其他用户利用。用户之间无需事先存在相互信任即可使用彼此的服务,并且系统不会因信任任意用户的服务而变得脆弱。
这是通过识别用户必须使用才能彼此通信的系统组件来完成的。其中一个负责识别用户的身份,称为身份验证服务器。为了建立彼此的身份,程序必须与他们信任的身份验证服务器进行通信。另一个组件通过超级用户建立对系统组件的控制,提供全局簿记操作,称为进程服务器。
并非所有用户程序都需要与进程服务器通信;它仅对于需要其服务的程序是必需的。同样,身份验证服务器仅对于希望将其身份传达给另一个程序的程序是必需的。其余服务都不具有任何特殊状态;无论是网络实现、文件系统、程序执行机制(包括setuid),还是任何其他服务。
翻译机制
Hurd主要使用Mach端口作为用户和服务器之间进行通信的方法。(Mach端口是Mach任务上的通信点,消息在此处发送和接收。)每个端口都实现了一组特定的协议,这些协议表示可以对端口表示的底层对象执行的操作。Hurd指定的某些协议是I/O协议(用于通用I/O操作)、文件协议(用于文件系统操作)、套接字协议(用于网络操作)和进程协议(用于操作进程等)。
大多数服务器都是通过打开文件来访问的。通常,当您打开文件时,您会创建一个与该文件关联的端口,该端口由拥有该文件所在目录的服务器拥有。例如,基于磁盘的文件系统通常会服务于大量端口,每个端口都代表一个打开的文件或目录。打开文件时,服务器会创建一个新端口,将其与文件关联,然后将端口返回给调用程序。
但是,文件可以关联一个转换器。在这种情况下,服务器不返回其自身引用文件内容的端口,而是执行与该文件关联的转换器程序。该转换器被赋予一个指向文件实际内容的端口,然后被要求返回一个端口给原始用户以完成打开操作。
此机制用于通过与每个挂载点关联的转换器来执行mount。当程序打开挂载点时,会执行转换器(在这种情况下,是一个了解已挂载文件系统的磁盘格式的程序),并向该程序返回一个端口。转换器启动后,除非它停止运行,否则不需要再次运行;父文件系统保留一个指向该转换器的端口,以便在进一步的请求中使用。
文件的所有者可以关联一个转换器,而无需特殊权限。这意味着可以将任何程序指定为转换器。显然,如果转换器没有正确实现文件协议,系统将无法正常工作。但是,Hurd的构造方式是,最坏的可能结果是可中断的挂起。
使用转换器的一种方法是使用文件协议访问分层结构的数据。例如,删除ftp程序的用户界面的所有复杂性。用户只需要知道一个特定的目录代表FTP,并且可以使用所有标准的文件操作命令(例如ls或cp)来访问远程系统,而无需学习新的命令集。同样,一个简单的转换器可以简化tar或gzip的复杂性。(这种透明的访问会有一些额外的成本,但会很方便。)
通用服务
借助转换器,文件系统可以充当与文件不相似的接口的交汇点。考虑一个使用Mach消息作为底层传输来实现X协议的某种版本的服务。对于每个X显示器,可以创建一个文件,并将相应的程序作为其转换器。X客户端将打开该文件。此时,几乎没有文件操作会有用(例如,读写将是无用的),但是新的操作(XCreateWindow或XDrawText)可能会变得有意义。在这种情况下,文件系统协议仅用于操作用于交汇点的节点的特征。该节点不需要支持I/O操作,但它应该回复任何此类消息,并返回message_not_understood返回代码。
此转换器技术用于联系Hurd中大多数未结构化为分层文件系统的服务。例如,密码服务器(它会颁发授权标签以换取密码)就是以这种方式联系的。网络协议服务器也以这种方式联系。Roland McGrath提出了这种转换器的用法。
巧妙的文件系统图片
在Hurd中,转换器还可用于呈现文件系统的另一部分的类文件系统视图,并且更改了一些语义。例如,最好有一个不能自行更改的文件系统,但仍会在其他地方记录其文件的已更改版本。(这对于源代码管理可能很有用。)
Hurd 将会有一个转换器,它会创建一个目录,这个目录是其他目录的概念上的联合,并具有各种冲突解决规则。这可以用来向用户呈现一个包含他们想要执行的所有程序的单一目录。这个主题还有其他有用的变体。
用户可以做什么
任何转换器都不会因为被挂钩到文件系统而获得额外的权限。转换器以被转换文件的所有者的 UID 运行,并且只能由该所有者设置或更改。I/O 和文件系统协议经过精心设计,允许互不信任的客户端和服务器使用它们。实际上,转换器只是普通的程序。GNU C 库提供了各种工具来简化常见类型的转换器的编写。
一些转换器可能需要特殊的权限,例如密码服务器或允许 setuid 执行的转换器。这些转换器可以由任何人运行,但只有当它们设置在 root 拥有的节点上时,它们才能成功地提供所有服务。这类似于允许任何用户调用 reboot 系统调用,但只有当该用户是 root 时才会被执行。
为什么这如此不同
这种设计在 Unix 世界中是完全新颖的。到目前为止,操作系统将其大部分功能保留在系统代码领域,从而阻止对其进行修改和扩展,除非在极端的需要下。用户无法在其程序中替换系统的某些部分,无论这样做会使他们的任务变得多么容易,而系统管理员也不愿意将从网上下载的随机调整安装到他们的内核中。
在 Hurd 中,用户几乎可以更改传统系统中预先为他们决定的一切。结合 Mach 内核对任务地址空间和属性的巨大控制,Hurd 提供了一个系统,用户将首次能够替换他们不喜欢的系统部分,而不会干扰其他用户。
迄今为止,大多数基于 Mach 的操作系统主要是在新环境中实现了更广泛的相同的旧 Unix 语义。相比之下,GNU 正在扩展这些语义,以允许用户改进、绕过或替换它们。
第二部分 - 了解 Hurd 的一些特性
身份验证服务器
Hurd 更中心的服务器之一是身份验证服务器。此服务器的每个端口都标识一个用户,并且此服务器将其与一个id 块关联。每个 id 块都包含用户 ID 和组 ID 的集合。任一集合都可能为空。此服务器与上面提到的密码服务器不同。
身份验证服务器导出三项服务。首先,它提供对身份验证端口的简单布尔运算:给定两个身份验证端口,此服务器将提供第三个端口,表示两个 UID 和 GID 集合的并集。其次,此服务器允许任何 UID 为零的用户创建任意身份验证端口。最后,此服务器提供 RPC(不同程序之间以及可能不同主机之间的远程过程调用),允许互不信任的客户端和服务器建立它们的身份并相互传递初始信息。这对于文件系统和 I/O 协议的安全性至关重要。
任何用户都可以编写一个实现身份验证协议的程序;这不会违反系统的安全性。当服务需要验证用户身份时,它会与其受信任的身份验证服务器通信。如果该用户使用的是不同的身份验证服务器,则事务将失败,并且服务器可以拒绝进一步通信。因为实际上这会强制系统上的所有程序使用相同的身份验证服务器,所以我们设计了它的接口,使其可以执行任何安全操作,并且不包含任何无关的操作。(这就是为什么有一个单独的密码服务器。)
进程服务器
进程服务器充当信息分类存储库。此服务器支持四个主要服务。首先,进程服务器跟踪 Mach 内核未处理的通用主机级信息。例如,主机名、主机 ID 和系统版本由进程服务器维护。其次,此服务器维护会话和进程组的 Posix 概念,以帮助希望使用 Posix 功能的程序。
第三,进程服务器维护 Mach 任务和 Hurd 进程之间的一对一映射。每个任务都分配一个 PID。进程可以使用此服务器注册一个消息端口,然后可以将其提供给请求它的任何程序。此服务器不尝试保持这些消息端口的私有性,因此用户程序应自行实现所需的任何安全性。(GNU C 库为此提供了方便的函数。)进程可以告知进程服务器它们当前的 argv 和 envp 值;然后此服务器将根据请求提供这些参数和环境向量。这对于编写类似 ps 的程序很有用,并且也使得隐藏或更改此信息更容易。这些功能都不是强制性的。程序可以自由地忽略所有这些,并且永远不要在进程服务器上注册自己。但是,它们仍然会被分配一个 PID。
最后,进程服务器实现进程集合,用于同时收集多个进程消息端口。此外,还提供了在 PID、进程服务器端口和 Mach 任务端口之间进行转换的工具,同时确保所管理端口的安全性。
重要的是要强调,进程服务器是可选的。由于 Mach 的限制,程序必须以 root 身份运行才能识别系统中的所有任务。但是,鉴于此,多个进程服务器可以共存,每个服务器都有自己的客户端,从而给出他们自己的宇宙模型。那些不需要以 root 权限实现的进程服务器功能可以作为每个用户的服务器完成。用户的手并没有被束缚。
透明 FTP
透明 FTP 是一个引人入胜的想法,时机已经成熟。GNU Emacs 可用的流行 ange-ftp 包使所有 Emacs 文件操作功能对 FTP 文件的访问几乎是透明的。透明 FTP 做同样的事情,但在系统范围内。此服务器尚未编写;细节仍有待充实,并且无疑会随着经验而改变。
在 BSD 内核中,编写透明 FTP 文件系统并不比在 Hurd 中困难。但是向 BSD 内核黑客提及这个想法,得到的回答是“这样的东西不应该放在内核中”。从某种意义上说,这是正确的。将这些东西放在内核中违反了此类系统的所有分层原则。然而,不幸的副作用是,设计方法(基于阻止用户更改他们不喜欢的东西)被用来阻止系统设计人员使事情变得更好。(最近的 BSD 内核使得编写提供透明 FTP 的用户程序成为可能。一个例子是 alex,但它需要以完整的 root 权限运行。)
在 Hurd 中,实现透明 FTP 没有障碍。将为节点“/ftp”提供一个转换器。`/ftp` 的内容可能无法直接列出,但进一步的子目录将是可列出的。将有各种可能的格式。例如,要访问 uunet 上的文件,可以 cd /ftp/ftp.uu.net:anonymous:mib@gnu。或者要访问远程帐户上的文件,可以 cd /ftp/gnu.ai.mit.edu:mib:passwd。此命令的部分内容可以省略,透明 FTP 程序将从用户的 `.netrc` 文件中读取它们。在最后一种情况下,可能只是 cd /ftp/gnu.ai.mit.edu;当其余数据已经在 `.netrc` 中时。
不需要先执行 cd,可以使用任何文件命令。要了解 RFC 1097(Telnet 潜意识消息选项),只需键入 more /ftp/ftp.uu.net/inet/rfc/rfc1097。如果经常读取 RFC,则可以使用复制命令复制到本地磁盘。
文件系统
也在实现普通的文件系统。Hurd 的初始版本将包含一个向上兼容 BSD 4.4 Fast File System 的文件系统。除了普通语义之外,它还将提供记录转换器的方法,提供 32 位用户 ID 和组 ID,并为每个文件提供一个新 ID,称为文件的作者,该 ID 可以由所有者任意设置。此外,由于 Hurd 中的用户可以拥有多个 UID(甚至没有),因此还有一组额外的权限位,为未知用户(无 UID)提供了访问控制,这与已知但任意用户(一些 UID:现有的文件权限世界类别)不同。
网络文件系统协议将以 4.4 BSD 作为起点来实现。还将使用 Sprite 中相同的思想来实现日志结构文件系统,但可能不是相同的格式。可能会及时设计 GNU 网络文件协议,或者可以扩展 NFS 以消除其缺陷。还将有各种“小”文件系统,例如 MS-DOS 文件系统,以帮助人们在 GNU 和其他操作系统之间移动文件。
终端
I/O 服务器将提供 Posix 的终端语义。GNU C 库具有跟踪控制终端的功能,并且可以安排在适当的时间发送正确的作业控制信号,以及遵守键盘和挂断信号的功能。
程序将能够以各种方式将终端驱动程序插入到通信通道中。像 rlogind 这样的服务器将能够将终端协议插入到它们的网络通信端口上。伪终端将不是必需的,尽管为了向后兼容旧程序,它们将被提供。GNU 中的任何程序都不会依赖它们。
终端驱动程序的任何内容都不会强加给用户。终端驱动程序允许用户轻松访问底层通信通道,根据需要或完全绕过自身,或替换不同的类似终端驱动程序的程序。在最后一种情况下,如果备用程序实现了必要的接口,则 C 库将像使用普通终端驱动程序一样使用它。
由于这种灵活性,原始终端驱动程序将不会提供复杂的行编辑功能,而仅限于 Posix 和 BSD 中找到的行为。随着时间的推移,将有一个基于 readline 的终端驱动程序,它将为那些需要它们的用户提供复杂的行编辑功能。
终端驱动程序可能不会为 UUCP 或 SLIP 所需的大容量、快速数据传输提供良好的支持。这些程序不需要它的任何功能。相反,它们将使用终端的底层 Mach 设备端口,该端口支持有效地移动大量数据。
执行程序
execve调用的实现分布在三个程序中。库负责编排参数和环境变量向量。然后,它向持有要执行文件的文件服务器发送消息。文件服务器检查执行权限,并在exec调用中进行它希望进行的任何更改。例如,如果文件被标记为setuid,并且文件服务器有能力,它将更改新映像的用户标识。文件服务器还决定哪些能够访问旧任务的程序应该继续访问新任务。如果文件服务器正在增强权限,或者正在执行一个不可读的映像,那么为了维护安全性,exec需要在新的Mach任务中执行。
在决定与新映像关联的策略后,文件系统会调用exec服务器来加载任务。此服务器使用BFD(二进制文件描述符)库来加载映像。BFD支持大量的目标文件格式;几乎任何受支持的格式都是可执行的。此服务器还处理以#!开头的脚本,通过指示的程序运行它们。
标准的exec服务器还会查看新映像的环境;如果它包含一个变量EXECSERVERS,那么它将使用那里指定的程序作为exec服务器,而不是系统默认值。(当然,对于文件服务器要求保持安全的exec调用,不会这样做。)
新映像在GNU C库中开始运行,该库向exec服务器发送消息,以获取参数、环境、umask、当前目录等。这些额外的状态对于文件服务器或exec服务器都不是特殊的;如果程序愿意,它们可以以不同于库的方式使用它。
新进程
fork调用几乎完全在GNU C库中实现。新任务是通过Mach内核调用创建的。C库安排使其映像被正确继承。新任务在进程服务器中注册(尽管这不是强制性的)。C库提供了在fork时调用的函数向量:一个向量在fork之前调用,一个在父进程中调用,一个在子进程中调用。(这些特性不应该用来替换正常的fork调用序列;它旨在用于需要在fork发生之前关闭端口或清理的库。)C库将实现Posix.4a草案中指定的两个fork调用(关于实时扩展的线程扩展的建议标准)。
没有任何东西强制用户以这种方式创建新任务。如果一个程序想要使用几乎正常的fork,但有一些特殊特性,那么它可以这样做。C库将提供钩子,或者甚至可以完全替换该函数。这在传统的Unix系统中是不可能的。
异步消息
如上所述,进程服务器为每个在其注册的任务维护一个“消息端口”。这些端口是公开的,用于向任务发送异步消息。例如,信号被发送到消息端口。信号消息还提供一个端口,以表明发送者应该被信任发送该信号。GNU C库在一个表中列出了各种端口,每个端口都标识了一组可以由任何拥有该端口的人发送的信号。例如,如果用户拥有任务的内核端口,则允许发送任何信号。如果用户拥有特殊的“终端 ID”端口,则允许发送键盘和挂断信号。用户可以将任意的新条目添加到C库的信号权限表中。
当进程的进程组发生更改时,进程服务器将向其发送一条消息,指示新的进程组。在这种情况下,进程服务器通过提供任务的内核端口来证明其权限。
C库还包含用于添加和删除进程当前使用的uid的消息。如果新的uid被发送到程序,库会将它们添加到其当前集合中,然后与它知道的所有I/O服务器交换消息,向它们证明其新的授权。类似地,消息可以删除uid。在后一种情况下,调用者必须提供进程的任务端口。(你不能通过给予进程额外的权限来伤害它,但是你可以通过剥夺权限来伤害它。)Hurd将提供用户程序来向进程发送这些消息。例如,su命令将能够使当前登录会话中的所有程序获得新的uid,而不是生成子shell。
C库将允许程序添加它们希望识别的异步消息,以及阻止识别标准集。
使其看起来像 Unix
C库将实现BSD和Posix的所有调用,以及它们的一些明显的扩展。这使用户能够替换他们不喜欢的调用或完全绕过它们,而在Unix中,调用必须“按原样”使用,没有其他选择。
在某些环境中,也将支持二进制兼容性。这是通过构建一个特殊版本的库来实现的,然后将其加载到进程地址空间的某个位置。(例如,在VAX上,它将被塞在堆栈之上。)Mach的一个名为系统调用重定向的功能,被用来捕获Unix系统调用,并将它们转换为跳转到这个特殊版本的库。(在几乎所有机器上,这种重定向的成本都非常小;这是Mach中高度优化的路径。在386上,它大约有二十几个指令。这比简单的过程调用要稍微差一点。)
Unix的许多特性,例如信号掩码和向量,完全由库处理。这使得这些特性的成本明显低于Unix。现在,广泛使用sigblock来保护临界区是合理的,而不是寻找其他更便宜的方法。
网络协议
Hurd将有一个库,可以非常容易地将4.4 BSD协议栈移植到Hurd中。这将使BSD支持的所有协议几乎免费运行。目前,这包括CCITT协议、TCP/IP协议、Xerox NS协议和ISO协议。
为了获得最佳性能,需要做一些工作来利用Hurd提供的非常高速的I/O功能。对于大多数协议来说,这将需要一些思考,但不会花费太多时间。Hurd将尽可能高效地运行TCP/IP协议。
作为Hurd设计灵活性的一个有趣例子,请考虑IP尾部的情况,它在BSD中被广泛用于性能。虽然Hurd将愿意发送和接收尾部,但在这样做时它获得的优势相当少,因为不需要复制数据,并且避免对页面对齐的数据进行复制是无关紧要的。
日本第二届年度 GNU 研讨会
Wingnut和FSF于1993年12月1日和2日在东京赞助了第二届GNU技术研讨会。Richard Stallman谈到了GNU项目和FSF。然后,Jim Blandy谈到了GNU Emacs 19。最后,东田学(Manabu Higashida)谈到了Demacs(参见“微型计算机的自由软件”)。Bob Myers和David Littleboy将英文讲座翻译成日文。Software Research Associates, Inc. (SRA),SRA/Wingnut项目及其员工为这次研讨会和整个日本之行提供了无数的帮助。大约有70人参加了研讨会,几家日本出版物采访了Richard Stallman。FSF还首发了新版的源代码CD-ROM。
研讨会还于12月6日在仙台举行,Richard Stallman在会上发言;12月7日在会津大学举行,Richard Stallman和Jim Blandy在会上发言;12月13日在大阪举行,Richard Stallman和东田学在会上发言。我们感谢所有帮助使这些研讨会成为现实的人员和组织,包括组织者、主办方和口译员。
日本Unix协会在横滨的Unix Fair '93上给了FSF一个展位。我们感谢所有帮助FSF运营这个展位的志愿者和组织。
我们在研讨会和贸易展览会上取得的成功超出了我们的预期。我们收到了来自个人支持者和用户团体的许多自愿捐款,并感谢许多热情的志愿者帮助了我们。将来,我们希望在日本和其他地方的更多Unix活动中出现。如果您想主办研讨会,或需要会议的演讲者,请联系封面上的任何一个地址。
GNU 和日本的其他自由软件
Mieko (h-mieko@sra.co.jp) 和彦地信之 (Nobuyuki Hikichi) (hikichi@sra.co.jp) 继续在日本为GNU项目志愿服务。他们将本公告的每一期翻译成日文并广泛分发,以及他们翻译的GNU通用公共许可证第2版。GPL的这个翻译得到了FSF的授权,可以通过匿名FTP从srawgw.sra.co.jp的`/pub/gnu/local-fix/GPL2-j'中获得。他们正在进行GNU库通用公共许可证的正式翻译。此外,他们还征求捐款并提供GNU软件咨询。
Epoch (nepoch) 和MULE的日文版本在日本可用并被广泛使用。MULE(GNU Emacs的多语言增强)可以一次处理许多字符集。最终,它的功能将被合并到FSF版本的Emacs中。FSF不分发nepoch,但MULE可用(参见“源代码CD-ROM”)。您也可以从sh.wide.ad.jp的`/JAPAN/mule'或etlport.etl.go.jp的`/pub/mule'中FTP下载它。
The Village Center, Inc. 印刷了GNU Emacs Lisp 参考手册的日文翻译,并将Texinfo源代码上传到各个公告板。他们还出版了一本受版权保护的书,Nobuyuki和Mieko的Think GNU。这似乎是日本第一本非FSF版权保护的出版物。部分利润捐赠给FSF。他们的地址是
Village Center, Inc. 2-2-12, Fujimi-Cho, Choufu city Tokyo 182, Japan
Addison Wesley Publishers Japan 印刷了GNU Make 手册和GAWK 手册的日文翻译。他们的地址是
Addison Wesley Publishers Japan Nichibou Bldg. 2F 1-2-2 Sarugaku-cho, Chiyoda-ku Tokyo 101, Japan
ICOT(下一代计算机技术研究所)正在将其研究工作产生的第五代软件作为自由软件分发。这包括超过70兆字节的用于符号处理、知识表示、问题解决和推理以及自然语言处理的程序。如需更多信息,请联系irpr@icot.or.jp。
日本的许多团体现在分发GNU软件。它们包括PC用户组JUG;期刊和图书出版商ASCII;富士通FM Towns用户组;以及SRA的GNU支持特别小组,称为Wingnut,他们还在日本购买了第一个豪华软件包。(从那时起,在日本又有几笔匿名购买了豪华软件包。)还提供匿名UUCP;如需更多信息,请联系toku@dit.co.jp。
也可以直接从日本向FSF下订单,帮助我们资助新代码。我们有一份用日文编写的FSF订单,请向japan-fsf-orders@prep.ai.mit.edu索取订单的副本。在日本还有两个免费传真号码(请参阅封面)。我们鼓励您购买磁带:每150个磁带订单允许FSF雇用一名程序员一年来编写更多自由软件。
免费提供的文本
可自由再分发的信息不仅仅是软件。以下是一些提供各种书籍、历史文献等的团体。
-
FreeLore John Goodwin的FreeLore项目的一个目标是创建一个有用的、受版权保护的教科书核心。他目前正在测试一个用Texinfo编写的,面向初中到大学早期的原型课程。要志愿参加,请通过
jgoodwin@adcalc.fnal.gov与他联系。 -
在线书籍倡议(The Online Book Initiative) 在线书籍倡议专注于可自由再分发的书籍、会议记录、参考资料、目录等。OBI 拥有大约 200MB 的(主要是压缩的)在线文本,内容涵盖诗歌、标准文档到小说。可以通过匿名 FTP 从
obi.std.com下载。您也可以使用调制解调器拨号world.std.com(617-739-9753, 8N1),并创建一个帐户来访问这些信息(登录时使用new)。world上的帐户会按连接时间收费(详情请咨询office@world.std.com)。 -
古腾堡计划(Project Gutenberg) 古腾堡计划是 Michael Hart 的心血结晶。Hart 教授的成功希望源于他称之为“复制技术”的本质。一旦任何东西存储在计算机中,就可以无限期地复制,使其可供所有需要的人使用。古腾堡计划的文本可在多个 FTP 站点上获取,包括
mrcnext.cso.uiuc.edu中的 `/etext` 文件和oes.orst.edu中的 `/pub/almanac/etext` 文件。有关如何从 Bitnet 获取文本的说明,请在消息正文中向BITFTP@PUCC发送 `HELP`(在 Internet 上为BITFTP%PUCC.BITNET@mitvma.mit.edu)。或者查看bit.listserv.gutnberg这个 USENET 新闻组。
GNU 项目状态报告
- GNU 软件配置方案 我们正在使用统一的方案来配置 GNU 软件包以进行编译。所有 GNU 软件都支持相同的机器和系统类型命名替代方案。这使得以相同的方式配置任何和所有 GNU 软件成为可能。配置方案还支持使用一个命令配置包含多个 GNU 软件包的目录。当操作系统完成时,可以一次性配置整个系统,无需单独配置组成 GNU 系统的每个单独软件包。配置方案还可以指定主机和目标系统,因此您可以轻松配置和构建交叉编译工具。
-
Hurd 我们正在开发 GNU Hurd,这是一组在 Mach 之上运行的服务器(有关详细信息,请参阅“迈向操作系统设计新策略”)。Mach 是 CMU 开发的免费消息传递内核。Hurd 服务器与 GNU C 库协同工作,将提供类似 Unix 的功能。它们是构成完整 GNU 系统的最后主要组件。目前,Mach 内核已经有免费端口到 386 PC、DEC PMAX 工作站和几台其他机器,还有更多端口正在进行中。如果您想帮助其中一个端口或开始自己的端口,请联系 CMU (
mach@cs.cmu.edu)。一旦 Mach 端口存在于特定类型的硬件上,移植 GNU Hurd 和 GNU C 库就很容易(肯定比移植 GNU Emacs 容易,也比移植 GCC 容易)。最近取得了重大进展:文件系统正在启动,其他几个服务器正在运行。有几个与 Hurd 相关的重大项目需要志愿者。感兴趣的经验丰富的系统程序员应发送邮件至gnu@prep.ai.mit.edu。 -
GNU Emacs (另请参阅“现在可用的 GNU 软件”)Emacs 是可扩展、可定制、自文档化的实时显示编辑器。当前版本是 GNU Emacs 19.22。许多志愿者在 Emacs 19 上提供了特别的帮助。感谢 Alan Carroll 和参与 Epoch 的人们为多窗口 Emacs 生成初始反馈,感谢 Lucid, Inc. 实现了 X Selections、faces、优化字节码编译器和默认菜单栏,感谢 Eric Raymond 评估了 851 个可能的新 Lisp 库中的 460 个,感谢 Stephen Gildea 制作了 Emacs 19 参考卡。Emacs 后续版本计划的功能包括:区域和显示一个缓冲区的各个窗口的不同可见性条件;将撤消历史记录增量保存到文件中,以便
recover-file也能恢复缓冲区的撤消历史记录;支持可变宽度字体;支持包括世界上所有主要语言在内的宽字符集;以及支持使用 X 工具包进行显示。 -
GNU Fortran (
g77) GNU Fortran 处于“私有”alpha 测试阶段(由一小群专家进行测试),尚未公开发布。在g77完全向公众发布之前,我们要求人们使用f2c(Fortran 到 C 的转换器)和gcc(GNU C 编译器)。由于g77使用了许多这些工具(f2c库和gcc后端),因此使用它们并报告您发现的任何问题将有助于加快g77的发布。有关f2c和gcc的更多信息,请参阅“现在可用的 GNU 软件”。alpha 测试的主要重点是测试g77前端,因为该前端具有大部分新代码。alpha 测试的次要重点是测试前端和后端之间的集成。目前,这似乎是大多数错误的所在。第三个重点是 GNU 后端为 Fortran 生成的代码质量。我们希望在 1994 年初春发布g77beta 版本,作为常规编译器发行版的一部分。存在一个用于发布有关g77公告的邮件列表。要订阅,请询问info-gnu-fortran-request@prep.ai.mit.edu。要联系g77的作者和维护者,请写信给fortran@prep.ai.mit.edu。 -
C 编译器 (另请参阅“现在可用的 GNU 软件”)GNU C 编译器的第 2 版已发布。我们不再分发或维护 GCC、G++ 或 libg++ 的第 1 版。GCC2 支持 ANSI 和传统的 C,以及一些 GNU C 扩展。也有 C++ 和 Objective C 的前端。新的前端正在开发中,但它们尚未成为 GCC 的一部分。Fortran 的前端现在处于 alpha 测试阶段并即将完成,Ada 的前端(GNAT:GNU Ada 转换器)可通过匿名 FTP 从
cs.nyu.edu的 `ftp/pub/gnat` 获得,尽管它尚未稳定。志愿者也在开发 Pascal 前端。有关 GCC 的更多信息,请参阅“现在可用的 GNU 软件”。 -
C 解释器 FSF 正在努力为 GNU 编译器和调试器添加解释器功能。这项任务已部分完成。编译器现在生成字节码(适用于所有支持的语言,而不仅仅是 C),另一个软件包对其进行解释。为了使这项工作可用,我们需要向 GDB 添加功能以动态加载字节码。我们还希望 C 编译器支持仅编译文件中指定的少数几个函数。由于资源有限,FSF 无法为此提供资金。感兴趣的志愿者应联系
gnu@prep.ai.mit.edu。 - Binutils (另请参阅“现在可用的 GNU 软件”)Steve Chamberlain、Per Bothner 和 Cygnus Support 的其他人员重写了二进制实用程序(包括链接器)。第 2 版基于 GDB 使用的相同二进制文件描述符 (BFD) 库。所有工具都可以在与目标不同的主机上运行(例如,支持交叉链接)。支持各种形式的 COFF 和其他对象文件格式。一个工具现在可以同时处理多种格式的对象文件。例如,链接器可以使用许多不同的格式读取对象文件,并以另一种格式写入输出。链接器解释 AT&T 链接器命令语言的超集,该语言允许对段在内存中的位置进行一般控制。
-
GNU C 库 (另请参阅“现在可用的 GNU 软件”)Roland McGrath 继续致力于 GNU C 库。它现在支持 ANSI C-1989 和 POSIX 1003.1-1990 标准的所有要求,POSIX 1003.2 的大部分功能,以及许多额外的 BSD 和 System V 函数。C 库将在 Hurd 中执行 Unix 系统调用的许多功能。Mike Haertel 编写了一个快速的
malloc,它比旧的 GNU 版本浪费的内存更少。GNU 正则表达式函数 (regex) 现在几乎符合 POSIX 1003.2 标准。GNUstdio允许您通过编写一些 C 函数来定义新的流类型。fmemopen函数使用它在字符串上打开一个流,该流可以根据需要增长。您可以定义自己的printf格式以使用您编写的 C 函数。例如,您可以安全地使用用户输入的格式字符串来实现另一个编程语言的类似printf的函数。扩展的getopt函数已经用于解析许多 GNU 实用程序中的选项,包括长选项。GNU C 库的 1.06 版本刚刚发布,1.07 版本正在开发中。1.06 版本包括 Emacs 19 中使用的重定位分配器,以及 Sequent Symmetry 上的 Dynix、i386 上的 SCO & SVR4 和 SPARC 上的 Solaris 2 的新端口。《GNU C 库参考手册》的 Texinfo 来源也包含在内。有关更多信息,请参阅“现在可用的 GNU 软件”。 -
indent (另请参阅“现在可用的 GNU 软件”)我们现在有一个版本的
indent,它支持 C 代码的 GNU 缩进约定。它更加健壮,并且还具有最常见样式组合的便捷选项。用于检查 C 源文件并查找其中使用的缩进参数的配套程序几乎可以发布,但需要有人完成它。请联系gnu@prep.ai.mit.edu自愿加入。 -
make(另请参阅“现在可用的 GNU 软件”)GNUmake版本 3.70 已发布。错误报告得到改进,许多错误已得到修复。GNUmake完全符合 POSIX.2 标准。它还支持长选项、并行命令执行、灵活的隐式模式规则、条件执行和强大的文本操作函数。3.64 版本增加了对将更多文本附加到变量定义的流行的 `+=` 语法的支持。对于那些根本没有供应商提供的make实用程序的人来说,GNUmake附带一个名为“build.sh”的 shell 脚本,用于初始构建。请参阅“现在可用的 GNU 软件”。 -
Oleo (另请参阅“现在可用的 GNU 软件”)Oleo 是一个电子表格程序,可以作为 X 客户端或使用 curses 运行。当前版本是 1.5。最近增加了对
gnuplot和生成嵌入式 Postscript 的支持。如果您想为 Oleo 编写 Texinfo 手册,请联系 Tom Lord,lord+@andrew.cmu.edu。请将有关 Oleo 的错误报告发送至bug-oleo@prep.ai.mit.edu。请参阅“现在可用的 GNU 软件”。 -
Ghostscript (另请参阅“现在可用的 GNU 软件”)Ghostscript 的当前版本是 2.6.1。新功能包括使用 Ghostscript 运行的平台提供的字体(X Window 系统和 Microsoft Windows)的能力,从而使屏幕显示看起来更好;改进的文本文件打印(如
enscript);一个从 Postscript 文档中提取文本的实用程序;更加可靠(和更快)的 Microsoft Windows 实现;支持 Microsoft C/C++ 7.0;许多新打印机的驱动程序,包括 SPARCprinter 和 TIFF/F(传真)文件格式;更多 Postscript Level 2 功能,包括大多数颜色空间功能(但不包括模式)以及在 Level 1 和 Level 2 之间动态切换的能力。Ghostscript 接受 Postscript 中的命令,并通过直接写入打印机、在 X 窗口上绘图或写入稍后可以打印的文件(或写入可以使用其他图形程序操作的位图文件)来执行它们。Tim Theisen,ghostview@cs.wisc.edu,创建了 Ghostview,一个在 Ghostscript 之上运行的多页文件预览器。Russell Lang,rjl@monu1.cc.monash.edu.au,为 Windows 创建了 Ghostview,一个在 Microsoft Windows 上运行的类似预览器。Ghostscript 包括一个 C 可调用的图形库(用于不想处理 Postscript 语言的客户端程序)。它还支持带有 EGA、VGA 或 SuperVGA 图形的 IBM PC 和兼容机(但请不要向 FSF 工作人员询问有关此的任何问题;我们不使用 PC)。下一个计划的 Ghostscript 版本是 3.0,希望在 1994 年初推出。它将实现完整的 Postscript Level 2 语言,除了 LZW 压缩,由于软件专利,它不能自由实现。诸如此类的编程禁令是编程自由联盟正在与之抗争的。有关详细信息,请参阅“什么是 LPF?”。 - Smalltalk (另见“现有 GNU 软件”) GNU Smalltalk 实现了 Smalltalk 语言的传统特性,但尚未实现图形和窗口功能。最近有人实现了这些功能,它们将在未来的版本中出现。
-
groff(另见“现有 GNU 软件”) James Clark 完成了groff(GNUtroff及相关程序)。它们用 C++ 编写,可以使用 GNU C++ 2.3 或更高版本编译。groff中的错误将被修复,但目前没有计划进行重大的新开发。不过,我们鼓励groff用户继续贡献增强功能。最需要的是完整的 Texinfo 文档、一个grap仿真器(用于排版图表的pic预处理器)、一个类似于pm的页面排版后处理器(参见计算机系统,第 2 卷,第 2 期)以及一个pic的 ASCII 输出类,以便将pic与 Texinfo 集成。感谢所有提交错误报告的人。 -
Texinfo 3 (另见“现有 GNU 软件”) Texinfo 3 软件包包括一个增强的 GNU Emacs 的 Texinfo 模式,新版本的格式化实用程序,以及第二版的Texinfo 手册。此版本更加详尽,并描述了 50 多个新命令。Texinfo 模式现在包含用于自动创建和更新节点和菜单的命令,手动执行此任务时非常繁琐。包括
makeinfo(一个独立的格式化程序)和info(一个独立的 Info 阅读器)。两者都用 C 编写,并且独立于 GNU Emacs。 - 移植 虽然我们还没有一个完整的 GNU 系统,但您已经可以开始移植它了。这是因为未完成的部分 Hurd 基本上是可移植的。真正需要移植的系统部分是 Mach 和 GNU C 库,它们已经可以进行移植、使用和报告错误。
GNU 文档
GNU 致力于提供高质量、易于使用的在线和印刷文档。GNU 手册旨在解释基本概念,描述如何使用每个程序的所有功能,并给出命令使用示例。GNU 手册以 Texinfo 源文件形式分发,通过菜单驱动的 Info 系统,可以生成排版的硬拷贝和在线超文本式显示。这些手册的源代码与我们的软件一起提供,也可以以硬拷贝形式提供;请参阅“自由软件基金会订购单”。
有几本 GNU 手册以软封面书的形式装订,带有摊平装订。这使您可以将它们打开,使其平放在桌子上而不会弄皱装订。每本书都有一个内布书脊和一个外纸板封面,它不会像普通的平装本那样破裂或折皱。其他 GNU 手册也采用其他技术进行装订,使其在打开时保持平整。有关每本手册的列表,请参阅“自由软件基金会订购单”。
在本公告发布时,每本手册名称后列出的手册版本号和程序版本号均为最新。
Emacs 手册(第 19 版的第 9 版)描述了如何使用 GNU Emacs 进行编辑。它还解释了高级功能,例如大纲模式和正则表达式搜索,如何使用特殊模式用 C++ 和 TeX 等语言进行编程,如何使用 tags 实用程序,如何编译和纠正代码,以及如何创建自己的快捷键绑定和其他基本自定义。
GNU Emacs Lisp 参考手册(第 19 版的第 2.1 版)深入介绍了这种编程语言,包括数据类型、控制结构、函数、宏、语法表、搜索和匹配、模式、窗口、键映射、标记、字节编译和操作系统接口。
Texinfo 手册(第 3 版的第 2.19 版)解释了用于生成在线 Info 文档和排版硬拷贝的标记语言。它告诉您如何制作表格、列表、章节、节点、索引、交叉引用,如何在 GNU Emacs 中使用 Texinfo 模式,以及如何查找错误。
GAWK 手册(第 2.16 版的第 0.16 版)讲述了如何使用 GNU 的 awk 实现。它是为从未使用过 awk 的人编写的,并描述了这种强大的字符串和记录操作语言的所有功能。
Make 手册(第 3.68 版的第 0.43 版)描述了 GNU make,一个用于重建其他程序部分的程序。该手册讲述了如何编写 makefile,它指定如何编译程序以及其文件如何相互依赖。其中包括针对新手用户的介绍性章节和有关自动生成依赖关系的部分。
使用 GDB 调试(第 4.9 版的第 4.09 版)讲述了如何使用 GNU 调试器,在调试器控制下运行程序,检查和更改数据,修改程序内的控制流程,以及通过 GNU Emacs 使用 GDB。
Bison 手册(1993 年 12 月版,针对 1.23 版)教您如何为 Bison 程序编写上下文无关文法,将其转换为 C 编码的解析器。您不需要事先了解解析器生成器。
Flex 手册(第 2.3.7 版的第 1.03 版)告诉您如何为 flex 程序编写词法扫描器定义,以创建将识别所描述模式的 C++ 或 C 编码的扫描器。您不需要事先了解扫描器生成器。
使用和移植 GNU CC(1993 年 6 月版,针对 2.4 版)解释了如何运行、安装和移植 GNU C 编译器。
Termcap 手册(第 1.2 版的第 2 版),通常被描述为“您想了解的关于 termcap 的两倍信息”,详细介绍了 termcap 数据库的格式、终端功能定义以及查询终端描述的过程。本手册主要面向程序员。
Emacs Calc 手册(第 2.02 版的第 2.02 版)包括 Calc 的教程和参考手册。它描述了如何进行普通算术、如何将 Calc 用于代数、微积分和其他形式的数学以及如何扩展 Calc。
C 库参考手册(93 年 6 月版,针对 1.07 版)描述了 GNU C 库的大部分功能,包括 Unix 所谓的“库函数”和“系统调用”。在它变得更加稳定之前,我们正在对本手册进行有限的复印运行。它是新的,需要更正和改进。请将它们发送至 bug-glibc-manual@prep.ai.mit.edu。
现在可用的 GNU 软件
我们提供
- 源代码 CD-ROM(请参阅“源代码 CD-ROM”)
- 编译器工具二进制文件 CD-ROM(请参阅“编译器工具二进制文件 CD-ROM”)
- 带有某些 GNU 软件的 MS-DOS 软盘(请参阅“MS-DOS 发行版”)
- GNU Emacs 和 GNU C 编译器的 VMS 磁带(包括源代码和可执行文件)(请参阅“VMS Emacs 和 VMS 编译器磁带”)
我们还以 tar 格式在以下介质上提供 Unix 软件源代码发行磁带
- 4mm DAT 卡带
- 8mm Exabyte 卡带
- Sun QIC-24 卡带(可在某些其他系统上读取)
- 惠普 16 轨卡带
- IBM RS/6000 QIC-150 卡带(可在某些其他系统上读取)(RS/6000 Emacs 磁带也有一个 Emacs 二进制文件)
- 1600bpi 9 轨盘式磁带
Unix 系统的盘式和各种卡带磁带的内容相同(除了 RS/6000 Emacs 磁带,它也包含 Emacs 的可执行文件);只有介质不同(请参阅“自由软件基金会订购单”)。手册的源代码以 Texinfo 格式包含在内。我们欢迎所有发送到相应电子邮件列表的错误报告(请参阅“自由软件支持”)。
磁带上的某些文件可能使用 gzip 压缩以使其适合。有关解压缩它们的说明,请参阅每个磁带开头的顶层“README”文件。uncompress 和 unpack 不起作用!
在描述每种介质内容的文章中,程序名称后列出的版本号为本公告发布时的最新版本。当您订购发行磁带或软盘时,某些程序可能会更新,因此版本号更高。
交叉引用键
- BinCD
- 二进制文件 CD-ROM
- DemcsD
- Demacs 软盘
- DjgppD
- Djgpp 软盘
- EmcsT
- Emacs 磁带
- LangT
- 语言磁带
- SchmT
- Scheme 磁带
- SrcCD
- 源代码 CD-ROM
- UtilD
- 选定的实用程序软盘
- UtilT
- 实用程序磁带
- VMSCompT
- VMS 编译器磁带
- VMSEmcsT
- VMS Emacs 磁带
- WdwsD
- Windows 软盘
- X11OptT
- X11 可选磁带
- X11ReqT
- X11 必需磁带
当前可用的 GNU 软件(请参阅“GNU 项目状态报告”,了解新功能和即将推出的程序)
acm(SrcCD, UtilT)acm是一个面向 LAN 的多人空战模拟游戏,在 X Window 系统下运行。玩家使用热寻导弹和大炮相互进行空对空战斗。最终,我们希望将其转变为更通用的飞行模拟器。- Autoconf (SrcCD, UtilT) Autoconf 生成自动配置源代码包的 shell 脚本。这些脚本使软件包能够适应多种类 Unix 系统,而无需手动用户干预。Autoconf 从模板文件为软件包创建脚本,该模板文件列出了软件包可以使用的操作系统功能,以
m4宏调用的形式。现在,大多数 GNU 程序都使用 Autoconf 生成的配置脚本。 - BASH (SrcCD, UtilT) GNU shell,BASH (Bourne Again SHell),与 Unix
sh兼容,并提供了csh和ksh中发现的许多扩展。BASH 具有作业控制、csh风格的命令历史记录和命令行编辑(内置 Emacs 和vi模式以及通过 readline 库重新绑定键的能力)。 bc(SrcCD, UtilT)bc是一种具有任意精度的交互式代数语言。GNUbc遵循 POSIX 1003.2 草案标准,并进行了多项扩展,包括多字符变量名、else语句和完整的布尔表达式。- BFD (二进制CD, 语言T, 源代码CD) 二进制文件描述符库 (Binary File Descriptor library) 允许操作目标文件的程序(例如
ld或 GDB)以清晰的方式支持多种不同的格式。 BFD 提供了一个可移植的接口,因此只有 BFD 需要知道特定格式的实际细节。这种设计的一个结果是,所有使用 BFD 的程序都将支持 a.out、COFF、ELF 和 OSF-Rose 等格式。 BFD 附带 Texinfo 文档。目前,BFD 不是单独分发的,而是包含在使用它的软件包中,因为它尚未完全稳定。 - Binutils (二进制CD, 语言T, 源代码CD) Binutils 包括以下程序:
ar、c++filt、demangle、gprof、ld、nlmconv、nm、objcopy、objdump、ranlib、size、strings和strip。 Binutils 版本 2 完全重写以使用 BFD 库。 GNU 链接器ld会为多重定义的符号和未定义的引用发出带有源行编号的错误消息。nlmconv将目标文件转换为 Novell NetWare 可加载模块。objdump程序可以为 a29k、ALPHA、H8/300、H8/500、HP-PA、i386、i960、m68k、m88k、MIPS、SH、SPARC 和 Z8000 处理器反汇编代码,并且可以显示 BFD 理解的任何文件格式中的其他数据,例如符号和重定位信息。另请参阅“GNU 项目状态报告”。 - Bison (二进制CD, 语言T, 源代码CD, VMS编译器T) Bison 是
yacc解析器生成器的向上兼容替代品。 包括Bison 手册和参考卡的源代码。 - GNU C 库 (语言T, 源代码CD) 该库支持 ANSI C-1989 和 POSIX 1003.1-1990,并且具有 POSIX 1003.2 草案 11.2 中指定的大多数函数。 它向上兼容 4.4 BSD,并包含许多 System V 函数以及 GNU 扩展。 版本 1.07 使用标准的 GNU
configure脚本。 它运行在 Sun-3 (SunOS 4.1)、Sun-4 (SunOS 4.1 & Solaris 2)、HP 9000/300 (4.3 BSD)、SONY News 800 (NewsOS 3 或 4)、MIPS DECstation (Ultrix 4)、DEC Alpha (OSF/1)、i386/i486 (System V, SVR4, BSD, SCO 3.2 & SCO ODT 2.0) 和 Sequent Symmetry i386 (Dynix 3) 上。GNU C 库参考手册的 Texinfo 源代码包含在其中。另请参阅“GNU 项目状态报告”。 - Calc (Emacs工具T, 源代码CD) Calc(由 Dave Gillespie 用 Emacs Lisp 编写)是一个可扩展的、高级的桌面计算器和数学工具,作为 GNU Emacs 的一部分运行。它附带Calc 手册和参考卡的源代码,可用作教程和参考。 如果您愿意,您可以将 Calc 仅用作一个简单的四则运算计算器,但它还提供其他功能,包括代数或 RPN(基于堆栈)输入的选择、对数函数、三角函数和财务函数、任意精度、复数、向量、矩阵、日期、时间、无穷大、集合、代数简化、微分和积分。 Calc 还输出到
gnuplot。 - GNU Chess (工具T, 源代码CD) GNU Chess 是一个与您下棋的程序。 它完全用 C 语言编写,并已移植到 PC、Cray-2 和许多其他机器。 它也已移植到其他操作系统,包括 Microsoft Windows 和 MS-DOS,尽管这些版本不受维护者支持。 它有文本和 X 显示界面。 GNU Chess 实现了许多专门的功能,包括空步启发式、带有老化的哈希表、历史启发式(早期杀手启发式的另一种形式)、静态评估缓存以及一个复杂的数据库,使其能够快速进行游戏的前几步。 GNU Chess 赢得了 1992 年 8 月在英国伦敦举行的统一平台赛事。 有九个程序参加比赛,在相同的硬件上运行。 GNU Chess 主要由 Stuart Cracraft 代表 FSF 提供支持。
Stuart Cracraft P.O. Box 2841 Laguna Hills, CA 92653 USA Phone: (714) 770-8532 E-mail:
cracraft@ai.mit.edu - CLISP (Emacs工具T, 源代码CD) CLISP 是 Bruno Haible 和 Michael Stoll 实现的 Common Lisp。 它主要支持Common LISP: The Language (第一版)中描述的 Common Lisp。 CLISP 包括一个解释器、一个字节编译器,以及在某些机器上的一个屏幕编辑器。 CLISP 只需要 1.5 MB 的内存,可以在许多微型计算机上运行(包括 Atari ST、Amiga 500-2000、大多数 MS-DOS 系统和 OS/2)以及一些 Unix 工作站(Linux、SunOS (SPARC)、Sun-386i、HP-UX (HP 9000/800) 和其他系统)。
cpio(工具D, 工具T, 源代码CD)cpio是一个替代的归档程序,具有 SVR4cpio的所有功能,包括对最终的 POSIX 1003.1 ustar 标准的支持。mt是一个用于定位磁带的程序,包含在cpio中。- CVS (工具T, 源代码CD) CVS(并发版本系统)在多开发人员、多目录、多组环境中管理软件修订和发布控制。 它最好与 RCS 版本 4 及更高版本结合使用,但会解析较旧的 RCS 格式,从而失去 CVS 的更高级功能。 请参阅 Berliner, Brian, "CVS-II: Parallelizing Software Development," Proceedings of the Winter 1990 USENIX Association Conference。
dc(工具T, 源代码CD)dc是一个 RPN 计算器。 GNUbc不需要单独的dc程序即可运行。 此版本的dc最终将与 GNUbc合并。- DejaGnu (语言T, 源代码CD) DejaGnu 是一个用于测试其他程序的框架,为所有测试提供一个统一的前端。 DejaGnu 框架的灵活性和一致性使其可以轻松地为任何程序编写测试。 DejaGnu 附带
expect和 Tcl。 - Diffutils (工具D, 工具T, 源代码CD) GNU
diff比较文件,以几种灵活的格式显示逐行的更改。 它比传统的 Unix 版本快得多。 Diffutils 发行版包含diff、diff3、sdiff和cmp。 - DJGPP (二进制CD, DjgppD) DJ Delorie 已将 GCC/G++ 2.5.7 移植到 i386 MS-DOS 平台。 DJGPP 包还包含一个带有符号调试器的 32 位 80386 DOS 扩展器;开发库;以及 Bison、
flex、GAS 和 GNU 二进制实用程序的端口。 提供完整的源代码。 DJGPP 支持 SVGA(高达 1024x768)、XMS 和 VDISK 内存分配、himem.sys、VCPI(例如 QEMM、DESQview 和 386MAX)和 DPMI(例如 Windows 3.x、OS/2、QEMM 和 QDPMI)。 可以通过 FTP 从ftp.clarkson.edu的 `/pub/msdos/djgpp' 获取。 您可以通过将您的电子邮件地址发送至djgpp-request@sun.soe.clarkson.edu来订阅关于 DJGPP 的邮件列表。 此外,FSF 在软盘和编译器工具二进制 CD-ROM 上分发它。 有关更多信息,请参阅本节中 GCC 的描述。 dld(语言T, 源代码CD)dld是 W. Wilson Ho 编写的动态链接器。 将您的程序与dld库链接,可以将目标文件动态加载到正在运行的二进制文件中。 当前支持 VAX (Ultrix)、Sun 3 (SunOS 3.4 和 4.0)、SPARC (SunOS 4.0)、Sequent Symmetry (Dynix) 和 Atari ST。doschk(工具T, 源代码CD) 此程序旨在作为一种实用程序,帮助软件开发人员确保其源文件名称在具有 14 个字符文件名 System V 平台和具有 11 个字符文件名 MS-DOS 上可区分。ecc(工具T, 源代码CD)ecc是一个 Reed-Solomon 纠错校验程序,可以在 255 字节的块中纠正三个字节错误并检测更严重的错误。- Elib (Emacs工具T, 源代码CD) 这是一个小的 Emacs Lisp 函数库,包括使用 AVL 树和双向链表的例程。
elvis(工具T, 源代码CD)elvis是vi/exUnix 编辑器的克隆。 它在可视化模式和行模式下都支持几乎所有vi/ex命令。elvis在 BSD、System V、Xenix、Minix、MS-DOS 和 Atari TOS 下运行,并且应该很容易移植到许多其他系统。- GNU Emacs 18 (演示EmacsD, Emacs工具T, 源代码CD, VMSEmacs工具T) 1975 年,Richard Stallman 开发了第一个 Emacs,这是一个可扩展的、可定制的实时显示编辑器。 GNU Emacs 是他的第二个实现。 它提供了真正的 Lisp(与编辑器顺利集成),用于编写扩展,并提供了与 MIT 的 X Window 系统的接口。 除了其强大的本机命令集之外,还分发了模拟其他流行编辑器的扩展:vi、EDT(DEC 的 VMS 编辑器)和 Gosling(又名 Unipress)Emacs。 它还有许多其他功能,使其成为一个完整的计算支持环境。 它由GNU Emacs 手册、GNU Emacs Lisp 参考手册和参考卡进行描述。 所有三个的源代码都随软件提供。 GNU Emacs 18.59 在许多 Unix 系统(按硬件顺序排列)上运行:Alliant FX/80 和 FX/2800、Altos 3068、Amdahl (UTS)、Apollo、AT&T(3Bs 和 7300 PC)、DG Aviion、Bull DPX/2(2nn 和 3nn)CCI 5/32 和 6/32、Celerity、Convex、Digital(DECstation 3100 和 5000 (PMAXes)、Mips、VAX (BSD、SysV 和 VMS))、Motorola Delta 147 和 187 Dual、Elxsi 6400、Encore(DPC、APC 和 XPC)、Gould、HP (9000 系列 200、300、700 和 800,但不包括 500)、HLH Orion(原始版和 1/05)、IBM (RS/6000 (AIX)、RT/PC (4.2 和 AIX) 和 PS/2 (AIX (仅限 386)))、ISI (Optimum V, 80386)、Intel 860 和 80386 (BSD、Esix、SVR3、SVR4、SCO、ISC、IX、AIX 和其他(请参阅“MS-DOS 发行版”和“微型计算机的自由软件”))Iris(2500、2500 Turbo 和 4D)、Masscomp、MIPS、National Semiconductor 32000、NeXT(Mach)、NCR Tower 32(SVR2 和 SVR3)、Nixdorf Targon 31、Nu(TI 和 LMI)、pfa50、Plexus、Prime EXL、Pyramid(原始版和 MIPS)、Sequent(Balance 和 Symmetry)、SONY News(m68k 和 MIPS)、Stride(系统版本 2)、包括 386i 在内的所有 Sun(所有 SunOS 和一些 Solaris 版本)、Tadpole、Tahoe、Tandem Integrity S2、Tektronix(16000 和 4300)、Triton 88、Ustation E30 (SS5E)、Whitechapel (MG1) 和 Wicat。 按操作系统顺序排列:AIX (RS/6000, RT/PC, 386-PS/2)、BSD (版本 4.1、4.2、4.3)、DomainOS、Esix (386)、HP-UX (HP 9000 系列 200、300、700、800 但不包括 500)、ISC (386)、IX (386)、Mach、Microport、NewsOS (Sony m68k 和 MIPS)、SCO (386)、SVR0 (Vax、AT&T 3Bs)、SVR2、SVR3、SVR4、Solaris 2.0、SunOS、UTS (Amdahl)、Ultrix (版本 3.0、4,1)、Uniplus 5.2(双机器)、VMS(版本 4.0、4.2、4.4、5.5)和 Xenix (386)。
- GNU Emacs 19 (EmcsT, SrcCD) 与其他一些最近的 Emacs 衍生版本不同,GNU Emacs 19 继续在纯字符终端以及 X Window 系统下工作。Emacs 19 的新功能包括:多个 X 窗口(Emacs 的“框架”),其中为小缓冲区单独设置一个 X 窗口,或者每个 X 窗口都附加一个小缓冲区;与缓冲区中的文本区域关联的属性列表;由这些属性定义的多种字体和颜色;简化和改进的功能键、鼠标点击和鼠标移动处理;X 选择处理,包括剪贴板选择;如果光标或鼠标移动到特定范围之外,则运行钩子;由键映射定义的菜单栏和弹出菜单;滚动条;更改前和更改后钩子;Emacs Lisp 程序的源代码级调试;欧洲字符集支持;浮点数;改进的缓冲区分配,使用一种新的机制,可以在缓冲区被杀死时将存储返回给系统;与 X 资源管理器接口;GNU 配置方案支持;良好的 RCS 支持;以及许多更新的库。已知 GNU Emacs 19.22 在以下系统上工作(按硬件顺序):Bull DPX/2 2nn 和 3nn (SVR3) 和 sps7 (SVR2);Clipper;Cubix QBx (SysV);DEC MIPS (Ultrix 4.2 和 OSF/1,不是 VMS);Motorola Delta 147 和 187 (SVR3、SVR4 和 m88kbcs);Elxsi 6400 (SysV);Gould Power Node 和 NP1 (BSD 4.2 和 4.3);Honeywell XPS100 (SysV);HP9000 系列 200、300、700、800 (BSD 4.3 或 HP-UX 7、8、9);i386 和 i486 (386BSD、AIX、BSDI/386、FreeBSD、Esix、ISC、Linux、NetBSD、带 ODT 的 SCO3.2v4、SysV、Xenix);RS6000 (AIX 3.2);RT/PC (AIX 或 BSD);Iris 4D (Irix 4.x 和 5.x);National Semiconductor 32K (Genix);NeXT (BSD 或 Mach 2 w/ NeXTStep 3.0);Prime EXL (SysV);Pyramid (BSD);Sequent Symmetry (BSD);Sun 3 和 4、SPARC 1、1+、2、10 和 Classic (SunOS 4.0、4.1、Solaris 2);Tadpole 68k (SysV);Tektronix XD88 (SVR3) 和 4300 (BSD);以及 Titan P2 和 P3 (SysV)。按操作系统顺序:AIX (i386、RS6000、RT/PC);BSD 4.1、4.2、4.3 (i386、Gould Power Node 和 NP1、HP9000 系列 300、NeXT、Pyramid、Symmetry、Tektronix 4300、RT/PC);Esix (i386);Genix (ns32k);HP-UX 7、8、9 (HP 9000 系列 200、300、700、800,但不包括 500);Irix 4 和 5 (Iris 4D);ISC (i386);Linux (i386);NetBSD (i386, HP9000 系列 300);Mach 2 和 3 (i386, NeXT);SCO 3.2v4 (i386);SVR2 (Bull sps7);SVR3 (Bull DPX/2 2nn 和 3nn、Motorola Delta 147 和 187、Tektronix XD88);SVR4 (Motorola Delta 147 和 187);Solaris 2 (SPARC 1、1+、2、10、Classic);SunOS 4.0、4.1 (Sun 3 和 4、SPARC 1、1+、2、10 和 Classic);Ultrix 4.2 (DEC MIPS);以及 Xenix (i386)。Emacs 18 支持的其他配置应该只需少量更改即可工作;随着用户告诉我们更多关于他们在不同系统上的体验,我们将扩充该列表。另请参阅“GNU 项目状态报告”。
es(UtilT, SrcCD) 这是一个基于rc的可扩展 shell,具有一等函数、词法作用域、异常系统和丰富的返回值(即函数可以返回除数字以外的值)。与rc一样,它非常适合交互使用和脚本编写,尤其因为其引用规则比 C 或 Bourne shell 简单得多。expect(LangT, SrcCD)expect运行脚本以与程序进行对话。它与 Tcl 和 DejaGnu 一起分发。f2c(LangT, SrcCD)f2c将 Fortran-77 源代码文件转换为 C 或 C++,然后可以使用 GCC 进行编译。- Fax (UtilT, SrcCD) Fax 是免费提供的 MIT AI Lab 传真假脱机系统,它为联网的 Unix 系统提供 Group 3 传真发送和接收服务。它需要一个符合新的 EIA-592 异步传真 DCE 控制标准、服务类 2 的传真调制解调器。
- Fileutils (UtilD, UtilT, SrcCD) Fileutils 用于处理文件:
chgrp、chmod、chown、cp、dd、df、dir、du、install、ln、ls、mkdir、mkfifo、mknod、mv、mvdir、rm、rmdir、touch和vdir。其中只有一部分在选定的实用程序软盘上。 find(UtilD, UtilT, SrcCD)find经常在交互式和 shell 脚本中使用,以查找符合特定条件的文件并对其执行任意操作。还包括xargs和locate。finger(UtilT, SrcCD) GNU Finger 可以直接替换现有的 finger 程序,解决了这个问题。对于有多个主机的站点,可以将单个主机指定为 finger _服务器_主机。此主机收集有关该站点上其他主机上登录的用户的信息。如果站点 A 的用户想知道站点 B 上登录的用户,则对该站点的任何计算机的单个查询将返回完整信息。flex(LangT, UtilD, SrcCD)flex是 Lawrence Berkeley Laboratory 的 Vern Paxson 编写的lex扫描器生成器的基本兼容替代品。flex生成的扫描器比lex更高效。包括《Flex 手册》和参考卡片的源代码。- Fontutils (UtilT, SrcCD) Fontutils 可以为 Ghostscript 或 TeX 创建字体,从扫描的类型图像开始,并将位图转换为轮廓。它们还包含通用的转换程序和其他实用程序。
- GAS (BinCD, LangT, SrcCD) GNU 汇编器已重写为使用 BFD 库。本机汇编适用于:Sun 3、4 和 SPARC (SunOS 4.1 或 Solaris 2);i386 (AIX、386BSD、BSDI/386、Linux);m68k (BSD、HP-UX、Convergent Technologies SysV);MIPS (Ultrix、Irix);Hitachi H8/500;以及 VAX (BSD、Ultrix、VMS)。可以为以下平台进行交叉汇编:i386 (SCO、go32 MS-DOS/DJGPP);ebmon29k;Hitachi H8/300;i960 (COFF);MIPS ECOFF (Ultrix、Iris、MIPS Magnum);Nindy 960;vxworks (68k 或 960);以及 Zilog Z8000。
- GAWK (LangT, SrcCD) GAWK 向上兼容 System V Release 4 版本的
awk。《GAWK 手册》的 Texinfo 源代码随软件一起提供。 - GCC (BinCD, DjgppD, LangT, SrcCD) GNU C 编译器的版本 2 支持三种语言:C、C++ 和 Objective C;源文件名后缀或编译器选项选择语言。Objective C 的前端支持由 NeXT 捐赠。运行 Objective C 程序所需的运行时支持现在与 GCC 一起分发(这不包括
object之外的任何 Objective C 类)。G++ 尽可能与不断发展的 ANSI 标准草案保持兼容,但与cfront(AT&T 的编译器) 不兼容,后者与 ANSI 存在差异。GNU C 编译器是一个相当可移植的优化编译器,它执行自动寄存器分配、公共子表达式消除、循环中的不变代码移动、归纳变量优化、常量传播和复制传播、函数调用参数的延迟弹出、尾递归消除、内联函数集成和帧指针消除、指令调度、循环展开、延迟槽填充、叶函数优化、常量优化的乘法、基本块之间一定量的公共子表达式消除 (CSE) (尽管并非所有受支持的机器描述都提供调度或延迟槽)、用于为指令分配属性的功能,以及许多从机器描述中自动推导出的局部优化。已编写了函数范围的 CSE,但在安装之前需要清理。68k、i386、Hitachi Slt、Hitachi H8/300、Clipper、88k、SPARC 和 SPARClite 支持与位置无关的代码。GCC 可以对 64 位值(类型long long int)进行开码运算。它在 68k 上支持扩展浮点数(类型long double);其他机器也将支持。GCC 支持完整的 ANSI C、传统的 C 和 GNU C 扩展。GNU C 已扩展为支持嵌套函数、非本地 goto 以及获取标签的地址。与合适的汇编器一起使用时,GCC 可以生成 a.out、COFF、ELF 和 OSF-Rose 文件。它可以生成以下格式的调试信息:BSD stabs、COFF、ECOFF、带有 stabs 的 ECOFF 和 DWARF。GCC 为以下平台生成代码:a29k、Alpha、ARM、Convex cN、Clipper、Elxsi、H8300、HP-PA (1.0 和 1.1) i370、i386、i486、i860、i960、m68k、m68020、m88k、MIPS、ns32k、Pyramid、ROMP、RS6000、SH、SPARC、SPARClite、VAX 和 we32k。支持的操作系统包括:AIX、ACIS、AOS、BSD、Clix、Ctix、DG/UX、Dynix、Genix、HP-UX、ISC、Irix、Linux、Luna、LynxOS、Mach、Minix、NeWSOS、OSF、OSF-Rose、RISCOS、SCO、Solaris 2、SunOS 4、SysV、Ultrix、Unos 和 VMS。Alliant、Tahoe 和 Spur 的旧(版本 1)机器描述(以及 Tron 的新端口)不起作用,但仍然包含在发行版中,以防有人想处理它们。使用 GCC 的配置方案,构建交叉编译器就像为同一目标机器构建编译器一样容易。版本 2 支持更通用的调用约定:它可以“按引用”传递参数,并且可以预先分配堆栈参数的空间。SPARC 上的 GCC 2 使用 SPARC 约定进行结构参数和返回值。GCC 手册《使用和移植 GNU CC》的源代码随编译器一起提供。该手册介绍了如何运行和安装 GNU C 编译器,以及如何将其移植到新系统。它描述了编译器的新功能和不兼容性,但对 C 不熟悉的人还需要一本关于 C 编程语言的良好参考书。另请参阅“GNU 项目状态报告”。 - GDB (BinCD, LangT, SrcCD) 在 GDB 中,对象文件和符号表现在通过 BFD 库读取,这允许单个 GDB 副本调试多种对象文件格式的程序,例如 a.out 和 COFF。其他新功能包括命令语言改进、通过串行线路或 TCP/IP 进行远程调试,以及监视点(当表达式的值更改时触发的断点)。仅当与 GCC 版本 2 一起使用时,才支持异常处理、SunOS 共享库和 C++ 多重继承。除了命令行解释器之外,还提供了 GDB 的 X 和 GNU Emacs 用户界面。GDB 使用到模拟器库的标准远程接口,该库(到目前为止)包含 Zilog Z8001/2、Hitachi H8/300、H8/500 和 Super-H 的模拟器。GDB 可以执行交叉调试。说 GDB _目标_ 一个平台意味着它可以为其执行本地或交叉调试。说 GDB 可以 _托管_ 给定平台意味着它可以在其上构建,但不一定可以调试本地程序。GDB 可以
- _目标_ 和 _托管_:DEC Alpha (OSF/1)、Amiga 3000 (Amix)、DECstation 3100 和 5000 (Ultrix)、HP 9000/300 (BSD)、IBM RS/6000 (AIX)、i386 (BSD、SCO、Linux、LynxOS)、Motorola Delta m88k (System V)、NCR 3000 (SVR4)、SGI Iris (运行 Irix V3 和 V4 的 MIPS)、SONY News (NewsOS 3.x)、Sun-3 和 SPARC (SunOS 4.1、Solaris 2.0) 和 Ultracomputer (运行 Sym1 的 29K)。
- _目标_,但不是 _托管_:i960 Nindy、AMD 29000 (COFF 和 a.out)、Fujitsu SPARClite、Hitachi H8/300、m68k 和 m68332。
- _托管_,但不是 _目标_:Intel 386 (Mach)、IBM RT/PC (AIX) 和 HP/Apollo 68k (BSD)。
gdbm(LangT, UtilD, SrcCD)gdbm库是 GNU 对传统dbm和ndbm库的替代品。它使用哈希快速查找来实现数据库。gdbm不需要稀疏文件格式(与其 Unix 对应物不同)。- Ghostscript (UtilT, SrcCD) Ghostscript 是 GNU 的图形语言,它几乎完全兼容 Postscript(请参阅“GNU 项目状态报告”)。
- Ghostview (UtilT, SrcCD) Ghostview 为 Ghostscript 解释器提供 X11 用户界面。Ghostview 和 Ghostscript 作为两个协作程序运行;Ghostview 创建一个查看窗口,而 Ghostscript 在其中绘制。有一个针对 MS-Windows 的 Ghostview 端口。
gmp(语言类, 源代码) GNU MP 是一个用于对有符号整数和有理数进行任意精度算术运算的库。它具有丰富的函数集和统一的接口。- GNATS (工具类, 源代码) Gnats (GNats: A Tracking System) 是一个缺陷跟踪系统。它基于一个中心站点或组织接收问题报告并通过电子邮件协商解决的模式。尽管它目前主要用作软件缺陷跟踪系统,但它足够通用,可以用于处理系统管理问题、项目管理或任何其他数量的应用程序。
gnuplot(工具类, 源代码)gnuplot是一个用于绘制数学表达式和数据的交互式程序。它可以处理曲线(二维)和曲面(三维)。奇怪的是,该程序既不是为 GNU 项目编写的,也不是以 GNU 项目命名的;这个名字纯属巧合。- GnuGo (工具类, 源代码) GnuGo 用于玩围棋(Wei-Chi);它还不是很完善。
gperf(语言类, 源代码)gperf是一个“完美”哈希表生成实用程序。实际上有gperf的两个实现,一个用 C 编写,另一个用 C++ 编写。两者都将生成 C 或 C++ 中的哈希函数。- GNU Graphics (工具类, 源代码) GNU Graphics 是一组从 ASCII 或二进制数据生成绘图的程序。它支持输出到 Tektronix 4010、Postscript 和 X Window 系统或兼容设备。功能包括支持 ln03 和 TekniCAD TDA 文件格式的输出;替换
spline程序;使用graph和plot的 shell 脚本示例;统计工具包;以及使用configure进行安装。现有的移植需要重新测试。如果您可以帮助将其测试/移植到 SPARCstation 之外的任何设备,请联系 Rich Murphey,Rich@rice.edu。 grep/egrep/fgrep(工具类, 工具类, 源代码)[ef]grep程序是 GNU 版本的同名 Unix 程序。它们比传统的 Unix 版本快得多。groff和mgm(工具类, 源代码)groff是一个文档格式化系统,其中包括troff、pic、eqn、tbl、refer、man、ms和mm宏的实现,以及 Postscript、TeX dvi 格式和类似打字机设备的驱动程序。还包括 Berkeleyme宏的修改版本和 X11xditview预览器的增强版本。mgm是groff的宏包。它几乎与 DWBmm宏兼容,并具有一些扩展。另请参阅“GNU 项目状态报告”。gzip(DjgppD, EmcsT, 语言类, 源代码, 工具类) 我们的磁带和 FTP 发行版的一些内容是压缩的。我们的磁带和 FTP 站点上有软件来解压缩这些文件。由于compress的专利问题,我们已切换到另一个压缩程序gzip。gzip可以展开 LZW 压缩的文件,但使用不同的压缩算法,通常会产生更好的结果。它还可以解压缩使用 System V 的pack程序压缩的文件。hello(工具类, 源代码) GNUhello程序会产生一个熟悉的、友好的问候。它允许非程序员使用原本无法使用的经典计算机科学工具。由于它受 GNU 通用公共许可证的保护,因此用户可以自由共享和更改它。像任何真正有用的程序一样,hello提供了一个内置的邮件阅读器。hp2xx(工具类, 源代码) GNU hp2xx 读取 HP-GL 文件,将所有绘图命令分解为基本向量,并将其转换为各种矢量和栅格输出格式。它也是一个 HP-GL 预览器。目前支持的矢量格式包括封装的 Postscript、Uniplex RGIP、Metafont 和各种特殊的 TeX 相关格式,以及简化的 HP-GL(仅限线条绘制)用于导入。支持的栅格格式包括 IMG、PBM、PCX 和 HP-PCL(包括 Deskjet 和 DJ5xxC 支持)。预览器在 X11 (Unix)、OS/2 (PM & 全屏)、MS-DOS (SVGA、VGA & HGC) 下工作。indent(工具类, 工具类, 源代码) GNUindent是同名可自由重新分发的 BSD 程序的修改版本。它默认情况下根据 GNU 编码标准格式化 C 源代码,尽管 BSD 默认设置和其他格式可作为选项使用。另请参阅“GNU 项目状态报告”。ispell(工具类, 源代码) Ispell 是一个交互式拼写检查器,它会建议“近乎命中”的单词作为未识别单词的替代品。可以使用系统和用户维护的字典。提供独立和 GNU Emacs 接口。- JACAL 不是从 FSF 获得 JACAL 是一个符号数学系统,用于简化和操作由数字、变量、根号和代数函数、微分算子和完整函数构成的方程以及单值和多值代数表达式。此外,还包括上述对象的向量和矩阵。JACAL 是 Aubrey Jaffer 用 Scheme 编写的。它附带了一个用 C 编写的符合 IEEE P1178 和 R4RS 的 Scheme 版本(“SCM”)。SCM 在 Amiga、Atari-ST、MS-DOS、NOS/VE、VMS、Unix 和类似系统上运行。SLIB 是 JACAL 使用的可移植 Scheme 库。通过匿名 FTP 从
nexus.yorku.ca的 `/pub/scheme/new'、altdorf.ai.mit.edu的 `/archive/scm' 或prep.ai.mit.edu的 `/pub/gnu/jacal' 获取 JACAL、SLIB 和 SCM 的源代码。FSF 不在任何介质上分发 JACAL。要接收包含源代码和可执行文件的 IBM PC 软盘,请发送 99.00 美元至Aubrey Jaffer 84 Pleasant Street Wakefield, MA 01880 USA
less(工具类, 工具类, 源代码)less是一个类似于more和pg的显示分页器,但具有大多数分页器所缺乏的各种功能(例如向后滚动的功能)。- libg++ (二进制代码, 语言类, 源代码) GNU C++ 库是一个广泛的 C++ 森林 类集合,一个用于输入/输出例程的新 IOStream 库,以及与 G++ 一起使用的支持工具。支持的类包括 Obstacks、多精度整数和有理数、复数、任意长度字符串、BitSets 和 BitStrings。还有一组伪通用原型文件可用于生成公共容器类。包含 Texinfo 格式的部分文档(尚未出版)。
m4(工具类, 工具类, 源代码) GNUm4是传统 Unix 宏处理器的实现。它主要与 SVR4 兼容,但它有一些扩展(例如,处理宏的 9 个以上的位置参数)。m4还具有用于包含文件、运行 shell 命令、进行算术等内置函数。make(二进制代码, EmcsT, 语言类, 工具类, 工具类, 源代码) GNUmake支持 POSIX 1003.2,并且具有 BSD 和 System V 版本make的所有特性,除了少数不常用的特性,以及我们自己的许多扩展。GNU 扩展包括长选项、并行编译、条件执行和文本操作函数。《Make 手册》的 Texinfo 源代码随程序一起提供。GNUmake在我们的几个磁带上,因为一些原生的make程序缺少VPATH功能,该功能对于充分利用 GNU 配置系统至关重要。包含一个 shell 脚本,用于在这些系统上构建 GNUmake。另请参阅“GNU 项目状态报告”。- MandelSpawn (工具类, 源代码) 用于 MIT X Window 系统的并行 Mandelbrot 生成程序。
- mtools (工具类, 源代码) mtools 是一组公共域程序,允许 Unix 系统读取、写入和操作 MS-DOS 文件系统(通常是软盘)上的文件。
- MULE (源代码) MULE 是 GNU Emacs 18 的多语言增强功能。它可以同时处理多种字符集,包括日语、中文、韩语、越南语、泰语、希腊语、ISO Latin-1 到 Latin-5 字符集、乌克兰语、俄语和其他西里尔字母。MULE 中的文本缓冲区可以包含来自这些语言的混合字符。要输入这些字符中的任何一个,可以使用 MULE 本身提供的各种输入方法。此外,如果您在某些终端仿真器(kterm、cxterm 或 exterm)下使用 MULE,则可以使用其输入方法。
- NetHack (工具类, 源代码) NetHack 是一款类似于 Rogue 的面向显示的冒险游戏。支持 ASCII 和 X 显示。
- NIH 类库 (语言类, 源代码) NIH 类库(以前称为“OOPS”,面向对象程序支持)是 G++ 类的可移植集合,类似于 Smalltalk-80 中的类,由美国国立卫生研究院 (NIH) 的 Keith Gorlen 使用 C++ 编程语言开发。
- Octave (语言类) Octave 是一种高级语言,主要用于数值计算。它为数值求解线性和非线性问题提供了方便的命令行界面。Octave 可以对实数和复数标量和矩阵进行算术运算,求解非线性代数方程组,在有限和无限区间上积分函数,以及积分常微分方程和微分-代数方程组。Octave 可通过匿名 ftp 从
ftp.che.utexas.edu的目录 `/pub/octave' 获得。这些文件采用 gzipped tar 格式(请参阅prep.ai.mit.edu:/pub/gnu上的文件 `README')。Octave 发行版包括 150 多页的 Texinfo 手册。 - Oleo (工具类, 源代码) Oleo 是一个电子表格程序(对你来说比更昂贵的电子表格更好)。它支持 X Window 系统和基于字符的终端,并且可以输出电子表格的嵌入式 Postscript 渲染。快捷键对于 Emacs 用户来说应该很熟悉并且是可配置的。在 X 和 Postscript 输出中,Oleo 支持多种可变宽度的字体。另请参阅“GNU 项目状态报告”。
p2c(语言类, 源代码)p2c是 Dave Gillespie 编写的 Pascal 到 C 的转换器。它主要用于 32 位机器,尽管有可能将其移植以转换代码以在 16 位机器上工作。patch(工具类, 源代码)patch是我们版本的 Larry Wall 程序,用于获取diff的输出并将这些差异应用到原始文件以生成修改后的版本。- PCL (EmcsT, 源代码) PCL 是 CLOS(通用 Lisp 对象系统)的大子集的免费实现。PCL 由 Xerox 公司编写。
perl(语言类, 源代码) Larry Wall 的perl结合了sed、awk、sh和 C 的特性和功能,以及与所有系统调用和许多 C 库例程的接口。用于编辑perl代码的 Perl 模式随 GNU Emacs 19 一起提供。ptx(实用工具D, 实用工具T, 源代码CD)ptx是 GNU 版本的ptx,一个置换索引生成器。 除此之外,它可以生成可读的“KWIC”(关键词上下文)索引,而无需使用nroff。 还有一个选项可以输出 TeX 代码。rc(实用工具T, 源代码CD)rc是一个 shell,它具有类似 C 语言的语法(比csh更像)以及比 C 或 Bourne shells 更简洁的引用规则。 它旨在交互使用,但也非常适合编写脚本。 它启发了 shelles。- RCS (实用工具D, 实用工具T, 源代码CD) 版本控制系统 RCS 用于软件项目的版本控制和管理。 当与 GNU
diff一起使用时,RCS 可以处理二进制文件(可执行文件、目标文件、8 位数据等)。另请参阅“CVS”条目。 recode(实用工具T, 源代码CD)recode在字符集和用法之间转换文件。 当无法进行精确的音译时,它可能会删除有问题的字符或回退到近似值。 此程序可以识别或生成近 150 种不同的字符集,并且能够在几乎任何一对字符集之间进行文件音译。 大部分 RFC 1345 字符集都受支持。- regex (语言T, 源代码CD) GNU 正则表达式库支持 POSIX.2,但国际化功能除外。 过去,它被包含在许多使用正则表达式例程的 GNU 程序中。 现在它终于可以单独使用了。
- Scheme (SchemeT, 源代码CD) 有关 Scheme 的信息,请参阅“Scheme 磁带的内容”。 源代码 CD-ROM 上的版本仅在 MS-DOS 下工作。
screen(实用工具T, 源代码CD)screen是一个终端多路复用器,它在单个物理终端上运行几个独立的“屏幕”(tty)。 每个虚拟终端都模拟一个 DEC VT100 以及多个 ANSI X3.64 和 ISO 2022 功能。screen会话可以分离,稍后可以在不同的终端上恢复。sed(实用工具D, 实用工具T, 源代码CD)sed是一个面向流的ed版本。 它在 shell 脚本中被大量使用。 GNU sed 附带 rx 库,它是 regex 的更快版本。- Shellutils (实用工具T, 源代码CD) Shellutils 用于交互式或 shell 脚本中:
basename、date、dirname、echo、env、expr、false、groups、id、nice、nohup、printenv、printf、sleep、stty、su、tee、test、true、tty、uname、who、whoami和yes。 - GNU Shogi (实用工具T, 源代码CD) 将棋是一种类似于国际象棋的日本游戏;主要区别在于被俘虏的棋子可以返回到棋盘上。 GNU 将棋是通过修改 GNU 国际象棋创建的; GNU 将棋实现了与 GNU 国际象棋相同的功能,并使用类似的启发式方法。 作为一个新功能,可以引入部分棋盘模式的序列,以帮助程序朝着特定的开局模式下出好的步骤。 它既有文本界面,也有 X 显示界面。 GNU 将棋主要由 Matthias Mutz 代表 FSF 提供支持。
Matthias Mutz Universitaet Passau, FMI 94030 Passau Germany E-mail:
mutz@kirk.fmi.uni-passau.de - Smalltalk (语言T, 源代码CD) GNU Smalltalk 是一种用可移植的 C 编写的解释型面向对象编程语言系统。 功能包括增量垃圾收集器、二进制映像保存功能、调用用户编写的 C 代码并向其传递参数的功能、GNU Emacs 编辑模式、可选的字节码编译跟踪和字节码执行跟踪,以及自动加载的每个用户初始化文件。 另请参阅“GNU 项目状态报告”。
- superopt (语言T, 源代码CD) Superopt 是一个函数序列生成器,它使用穷举的生成和测试方法来查找给定函数的最短指令序列。 您向 GNU 超优化器提供一个函数、一个要生成代码的 CPU 以及您可以接受的指令数量。 它在 GCC 中的应用在ACM SIGPLAN PLDI'92会议记录中进行了描述。 Superopt 支持:SPARC、m68k、m68020、m88k、IBM RS/6000、AMD 29000、Intel 80x86、Pyramid、DEC Alpha 和 HP-PA。
tar(实用工具T, 源代码CD) GNUtar包括多卷支持、归档稀疏文件的能力、自动归档压缩/解压缩、远程归档以及允许将tar用于增量和完整备份的特殊功能。 不幸的是,GNUtar实现了 POSIX 1003.1 ustar 标准的早期草案,该标准与最终标准不同。 以向后兼容的方式添加对新更改的支持并非易事。- Termcap 库 (实用工具T, 源代码CD) GNU Termcap 库是任何系统上 `libtermcap.a' 的即插即用替代品。 与大多数其他 Termcap 库不同,它不对 Termcap 条目的大小施加任意限制。 其中包含 Texinfo 格式的Termcap 手册的源代码。
- TeX 不从 FSF 提供 TeX 是一个文档格式化系统,它可以处理复杂的排版,包括数学。 它是 GNU 系统的标准格式化程序。 我们不分发 TeX,因为您可以从华盛顿大学获取,该大学是 TeX 的 Unix 版本的维护中心。 要订购用
tar编写的完整发行版,无论是 1/4 英寸 4 磁道 QIC-24 盒式磁带还是 4 毫米 DAT 盒式磁带,请发送 210.00 美元至Northwest Computing Support Center DR-10, Thomson Hall 35 University of Washington Seattle, WA 98195 E-mail:
请将支票抬头写给华盛顿大学。 支票必须以美元支付,在美国银行开具。 预付订单是首选,但也接受采购订单;但是,采购订单会额外收取 10.00 美元的发票处理费。 海外站点:请在基本成本上增加 20.00 美元的空邮包裹邮寄费,或 30.00 美元的快递邮寄费。 请与上述机构核实当前的价格和格式。unixtex@u.washington.eduPhone: (206) 543-6259 - Texinfo (EmacsT, 语言T, 源代码CD, 实用工具D, 实用工具T) Texinfo 是一组实用工具,用于生成印刷手册和在线超文本样式文档(称为“Info”),并提供阅读在线版本的方法。 版本 3 包含 GNU Emacs Lisp 和独立的 C 程序,以及Texinfo 手册的源代码。 另请参阅“GNU 项目状态报告”。
- Textutils (实用工具T, 源代码CD) Textutils 程序操作文本数据:
cat、cksum、comm、csplit、cut、expand、fold、head、join、nl、od、paste、pr、sort、split、sum、tac、tail、tr、unexpand、uniq和wc。 - Tcl (语言T, 源代码CD) Tcl 是一种可嵌入的工具命令语言。
expect和 DejaGnu 与 Tcl 一起工作并使用 Tcl。 - Tile Forth (语言T, 源代码CD) Tile Forth 是用 C 编写的 Forth-83 标准的 32 位实现,允许它在不同的计算机之间轻松移动(传统上,Forth 实现是用汇编程序编写的,以尽可能最佳地使用底层硬件,但这也会降低它们的可移植性)。
time(实用工具T, 源代码CD)time用于报告有关进程使用的用户时间、系统时间和实际时间的统计信息(通常来自 shell)。tput(实用工具T, 源代码CD)tput是一种允许 shell 脚本使用特殊终端功能的便携式方法。 GNUtput使用 Termcap 数据库,而不是像大多数实现那样使用 Terminfo。- UUCP (实用工具T, 源代码CD) 此版本的 UUCP 由 Ian Lance Taylor 编写,是 GNU 的标准 UUCP 系统。 它目前支持
f、g(在所有窗口和数据包大小中)、G、t和e协议,以及 Zmodem 协议和两个新的双向协议。 如果您有 Berkeley 套接字库,它可以建立 TCP 连接。 如果您有 TLI 库,它可以建立 TLI 连接。 uuencode(实用工具T, 源代码CD) Uuencode 和 uudecode 用于通过不支持简单 ASCII 数据以外的其他数据的传输介质传输二进制文件。wdiff(实用工具T, 源代码CD)wdiff比较两个文件,找出为了获得第二个文件而从第一个文件中删除或添加了哪些单词。 我们希望最终将其以及来自一个名为spiff的类似程序的一些想法集成到 GNUdiff的未来版本中。
OCEAN 集成电路设计系统
荷兰代尔夫特理工大学开发了 OCEAN,一个综合的芯片设计软件包。 它包含一整套强大的工具,用于合成和验证半定制的门海和门阵列芯片。 OCEAN 涵盖了设计轨迹的后端——从电路级别到布局和工作芯片。
OCEAN 提供用于放置、布线、仿真和提取的交互式工具,可以是自动的,也可以是手动引导的。 它作为免费软件提供,附带完整的源代码,并且已知可以在 X Window 系统下的 Linux、HP 和 Sun 工作站上运行。 对于数据的导入和导出,它了解 EDIF、BLIF、SLS、GDSII、CIF、SPICE 和 LDM。
您可以通过匿名 FTP 从 donau.et.tudelft.nl 获取 OCEAN。 如需更多信息,请通过互联网联系 patrick@donau.et.tudelft.nl。
Emacs 磁带的内容
此磁带包含 Common Lisp 实现、GNU Emacs、与 GNU Emacs 一起使用的各种扩展以及其他一些重要的实用工具。
- Calc 2.02b
- CLISP 1993.11.08
- Elib 0.06
- GNU Emacs 18.59
- GNU Emacs 19.22
- GNU Emacs Lisp 参考手册,第 2.02.1 版
gzip1.2.4make3.70- PCL 1993.03.18
- Texinfo 3.1
语言磁带的内容
此磁带包含编程工具:编译器、解释器和相关程序(解析器、转换程序、调试器等)。
- Binutils 2.3
- Bison 1.22
- C 库 1.06.7
- DejaGnu 1.1.1
dld3.2.3expect4.7.6ecc1.2.1f2c1993.04.28flex2.4.5- GAS 2.2
- GAWK 2.15.3
- GCC 2.5.7(包括 G++ 和 Objective C)
- GDB 4.11
gdbm1.7.1gmp1.3.2gperf2.1agzip1.2.4indent1.8- libg++ 2.5.3
make3.70- NIH 类库 3.0
- Octave 1.0
p2c1.20perl4.036- regex 0.12
- Smalltalk 1.1.1
- Superopt 2.3
- Tcl 6.7
- Texinfo 3.1
- Tile Forth 2.1
实用程序磁带的内容
此磁带主要包含其他 GNU 磁带上不可用的小型实用工具和杂项应用程序。
acm4.2- Autoconf 1.7
- BASH 1.13.5
bc1.02- 国际象棋 4.0.pl62
cpio2.3- CVS 1.3
dc0.2- Diffutils 2.6
doschk1.1elvis1.7es0.84- 传真 3.2.1
- Fileutils 3.9
find3.8finger1.37- Fontutils 0.6
- Ghostscript 2.6.1
- Ghostview 1.5
- GNATS 3.2
gnuplot3.5- GnuGo 1.1
- 图形 0.17
grep/egrep/fgrep2.0- Groff 1.08
gzip1.2.4hello1.3hp2xx3.1.4ispell4.0less177m41.1make3.70- MandelSpawn 0.07
- mtools 2.0.7
- NetHack 3.1.3
- Oleo 1.5
patch2.1ptx0.3rc1.4- RCS 5.6.0.1
recode3.3screen3.5.2sed2.03- Shellutils 1.9.2
- 将棋 1.1.pl02
tar1.11.2- Termcap 1.2
- Texinfo 3.1
- Textutils 1.9
time1.6tput1.0- UUCP 1.04
uuencode1.0wdiff0.4
Scheme 磁带的内容
Scheme 是一种简化的、词法作用域的 Lisp 方言。它在麻省理工学院和其他大学被设计出来,用于教授学生编程的艺术,并研究新的并行编程结构和编译技术。
此磁带包含 MIT Scheme 7.1,它符合《Scheme 算法语言修订版^4 报告》(MIT 人工智能实验室备忘录 848b),其中包含了 TeX 源代码。它部分是用 C 语言编写的,但目前很难引导启动。以下系统可使用二进制文件来引导启动 Scheme:
- 运行 HP-UX 7.0 或 8.0 的 HP 9000 系列 300、400、700 和 800
- 运行 NeXT OS 1.0 或 2.0 的 NeXT
- 运行 SunOS 4.1 的 Sun-3 或 Sun-4
- 运行 Ultrix 4.0 的 DECstation 3100/5100
- 运行 NEWS OS 5.01 的 Sony NWS-3250
- 运行 4.3 BSD 的 Vax
如果您的系统不在列表中,并且您不喜欢引导启动的挑战,请参阅“GNU 软件现在可用”中的“JACAL”条目。
X11 磁带的内容
两个 X11 磁带包含 MIT X Window System 的 11 版第 5 次发行版。第一个 FSF 磁带包含所有核心软件、文档和一些贡献的客户端。我们称此为“必需的”X 磁带,因为它对于运行 X 或在 X 下运行 GNU Emacs 是必要的。第二个“可选的”FSF 磁带包含贡献的库和其他工具包、Andrew 用户界面系统、游戏和其他程序。
X11 必需磁带还包含迄今为止发布的所有修复和补丁。我们会在发布新的修复和补丁时更新此磁带。
伯克利网络 2 磁带
Berkeley “Net2”发行版包含第二个 4.3 BSD 发行版,比 4.3 BSD-Tahoe 和 4.3 BSD-Reno 都新。它包括大多数 BSD 软件系统,但有一些实用程序、内核的某些部分和一些您的 C 库可能提供的库例程(我们在其他磁带上为许多缺失的程序提供了替代品)。此发行版还包含第三方软件,包括 Kerberos 和一些 GNU 软件。
VMS Emacs 和 VMS 编译器磁带
我们提供两个 VMS 磁带。一个只有 GNU Emacs 编辑器(不包括上面描述的 Emacs 磁带上的其他软件)。另一个有 GNU C 编译器、Bison(用于编译 GCC)、GAS(用于汇编 GCC 的输出)和一些库和包含文件(不包括上面描述的语言磁带上的其他软件)。我们不知道有 VMS 的 GDB 端口。两个 VMS 磁带都有可用于引导启动的可执行文件,因为 DEC VMS C 编译器无法编译 GCC。请不要要求我们为 VMS 支持投入精力,因为它对于 GNU 项目来说是外围的。
Hundred Acre Consulting 扩展
Hundred Acre Consulting 继续提供支持和开发服务,其专长是 GNU C 和 C++ 编译器。它继续执行将其利润的一部分捐赠给 FSF 的政策。他们的地址是:
Hundred Acre Consulting
5301 Longley Lane, Suite D-144
Reno, NV 89511
USA
Phone: (702) 829-9700 or +1-800-245-2885
Fax: (702) 829-9926
E-mail: info@pooh.com
源代码 CD-ROM
自由软件基金会(Free Software Foundation)已经制作了第三张源代码 CD-ROM。它包含以下内容:
acm3.1- Autoconf 1.7
- BASH 1.13.4
bc1.02- Binutils 1.9 和 2.3
- Bison 1.22
- GNU C 库 1.06.7
- Calc 2.02b
- GNU 国际象棋 4.0p62
- CLISP 1993.11.08
cperf2.1acpio2.3- CVS 1.3
dc0.2- DejaGnu 1.0.1
- diffutils 2.6
dld3.2.3doschk1.1ecc1.2.1- elib 0.06
elvis1.7- Emacs 18.59 和 Emacs 19.21
es0.84f2c1993.04.28- 传真 3.2.1
- Fileutils 3.9
find3.8finger1.37flex2.3.8- Fontutils 0.6
- GAS 1.36.utah、1.38.1 和 2.2
- Gawk 2.15.3
- GCC 2.5.4
- GDB 4.11
gdbm1.7.1- Ghostscript 2.6.1
- Ghostview 1.5
- 适用于 Windows 的 Ghostview 1.0
gmp1.3.2- GNATS 3.01
gnuplot3.5- GnuGo 1.1
- 图形 0.17
grep/egrep/fgrep2.0- Groff 1.08
gzip1.2.4hello1.3hp2xx3.1.3aindent1.8ispell4.0less177libg++2.5.1m41.1make3.69.1- MandelSpawn 0.06
- mtools 2.0.7
- MULE 1.0
- Nethack 3.1.3
- NIHCL 3.0
- Oleo 1.5
p2c1.20patch2.1- PCL 1993.03.18
perl4.036ptx0.3rc1.4- RCS 5.6.0.1
recode3.2.4- regex 0.12
- MIT Scheme (MS-DOS) 7.2
screen3.5.2sed1.18 & 2.03- Shellutils 1.9.1
- GNU 将棋 1.1p02
- Smalltalk 1.1.1
- Superopt 2.3
tar1.11.2- Termcap 库 1.2
- Texinfo 3.1
- Textutils 1.9.1
- Tile Forth 2.1
time1.6tput1.0- UUCP 1.04
uuencode1.0wdiff0.04- X11R5
CD-ROM 还包含版本 19 的 GNU Emacs Lisp 参考手册第 2.02 版的 Texinfo 源代码,以及俄亥俄州立大学的 Emacs Lisp 档案快照。(您可以通过 UUCP 获取此档案中的库(请询问 staff@cis.ohio-state.edu 以获取说明),或者通过匿名 FTP 从 archive.cis.ohio-state.edu 的 `/pub/gnu/emacs/elisp-archive' 中获取。)
不包括 MIT Scheme、VMS 和 Net2 磁带的内容
CD-ROM 采用 ISO 9660 格式,可以在大多数操作系统上作为只读文件系统安装。如果您的驱动程序支持,您可以使用“Rock Ridge”扩展名挂载 CD-ROM,它看起来就像一个普通的 Unix 文件系统,而不是一个充满截断和被破坏的名称,以符合普通的 ISO 9660 规范的文件系统。
您可以在不需要将源文件从 CD 中复制出来的情况下构建大多数软件。只需要足够的磁盘空间用于目标文件和中间构建目标。除了 MS-DOS 的 MIT Scheme 二进制文件和 Windows 的 Ghostview 可执行文件外,此 CD 上没有预编译的程序。您将需要一个 C 编译器(需要其他解释器或编译器的程序通常会为引导程序提供 C 源代码)。
如果最终由企业付款,则 CD 的价格为 400 美元。如果您是以个人身份自掏腰包付款,则费用为 100 美元。
- 个人和公司价格是什么意思?我们光盘上的软件是免费的;任何人都可以复制它,任何人都可以运行它。我们收费的是物理光盘和分发服务。我们根据购买者的身份收取两种不同的价格。当公司或其他组织购买光盘时,我们收取 400 美元。当个人购买同一张光盘时,我们只收取 100 美元。这种区别与谁被允许使用该软件无关。在这两种情况下,一旦您有了副本,您就可以分发任意数量的副本,并且对谁可以拥有或运行它们没有任何限制。价格差异完全取决于由哪种类型的实体支付 CD 的费用。您,读者,当然是个人,而不是公司。如果您“亲自”购买光盘,那么您可能是以个人身份购买的。但是,如果您希望您的雇主报销,那么光盘实际上是为公司购买的,因此请支付公司价格并获得公司价格的报销。我们不会试图检查您 - 我们使用荣誉系统 - 所以请合作。以公司价格购买 CD 对 GNU 项目特别有帮助;只需 80 张公司价格的 CD 就可以支持 FSF 程序员或技术撰稿人一年。
- 为什么有个人价格?过去,我们的分发磁带主要由公司订购。价格为 400 美元的 CD 为他们提供了我们所有的软件,价格远低于他们之前为六个不同的磁带支付的价格。进一步降低价格会严重削减 FSF 的资金。然而,对于个人来说,400 美元的价格太高了;几乎没有人能负担得起。因此,我们决定以较低的 100 美元的价格向个人提供 CD,但不对公司这样做。
- 是否有最高价格?我们声明的价格是最低价格。如果您希望更多地支持 GNU 开发,请随意支付更高的价格。上限无限制;我们将接受您能提供的最高价格。或者简单地向自由软件基金会捐赠免税的捐款,这是一个免税的公共慈善机构。
编译器工具二进制文件 CD-ROM
我们现在提供一种 CD-ROM,其中包含某些缺少编译器的系统的 GNU 编译器工具的可执行文件。这将允许这些系统的用户编译 GNU 和其他自由软件,而无需购买专有编译器。
CD-ROM 采用 ISO 9660 格式,可以在大多数操作系统上作为只读文件系统安装。如果您的驱动程序支持,您可以使用“Rock Ridge”扩展名挂载 CD-ROM,它看起来就像一个普通的 Unix 文件系统,而不是一个充满截断和被破坏的名称,以符合普通的 ISO 9660 规范的文件系统。
我们希望在此 CD-ROM 的每次更新中包含更多系统。如果您可以帮助为新系统(特别是对于没有 C 编译器的系统)构建二进制文件,或者有系统建议,请通过封面上的任何一个地址与我们联系。
这些程序::
- DJGPP 1.11.m1
- GCC/G++/Objective C 2.5.7
- GDB 4.11
- GAS 2.2
- Binutils 2.3
- Bison 1.22
- Flex 2.4.5
- Make 3.70
- libg++ 2.5.3
适用于以下平台:
i386-msdoshppa1.1-hp-hpux9sparc-sun-solaris2sparc-sun-sunos4.1
磁带和 CD-ROM 订阅服务
如果您没有网络访问权限,我们的订阅服务使您能够及时了解最新的 FSF 开发。对于一次性费用,相当于三个磁带或 CD-ROM,我们将向您邮寄四个您选择的磁带或源代码 CD-ROM 的新版本。磁带每季度发送一次,源代码 CD-ROM 在发行时发送。(源代码 CD-ROM 目前每年发行两次,但我们将来可能会更频繁地发行。)
我们将定期向您发送 Emacs、语言、实用程序或 MIT X Window System 必需磁带或源代码 CD-ROM 的新版本。BSD Net-2、MIT Scheme 和 MIT X Window System 可选磁带的更改频率不足以保证每季度更新。编译器工具二进制文件 CD-ROM 是全新的,我们还不知道是否会提供订阅服务。
由于 Emacs 19 现在位于 Emacs 磁带和源代码 CD-ROM 上,因此订阅任何一个都是及时了解 Emacs 19 更新的便捷方法,因为它会通过 beta 测试。
订阅也是及时了解 MIT X Window System 常规错误修复的简单方法。当全年发布 X Window System 的修复程序和补丁时,我们会更新 X11 必需磁带。每个新版本的源代码 CD-ROM 也都有 X Window System 的更新源代码。请参阅“自由软件基金会订购单”上的“磁带订阅”和“CD-ROM 订阅”部分。
如何获取 GNU 软件
自由软件基金会的所有软件和出版物都允许复制和重新分发。获取 GNU 软件最简单的方法是从拥有该软件的其他人那里复制它。您可以通过订购软盘、磁带或 CD-ROM 直接从 FSF 获取 GNU 软件。这些订单为 FSF 工作人员提供了大部分资金,因此如果可以,请通过订购来支持我们的工作。请参阅“自由软件基金会订购单”。
还有第三方团体分发我们的软件;他们不与我们合作,但可以以其他形式提供我们的软件。为了您的方便,其中一些列在“微型计算机的自由软件”中。请注意,自由软件基金会与它们没有任何关联,并且不对其版本的流通或响应的迅速性负责。
如果您决定与这些分销商之一开展业务,请询问他们为帮助自由软件开发做了多少工作,例如,通过为自由软件开发项目捐款或自己编写免费软件供公众使用。通过部分基于此因素做出决定,您可以帮助鼓励那些从自由软件中获利的人为自由软件的发展做出贡献。
如果您可以访问互联网并且无法访问以下主机之一,则可以通过匿名 FTP 从 GNU 的分发主机 prep.ai.mit.edu(IP 地址为 18.71.0.38)获取该软件。有关更多信息,请获取文件 `/pub/gnu/GETTING.GNU.SOFTWARE'。prep 是一个非常繁忙的主机,并且在任何给定时间只允许有限数量的 FTP 登录。请使用以下其他也通过匿名 FTP 提供 GNU 软件的 TCP/IP 互联网站点(程序:ftp,用户:anonymous,密码:您的电子邮件地址,模式:binary)。
- 非洲:
ftp.sun.ac.za。 - 澳大拉西亚:
archie.au(ACSnet 为archie.oz),
cair.kaist.ac.kr、utsun.s.u-tokyo.ac.jp、ftp.cs.titech.ac.jp。 - 加拿大:
ftp.cs.ubc.ca。 - 中东:
ftp.technion.ac.il。 - 欧洲:
ugle.unit.no、ftp.stacken.kth.se、isy.liu.se,
ftp.luth.se、unix.hensa.ac.uk、ftp.mcc.ac.uk,
ftp.informatik.tu-muenchen.de、ftp.informatik.rwth-aachen.de,
ftp.denet.dk、ftp.eunet.ch、nic.switch.ch、irisa.irisa.fr
ftp.funet.fi、ftp.win.tue.nl、ftp.univ-lyon1.fr、archive.eu.net。 - 美国:
labrea.stanford.edu、ftp.kpc.com、ftp.digex.net,
ftp.cs.widener.edu、ftp.cs.columbia.edu、vixen.cso.uiuc.edu,
wuarchive.wustl.edu、gatekeeper.dec.com、ftp.hawaii.edu,
cc.utah.edu(VMS GNU Emacs)、mango.rsmas.miami.edu(VMS GCC)、ftp.uu.net(在 `/packages/gnu' 下)。
JANET 的用户可以在 `/gnu' 下查找 src.doc.ic.ac.uk。
您可以通过 UUCP 获取一些 GNU 程序。俄亥俄州立大学定期在 USENET 的新闻组 comp.sources.d 上发布他们的 UUCP 指令。这些人会通过电子邮件向您发送 UUCP 指令。
hao!scicom!qetzal!upba!ugn!nepa!denny, uunet!hutch!barber, src@contrib.de (Europe), james@bigtex.cactus.org, acornrc!bob, toku@dit.co.jp (Japan), staff@cis.ohio-state.edu
对于那些无法访问互联网的人,请参阅“自由软件支持”部分,了解如何通过 UUCP 获取电子邮件和文件传输的信息。
豪华发行版
自由软件基金会 (FSF) 一直被多次要求创建一个软件包,为我们所有的软件提供可执行文件。通常我们只提供源代码。除了提供带有源代码的二进制文件外,豪华版发行包还包括我们所有印刷手册和参考卡的副本。
FSF 豪华版发行包包含数百个不同程序的二进制文件和源代码,包括 GNU Emacs、GNU C 编译器、GNU 调试器、完整的 MIT X 窗口系统以及所有 GNU 实用程序。
您可以选择以下机器和操作系统之一:HP 9000 系列 300、700 或 800(4.3 BSD 或 HP-UX);RS/6000 (AIX);SONY News 68k(4.3 BSD 或 NewsOS 4);Sun-3、Sun-4 或 SPARC (SunOS 4 或 Solaris)。如果您的机器或系统未列出,或者如果某个特定程序尚未移植到该机器,请致电 FSF 办公室(电话号码如下)或发送电子邮件至 gnu@prep.ai.mit.edu。
我们以 Unix tar 格式在以下介质之一上提供软件:1600 或 6250 bpi,1/2 英寸卷轴磁带;Sun DC300XLP 1/4 英寸磁带盒,QIC-24;HP 16 磁道 DC600HC 1/4 英寸磁带盒;IBM RS/6000 1/4 英寸磁带盒,QIC-150;Exabyte 8mm 磁带盒;DAT 4mm 磁带盒。如果您的计算机无法读取任何这些介质,请致电我们。
包含的手册包括 Bison、Calc、Gawk、GNU C 编译器、GNU C 库、GNU 调试器、Flex、GNU Emacs Lisp 参考手册、Make、Texinfo 和 Termcap 手册各一本;GNU Emacs 手册六本;以及 GNU Emacs、Calc、GNU 调试器、Bison 和 Flex 的参考卡各一份。
此外,每个豪华版发行包都包含 CD-ROM(采用带 Rock Ridge 扩展的 ISO 9660 格式),其中包含我们软件的源代码以及某些系统的编译器工具二进制文件。
豪华版发行包的售价为 5000 美元。它适用于那些希望获取已编译的所有内容或希望通过购买为 FSF 提供大力帮助的人。要订购,请填写“自由软件基金会订购单”中的“豪华版发行包”部分,并将其发送至
Free Software Foundation, Inc.
675 Massachusetts Avenue
Cambridge, MA 02139-3309
USA
Electronic mail: gnu@prep.ai.mit.edu
Phone: +1-617-876-3296
FAX: +1-617-492-9057
FAX (in Japan):
0031-13-2473 (KDD)
0066-3382-0158 (IDC)
MS-DOS 发行版
FSF 在 3.5 英寸 1.44MB 软盘上分发一些移植到 MS-DOS 的 GNU 软件。磁盘包含源代码和可执行文件。
Demacs 软盘的内容
Demacs 是 GNU Emacs 18.55 的一个移植到 MS-DOS 的版本,与 Emacs 18.57 有一些变化。实际上包含了两个版本:一个处理 8 位字符集;另一个基于早期版本的 MULE,处理包括汉字在内的 16 位字符集。我们将其分发在五个软盘上。
Demacs 在运行 MS-DOS 的基于 Intel 80386 和 80486 的机器上运行。它与 XMS 内存管理器和 VCPI 兼容,但尚不与 Microsoft Windows 扩展模式或其他 DPMI 管理器兼容。
DJGPP 软盘的内容
我们在 22 张软盘上分发 DJGPP。DJGPP 至少需要 5MB 的硬盘空间才能安装,并需要 512K 的 RAM 才能使用。有关 DJGPP 的更多信息,请参阅“GNU 软件现已可用”。
精选实用程序软盘的内容
GNUish MS-DOS 项目发布了移植到 PC 兼容机的 GNU 软件。一般来说,该软件将在基于 8086 和 80286 的机器上运行;不需要 80386。这些实用程序中的一些必然缺少某些功能。包括:cpio、diff、一些文件实用程序、find、flex、gdbm、grep、indent、less、m4、make、MAWK、MicroEmacs、ptx、RCS、sed、shar、sort 和 Texinfo。
Windows 软盘的内容
我们正在单个软盘上分发移植到 Microsoft Windows 的 GNU Chess 和 gnuplot 版本。
微型计算机的自由软件
我们不提供微型计算机上 GNU 软件的支持,因为它与 GNU 项目无关。但是,我们正在磁带、CD-ROM 和软盘上分发一些此类程序。我们也愿意发布有关支持和维护它们的团队的信息。如果您知道任何此类努力,请将详细信息(包括邮政地址、存档站点和邮件列表)发送到封面上的任一地址。
有关 FSF 提供的微型计算机软件的更多信息,请参阅“MS-DOS 发行版”和两篇 CD-ROM 文章。请不要向我们询问任何其他软件。FSF *不*维护任何其他软件,并且 *没有*其他信息。
- GNU 软件 *不* 在 Apple 计算机上 在诉讼中,苹果声称有权阻止人们编写任何用户界面与 Macintosh 类似甚至略有类似的程序。如果苹果在法庭上胜诉,它将为自己创造一种凌驾于公众之上的新权力,使其能够终结自由软件。只要苹果致力于建立这种垄断,我们就不会为 Apple 机器提供任何支持或软件。我们要求您也避免为 Apple 系统开发或移植,因为任何更多的软件都会增加他们的业务。不要喂养咬你的律师!
-
波士顿计算机协会 BCS 拥有数千个用于微型计算机的共享软件和免费程序,包括一些 GNU 程序。请联系他们,了解您的机器可用的程序。
Boston Computer Society 1 Kendall Square, Bldg 1400, Cambridge, MA 02139 USA Phone: (617) 252-0600
-
Amiga 上的 GNU 软件 从主机
ftp.funet.fi的 `/pub/amiga/gnu'(欧洲)使用匿名 FTP 获取许多 GNU 程序的 Amiga 移植版。有关 GCC 移植和相关项目的信息(或提供帮助的信息),请咨询 Leonard Norrgard,vinsci@nic.funet.fi。有关 GNU Emacs 移植的信息,请咨询 David Gay,dgay@di.epfl.ch,或 Mark D. Henning,henning@stolaf.edu。您可以通过匿名 FTP 在prep.ai.mit.edu:/pub/gnu/MicrosPorts/Amiga中获取更多信息。 -
Atari TOS 和 Atari Minix 的 GNU 软件 从
atari.archive.umich.edu(由 Howard Chu,hyc@hanauma.jpl.nasa.gov维护)使用匿名 FTP 获取 Atari 移植版。在 USENET 的新闻组comp.sys.atari.st.tech和comp.sys.atari.st中讨论移植版。 -
用于 OS/2 2.0 的 GNU C/C++ 2.3.3 Michael Johnson 为 OS/2 2.0 编写了 GNU C/C++ 版本 2.3.3 编译器的完全独立移植版。它具有 C/C++ 编译器、GNU 汇编器、文档以及 OS/2 特定的和 BSD C 库。您可以通过 FTP 从主机
hobbes.nmsu.edu的文件 `/os2/2_x/unix/gnu/gcc2_233' 获取它。要加入邮件列表,请发送消息至os2gcc-request@charon.mit.edu。 -
Linux:用于 386 机器的自由 Unix 系统 Linux(以其作者 Linus Torvalds 和 Minix 命名)是 System V 和 POSIX 功能的子集的自由 Unix 克隆版。Linux 是从头开始编写的,不包含任何专有代码。许多实用程序和库都是 GNU 项目软件。Linux 仅在 386/486 AT 总线(和一些 EISA 总线)机器上运行。移植到非 Intel 架构很困难,因为内核广泛使用 386 内存管理和任务原语。Linux 可自由分发,并通过匿名 FTP 提供:
tsx-11.mit.edu的 `/pub/linux'(美国),nic.funet.fi的 `/pub/OS/Linux'(欧洲)。有关其邮件列表的信息,请咨询linux-activists-request@niksula.hut.fi。请参阅 USENET 新闻组comp.os.linux.misc等,了解有关 Linux 的讨论。 - DJGPP 1.11m1,用于 MS-DOS 的 GNU C/C++ 编译器 DJ Delorie 已将 GCC/G++ 移植到 386/483 MS-DOS 平台。有关详细信息,请参阅“GNU 软件现已可用”。FSF 在软盘和 CD 上分发 DJGPP(请参阅“MS-DOS 发行版”和“编译器工具二进制文件 CD-ROM”)。
-
Demacs,用于 MS-DOS 的 GNU Emacs Manabu Higashida 和 Hirano Satoshi 发布了 Demacs,一个用于 386/486 MS-DOS 的 GNU Emacs 移植版。1.2.0 版是第一个后测试版。Demacs 提供了几个 DOS 特定的功能:支持二进制或文本文件转换、“8 位干净”显示模式、通过
int86Lisp 函数的 80x86 软件中断调用、特定于机器的功能(例如功能键支持)、带驱动器名称的文件名补全、子进程(suspend-emacs和call-process)。Dired 模式无需 `ls.exe` 即可工作。通过以下方式进行匿名 FTP:wuarchive.wustl.edu的 `/mirrors/msdos/demacs',utsun.s.u-tokyo.ac.jp的 `/GNU/demacs'(日本),以及ftp.funet.fi的 `/pub/gnu/emacs/demacs'(欧洲)。FSF 在软盘上分发 Demacs(请参阅“MS-DOS 发行版”)。 -
MS-DOS 上的 GNU 软件 您可以咨询
info-gnu-msdos-request@sun.soe.clarkson.edu,了解有关 GNU 程序的 MS-DOS 移植版和相关邮件列表的信息。或者在prep.ai.mit.edu上匿名 FTP 文件 `/pub/gnu/MicrosPorts/MSDOS*'。FSF 在软盘和 CD 上分发许多 GNU 程序的 MS-DOS 移植版(请参阅“MS-DOS 发行版”和“源代码 CD-ROM”)。
FSF T 恤
我们仍然有自由软件基金会的 T 恤衫,由剑桥艺术家 Jamal Hannah 设计。T 恤衫正面印有 GNU 在工作站上进行黑客攻击的图像,上方文字为“GNU's Not Unix”,下方文字为“Free Software Foundation”。它们有两种颜色可供选择:天然色和黑色。天然色是米白色、未漂白、未染色的环保棉,印有黑色墨水,非常适合扎染或按原样展示。黑色印有白色墨水,非常适合深夜黑客攻击。所有衬衫均为厚实的 100% 棉,并提供 M、L、XL 和 XXL 尺码。
T 恤衫正面印有 GNU 在工作站上进行黑客攻击的图像,上方文字为“GNU's Not Unix”,下方文字为“Free Software Foundation”。我们刚刚在 T 恤衫的背面添加了 GNU 通用公共许可证的副本,以前背面是空白的。
使用“自由软件基金会订购单”订购您的衬衫,并考虑为您最喜欢的黑客购买一件作为礼物!
为某些事情而努力,因为它很好,而不仅仅因为它有机会成功。
-Vaclav Havel
感谢 GNUs
感谢上述“非正式 GCC 联盟”、“GNUs 快讯”、“GNU 项目状态报告”、“日本第二届 GNU 研讨会”、“日本的 GNU 和其他自由软件”以及“GNU 软件现已可用”中提到的所有人。
感谢 麻省理工学院 的 人工智能实验室、计算机科学实验室 和 雅典娜项目 的宝贵协助。
感谢购买我们豪华版发行包的众多公司和组织。
感谢以下在日本提供协助的人员:Nobuyuki Hikichi、Mieko Hikichi、Ken'ichi Handa、Bob Myers、David Littleboy、Masayuki Ida 教授、日本 Unix 协会、千里国际信息研究所、东北产业振兴中心、会津大学和 Nihon Sun 用户组。感谢 Addison Wesley Publishers Japan、A.I. Soft、Village Center, Inc.、ASCII Corporation 和日本的许多其他公司,感谢他们持续的捐赠和支持。
感谢 Sun 用户组、PCI 和 USENIX 协会 在他们的会议上捐赠展位。感谢在这些和其他会议上帮助 GNU 项目的所有志愿者。感谢 Wired Magazine 和 多伦多大学书店 的 Barry Meikle 在他们的单独出版物中捐赠广告空间。
再次感谢 开放软件基金会 的持续支持;感谢 Cygnus Support 以多种方式协助 GNU 项目。感谢 Warren A. Hunt, Jr. 和 Computational Logic, Inc. 的捐赠和支持。感谢 奥尔堡大学 捐赠了一名兼职程序员。感谢 Jamie Zawinski 在 Emacs 19 中实施了一些与 X 相关的功能。
感谢所有借出或捐赠机器的人,包括一位匿名捐赠者提供的 4 毫米 DAT 磁带驱动器,IBM 公司提供的 Exabyte 磁带驱动器和 RS/6000;Cygnus Support 提供的 Sun SPARCstation;惠普公司提供的两台 80486、六台 68030 和四台 Spectrum 计算机;Thinking Machines 公司的 Brewster Kahle 提供的 Sun-4/110;卡内基梅隆大学的 Mach 项目提供的 Sun-3/60;英特尔公司提供的 386 机器;NeXT 提供的工作站;麻省理工学院媒体实验室提供的惠普 68020;东京的 索尼公司和 Software Research Associates, Inc. 提供的三台 SONY News 工作站;麻省理工学院计算机科学实验室提供的 DEC MicroVAX;开放软件基金会提供的两台 Compaq 386;Delta Microsystems 提供的 Exabyte 磁带驱动器;一位匿名捐赠者提供的 5 台 IBM RT/PC;Liant Software Corp. 提供的五台 VT100;Jerry Peek 提供的一台 386 机器;NCD Corporation 提供的一个 X 终端;以及 Interleaf, Inc.、Veronika Caslavsky、Paul English、Cindy Woolworth 和 Lisa Bergen 借出的扫描仪。
感谢所有贡献移植和扩展的人,以及所有发送其他源代码、文档和优秀错误报告的人。
感谢所有捐款并提供其他形式帮助的人。
还要感谢所有通过订购手册、发行磁带、软盘和 CD-ROM 来支持我们的人。
创建此公告是我们感谢所有对我们正在做的事情表示兴趣的人的方式。
-------
Free Software Foundation, Inc | |
Electronic Mail: gnu@prep.ai.mit.edu | stamp |
675 Massachusetts Avenue | |
Cambridge, MA 02139-3309 | here |
USA | |
-------