GNU 公告,第 1 卷,第 16 期,1994 年 1 月

目录


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: [email protected]            0066-3382-0158 (IDC)

GNU 是谁

Michael Bushnell 继续致力于 Hurd 的工作,同时也维护 tarRoland McGrath 维护 make 和 GNU C 库,协助 Emacs 19,并且现在正在研究 Hurd。Jan Brittenson 正在研究 Hurd 网络服务器。

Noah Friedman 是我们的系统歧义消除器、发布协调员,并在他大量的空闲时间里维护一些程序。Carl Hoffman 是我们的募款人和会议组织者。

Lisa `Opus' Goldstein 是我们的财务主管。Robert J. Chassell 正在撰写 Emacs Lisp 编程入门,并仍然在我们的董事会任职。Larissa CarlsonLisa 的办公室助理。Charles Hannum 负责排版和许多其他工作。

Jim Blandy 已经离开去追求学术兴趣。Melissa WeisshausTom 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 支付捐款。也可以通过电子邮件将捐款发送至 [email protected] 或传真至 +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,地址为 [email protected]

GNU 快讯

什么是 LPF?

编程自由联盟 (LPF) 旨在保护编写软件的自由。这种自由受到“外观和感觉”界面版权诉讼和软件专利的威胁。LPF 不支持自由软件或 FSF。

联盟的成员包括程序员、企业家、学生、教授,甚至软件公司。

摘自联盟会员表格

编程自由联盟是由教授、学生、商业人士、程序员和用户组成的草根组织,致力于恢复编写程序的自由。联盟不反对国会制定的法律制度——对单个程序享有版权。我们的目标是扭转法官最近为回应特殊利益而做出的改变。

联盟的会员费为程序员、经理和专业人士每年 42 美元;学生为 10.50 美元;其他人员为 21 美元。

要加入,请发送支票和以下信息

联盟与自由软件基金会无关,它本身也不是自由软件组织。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: [email protected]

来自 LPF 的新闻

作者:Christian D.. Hofstader,[email protected]

美国专利商标局 (PTO) 将于 1994 年初就软件专利主题举行听证会。PTO 认识到当前政策存在严重问题,并且正在寻求关于如何纠正此事的意见。LPF 正在努力邀请一位代表作证,并将呼吁成员和其他关注这些问题的人员向 PTO 写信。有关详细信息,请联系 [email protected]

在过去的几个月中,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: [email protected]

商业 UUCP 和互联网服务提供商的冗长列表会定期发布到 USENET 的 news.announce.newusers 新闻组中,主题为“如何成为 USENET 站点”。

在选择服务提供商时,请询问您正在考虑的那些提供商为自由软件开发做了多少贡献,例如,通过向自由软件开发项目捐款或编写自由软件改进本身供通用使用。通过部分基于此因素做出决定,您可以帮助鼓励那些从自由软件中获利的人为自由软件的增长做出贡献。

GNU 项目愿望清单

本期希望为

迈向操作系统设计的新策略

本文解释了为什么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,并且可以使用所有标准的文件操作命令(例如lscp)来访问远程系统,而无需学习新的命令集。同样,一个简单的转换器可以简化targzip的复杂性。(这种透明的访问会有一些额外的成本,但会很方便。)

通用服务

借助转换器,文件系统可以充当与文件不相似的接口的交汇点。考虑一个使用Mach消息作为底层传输来实现X协议的某种版本的服务。对于每个X显示器,可以创建一个文件,并将相应的程序作为其转换器。X客户端将打开该文件。此时,几乎没有文件操作会有用(例如,读写将是无用的),但是新的操作(XCreateWindowXDrawText)可能会变得有意义。在这种情况下,文件系统协议仅用于操作用于交汇点的节点的特征。该节点不需要支持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 库为此提供了方便的函数。)进程可以告知进程服务器它们当前的 argvenvp 值;然后此服务器将根据请求提供这些参数和环境向量。这对于编写类似 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 ([email protected]) 和彦地信之 (Nobuyuki Hikichi) ([email protected]) 继续在日本为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兆字节的用于符号处理、知识表示、问题解决和推理以及自然语言处理的程序。如需更多信息,请联系[email protected]

日本的许多团体现在分发GNU软件。它们包括PC用户组JUG;期刊和图书出版商ASCII;富士通FM Towns用户组;以及SRA的GNU支持特别小组,称为Wingnut,他们还在日本购买了第一个豪华软件包。(从那时起,在日本又有几笔匿名购买了豪华软件包。)还提供匿名UUCP;如需更多信息,请联系[email protected]

也可以直接从日本向FSF下订单,帮助我们资助新代码。我们有一份用日文编写的FSF订单,请向[email protected]索取订单的副本。在日本还有两个免费传真号码(请参阅封面)。我们鼓励您购买磁带:每150个磁带订单允许FSF雇用一名程序员一年来编写更多自由软件。

免费提供的文本

可自由再分发的信息不仅仅是软件。以下是一些提供各种书籍、历史文献等的团体。

GNU 项目状态报告

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 所谓的“库函数”和“系统调用”。在它变得更加稳定之前,我们正在对本手册进行有限的复印运行。它是新的,需要更正和改进。请将它们发送至 [email protected]

现在可用的 GNU 软件

我们提供

我们还以 tar 格式在以下介质上提供 Unix 软件源代码发行磁带

Unix 系统的盘式和各种卡带磁带的内容相同(除了 RS/6000 Emacs 磁带,它也包含 Emacs 的可执行文件);只有介质不同(请参阅“自由软件基金会订购单”)。手册的源代码以 Texinfo 格式包含在内。我们欢迎所有发送到相应电子邮件列表的错误报告(请参阅“自由软件支持”)。

磁带上的某些文件可能使用 gzip 压缩以使其适合。有关解压缩它们的说明,请参阅每个磁带开头的顶层“README”文件。uncompressunpack 不起作用

在描述每种介质内容的文章中,程序名称后列出的版本号为本公告发布时的最新版本。当您订购发行磁带或软盘时,某些程序可能会更新,因此版本号更高。

交叉引用键

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 项目状态报告”,了解新功能和即将推出的程序)

OCEAN 集成电路设计系统

荷兰代尔夫特理工大学开发了 OCEAN,一个综合的芯片设计软件包。 它包含一整套强大的工具,用于合成和验证半定制的门海和门阵列芯片。 OCEAN 涵盖了设计轨迹的后端——从电路级别到布局和工作芯片。

OCEAN 提供用于放置、布线、仿真和提取的交互式工具,可以是自动的,也可以是手动引导的。 它作为免费软件提供,附带完整的源代码,并且已知可以在 X Window 系统下的 Linux、HP 和 Sun 工作站上运行。 对于数据的导入和导出,它了解 EDIF、BLIF、SLS、GDSII、CIF、SPICE 和 LDM。

您可以通过匿名 FTP 从 donau.et.tudelft.nl 获取 OCEAN。 如需更多信息,请通过互联网联系 [email protected]

Emacs 磁带的内容

此磁带包含 Common Lisp 实现、GNU Emacs、与 GNU Emacs 一起使用的各种扩展以及其他一些重要的实用工具。

语言磁带的内容

此磁带包含编程工具:编译器、解释器和相关程序(解析器、转换程序、调试器等)。

实用程序磁带的内容

此磁带主要包含其他 GNU 磁带上不可用的小型实用工具和杂项应用程序。

Scheme 磁带的内容

Scheme 是一种简化的、词法作用域的 Lisp 方言。它在麻省理工学院和其他大学被设计出来,用于教授学生编程的艺术,并研究新的并行编程结构和编译技术。

此磁带包含 MIT Scheme 7.1,它符合《Scheme 算法语言修订版^4 报告》(MIT 人工智能实验室备忘录 848b),其中包含了 TeX 源代码。它部分是用 C 语言编写的,但目前很难引导启动。以下系统可使用二进制文件来引导启动 Scheme:

如果您的系统不在列表中,并且您不喜欢引导启动的挑战,请参阅“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: [email protected]

源代码 CD-ROM

自由软件基金会(Free Software Foundation)已经制作了第三张源代码 CD-ROM。它包含以下内容:

CD-ROM 还包含版本 19 的 GNU Emacs Lisp 参考手册第 2.02 版的 Texinfo 源代码,以及俄亥俄州立大学的 Emacs Lisp 档案快照。(您可以通过 UUCP 获取此档案中的库(请询问 [email protected] 以获取说明),或者通过匿名 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 美元。

编译器工具二进制文件 CD-ROM

我们现在提供一种 CD-ROM,其中包含某些缺少编译器的系统的 GNU 编译器工具的可执行文件。这将允许这些系统的用户编译 GNU 和其他自由软件,而无需购买专有编译器。

CD-ROM 采用 ISO 9660 格式,可以在大多数操作系统上作为只读文件系统安装。如果您的驱动程序支持,您可以使用“Rock Ridge”扩展名挂载 CD-ROM,它看起来就像一个普通的 Unix 文件系统,而不是一个充满截断和被破坏的名称,以符合普通的 ISO 9660 规范的文件系统。

我们希望在此 CD-ROM 的每次更新中包含更多系统。如果您可以帮助为新系统(特别是对于没有 C 编译器的系统)构建二进制文件,或者有系统建议,请通过封面上的任何一个地址与我们联系。

这些程序::

适用于以下平台:

磁带和 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)。

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,
[email protected] (Europe), [email protected], acornrc!bob,
[email protected] (Japan), [email protected]

对于那些无法访问互联网的人,请参阅“自由软件支持”部分,了解如何通过 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 办公室(电话号码如下)或发送电子邮件至 [email protected]

我们以 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: [email protected]
   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。这些实用程序中的一些必然缺少某些功能。包括:cpiodiff、一些文件实用程序、findflexgdbmgrepindentlessm4make、MAWK、MicroEmacs、ptx、RCS、sedsharsort 和 Texinfo。

Windows 软盘的内容

我们正在单个软盘上分发移植到 Microsoft Windows 的 GNU Chess 和 gnuplot 版本。

微型计算机的自由软件

我们不提供微型计算机上 GNU 软件的支持,因为它与 GNU 项目无关。但是,我们正在磁带、CD-ROM 和软盘上分发一些此类程序。我们也愿意发布有关支持和维护它们的团队的信息。如果您知道任何此类努力,请将详细信息(包括邮政地址、存档站点和邮件列表)发送到封面上的任一地址。

有关 FSF 提供的微型计算机软件的更多信息,请参阅“MS-DOS 发行版”和两篇 CD-ROM 文章。请不要向我们询问任何其他软件。FSF *不*维护任何其他软件,并且 *没有*其他信息。

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 HikichiMieko HikichiKen'ichi HandaBob MyersDavid LittleboyMasayuki Ida 教授日本 Unix 协会千里国际信息研究所东北产业振兴中心会津大学Nihon Sun 用户组。感谢 Addison Wesley Publishers JapanA.I. SoftVillage Center, Inc.ASCII Corporation 和日本的许多其他公司,感谢他们持续的捐赠和支持。

感谢 Sun 用户组PCIUSENIX 协会 在他们的会议上捐赠展位。感谢在这些和其他会议上帮助 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 CaslavskyPaul EnglishCindy WoolworthLisa Bergen 借出的扫描仪。

感谢所有贡献移植和扩展的人,以及所有发送其他源代码、文档和优秀错误报告的人。

感谢所有捐款并提供其他形式帮助的人。

还要感谢所有通过订购手册、发行磁带、软盘和 CD-ROM 来支持我们的人。

创建此公告是我们感谢所有对我们正在做的事情表示兴趣的人的方式。

                                                -------
Free Software Foundation, Inc                  |       |
Electronic Mail: [email protected]           | stamp |
675 Massachusetts Avenue                       |       |
Cambridge, MA  02139-3309                      | here  |
USA                                            |       |
                                                -------