GNU 公报,第 1 卷第 10 期,1991 年 1 月
目录
- GNU 的是谁
- GNU 公报
- 什么是自由软件基金会?
- 什么是著佐权?
- GNU 快讯
- 自由软件支持
- 保护您编写程序的自由
- GNU 项目状态报告
- 帮助保持政府软件自由
- GNU 文档
- GNU 希望清单
- 现在可用的 GNU 软件
- 如何获取 GNU 软件
- MS-DOS 的自由软件
- 日本的 GNU
- 感谢 GNU
GNU 公报是自由软件基金会的半年刊通讯,为您带来关于 GNU 项目的新闻。
Free Software Foundation, Inc. Telephone: (617) 876-3296 675 Massachusetts Avenue Electronic mail: [email protected] Cambridge, MA 02139 USA
GNU 的是谁
Joseph Arceneaux 正在为未来的 Emacs 版本实现活动区域。Roland McGrath 在完成学业后已作为全职员工返回。他正在润色 C 库并维护 GNU make。Michael Bushnell 正在从事与内核相关的项目。Jim Blandy 正在准备 Emacs 19 版本并计划一个基于 X 的桌面。
Brian Fox 正在维护他编写的各种程序,包括 readline
库、makeinfo
和 Info 程序、BASH 以及新的 GNU finger
。Jay Fenlason 继续使用 GNU 电子表格 Oleo,并维护 tar
、sed
和 GNU 汇编器。
Mike Haertel 继续从事 C 解释器的工作;他还维护和改进 “bin” 实用程序和 grep
的种类。Kathy Hargreaves 和 Karl Berry 正在研究 Ghostscript,制作字体和各种处理它们的实用程序。Amy Gorin 正在编写 tar
的手册。
S. Opus Goldstein 在管理我们的办公室方面做得非常出色。Miria Brigid 正在接听电话、处理信件并制作发行磁带。我们的财务主管 Robert J. Chassell 一直在编写新版的 Texinfo 手册,以及处理许多其他基金会问题。他现在希望完成他关于 Emacs Lisp 编程的介绍。Joe Turner 是我们的兼职系统管理员。
Richard Stallman 继续作为志愿者,完成无数的任务,包括改进 C 编译器、GNU Emacs 等及其文档。最后,志愿者 Len Tower 仍然是我们的电子 JOAT(万事通),处理邮件列表和 gnUSENET、信息请求等。
GNU 公报
版权所有 (C) 1991 自由软件基金会公司。
作者:Michael Bushnell、Robert J. Chassell、Richard Stallman 和 Leonard H. Tower Jr.
插图:Etienne Suvasa
日语版:Mieko Hikichi 和 Nobuyuki Hikichi
本页面根据 知识共享署名-禁止演绎 3.0 美国许可协议获得许可。
什么是自由软件基金会?
自由软件基金会致力于消除对计算机程序复制、再分发、理解和修改的限制。我们通过促进在计算机使用的所有领域开发和使用自由软件来实现这一目标。具体而言,我们正在组建一个名为 “GNU”(GNU's Not Unix)的完整集成软件系统,它将向上兼容 Unix。该系统的某些大型部分已经可以工作,我们现在正在分发它们。
我们名称中的 “自由” 一词指的是两个特定的自由:第一,复制程序并将其赠送给您的朋友和同事的自由;第二,通过完全访问源代码,随意更改程序的自由。此外,您可以研究源代码并学习如何编写此类程序。然后,您就可以移植它、改进它,并与他人分享您的更改。
其他组织分发任何可用的自由软件。相比之下,FSF 专注于开发新的自由软件,致力于构建一个足够完整的 GNU 系统,从而无需购买专有系统。
除了开发 GNU,基金会还具有辅助功能:制作 GNU 软件的磁带和印刷手册,进行分发,以及接受捐赠以支持 GNU 的开发。我们是免税的;您可以在纳税申报表中扣除对我们的捐款。我们的开发工作部分由捐款资助,部分由发行费资助。请注意,发行费仅购买发行服务:您永远不必向任何人支付使用 GNU 软件的许可费,并且您始终可以免费从朋友的计算机上复制(前提是您的朋友愿意)。
基金会还维护一个服务目录:一份为 GNU 程序和系统的用户提供付费服务的人员列表。服务目录位于 GNU Emacs 发行版的 `etc/SERVICE` 文件中。服务可能意味着回答新用户的问题、自定义程序、移植到新系统或任何其他内容。如果您想被列出或想要一份副本,请联系我们。
在创建我们的程序后,我们会不断更新和改进它们。我们每年为每个程序发布 2 到 20 次更新。在开发新程序的同时执行此操作需要大量工作,因此,我们始终感谢任何相关源代码和文档、机器、劳动力或资金的捐赠。
基金会的董事会成员是:Richard Stallman,总裁;Robert J. Chassell,财务主管;Gerald J. Sussman、Harold Abelson 和 Leonard H. Tower Jr.,董事。
什么是著佐权?
在前面标题为“什么是自由软件基金会?”的部分中,我们声明“您永远不必向任何人支付使用 GNU 软件的许可费,并且您始终可以免费从朋友的计算机上复制。” 这到底是什么意思,我们如何确保它保持真实?
使程序自由化的最简单方法是将其置于公共领域。然后,从分享者那里获得它的人可以与他人分享它。但这也会让坏人做他们喜欢做的事情:在典型的不要与邻居分享许可下出售仅二进制版本。这样,他们将享受原始程序的自由带来的好处,同时又剥夺了用户这些好处。很容易发生大多数用户通过这种方式获得程序的情况,我们让程序对所有用户免费的目标将被破坏。
为了防止这种情况发生,我们通常不会将 GNU 程序置于公共领域。相反,我们用我们称之为著佐权的东西来保护它们。著佐权是一种法律工具,它使每个人都可以自由复制程序,只要获得副本的人同时获得分发更多副本的自由,以及修改其副本的自由(这意味着他们必须获得对源代码的访问权限)。典型的软件公司使用版权来剥夺这些自由;现在,软件分享者使用著佐权来保留这些自由。
GNU 项目使用的著佐权由版权声明和GNU 通用公共许可证组合而成。版权声明是通常的那种。通用公共许可证是一个复制许可证,它基本上说您拥有我们希望您拥有的自由,并且您不能从其他人那里剥夺这些自由。(实际文件由我们律师说我们需要的好几页相当复杂的法律术语组成。)完整的许可证包含在所有 GNU 源代码发行版和许多手册中。我们会根据要求向您发送一份副本。
我们鼓励其他人使用通用公共许可证来著佐权他们的程序;基本上,程序只需要包含几句话,说明该许可证适用于它们。有关使用许可证的具体信息随附在其中,因此请参阅那里了解详细信息。
“正如我们从他人的发明中获得巨大优势一样,我们应该很高兴有机会通过我们的任何发明为他人服务。”
-Benjamin Franklin
GNU 快讯
- GNU 磁带和文档的价格上涨 我们将首次提高价格。我们希望保持价格稳定和合理,但自 1985 年以来,我们的成本已经上涨。新价格将于 1991 年 2 月 1 日生效。
- 新的库许可证 我们现在应该已经完成了某些 GNU 库的新的替代通用公共许可证。该许可证允许在特定条件下将库链接到专有可执行文件中。新的库许可证实际上代表着战略撤退。我们更希望尽可能坚持认为基于 GNU 软件的程序本身必须是自由的。但是,在库的情况下,我们发现坚持它们只能在自由软件中使用往往会阻碍库的使用,而不是鼓励自由应用程序。因此,虽然我们希望新的库许可证将有助于促进自由库的开发,但我们不得不遗憾的是这是必要的。我们还将发布普通 GPL 的第 2 版。其政策没有真正的变化,但我们希望澄清导致误解和有时不必要的担忧的要点。
- 惠普公司的捐赠 我们要感谢惠普公司捐赠了 75,000 美元以及几台机器和打印机。一如既往,我们非常感谢设备贷款或捐赠。
- 内核 我们仍然希望在 Mach 之上有一个内核。我们正在等待 CMU 的律师批准允许我们分发代码的分发条件。在等待 CMU 的同时,可以使用 BSD 内核作为短期解决方案,因为它在过去几年中变得越来越自由。它目前在 386/486 和 HP 9000/300 上运行。
- Ghostscript 由 Peter Deutsch 编写并由 FSF 工作人员 Kathryn Hargreaves 和 Karl Berry 维护的 Postscript 的 GNU 实现现在处于第二个主要版本。
- C 库 C 库正在进行预发布测试。我们希望尽快提供 beta 测试。该库符合 POSIX.1 标准,并具有 POSIX.2 草案 10 的大部分功能。它向上兼容 4.3 BSD C 库,并包含许多 System V 功能。
- GCC 的 Fortran 前端 由 Craig Burley 编写的 GCC 的 Fortran 前端正在集成中。进展非常迅速。它已经可以编译简单的短程序。在宣布发布之前,请不要要求提供更多信息。
自由软件支持
自由软件基金会开发并分发免费提供的软件。我们的目标是帮助计算机用户作为一个社区。我们设想一个软件可以自由再分发的世界。这意味着软件将以有竞争力的市场价格出售,而不是以垄断的固定价格出售;通常它会被免费赠送。我们认为程序员提供的是一种服务,就像现在的医生和律师一样——医学知识和法律都是可以自由再分发的实体,从业者会收取分发和服务费。
我们维护着一份提供支持和其他咨询服务的人员列表,称为 GNU 服务目录。此列表包含在 GNU Emacs 发行版中的 `etc/SERVICE` 文件中。如果您想要一份副本或希望被列入其中,请与我们联系。
GNU 服务目录中的大多数条目都是针对个人的,但有一个是针对 Cygnus Support 的,这是我们所知的第一个仅为自由软件提供支持的营利性公司。他们的地址是 [email protected]
或 Cygnus Support, 814 University Ave., Palo Alto, CA 94301。FSF 与 Cygnus Support 没有关联,但我们希望它是未来的先兆。
如果您发现任何 GNU 软件存在缺陷,我们希望知道。我们维护着相当数量的互联网邮件列表,用于发布公告、报告错误和提出问题。这些邮件列表也通过网关进入 USENET 新闻组,以 gnu.*
新闻组的形式呈现。Emacs 和 GCC 手册中有章节解释了在哪里发送错误报告以及需要包含哪些信息。
如果您没有互联网访问权限,您可以通过 UUCP 连接接收邮件和 USENET 新闻。请联系当地 UUCP 站点的系统管理员,或联系 UUNET Communications,他们可以以适度的费用设置 UUCP 连接。(UUNET 是一家提供网络连接的非营利组织。)您可以通过电子邮件 [email protected]
或纸质邮件联系 UUNET:
UUNET Communications Services, 3110 Fairview Park Drive - Suite 570, Falls Church, VA 22042 Phone: (703) 876-5050
当我们收到错误报告时,我们通常会尝试修复问题,以使软件更好。虽然我们的错误修复可能看起来像是个人帮助,但事实并非如此。我们的任务非常庞大,我们必须专注于那些有助于整个社区的事情,例如开发和维护软件及文档。我们没有资源来帮助个人。即使我们没有解决您的问题,其他用户中的一位也可能会解决。否则,请查阅服务目录。
所以,请告诉我们安装脚本如何不工作或文档在哪里不清楚——但请不要要求我们帮助您安装软件或弄清楚如何使用它。如果您的错误报告没有引起我们的解决方案,您仍然可能会从阅读我们错误报告邮件列表的许多其他用户那里得到解决方案。否则,请使用服务目录。
保护您编写程序的自由
作者:Richard Stallman
十年前,程序员被允许使用他们所知道的所有技术编写程序,并提供他们认为有用的任何功能。现在情况不再如此。新的垄断、软件专利和界面版权已经剥夺了我们的自由。
“外观和感觉”诉讼试图垄断众所周知的命令语言;有些诉讼已经成功。命令语言的版权强制执行了无谓的不兼容性,关闭了竞争机会,并扼杀了渐进式改进。
软件专利甚至更危险;它们使得程序开发中的每一个设计决策都带有诉讼的风险。要找出您使用的技术是否已获得专利是困难且昂贵的;要找出它们将来是否会获得专利是不可能的。
编程自由联盟是一个由教授、学生、商人、程序员和用户组成的草根组织,致力于恢复编写程序的自由。如果您对使用 X Windows 或 compress
构建计算机系统时可能因专利侵权而被起诉感到不满,如果您对编写电子表格时不允许支持大多数用户知道的命令感到不满,不要只是抱怨——做点什么!您可以通过加入联盟来帮助废除新的垄断。
编程自由联盟通过发表文章、与公职人员交谈、抵制恶劣的违法者,并且可能在未来通过干预法庭案件来废除新的垄断。1989 年 5 月 24 日,联盟因其诉讼而纠察了 Lotus 总部,并在 1990 年 8 月 2 日再次纠察。这些游行激发了媒体对该问题的广泛报道。
说服国会是一项艰巨的工作。为了给公职人员留下深刻印象,联盟需要更多成员:包括积极分子成员和仅支付会费的成员。还需要更多的企业成员。专业人士的会费为 42 美元,其他人士为 21 美元,学生的会费为 10.50 美元。要加入,请将您的支票、姓名和地址邮寄至
League for Programming Freedom 1 Kendall Square #143 P.O.Box 9171 Cambridge, MA 02139
还请发送您的电话号码和电子邮件地址,并提及您所做的任何值得注意的事情,尤其是在商业或软件方面。
有关更多信息,请致电联盟 (617) 243-4091,发送互联网邮件至 [email protected]
,或写信至上述地址。
注意:编程自由联盟不是一个自由软件组织,它不支持 GNU 项目或自由软件基金会。大多数联盟成员编写专有软件,其中一些人创立了这样做的公司。
但是,FSF 强烈支持联盟——也许用“不顾一切”来形容会更好。专利对自由软件尤其具有破坏性。专利持有人可以阅读我们的源代码,以了解我们使用的技术,而我们无力购买专利许可。(更不用说如果我们同意为每个程序副本支付哪怕是一美分,该程序就不能再是免费的了。)
在几年内,在美国分发完整的自由操作系统很可能会违法,因为太多的重要部分会侵犯专利。结果可能是未来的 GNU 软件只能在美国境外发布。
如果您正在阅读本文,您很有可能欣赏 GNU 项目并希望它产生更多软件。如果您只能做一件事来帮助 GNU 项目,那么加入联盟是您能做的最重要的事情。
GNU 项目状态报告
- GNU Emacs GNU Emacs 18.56 刚刚发布。此版本修复了几个错误。此外,撤销功能已完全重写,现在可以临时保存无限量的数据,并可以长期保存用户指定的数量。伯克利正在通过 4.3 BSD 发行版分发 GNU Emacs,许多公司也在分发它。Emacs 18 的维护工作将继续进行,以修复简单的错误。版本 19 即将发布,其新功能包括:更改前和更改后挂钩、源代码级 Lisp 调试、X 选择处理(包括剪贴板选择)、滚动条、对欧洲字符集的支持、浮点数、每个缓冲区的鼠标命令、与 X 资源管理器接口、鼠标跟踪、函数键的 Lisp 级绑定以及多个 X 窗口(Emacs 的“屏幕”)。感谢 Alan Carroll 和参与 Epoch 项目的人员为多窗口 Emacs 生成了初步反馈。Emacs 19 支持两种多窗口样式,一种是为 minibuffer 使用单独的屏幕,另一种是将 minibuffer 附加到每个屏幕。Emacs 19 的其他一些功能是缓冲区分配(使用一种新的机制,可以在缓冲区被删除时将存储返回给系统)和新的输入系统——现在所有输入都以 Lisp 对象的形式到达。正在考虑用于 Emacs 19 稍后版本的其他功能包括:将属性列表与缓冲区中区域的文本关联;由这些属性定义的多个字体、颜色和像素图;区域以及显示一个缓冲区的各个窗口的不同可见性条件;如果指针或鼠标移出某个范围要运行的挂钩;以增量方式将撤销历史记录保存在文件中;静态菜单栏;以及更好的弹出菜单。
-
Shell Brian Fox 完成了 Bourne Again shell (BASH),它是 Korn shell 的模仿。它现在具有作业控制以及 Emacs 风格和
csh
风格的命令历史记录。伯克利很有可能会将 BSD 的csh
声明为自由软件,因此我们不需要编写它。无论如何,BASH 而不是csh
将是 GNU 系统中的默认 shell。 - 内核 我们仍然对在 Mach 之上运行的多进程内核感兴趣。卡内基梅隆大学的律师目前正在决定他们是否可以发布 Mach,其发布条件将使我们能够分发它。如果他们决定这样做,那么我们可能会开始工作。卡内基梅隆大学以与 Mach 相同的条款提供了一个名为 Poe 的单服务器部分 Unix 模拟器;它相当慢,并且提供最少的功能。我们可能会首先扩展 Poe 以提供全部功能。稍后我们希望有一个模块化的模拟器,分为多个进程。
- GNU 调试器 GNU 源代码级 C 调试器 GDB 现在与 GNU C 编译器一起作为 GDB 3.5 版发布。过去在 Emacs 磁带上发布的 2.8 版现在已经过时,并已被 3.5 版取代。John Gilmore 正在稳步改进 GDB,特别是其内核调试功能。他添加了观察点、不同 CPU 类型之间的交叉调试以及许多次要功能。他计划在 4 版的初始版本发布之前添加基于以太网的调试功能。
-
C 编译器 GNU C 编译器 (GCC) 版本 1 现在非常可靠。它支持 ANSI 标准 C。NeXT 使用 GCC 构建其整个系统,包括 Mach 内核和 NFS 的移植版本。开放软件基金会 (Open Software Foundation) 在其操作系统中使用 GCC 作为编译器,Data General 将其用于基于 Aviion 88000 的工作站,Intel 将其用于 960 微处理器,而 Berkeley 正在将其添加到 BSD 发行版中。我们也获悉,GCC 已成功编译了 System V.3 内核。GCC 已经编译了包括内核在内的所有 BSD 源代码树,并且正在进行使其能够编译内核的工作。GCC 执行自动寄存器分配、循环中不变量代码移动、公共子表达式消除、归纳变量优化、常量传播和复制传播、延迟弹出函数调用参数、尾递归消除以及许多从机器描述中自动推导出的局部优化。虽然版本 1 仅用于修复错误,但新工作正在版本 2 中进行。它现在具有指令调度、基本块之间一定数量的 CSE 以及用于分类指令的新功能。正在完成函数范围的 CSE,以及循环展开。版本 2 可以为 IBM PC/RT、IBM RS/6000、Motorola 88000、AMD 29000 和 TRON 生成代码。适用于 IBM 370、HP Spectrum 和 NCUBE 的端口正在开发中。支持更通用的调用约定,因此在 Sparc 上,GCC 现在可以使用标准约定来处理结构参数和值。并非所有现有的版本 1 机器描述都已更新;有些不起作用,有些需要工作才能充分利用指令调度和延迟槽。版本 2 在与 C 本身相同的基础上支持 C
++
和 Objective C:源文件的名称选择语言。Cygnus Support 的 Michael Tiemann 为 GCC 编写了 C++
前端(在版本 1 中以 G++
提供)。编译 Objective C 程序的前端由 NeXT 捐赠。在版本 2 发布之前,请不要要求提供更多信息。志愿者正在开发用于 Modula-2 和 Modula-3、Fortran 和 Pascal 的前端。有关于各种其他语言的传言。到目前为止,还没有人自愿编写 Ada 或 Cobol。 -
C 库 Roland McGrath 和其他人员继续致力于 C 库的开发。C 库目前包含所有 ANSI C 和 POSIX.1 函数,并且正在进行 POSIX.2 和 Unix 功能的开发。这意味着该库不仅将包含所有 ANSI、POSIX 1003.1 和 POSIX 1003.2,还将包含 BSD 和 System V 中几乎所有内容。Mike Haertel 编写了一个速度惊人的
malloc
。GNU 正则表达式函数 (regex
) 现在基本符合 POSIX.2 标准。 -
Ghostscript Ghostscript 提供了 Postscript 解释器几乎所有的功能。Ghostscript 的主要作者和维护者 Peter Deutsch 与 FSF 员工 Kathryn Hargreaves 和 Karl Berry 一起发布了该程序的新版本。Karl 和 Kathy 也在努力制作免费字体。此版本的亮点包括
- 适用于 HP DeskJet、HP LaserJet 和 Epson LX-800 打印机的驱动程序(全部为低密度模式)。您可以构建多个驱动程序并在运行时选择驱动程序。
- 字体和 Ghostscript 库文件的搜索路径。
- 对 Adobe Type 1 字体表示的支持(尽管忽略了提示)。
- 一组适用于所有标准 Postscript 字体的可缩放字体(以及一些其他字体),这些字体是从 X11 BDF 字体算法导出的。转换程序也包括在内,因此您可以转换其他字体。
- 将渲染结果写入内存中的位图,然后以 PPM 格式(或您编程的任何其他格式)写出位图的能力。
-
Oleo Jay Fenlason 正在编写一个名为 Oleo 的电子表格(它比更昂贵的电子表格更适合您)。Oleo 现在处于 alpha 测试阶段;我们不知道它何时可用。Jay 说,"真正勇敢"的人可以联系他成为 alpha 测试人员。Oleo 目前可以读取和写入 SC 和 Multiplan SYLK 文件,但教它新的格式相当简单。它具有全套表达式以及数学、财务和字符串函数。所有键都可以重新绑定,Oleo 还具有基本的宏支持。Oleo 使用
curses
库,并且计划开发 X11 接口。目前,它可以在 BSD Unix 机器以及 IBM PC 和兼容机上运行。 -
groff James Clark 发布了 groff - GNU troff 和相关程序。到目前为止,它包括
troff
、pic
、tbl
、eqn
、-man
宏、Postscript 和类似打字机设备的驱动程序,以及生成 TeXdvi
格式的驱动程序。还包括 Berkeley-me
宏的版本,以及 MIT X11R4 预览器xditview
的增强版本。他目前正在开发-ms
宏和refer
。Groff 是用 C++
编写的。有用的补充将是-mm
宏和grap
预处理器。
帮助保持政府软件自由
作者:Richard Stallman
200 年来,美国的版权制度将联邦政府编写的所有内容都置于公共领域。这是有道理的:我们都为此付出了代价,所以我们都应该拥有它。
现在,有一种改变这种情况的趋势。如果它成功了,那么今天本应免费的许多软件将改为出售。我们将支付开发软件的费用,然后我们必须再次付费才能使用它。GNU 系统将无法使用它,因为它不会是免费的。
我们认为这是可耻的。如果您同意,请写信给国会,帮助阻止这种情况。
House Subcommittee on Intellectual Property 2137 Rayburn Building Washington, DC 20515
GNU 文档
GNU 致力于拥有高质量、易于使用的在线和印刷文档。GNU 手册旨在解释基本概念,描述如何使用每个程序的所有功能,并给出命令使用的示例。
GNU 文档以 Texinfo 源文件分发,这些文件通过菜单驱动的 Info 系统产生排版好的硬拷贝和在线演示。
以下手册随我们的软件提供,也可以通过硬拷贝形式提供;请参阅内封底上的订购单。
Emacs 手册 介绍了 GNU Emacs 的使用。它还解释了高级功能,例如大纲模式和正则表达式搜索。该手册介绍了如何在诸如 C 和 Lisp 之类的语言中编程时使用特殊模式,如何使用标签实用程序,以及如何编译和更正代码。它还介绍了如何制作自己的键绑定和其他基本自定义。
Emacs Lisp 参考手册 深入介绍了 GNU Emacs Lisp 编程语言。它深入探讨了数据类型、控制结构、函数、宏、字节编译、键映射、窗口、标记、搜索和匹配、模式、语法表、操作系统接口等。
Texinfo 手册 解释了用于从同一源文件创建 Info 文件和印刷文档的标记语言。这告诉您如何制作表格、列表、章节、节点、索引和交叉引用。它还介绍了如何在 GNU Emacs 中使用 Texinfo 模式并捕获错误。
Termcap 手册 通常被描述为“您可能想了解的关于 Termcap 的两倍内容。”它描述了 Termcap 数据库的格式、终端功能的定义以及查询终端描述的过程。本手册主要供程序员使用。
Bison 手册 介绍了如何编写可以转换为 C 编码解析器的语法描述。它假定您事先没有解析器生成器的知识。本手册首先介绍概念,然后提供一系列越来越复杂的示例,最后详细描述会发生什么。
GAWK 手册 介绍了如何使用 AWK 的 GNU 实现。它是为从未用过 AWK 的人编写的,并描述了这种强大的字符串操作语言的所有功能。
Make 手册 介绍了 GNU Make 实用程序,该实用程序用于在需要时重新构建其他程序的部分。它涵盖了 makefile 编写,该编写指定了如何编译程序以及程序的每个部分依赖于什么。
GDB 手册 介绍了如何使用 GNU 调试器。它描述了在调试器控制下运行程序、如何检查和更改数据以及修改程序内的控制流,以及如何通过 GNU Emacs 使用 GDB,并自动显示源代码行。
GNU 希望清单
本期希望
- 志愿者帮助编写实用程序和文档。有关任务列表和编码标准,请发送邮件至
[email protected]
。 - 全职员工在 GNU 项目中担任程序员和技术作家。您必须在马萨诸塞州剑桥市,或者能够与我们保持良好的电子通信。我们还希望找到一位也可以担任志愿者协调员的程序员。如果您有兴趣,请联系
[email protected]
或发送邮件至 Free Software Foundation 的 Richard Stallman。 - 公司至少借给我们有能力的程序员和技术作家六个月。真正的巫师可能欢迎他们来较短的时间,但我们发现六个月是优秀的程序员完成有价值的项目的最短时间。
- IBM/RT 的 300 MB 磁盘驱动器和 Sun 的 QIC-150 磁带驱动器。我们还需要捐赠或借出机器给在剑桥办公室附近的 FSF 程序员和文档编写人员。
- 可能有兴趣赞助或接待研究助理进行 GNU 开发的教授,并提供 FSF 支持。
- 语音和字符识别软件(如果设备不太奇怪),并提供设备驱动程序(如果可能)。这将有助于我们认识的至少一名部分残疾程序员的生产力。
- 适用于英语和其他自然语言的语法检查软件。
- 提及 GNU 项目或 GNU 软件的报纸和期刊文章的副本。请将这些发送到封面上的地址,或将引文发送至
[email protected]
。 - 一如既往地需要资金。请记住,捐款可抵税。凭借最新的捐款,我们已经能够再次扩大我们的员工队伍。随着员工人数的增加,我们对捐款的需求更大。向我们捐款少量资金的一种方法是订购一两个分发磁带。这可能不能算作税收目的的捐赠,但它可以算作业务费用。
现在可用的 GNU 软件
我们提供 Unix 软件源代码分发磁带,以及用于 GNU Emacs 和 GNU C 的 VMS 磁带,其中包含源代码和 VMS 可执行文件。
第一个 Unix 磁带,称为“Emacs”磁带,包含 GNU Emacs 以及其他各种经过良好测试的程序。第二个 Unix 磁带,称为“编译器”磁带,包含 GNU C 编译器、相关实用程序和其他新程序。第三个和第四个 Unix 磁带(称为“X11”磁带)包含来自 MIT X Consortium 的 X11 分发。
有关媒体等的详细信息,请参阅内封底上的订购单。请注意,用于 Unix 系统的 1600bpi 9 轨磁带和 QIC-24 DC300XLP 1/4 英寸盒式磁带的内容是相同的。只有介质不同。
Emacs 磁带的内容
此发行磁带上的软件被认为相当稳定,但与往常一样,我们欢迎您报告错误。
- GNU Emacs 在 1975 年,理查德·斯托曼开发了第一个 Emacs,这是一个可扩展、可定制的实时显示编辑器。GNU Emacs 是他对 Emacs 的第二次实现。它是第一个在 Unix 系统上可用的 Emacs,它提供了真正的 Lisp——平滑地集成到编辑器中——用于编写扩展。它还为 MIT 的免费 X 窗口系统提供了一个特殊的接口。当前版本的 Emacs 是 18.56。自 1985 年以来,GNU Emacs 已被广泛使用,并且由于其更高的可靠性以及附加功能和更容易的扩展性,经常取代 Emacs 的专有实现。DEC、伯克利和 NeXT 都在他们的系统中分发 Emacs。GNU Emacs(截至 18.56 版本)在许多 Unix 系统上运行:Alliant、Altos 3068、Amdahl (UTS)、Apollo、AT&T(3B 机器和 7300 PC)、CCI 5/32 & 6/32、Celerity、Convex、Digital (DECstation 3100; DECstation 5000; Vax 运行 BSD、System V 或 VMS)、Motorola Delta(运行 System V/68 release 3)、Dual、Elxsi 6400、Encore (DPC, APC, & XPC)、Gould、HP (9000 系列 200、300 或 800 (Spectrum) 但不包括 500 系列)、HLH Orion 1/05、IBM(RT/PC 运行 4.2 和 AIX;PS/2 或 RS/6000 运行 AIX)、Integrated Solutions(带有 68020 和 VMEbus 的 Optimum V)、Intel 80386(BSD、Microport、System V 和 Xenix;不包括 MS-DOS)、Iris(2500、2500 Turbo 和 4D)、LMI (Nu)、Masscomp、Megatest、MIPS、NCR (Tower 32)、Nixdorf Targon 31、Plexus、Prime EXL、Pyramid、Sequent (Balance & Symmetry)、SONY News、Stride (系统版本 2)、Sun (1, 2, 3, 4, SparcStation & 386i)、Tahoe、Tektronix (NS32000 & 4300)、Stardent 1500 或 3000、Titan P2 或 P3、Pmax、Texas Instruments (Nu) & Whitechapel (MG1)。GNU Emacs 手册 描述了 GNU Emacs,该手册以 Texinfo 格式随软件一起提供;请参阅上面的“GNU 文档”。此外,由于 GDB 是唯一可以在不混淆的情况下调试 Emacs 的调试器,因此它也包含在此磁带以及编译器磁带中。
- GNU Emacs Lisp 参考手册 本手册详细描述了 GNU Emacs Lisp 编程语言,适用于任何有兴趣使用 GNU Emacs Lisp 编写程序的人(请参阅上面的“GNU 文档”)。
- Bison Bison 是 Yacc 解析器生成器的向上兼容替代品,具有额外的功能。它已经使用了好几年。它用于编译 GNU C,因此它也包含在 GNU 编译器磁带中。Bison 手册 以 Texinfo 格式随软件一起提供;请参阅上面的“GNU 文档”。
- MIT Scheme Scheme 是一种简化的、词法作用域的 Lisp 方言。它是在麻省理工学院和其他大学设计的,用于教授学生编程以及研究新的并行编程结构和编译技术。MIT Scheme 用 C 编写,并在许多 Unix 系统上运行。它现在符合“修订的算法语言方案报告^3”(MIT AI Lab Memo 848a),其 TeX 源代码包含在发行版中。
- Yale T T 是在耶鲁大学开发的 Scheme 的变体,旨在用于程序开发的生产用途。T 包含一个本机代码优化编译器,该编译器生成的代码运行速度与用传统语言编写的程序的速度相当。它运行在 BSD Vaxes、680x0 系统、Sparc 工作站、MIPS R2000 工作站(包括 Decstation 3100 PMAX)和 NS32000 机器(包括 Encore Multimax)上。T 本身是用自己编写的,如果没有二进制文件(已包含),则无法引导它,但如果您可以使用它,那就太好了。其中包含一些文档。
-
texi2roff
texi2roff
由 Beverly Erlebacher 编写,它翻译 GNU Texinfo 文件,以便可以使用 Unix[nt]roff
程序利用mm
、ms
或me
宏包进行打印。它包含在所有 Unix 磁带中,以便没有 TeX 副本的人可以打印出 GNU 文档。 -
数据压缩软件 我们磁带发行版中的一些内容是压缩的;这些目前以 `.Z' 后缀表示。我们在磁带上包含了压缩/解压缩这些文件的软件。目前,我们使用
compress
程序,但它的算法似乎已获得专利。我们希望切换到另一个有可能不被授予专利的程序。无论您的磁带上有什么程序,都会解压缩其中的压缩文件。 - GNU Chess 和 NetHack GNU Chess 是一个国际象棋程序,现在是 3.1 版本。它具有纯文本和 X 显示界面。NetHack 是一款面向显示的冒险游戏,类似于 Rogue。我们分发 NetHack 2.3 版本。
编译器磁带的内容
此磁带上的程序正变得稳定。例外的是 Ghostscript,但为了方便起见,我们将其放在此磁带上。与往常一样,我们征求您的意见和错误报告。此磁带以前被称为“预发布”或“Beta 测试”磁带。
- GNU CC GNU C 编译器是一个相当便携的优化编译器。它可以为 32000、680x0、80386、Alliant、Convex、Tahoe 和 Vax CPU 生成良好的代码,并为以下 RISC CPU 生成良好的代码:i860、Pyramid、Sparc 和 SPUR。还支持 MIPS RISC CPU。使用这些 CPU 的机器包括运行 AIX 的 386、Alliant FX/8、Altos 3068、运行 Aegis 的 Apollo 68000/68020、AT&T 3B1、Convex C1 和 C2、DECstation 3100、DECstation 5000、DEC VAX、Encore MultiMax (NS32000)、Genix NS32000、Harris HCX-7 和 HCX-9、HP-UX 68000/68020、运行 BSD 的 HP、运行 AIX 的 IBM PS/2、Intel 386(System V、Xenix、BSD,但不包括 MS-DOS)、Iris MIPS 机器、ISI 68000/68020、MIPS、NeXT、Pyramid、Sequent Balance (NS32000)、Sequent Symmetry (i386)、SONY News、Sun 2、Sun 3(可选带有 FPA)、Sun 4、SparcStation 和 Sun386i。当前版本为 1.39。它支持完整的 ANSI C。有关 GCC 的更多详细信息,请参阅“GNU 项目状态报告”。一位优秀的程序员应该能够在大多数这些系统上制作交叉编译器,以交叉编译到大多数这些架构。大多数工作将用于编译器支持工具,而不是 GCC 本身。编译器附带了 Bison(也在 Emacs 发行版磁带上)、完美的哈希表生成实用程序 (Gperf) 以及 GCC 手册 的 Texinfo 源代码。本手册描述了如何运行和安装 GNU C 编译器,以及如何将其移植到新的处理器。它描述了编译器的新功能和不兼容性,但不熟悉 C 的人还需要一本关于 C 的好书。(我们尚未以纸质形式出版本手册。它变化太快了。)
-
汇编器和目标文件实用程序 GNU 汇编器 (GAS) 是一个相当便携的单遍汇编器,速度几乎是 Unix
as
的两倍。它现在是 1.39 版本,适用于 32x32、680x0、80386、Sparc (Sun 4) 和 Vax。我们有ar
、ld
、nm
、size
、gprof
、strip
和ranlib
的免费版本。GNU 链接器ld
速度很快,并且是唯一一个会为您提供有关多重定义符号和未定义引用的源代码行编号错误消息的链接器。我们现在还分发由 W. Wilson Ho 编写的动态链接器dld
。这是一个库,您可以将其与您的程序链接,然后使其能够将目标文件动态加载到正在运行的二进制文件中。 -
COFF 支持 可以在 System V 上运行整套 GNU 软件工具,完全替换 COFF。GNU 工具可以使用带有 System V 内核将接受的 COFF 头的 BSD 目标文件。提供
robotussin
用于将标准库转换为此格式。 -
make
GNUmake
包括来自 BSD、System V 和 POSIX 版本的 make 的几乎所有功能,以及我们自己的许多扩展。这些扩展包括并行性、条件执行和文本操作。GNU make 的 3.59 版本相当稳定。包含许多功能改进的 4 版本的工作正在进行中。提供了 GNU make 手册的 Texinfo 源代码;请参阅上面的“GNU 文档”。 -
调试器 GNU 调试器 GDB 的 3.5 版本在 Vaxes 和 Suns (2, 3 和 4)、Convex、BSD 下的 HP 9000/300's、HP/UX 下的 HP 9000/320's、System V 386 机器(使用 GNU 或本机目标文件格式)、ISI Optimum V、Utek 2.1 下的 Merlin、SONY News、Gould NPL 和 PN 机器、Pyramid、Sequent Symmetry(基于 386 的机器)、Altos 以及 Umax 4.2 下的 Encore 上运行。GDB 具有符号表增量读取功能(用于快速启动和减少内存使用)、命令行编辑功能、调用被调试程序中的函数的能力、通过串行线路进行远程调试的功能、值历史记录和用户定义的命令。它可用于调试 C、C
++
和 FORTRAN 程序。它附带 Texinfo 手册(请参阅上面的“GNU 文档”)。 -
BASH GNU Shell,BASH(表示 Bourne Again SHell),提供与 Unix
sh
的兼容性,并提供在csh
和ksh
中发现的许多扩展。它具有作业控制、csh
样式的命令历史记录和命令行编辑(内置 Emacs 和 vi 模式以及重新绑定键的功能)。 -
GAWK、
flex
和tar
GAWK 是 GNU 的 Unix AWK 实用程序版本;它附带 Texinfo 手册(请参阅上面的“GNU 文档”)。flex
是 Lawrence Berkeley Laboratory 的 Vern Paxson 编写的 Unixlex
扫描器生成器的基本兼容替代品。flex
生成的扫描器比lex
生成的扫描器效率高得多。GNUtar
包括多卷支持、存档稀疏文件的能力、存档的自动压缩和解压缩、远程存档以及允许tar
用于文件系统的增量和完整备份的特殊功能。 - 来自 U.C. Berkeley 4.3-tahoe 发行版的免费文件 这些文件已被 Berkeley 声明为不包含 AT&T 代码,并且可以自由重新分发。它们包括一些实用程序、游戏和库例程的完整源代码;以及许多其他文件的部分源代码。我们尚未分发 4.3-reno 发行版中标记为免费的文件。Berkeley 计划在 1 月下旬或 2 月初发布免费软件的修订磁带。当这种情况发生时,我们将开始分发所有这些文件,而不是 4.3-tahoe 文件。请注意,该磁带上的免费内容将比当前 4.3-tahoe 磁带上的免费内容多得多。
- RCS 和 CVS 修订控制系统用于大型软件项目的版本控制和管理。这是最新版本:5.5。并发版本系统 CVS 在多开发人员、多目录、多组环境中管理软件修订和发布控制。它在 RCS 4 及以上版本的基础上效果最佳,但会解析较旧的 RCS 格式,从而失去 CVS 的更多高级功能。有关更多详细信息,请参阅 Berliner, Brian,《CVS-II:并行化软件开发》,1990 年冬季 USENIX 协会会议的会议录。
-
diff
和grep
这些程序是 GNU 版本的同名 Unix 程序。它们比它们的 Unix 对应程序快得多。 - Ghostscript Ghostscript 是 GNU 的图形语言,它几乎完全与 Postscript 兼容。请参阅“GNU 项目状态报告”中的部分。
-
gnuplot
gnuplot
是一个用于绘制数学表达式和数据的交互式程序。奇怪的是,该程序既不是为 GNU 项目完成的,也不是以 GNU 项目命名的——这个名字只是一个巧合。 -
g++
、libg++
和 NIH 类库g++
是一组对 GCC 的修改,用于编译 C++
,这是一种众所周知的面向对象语言。在可能的情况下,g++
会与不断发展的 ANSI 标准草案保持兼容。源代码附带 GNU G++
用户指南。(我们尚未以纸质形式发布此手册,因为它变化太快。)g++
可以快速编译源代码,提供良好的错误消息,并且可以很好地与 GDB 配合使用。由于g++
依赖于 GCC,因此必须与相应编号的 GCC 版本一起使用。GDB 版本 3 包含对调试 C++
代码的支持,它合并了旧程序 GDB+
的功能。libg++
(GNU C++
库)是大量且有文档记录的 C++
类和支持工具集合,用于g++
。 NIH 类库(以前称为 OOPS(面向对象程序支持))是 Keith Gorlen 在 NIH 使用 C++
编程语言开发的类似 Smalltalk-80 的可移植类集合。请注意,Interviews 已从该磁带中删除,因为它出现在“可选”的 X 磁带上(请参阅下文的“X11 磁带的内容”)。 -
文件实用程序和杂项 文件实用程序现在包含在此处。GNU
indent
也已添加到此磁带中。我们还在此磁带中包含texi2roff
、compress
、perl
(版本 3.0)、c-perf
(版本 2.0)、f2c
(一个 FORTRAN 到 C 的转换器)和 GnuGo(围棋游戏)。
X11 磁带的内容
两个 X11 磁带包含 MIT X 窗口系统的 11 版第 4 版。X11 比不再支持或可用的 10 版功能更强大,但与之不兼容。
第一个 FSF 磁带包含来自 MIT X 联盟的磁带一和磁带二的内容:核心软件和文档,以及贡献的客户端。FSF 将其第一张磁带称为“必需”的 X 磁带,因为它对于在 X 或 GNU Emacs 下运行 X 是必需的。(该联盟将其前两张磁带称为“必需/推荐”的磁带。)
第二个“可选”的 FSF 磁带包含来自 MIT X 联盟的磁带三和磁带四的内容:贡献的库和其他工具包、Andrew 软件、游戏等。(该联盟将其最后两张磁带称为“可选”磁带。)
VMS Emacs 和编译器磁带
我们提供 GNU Emacs 编辑器的 VMS 磁带,以及包含 GNU C 编译器的单独 VMS 磁带。VMS 编译器磁带还包含 Bison(编译 GCC 所需)、GAS(组装 GCC 的输出所需)以及一些库和包含文件。两个 VMS 磁带都包含您可以从中引导的可执行文件,因为 DEC VMS C 编译器存在错误,因此无法编译 GNU C。
请不要要求我们为额外的 VMS 支持投入精力,因为它对于 GNU 项目来说是外围的。
如何获取 GNU 软件
来自自由软件基金会的所有软件和出版物均获准复制和再分发。获取 GNU 软件的最简单方法是从拥有该软件的其他人那里复制它。
如果您可以访问互联网,则可以从主机 prep.ai.mit.edu
(互联网地址为 18.71.0.38
)获取最新的软件。有关更多信息,请从 prep
获取文件 `/pub/gnu/emacs/GETTING.GNU.SOFTWARE'。
如果您无法通过这些方式之一获得该软件,或者您想为我们的工作贡献一些资金并获得最新版本,我们会收取复制和分发费来分发磁带。请参阅下面的订单表格。
也有第三方团体分发我们的软件:他们不与我们合作,但以其他形式拥有我们的软件。为方便起见,下面列出了一些。请注意,自由软件基金会不以任何方式与他们相关联,并且不对其版本的时效性或响应速度负责。
这些 TCP/IP Internet 站点通过匿名 ftp
提供 GNU 软件(使用您的 ftp
程序,用户名:anonymous
,密码:你的名字
)
scam.berkeley.edu, itstd.sri.com, wuarchive.wustl.edu,
wsmr-simtel20.army.mil (under `PD:<Unix.GNU>'),
louie.udel.edu, nic.nyser.net, ftp.cs.titech.ac.jp,
funic.funet.fi, sunic.sunet.se, freja.diku.dk,
gatekeeper.dec.com, mango.miami.edu (VMS G++
),
cc.utah.edu (VMS GNU Emacs), labrea.stanford.edu,
jaguar.utah.edu, and uunet.uu.net.
在 SPAN 网络上的人可以询问 rdss::corbet
。
有关如何使用 UUCP 获取某些 GNU 程序的信息可通过电子邮件从以下人员处获得。俄亥俄州立大学还会定期在 USENET 上的新闻组 comp.sources.d
中发布他们的 UUCP 指令。
hao!scicom!qetzal!upba!ugn!nepa!denny, hqda-ai!merlin,
acornrc!bob, uunet!hutch!barber, sun!nosun!illian!darylm,
oli-stl!root, bigtex!james, [email protected], and
[email protected] (or osu-cis!karl)
.
MS-DOS 的自由软件
GNUish MS-DOS 项目
一些 GNU 软件已移植到 MS-DOS,但 FSF 避免参与这项工作,因为它对于 GNU 项目来说是外围的。请联系 Thorsten Ohl,[email protected]
,他正在组织此类端口的发行。更多信息请见 `/pub/gnu/MSDOS',可通过 prep.ai.mit.edu
上的匿名 ftp
获得。
Freemacs,MS-DOS 的可扩展编辑器
Russ Nelson,[email protected]
,为 MS-DOS 编写了一个小巧但可编程的编辑器,它在某种程度上与 GNU Emacs 兼容。该 .EXE 文件只有 21K,因为它只包含语言解释器和文本编辑器原语。大部分编程都是用 MINT 完成的,MINT 是一种面向字符串的语言。您可以自由复制此软件。Russ 只要求您将改进之处返回给他,以便将其合并到软件包中,供我们其他人使用。
该发行版可从以下来源获得
- 向(对于 UUCP)
sun.soe.clarkson.edu!archive-server
或(对于 Bitnet)archive-server%sun.soe@omnigate
发送一条仅包含 `help' 的消息,邮件程序可以回复任何地址中包含 `@' 的地址,除了.UUCP
伪地址; - 从
grape.ecs.clarkson.edu
[128.153.13.196]
或wsmr-simtel20.army.mil
匿名ftp
`/e/freemacs'(在 `PD:<MSDOS.FREEMACS>' 下); -
CUHUG BBS: (315)268-6667
1200/2400 8N1,24 小时,pub/msdos/freemacs,下载 Freemacs 无需注册;或者 - 向 Russ Nelson,11 Grant St., Potsdam, NY 13676 发送 15 美元(复制费),电话:(315) 268-6455,指定软盘格式:
5.25"/1.2 MB
;5.25"/360K
;或3.50"/720K
。
请不要就 Freemacs 联系自由软件基金会。我们不维护它,除了上述信息之外,我们没有任何相关信息。
日本的 GNU
Mieko,[email protected]
和 Noboyuki Hikichi,[email protected]
,继续在日本进行 GNU 项目的工作。他们翻译 GNU 信息、撰写专栏、请求捐款并与人们讨论 GNU。他们正在寻找一位律师志愿者来审查他们对 GNU 库通用公共许可证的日语翻译。他们在 1990 年 12 月的 JUS 研讨会上举办了一个 GNU BOF。日本的许多团体都在重新分发 GNU 软件,包括 JUG(一个 PC 用户组)、Nikkei Business Publications 和 ASCII(出版商)、Fujitsu FM Towns 以及日本 Unix 协会。匿名 UUCP 现在在日本也可用。
感谢 GNU
感谢“GNU 快讯”、“GNU 项目状态报告”和“现在可用的 GNU 软件”中提到的所有上述人员。
感谢 MIT 的人工智能实验室和计算机科学实验室提供的各种宝贵帮助。
感谢 Shawn Keller 制作磁带,感谢 Devon McCullough 提供技术援助,感谢 Carol Botteron 进行校对和其他援助,并感谢 Mieko 和 Nobuyuki Hikichi 在日本为筹集资金和提高意识方面提供的宝贵帮助。
感谢 Chet Ramey 为改进 BASH 所做的持续工作。
感谢 明尼苏达大学计算机科学系允许 Mike Haertel 使用他们的计算机。
感谢 Thinking Machines, Inc. 的 Cliff Lasser 帮助升级到 SunOS 4.0。
感谢日本的 Village Center Inc 赠送的礼物。
感谢 MIT 的信息系统和 Whitaker 学院计算设施使用他们的机器制作我们的 VMS 主磁带。
感谢 开放软件基金会提供的 Compaq 386。
感谢所有借出或捐赠机器的人,包括 惠普 提供的六台 68030 工作站、两台 80486 机器和四台 Spectrum 工作站,感谢 Thinking Machines Corp. 的 Brewster Kahle 提供的 Sun 4/110,感谢 K. Richard Pixley 提供的 AT&T Unix PC,感谢 AT&T Bell Labs 的 Doug Blewett 提供的两台 Convergent Miniframe,感谢 CMU 的 Mach 项目提供的 Sun 3/60,感谢 Intel Corp. 提供的 386/i860 工作站,感谢 NeXT 提供的 NeXT 工作站,感谢 MIT 媒体实验室提供的惠普 68020 机器,感谢东京的 SONY Corp. 和 Software Research Associates, Inc. 提供的三台 SONY News 工作站,感谢 MIT 计算机科学实验室提供的 DEC Microvax,以及感谢 Delta Microsystems 提供的 Exabyte 磁带驱动器。
感谢所有贡献端口和扩展的人,以及那些贡献其他源代码、文档和良好错误报告的人。感谢那些寄钱和提供帮助的人。还要感谢那些通过订购手册和发行磁带来支持我们的人。
创建此公告是我们感谢所有对我们所做的事情表示兴趣的方式。
------- | | Free Software Foundation, Inc. | stamp | 675 Massachusetts Avenue | | Cambridge, MA 02139 USA | here | | | -------