GNU 公告,第 1 卷第 6 期,1989 年 1 月
目录
- 空白页
- GNU 是谁
- GNU 公告
- 什么是自由软件基金会?
- 什么是 Copyleft?
- GNU 在日本
- 通用公共许可证作为子程序
- GNU 新闻快讯
- 我对 GNU 许可证的看法
- GNU 文档
- GNU 项目状态报告
- GNU“剪贴画”比赛
- 现在可用的 GNU 软件
- 如何获取 GNU 软件
- 感谢 GNUer
空白页
此页为空白,以便编号正确。
GNU 是谁
Randy Smith 已加入我们成为一名全职程序员。他目前正在维护和扩展 GDB。我们的暑期人员,Pete TerMaat,Phil Nelson 和 Mike Haertel,已经回到学校学习或教学。 Pete 负责 GDB,Phil 负责 GNU 版本的 `cpio' 和 `dbm',而 Mike (他继续兼职为我们工作) 则负责 `diff',`egrep' 和 `sort'。
Joe Arceneaux 今年秋天花了几个星期的时间,使 Emacs 19 版本能够在 X windows 11 版本下工作。
Nobuyuki 和 Mieko Hikichi 继续从东京的 Software Research Associates 借调到我们这里。在 FSF,Nobu 正在用他正在编写的 C 解释器扩展 GDB。 Mieko 正在帮助用户测试 GNU 文档,并将其中一些翻译成日语。我们的第一位全职技术作家 Diane Barlow Close 正在为所有已为我们完成的小型 Unix 实用程序编写文档,同时住在加利福尼亚州的圣地亚哥。
与此同时,Brian Fox 仍在加州大学圣巴巴拉分校为我们工作。他最近完成了 GNU 版本的 `sh`,即 `Bourne Again Shell`,它结合了 Korn 和 C shell 中的功能。 Jay Fenlason 正在为该项目编写一个电子表格程序,并维护 GNU 汇编器,`tar` 和 `sed`。
Opus Goldstein 是我们多才多艺的办公室职员。如果您致电我们的办公室,她会接听。她负责填写订单,并处理基金会的日常运营。 Robert Chassell 是我们的财务主管。除了处理与编程无关的公司问题外,他还致力于编写 Emacs Lisp 的基本编程入门教程。
Richard Stallman 继续执行无数任务,包括完善 C 编译器、GNU Emacs 等及其文档。 Paul Rubin 正在为 GNU Emacs 编写图形编辑扩展。最后,Len Tower 继续担任我们的电子 JOAT(多面手),处理邮件列表、信息请求、系统管理等。
GNU 公告
版权所有 (C) 1989 自由软件基金会有限公司。
撰稿人:Randy Smith,Paul Rubin,Robert Chassell,
Leonard H. Tower Jr.,Richard Stallman 和 Opus Goldstein
插图:Etienne Suvasa
允许任何人在任何介质上制作或分发本文档的逐字副本,前提是保留版权声明和许可声明,并且分发者允许接收者按照此声明允许的进一步重新分发。
什么是自由软件基金会?
自由软件基金会致力于消除对复制、重新分发、理解和修改计算机程序的限制。我们通过促进所有计算机使用领域中自由软件的开发和使用来实现这一目标。具体来说,我们正在构建一个完整的集成软件系统,名为“GNU”(GNU's Not Unix),它将向上兼容 Unix。该系统的一些主要部分已经工作,我们现在正在分发它们。
我们名称中的“自由”一词指的是两个特定的自由:首先,自由复制程序并将其赠送给您的朋友和同事;其次,自由通过完全访问源代码来随意更改程序。此外,您可以研究源代码并了解这些程序是如何编写的。然后,您也许可以移植它、改进它,并与他人分享您的更改。
其他组织分发任何可用的自由软件。相比之下,FSF 专注于开发新的自由软件,朝着构建一个足够完整的 GNU 系统以消除购买专有系统的需求而努力。
除了开发 GNU 外,基金会还具有辅助功能:制作 GNU 软件的磁带和印刷手册,进行分发,并接受捐赠以支持 GNU 的开发。我们是免税的;您可以在纳税申报表中扣除给我们的捐款。我们的开发工作部分由捐赠资助,部分由分发费用资助。请注意,分发费用仅购买分发服务:您永远不必向任何人支付许可费才能使用 GNU 软件,并且您始终可以自由地从朋友的计算机上免费复制一份(前提是您的朋友愿意)。
基金会还维护一个服务目录:列出为 GNU 程序和系统的个人用户提供有偿服务的人员列表。服务可能意味着回答新用户的问题,自定义程序,移植到新系统或任何其他事情。如果您想被列入,请与我们联系。
在我们创建程序之后,我们会不断更新和改进它们。我们每年为各种程序发布 2 到 20 次更新。在开发新程序的同时执行此操作需要大量工作,因此我们始终感谢任何相关源代码和文档、机器、劳动力或资金的捐赠。
什么是 Copyleft?
在文章“什么是自由软件基金会”中,我们声明“您永远不必向任何人支付许可费才能使用 GNU 软件,并且您始终可以自由地从朋友的计算机上免费复制一份。”这到底是什么意思,我们如何确保它保持真实?
使程序自由的最简单方法是将其置于公共领域。然后,从共享者那里获得它的人可以与其他人共享它。但是,不良公民也可以做他们喜欢做的事情:在典型的“不要与您的邻居分享”许可下出售仅二进制版本。因此,他们将享有原始程序的自由带来的好处,同时剥夺用户这些好处。很容易发生大多数用户以这种方式获得程序的情况,而我们让程序对所有用户免费的目标将被破坏。
为了防止这种情况发生,我们通常不会将 GNU 程序置于公共领域。相反,我们用我们称之为copyleft 的东西来保护它们。copyleft 是一种法律工具,它使每个人都可以自由地复制程序,只要获得副本的人也获得了分发更多副本的自由,以及修改其副本的自由(这意味着他们必须能够访问源代码)。典型的软件公司使用版权来剥夺这些自由;现在,我们软件共享者使用 copyleft 来保留这些自由。
GNU 项目使用的 copyleft 是由版权声明和GNU 通用公共许可证的组合构成的。版权声明是通常的那种。通用公共许可证是一种复制许可证,它基本上说您拥有我们希望您拥有的自由,并且您不能从任何人那里剥夺这些自由。(实际文档包含几页相当复杂的法律文书,我们的律师说我们需要它。)所有 GNU 源代码发行版和许多手册中都包含完整的许可证副本,我们将在收到请求后向您发送印刷副本。
GNU 在日本
作者:Mieko Hikichi
GNU 项目在去年 12 月在东京举行的 Unix 博览会上的一次研讨会上进行了介绍。该研讨会是 GNU 在日本的首次官方介绍。
我将 GNU 公告翻译成了日语,并分发了 500 份。 Yoshitaka Tokugawa 先生谈到了什么是 GNU、如何获取 GNU 软件以及 GNU 许可证。之后,Handa Ken'ichi 先生介绍了日语版的 GNU Emacs。
通用公共许可证作为子程序
我们即将对通用公共许可证进行彻底的革命性改变。复制条款基本不变,但用于体现它们的法律文书框架的架构将实现量子级的飞跃。
过去,每个具有 copyleft 的程序都必须包含自己的通用公共许可证副本。通常有必要修改许可证以提及它所应用的程序的名称。想要具有 copyleft 程序的其他人必须进一步修改文本,以将我们的名字替换为他们的名字。
为了更容易地对程序进行 copyleft,我们一直在改进通用公共许可证的法律文书架构,以产生一个新版本,该版本可用作通用的子例程:它可以应用于任何程序,而无需修改,无论谁发布它。所有需要做的就是在程序本身中添加一个简短的通知,说明通用公共许可证适用。关于如何执行此操作的说明随附通用公共许可证,因此您可以轻松地对您的程序进行 copyleft。
我们还借此机会明确指出,如果您拥有根据早期版本接收的程序,则通用公共许可证未来版本中的任何后续更改都不能剥夺您先前获得的权利。
新版本将很快出现;新的 GNU 程序和现有 GNU 软件的新版本将引用它来指定其复制条件。
GNU 新闻快讯
- 惠普公司的捐赠作为其使他们的机器对学术用户更具吸引力的计划的一部分,惠普公司向我们捐赠了 10 万美元。这笔钱捐赠给我们,是为了确保我们有资金租赁几年的办公空间。当然,如果有人为我们提供办公空间,我们可以用这笔钱雇用更多的人。此外,该公司正在支持 Michael Tiemann 在斯坦福大学的工作,将 G
++
移植到 Spectrum。 - 新机器自 1988 年 6 月上一期 GNU 公告以来,我们收到了三台新机器,其中三台是借用的,三台是赠送的。 Thinking Machine, Inc. 借给我们一台 Sun 4/110,英特尔借给我们一台 Intel 386。 K. Richard Magill 向我们赠送了一台 AT&T Unix PC,惠普公司除了上述资金外,还向我们捐赠了三台 Spectrum。 这使 FSF 获得或借用的机器总数达到 13 台。
- BSD 的部分内容正在变为自由软件 在我们和其他人的多年敦促下,维护伯克利 Unix 的人们决定将它的各个部分(那些不包含 AT&T 代码的部分)单独作为自由软件发布。这包括我们希望在 GNU 中使用的重要程序,例如 TCP/IP 支持,以及可能包括 C-shell。在 4.3 BSD-Tahoe 发行版中解放的文件现在已在 beta 测试磁带上。此外,下一个版本的伯克利 Unix 可能会包含 GNU 项目的 Make、AWK 和 `sh',而不是 Unix 的这些程序。原因是伯克利的人们希望在这些程序中拥有像 system V.3 那样的改进,但他们觉得 V.3 许可证的新限制令人反感。我们和他们都希望他们永远不会获得 V.3 许可证。我们可以通过提供替代软件来帮助他们避免这种情况。 GNU Make 已经支持 system V 的功能,GAWK 也是如此。这两个程序都在 beta 测试中。
- Bison 手册已发布 UCSF 的 Dick Karpinski 为 Bison(我们这一版的 Yacc)的可使用手册草稿悬赏 1000 美元。Chuck Donnelly 响应了这一号召,提交了一份草稿,我们将其转换为最终版本。Texinfo 源代码包含在发行版和 beta 测试磁带中。硬拷贝可以直接从基金会订购。
- Ghostscript 状态 用于 GNU 的自由 Postscript Ghostscript 正在分发中。它目前处于 beta 测试阶段。
- NeXT, Inc. 在其机器上使用 GNU 软件 NeXT 决定将 GNU Emacs、GCC、GAS 和 GDB 作为其标准操作系统的一部分;他们是第一家这样做的计算机制造商。其他制造商也表达了兴趣;我们正在等待进展。
- 暂停分发 80386 软盘 在我们拥有可用的库之前,我们将暂停调查 80386 机器的软盘分发。由于 80386 上的 system V 通常没有库,也没有 C 编译器、汇编器和链接器,因此我们认为在我们能够提供所有这些之前,这种分发介质是不值得的。这方面的工作正在进行中,但不会很快准备就绪。当我们有更多信息时,我们将在
info-gnu
邮件列表和gnu.announce
新闻组上宣布。 - texi2roff 加拿大安大略省多伦多的 Beverly Erlebacher 编写了 `texi2roff'。此程序将 GNU Texinfo 文件转换为 Unix `[nt]roff' 程序可以利用 `mm'、`ms' 或 `me' 宏包打印的格式。虽然我们不会维护这个程序,但我们会将其包含在我们的磁带上,以便没有 TeX 的人可以打印出我们的文档。
GNU 愿望清单
本期希望
- 志愿者帮助编写实用程序和文档。一个重要的编程项目是为 GCC 编写 Fortran 编译器前端;特别需要的文档包括 Ghostscript 和 FLEX 的手册。
- FSF 正在寻找更多全职人员,作为程序员和技术撰稿人参与 GNU 项目。我们正在寻找一些优秀的实体(男性或女性,碳基或硅基),以积极分子的工资工作。您必须在马萨诸塞州剑桥市,或者能够与我们保持良好的电子通信。如果您有兴趣,请联系
[email protected]
或将邮件发送给自由软件基金会的 Richard Stallman。 - 在肯德尔广场或附近借用或捐赠的办公空间。
- 可能有兴趣赞助由 FSF 全额或部分支持的研究助理职位,以进行 GNU 开发或接待 FSF 雇员的教授。
- 一如既往的资金。请记住,捐款可以免税。有了最新的捐款,我们已经能够扩大我们的员工队伍。给我们少量资金的一种方法是订购一两个分发磁带。这可能不计入税收目的的捐款,但对于许多人来说,它可以作为一项业务支出。
- 有编译器维护技能的人员可以接替 RMS 的 GCC 维护工作。这可能是一份全职工作。
- 有趣、好玩的 GNU 图形。Ghostscript 源代码或其他方式。有关更多详细信息,请参阅本期后面的GNU “剪贴画”大赛。
- 提及 GNU 项目的报纸和期刊文章的副本。请将这些发送到封面上的地址。
我对 GNU 许可证的看法
作者:Doug Lea
[本文转载自发布到 info-g++
和 info-gcc
邮件列表的帖子,并不一定代表自由软件基金会的意见。--- 编辑]
到目前为止,我一直没有公开参与最近关于 GNU 许可协议的法律后果的讨论,因为(1)我不是律师,并且(2)我发现自己同意 Stallman 的决定,即在决定是否以及如何修改协议以适应那些希望出售可能或可能不被视为从 GNU 软件“衍生”的作品的人时,要非常谨慎,这取决于“衍生”的定义。
但是,Gilmore 和其他人最近的提议似乎需要我(而不是 RMS 或 FSF)作为 GNU `libg++
' 的大部分作者做出个人回应。我想简要概述一下我为什么支持 FSF 的目标,特别是协议,它仅间接地与法律原则相关。
我主要是一所文理学院的老师。因此,我主张“自由”传播思想。从历史上看(请原谅任何为了满足我的需要而歪曲历史事实的行为,但这就是历史的作用!),允许知识产权广泛传播(即“教导”)的主要工具,同时又承认原创者,并保护作品免受腐败、错误归因等影响,一直是版权的概念。出于这些原因,引入版权法被广泛认为是加速智力和科学进步的重要一步。
遗憾的是,在计算机科学领域,这种解决方案并没有站得住脚。虽然在许多学科中,用于研究的受版权保护的作品的价格对于那些可以从中受益最多的人来说是完全可以承受的(例如,《战争与和平》的副本可能是 5 美元,甚至是 50 美元,但不是 50,000 美元),但计算机的经济状况在很大程度上使受版权保护的软件的价格超出了学生(以及大多数其他人)的承受范围。大多数读者都会同意,研究高质量的现有程序是学习编程艺术的更好方法之一。如今,人们不能合法地展示、讨论和教学,例如 Unix 或 Lotus 源代码。
我认为 Stallman 的观点,即版权的经济学可以与其在保护和传播知识产权方面的作用分开,对于我们来说,这可能是解决这一困境的最好办法。我们当中有很多人,尤其是我们这些在学术界的人,实际上非常乐意花费一些时间和精力来编写软件,而无需任何直接的货币补偿。出于各种原因。(例如,就我而言,使用 `libg++
' 是为了进一步研究面向对象编程的实用性等等。或者可能只是无法抑制的黑客行为。无论如何。)
现在,我以及许多其他人,我怀疑,并不太担心维护此类作品的正确作者署名等。GNU 许可协议之所以具有吸引力,主要是因为它保持了我打算可以访问的作品的可用性,但也通常提供版权所带来的所有其他好处,而仅仅将作品置于“公共领域”并不会带来这些好处。
不幸的是,GNU 协议目前阻碍了那些必须担心经济影响的诚实程序员以诚实的方式使用此类作品。我个人希望能够做出完全正确的调整,以允许公平和明智的使用,同时保持使 GNU 解决方案奏效的理想。其中涉及许多棘手的法律问题。我希望 Stallman 能够尽快找到这样的解决方案,以降低其他方法的吸引力,但又不会过于仓促,以至于危及 FSF 的目标(我相信他不会这样做)。
GNU 文档
作为 GNU 系统一部分分发的软件始终附带在线文档和可打印手册的源代码。提供在线文档是因为打印的文档经常放错地方,或者在您需要它时被其他人阅读;并且因为在许多情况下,在交互式在线帮助系统中找到您需要的信息更容易。与此同时,提供打印的文档是因为它通常更容易阅读或首选。
当打印 GNU 文档时,它被制作成带有章节、索引、交叉引用等的排版书籍。在线文档是一个菜单驱动的系统,它也使用索引和交叉引用。
但是,GNU 文档不是编写两个不同的文档,一个用于在线文档,另一个用于打印的手册,而是使用单个 Texinfo 源文件来实现这两个目的。这节省了编写两个不同文档的工作量,并且意味着当系统修订时,只需要修订一个源文件。
由于单个 Texinfo 源文件用于双重任务——创建在线文档和打印手册——因此必须以特殊格式编写,以便打印手册的章节和部分与在线文档的节点相对应,并且索引和交叉引用将与各种菜单相对应。
为了制作打印的手册,Texinfo 源文件会通过 TeX 排版程序进行处理。为了使用 GNU Emacs 制作在线文档,使用 M-x texinfo-format-buffer 命令处理 Texinfo 源文件;生成的 Info 文件安装在通过键入 C-h i 进入的 `info' 目录中。
(自由软件基金会分发的非 GNU 软件并不总是具有 Texinfo 文档,尽管我们鼓励每个人使用它来编写文档。)
以下我们目前在磁带上分发的所有手册,也可以从基金会获得硬拷贝;请参阅封底内的订购单。
- Emacs 手册 Emacs 手册 介绍了如何使用 GNU Emacs。该手册不仅解释了 Emacs 的编辑功能,还解释了高级功能,例如大纲模式和正则表达式搜索。该手册介绍了如何使用 C 和 Lisp 等语言的特殊编程模式,如何使用标签实用程序,以及如何编译和更正代码。它还介绍了如何制作自己的按键绑定并进行其他基本自定义。
- Texinfo 手册 Texinfo 手册 介绍了如何使用 Texinfo 源代码编写文档。它描述了用于从同一源文件创建 Info 文件和打印文档的标记语言:如何制作表格和列表,如何制作章节和节点,如何制作索引和交叉引用。该手册还介绍了如何在 GNU Emacs 中使用 Texinfo 模式以及如何捕获错误。
- Termcap 手册 《Termcap 手册》常常被形容为“关于 Termcap 你可能永远都不想知道的两倍多的内容”。该手册描述了 Termcap 数据库的格式、终端功能的定义以及如何查找和查询终端描述。这本手册主要面向程序员。
- Bison 手册 《Bison 手册》描述了如何编写 Bison 可以将其转换为 C 程序的语法描述,该 C 程序可以解析该语法。它描述了概念,然后提供了一系列越来越复杂的示例,最后详细描述了其中的原理。
- GDB 手册 《GDB 手册》解释了如何使用 GNU 调试器。它描述了如何在调试器的控制下运行你的程序,如何检查和更改程序中的数据,以及如何修改程序中的控制流。它还解释了如何通过 GNU Emacs 使用 GDB,并自动显示源代码行。
- GAWK 手册 《GAWK 手册》描述了如何使用 GNU 实现的 AWK。它为那些以前从未使用过 AWK 的人编写,并描述了这个强大的字符串操作语言的所有功能。
- Make 手册 《Make 手册》描述了 GNU Make 实用程序,该程序用于在需要时重新编译其他程序的部分。该手册介绍了如何编写 Makefile,它描述了如何重新编译程序的部分以及它们如何相互依赖。
GNU 项目状态报告
-
GNU Emacs GNU Emacs 18 现在正在分发。它在多种 BSD 4.2 和 4.3 系统以及 system V、VMS 和 Apollo Domain 上被广泛使用。当前版本 18.52 增加了对 80386、Sun 4、Convex、IRIS 4D 和 HP 9000 系列 800 的支持;同时也支持 system V.3。 Berkeley 正在随 4.3 发行版分发 GNU Emacs,DEC 正在随 Vax 上的 Unix 系统分发,而 NeXT 正在将其发布。 Emacs 18 的维护即将结束,版本 19 正在开发中。到目前为止,新功能包括多个 X 窗口、滚动条、每个缓冲区重新定义鼠标命令、对欧洲字符集的支持、Emacs Lisp 的源代码级调试和浮点数。计划中的可能的新功能包括:
- 将属性列表与缓冲区中文本的部分关联起来。
- 使用属性来控制哪些文本是可见的。
- 多个窗口显示一个缓冲区时的不同可见性条件。
- 各种编程语言的增量语法分析。
- 面向对象的图形绘制扩展。
- 如果指针移动到特定范围之外要运行的钩子。
- 改进的 GAWK 可用 David Trueman 编写了 GAWK 的新 System V 扩展,现在可以在 beta 测试磁带上找到结果。与此同时,GAWK 的手册也正在制作中。
- Shell Brian Fox 现在完成了 GNU 的 `sh' 版本,称为 `Bourne Again Shell'。除了 Korn shell 的功能外,它现在还具有作业控制以及 Emacs 风格和 `csh' 风格的命令历史记录。 BSD 的 C Shell 很有可能被 Berkeley 宣布为自由软件,因此我们不需要编写它。
- 内核 我们希望使用 CMU 开发的 MACH 消息传递内核。当前版本的 MACH 不是免费的,也不能是免费的,因为它包含 BSD 的文件系统代码。但是,MACH 开发人员表示,所有这些都将被免费代码替换,或者至少移到用户进程中,然后 MACH 将是免费的。这个版本的 MACH 应该在几个月内(截至 1988 年 12 月)发布。如果 MACH 不可用,那么我们可能会从 MIT 的 TRIX 内核或 Berkeley 的 Sprite 系统开始开发 GNU 内核。 TRIX 是一个远程过程调用内核,它以大约版本 7 的级别运行并支持基本的 Unix 兼容性。因此,它需要大量附加功能。 Sprite 主要处于 BSD Unix 的体系结构级别,但具有花哨的分布式文件系统和进程迁移。我们正在考虑的一件事是改编 Berkeley 的 Sprite 内核的文件系统以在 MACH 中使用。该文件系统从一开始就被设计为以分布式方式工作。文件系统是 MACH 中需要替换的最大部分,现在 Berkeley TCP/IP 代码(也在 MACH 中使用)已被宣布为免费。
- GNU 调试器 GNU 源代码级 C 调试器 GDB 现在与 Emacs 18 版本一起分发。目前,它在 Vaxes 和 Suns 上的 BSD 4.2 和 4.3 下运行。它也可以独立运行,因此我们可以使用它来调试内核。可能会添加通过以太网进行调试的模式。正在进行多进程并行程序的调试工作。当前版本中包含了 GDB 对 32000 的支持。 GDB 现在可以读取 COFF 可执行文件,并且刚刚开始在 system V 上工作。最近发布用于测试的 GDB 3.0 可以增量读取符号表;这大大加快了启动速度,并减少了内存使用。它还具有 C
++
支持,并且可以在 80386 和 Sun 4 以及某些 Gould 机器上运行。 GDB 的未来版本可能支持监视点和带有标识符补全的命令编辑。 - C 编译器 GNU C 编译器 GCC 现在几乎可靠。它支持 ANSI C 的 1988 年 5 月草案。人们仍在报告错误,但他们也表示他们认为错误比商业编译器少。其中一些错误是由 John Gilmore 发现的,他一直在使用 GNU C 编译整个 BSD Unix。 1988 年 3 月的《Unix Review》杂志上发表了一篇将 GCC 与两个商业 C 编译器进行比较的评论。该编译器执行自动寄存器分配、公共子表达式消除、循环中的不变代码移动、归纳变量优化、常量传播和复制传播、延迟弹出函数调用参数、尾递归消除以及许多从机器描述中自动推导出来的局部优化。支持的 CPU 包括 680x0、Vax、32x32、80386、Sparc (Sun 4)、SPUR 和 Alliant。对 Convex、IBM 370、IBM PC/RT、3b2、某种 Gould 机器、HP Spectrum、AMD 29000、MIPS RISC 芯片和 Motorola 88000 的移植正在进行中。 GCC 使用 -O 生成的 68020 代码比新的 Sun 编译器更短、更快。新的 Sun 编译器尽管花费的时间是 GCC 的 3 倍,但无法击败 GCC。截至版本 1.31,GCC 在 Sun 4 上也获胜。 GCC 生成的 Vax 代码比带有 -O4 的 Tartan C 编译器更短,但我们无法比较该代码的运行速度。 Michael Tiemann 在 Sequent 32000 系统上完成的 National 32000 移植据说比 Sequent 的编译器更可靠,并且为包括 Prolog 解释器在内的多个程序提供了 40% 的加速。将来,如果有时间,我们想实现更多的语言扩展,以及用于预编译头文件的工具,以在头文件很大而源文件很小时节省时间。我们也可能会做其他一些语言前端,但是远程 GNU 用户似乎对这样做有足够的兴趣,我们不妨将其留给他们。包含足够的内部文档供有兴趣将编译器重新定位到其他 CPU 的人使用。
- VMS 的 GNU C 对 VMS C 编译器的缺陷感到厌倦的 SRI 的 David Kashtan 决定花几周时间让 GNU C 在 VMS 上运行。在对 VMS C 编译器进行了相当大的修改以满足要求后,他使其运行起来,并能够删除大部分更改。 VMS 支持代码现在是常规编译器分发的一部分。普通的 VMS C 编译器(即使你拥有它)也存在错误,因此无法编译 GNU C:你需要 GNU C 的可执行文件。我们提供包含 GNU C 的 VMS 二进制文件(以及源代码)的磁带,以便你可以开始使用。当前在 VMS 上工作的其他 GNU 程序包括 GNU Emacs 和 Bison。请不要要求我们投入精力来提供额外的 VMS 支持,因为它对 GNU 项目来说是外围的。我们会合并并支持用户进行的 VMS 移植,因为很难拒绝传递其他人所做的工作。但是,即使更改是干净的,也会耗费我们大量精力来实现我们的真正目标,即生产一个完整的集成系统。(当它们不干净时,我们会鼓起勇气忽略它们。)合并 VMS GNU Emacs 并重新组织更改以方便未来的维护花费了数周时间,即使“真正的工作”是由其他人完成的。我们希望我们已经吸取了教训,不会让这种情况再次发生。
- COFF 支持 现在可以在 system V 上运行整套 GNU 软件工具,从而完全替换 COFF。首先,你安装 GNU 编译器、汇编器、链接器和其他实用程序。然后,你使用程序 `Robotussin' —— 计算机的 COFF 药物 —— 将系统库从 COFF 格式转换为 GNU(即 BSD)格式。当你编译程序时,你将获得普通的 GNU/BSD 目标文件。将这些文件与 GNU 链接器链接将生成 GNU/BSD 可执行文件,其中包含少量 COFF 标头材料,以将其封装起来,以便内核可以运行它们。其他 GNU 实用程序(例如 `size'、`nm' 和 `strip')知道如何操作这些封装的文件。我们负担不起时间在这些实用程序中实现甚至维护实际的 COFF 支持。完成 GNU 系统对我们来说更重要。
-
与编译器相关的程序
- C
++
斯坦福大学的 Michael Tiemann(曾任职于 MCC)编写了一个作为 GNU C 扩展的 C++
编译器。这是第一个直接编译 C++
而不是将其预处理为 C 的编译器。 1988 年 11 月的《Unix Review》杂志上发表了一篇将 G++
与两个商业 C++
编译器进行比较的评论。高分使我们相信是时候开始 Beta 测试了,因此 C++
现在已包含在 beta 测试磁带中。我们现在正在努力将其与 C 编译器集成;设计问题已解决,合并版本可能会在 2 月底发布。 GDB 3.0 版本包括对调试 C++
代码的支持,这将使程序 GDB+
过时。 - 汇编器 我们有一个部分可移植的单通道汇编器 GAS,它几乎比 Unix 汇编器快两倍。它现在适用于 Vaxes、680x0、32x32 和 80386。将其移植到其他机器应该不难。
- C
++
库 Doug Lea 正在编写 `libg++
',这是一个包含 C++
实用程序类支持的库。 - 目标文件实用工具 GNU 替换 `ld'、`nm'、`size'、`gprof'、`strip'、`ranlib' 等工具的程序,最近已作为 GCC 测试发行版的一部分发布以供测试。GNU 链接器 `ld' 的运行速度明显快于 BSD 版本。我们的 `ld' 是唯一能够为多重定义的符号和未定义的引用提供带有源行号的错误消息的链接器。
- `gprof' 替代品 基金会员工 Jay Fenlason 已经完成了一个与 GNU C 一起使用的性能分析器,它与 Berkeley Unix 的 `gprof' 兼容。它现在包含在二进制文件实用工具的发行版中。
-
GNU Make 扩展 我们已经发布 GNU Make 几个月了。一个扩展版本,包括更多的文本处理能力和静态规则,即将发布。以下是一个 GNU Makefile 如何表示文件 `foo` 是由当前目录下所有 C 源文件的目标文件链接而成的:
objects:=$(subst .c,.o,$(wildcard *.c)) foo: $(objects) $(CC) -o foo $(objects) $(LDFLAGS)
GNU Make 也支持并行处理。 - C 库 为 GNU Make 做出巨大贡献的 Roland McGrath 已经完成了一套几乎完整的 ANSI C 库函数。我们希望它们能在今年春天某个时候准备好。这些函数加入了已经存在一段时间的 GNU `malloc`、`regexp` 和 Termcap 库。一个更新、更好的 `malloc' 可能很快会被编写出来。与此同时,Steve Moshier 贡献了一整套数学库函数。
- C
-
初步的 Ghostscript 可用 我们刚刚开始发布 Ghostscript,这是一个免费的 GNU 软件,它提供了 Postscript 解释器的几乎所有功能。它支持 X 版本 11。 Peter Deutsch 仍在对其进行一些工作。 5~ 目前,Ghostscript 将接受 Postscript 命令,并通过在 X 窗口上绘图来执行它们。它需要增强:
- 作为多页文件的预览器。
- 通过在其他 X 客户端的窗口上绘图来为它们服务。
- 提高输出的性能和视觉质量。
- 更多字体。
- Finger 我们将很快有一个基于守护进程的 Finger 程序。该守护进程轮询一组选定的主机,从而可以告诉您每个人登录的位置。
- Send 我们现在正在试用一个 Send 程序,用于向同一台机器或其他机器上的其他用户发送即时消息。
- GNU 邮件程序 Amdahl 的 Landon Noll 和 Ronald Karr 正在编写一个名为 `smail' 的邮件排队和投递系统。这个项目将是 Amdahl UTS 系统中受支持的一部分,并且它将按照与 GNU Emacs 完全相同的条款提供!我们可能会将此邮件程序用于 GNU 系统,或者使用另一个邮件程序 `zmailer',这是 Rayan Zachariasen 正在编写的,或者将两者结合使用。
- 窗口系统 我们计划使用 MIT 编写的 X 窗口系统。这个系统已经是免费的。
- 其他实用工具 GNU `ls`、AWK、Make 和 `ld` 正在被经常使用。我们对 Yacc 的免费替代品称为 Bison。我们还有 `cron`。我们现在拥有世界上速度最快的 `grep'/`egrep` 和世界上速度最快的 `diff`。一个新的快速 `sort` 刚刚完成。一个名为 FLEX 的 “快速 lex” 最近可用;我们现在正在分发它。
- 文档系统 我们现在有一对真正兼容的程序,可以将 Texinfo 格式的文档文件转换为打印的手册或 Info 文件。有关更多信息,请参阅本期早些时候的 GNU 文档。
- 可能的目标机器 GNU 操作系统将需要一个使用 32 位地址和整数以及 8 位字节地址的 CPU。1 兆字节的核心应该足够了,尽管 2 兆字节可能会使性能有明显的提高。在 1/2 兆字节中运行某些系统可能是可行的,但肯定不是 GNU Emacs。GNU Emacs 需要超过 1 兆字节的可寻址内存。我们预计将需要虚拟内存。硬盘将是必不可少的;至少需要 20 兆字节来保存最小系统。当然,还需要更多的空间来存放用户的文件。我们建议个人 GNU 系统至少需要 80 兆字节。这并不是说不可能将部分或全部 GNU 适配到其他类型的机器;但这可能很困难,并且我们不认为尝试减少这种困难是我们的工作的一部分。我们对任何特定型号的微型计算机都没有任何评论,因为我们不关注硬件产品。
- 移植 现在询问关于 GNU(除了 GNU Emacs 和 GNU C)的移植还为时过早。首先,我们必须完成它。
GNU“剪贴画”比赛
我们正在寻找可自由再分发的艺术作品和图形来增强我们的出版物。艺术作品应与 GNU 项目或自由软件运动相关。对于我们发布的每一件艺术作品,我们都将提供艺术家选择的 GNU 手册。欢迎提供 Ghostscript 源代码或更传统的媒体作品。请将投稿发送到封面上的地址之一。感谢亚利桑那大学的图标项目提出了举办本次比赛的想法。
现在可用的 GNU 软件
我们现在提供三个 Unix 软件源代码分发磁带,以及用于 GNU Emacs 和 GNU C 的 VMS 磁带,其中包含源代码和 VMS 可执行文件。第一个 Unix 磁带(称为“发行版”或“Emacs”磁带)包含 GNU Emacs 以及我们认为可靠的各种其他经过充分测试的程序。第二个(“Beta 测试”或“编译器”)磁带包含 GNU C 编译器和相关实用程序,以及其他测试较少的新程序。第三个(“X11”)磁带包含来自 MIT X 联盟的 X11 发行版。直到最近,该软件还是在 Beta 测试磁带上提供的,但 X11 发行版的第三个版本太大,无法装入此磁带。有关媒体等的详细信息,请参阅订购单。
发行磁带的内容
- GNU Emacs 1975 年,Richard Stallman 开发了第一个 Emacs:可扩展的、可定制的实时显示编辑器。GNU Emacs 是他对 Emacs 的第二个实现。它是 Unix 系统上第一个提供真正的 Lisp 的 Emacs,该 Lisp 与编辑器平滑集成,用于编写扩展。它还为 MIT 的免费 X 窗口系统 10 和 11 版本提供了一个特殊的接口,这使得重新显示非常快。当前版本是 GNU Emacs 18.52;版本 18.53 应该在本公告发布时发布。自 1985 年以来,GNU Emacs 已被广泛使用,并且由于其更高的可靠性以及良好的特性和更易于扩展性,经常取代 Emacs 的专有实现。GNU Emacs(截至 18.52 版)已在多种类型的 Unix 系统上运行:Alliant(系统版本 1 到 4)、Altos 3068、Amdahl(UTS)、Apollo、AT&T(3b 机器和 7300 pc)、CCI 5/32 和 6/32、Celerity、Convex、Digital(Vax,不是 PDP-11;BSD 和 SysV)、Dual、Elxsi 6400、Encore(DPC 和 APC)、Gould、HP(9000 系列 200、300 或 800 (Spectrum) 但不是 500 系列)、HLH Orion 1/05、IBM(运行 4.2 和 AIX 的 RT/PC)、Integrated Solutions(带有 68020 和 VMEbus 的 Optimum V)、Intel 80386(BSD、SysV 和 Xenix)、Iris(2500、2500 Turbo 和 4D)、LMI(Nu)、Masscomp、Megatest、MIPS、NCR(Tower 32)、Nixdorf Targon 31、Plexus、Pyramid、Sequent Balance、SONY News、Stride(系统版本 2)、Sun(任何类型)、Tahoe、Tektronix(NS16000 系统和 4300)、Texas Instruments(Nu)、VAX(BSD、SysV、VMS)和 Whitechapel (MG1)。GNU Emacs 的使用在 GNU Emacs 手册中进行了描述,该手册以 Texinfo 文件随软件提供。您可以以 Info 格式在线阅读或打印自己的副本。也可以从自由软件基金会获得排版的手册。
- Texinfo Texinfo 是用于所有 GNU 手册的文档系统。文档以简单的格式化语言编写,该语言可以使用一组特殊的 TeX 宏生成打印的手册,或者可以使用 Info 浏览器读取的在线结构化文档。Texinfo 包含一个新扩展的教程手册,介绍如何使用 Texinfo 编写文档。
- GDB GDB(GNU 调试器)是为 GNU 项目于 1986 年编写的源代码级 C 调试器。它提供了许多 Unix 上的调试器通常不具备的功能,例如记录调试器中检查的所有值以供以后简洁引用的历史记录、多行用户定义的命令以及强大的自文档功能。它目前在 4.2 和 4.3bsd 下的 Vaxes、系统版本 2 和 3 和 4 下的 Sun 3、系统版本 3.2 和 4.0 下的 SPARC (Sun 4)、HP9K320、ISI、Merlin、Sony NEWS、Gould NPL 和 PN、i386 以及某些 32000 系统上运行。GDB 的在线帮助和用户手册随软件提供;该手册的打印版本也可以从基金会获得。
- Bison Bison 是 Yacc 的向上兼容的替代解析器生成器,具有附加功能。它已经使用了几年。Bison 用于编译 GNU C,因此它也包含在 GNU CC beta 磁带中。Bison 的用户手册随软件提供;该手册的打印版本也可以从基金会获得。
- X 窗口系统 X Windows 的 10 版本在 GNU Emacs 磁带上分发;11 版本(完全不兼容)在 X11 磁带上分发。Emacs 版本 18.52 同时支持 10 和 11 版本。
- MIT Scheme Scheme 是 Lisp 的一种简化的、词法作用域的方言,在麻省理工学院和其他大学设计用于两个目的:教授编程学生以及研究新的并行编程结构和编译技术。MIT Scheme 用 C 编写,可在多种类型的 Unix 系统上运行。它现在符合“修订后的 Scheme 算法语言报告^3”(MIT AI 实验室备忘录 848a),该报告的 TeX 源代码包含在发行版中。
- T T 是在耶鲁大学开发的 Scheme 的变体,旨在用于程序开发的生产环境。T 包含一个本机代码优化编译器,该编译器生成的代码的运行速度与以传统语言编写的程序的速度相当。它在 BSD Vaxes 和少数几种 68020 系统上运行。T 本身是用自身编写的,如果没有二进制文件(包括在内)就无法启动,但是如果您可以使用它,那就太棒了。发行版中包含一些文档文件。
- GNU Chess 和 Hack GNU Chess 是 John Stanback 和 Stuart Cracraft 用 C 编写的国际象棋程序。它包含一个广泛的开局库,并且最近由 USCF 高级大师 IM Larry Kaufman 在 Sun 3 工作站上运行时,将其评为 USCF 1950 左右(接近专家级)。在 Sun 4 上,它应该能达到接近大师级的水平。Hack 是一款面向显示器的冒险游戏,类似于 Rogue。
Beta 测试磁带的内容
此磁带上的程序都是最近发布的,可以认为处于用户测试的各个阶段。与往常一样,我们征求您的意见和错误报告。此磁带也称为编译器磁带。
- GNU CC GNU C 编译器是一个相当可移植的优化编译器。它为 32000、680x0、80386、Alliant、SPARC、SPUR 和 Vax CPU 生成良好的代码。使用这些 CPU 的机器包括 Encore NS32000、Genix NS32000、Sequent NS32000、AT&T 3b1、HP-UX 68000/68020、ISI 68000/68020、Sony NEWS、所有 Sun、Intel 386、Sequent Intel 386、Alliant FX/8 和 Vax 机器。它支持截至最新草案标准的完整 ANSI C。编译器附带 GNU 汇编器 GAS、Make、Bison(也在 Emacs 发行磁带上)和完美的哈希表生成实用程序,以及目标文件实用程序 `ld'、`nm'、`size'、`strip'、`ar'、`ranlib' 和 `gprof' 以及 GCC 手册 的 Texinfo 源代码(适用于有兴趣扩展或重新定位编译器的人)。
- GAWK 和 FLEX GAWK 是 GNU 版本的 Unix AWK 实用程序。FLEX 是 Lawrence Berkeley 实验室的 Vern Paxson 编写的 Unix `lex` 扫描器生成器的主要兼容替代品。FLEX 生成的扫描器比 `lex` 高效得多。
- `tar' GNU tar 包括多卷支持、自动压缩和解压缩归档文件、远程归档以及允许 `tar' 用于文件系统增量和完整备份的特殊功能。
- 从加州大学伯克利分校 4.3-tahoe 版本中释放的文件 这些文件已被伯克利声明为不包含 AT&T 代码,可以自由分发。它们包括一些实用程序和游戏的完整源代码,以及库例程和许多其他程序的局部源代码。
- `diff' 和 `grep' 这些程序是 GNU 版本的同名 Unix 程序。它们比 Unix 对应的程序快得多。
- Ghostscript、`gnuplot' 和 `texi2roff' Ghostscript 是 GNU 的图形语言。它几乎完全兼容 postscript 语言。它支持 X 版本 11。`Gnuplot' 是一个用于绘制数学表达式和数据的交互式程序。奇怪的是,这个程序既不是为 GNU 项目制作的,也不是以它命名的——这个名字纯属巧合。然而,我们现在正在分发它。`texi2roff' 将 GNU Texinfo 文件转换为可以使用 Unix [nt]roff 程序打印的格式,该程序使用 mm、ms 或 me 宏包。它被包含在内,以便没有 TeX 副本的人可以打印出 GNU 文档。
- `g++', `libg++' 和 `oops' G
++
是 GCC 的前端,它编译 C++
,一种与 C 向上兼容的面向对象语言。由于 G++
依赖于 GCC,它只能与相应版本的 GCC 一起使用。libg++(GNU C++
库)是 C++ 类和支持工具的集合,供 G++
使用。OOPS(面向对象程序支持)类库是由美国国立卫生研究院的 Keith Gorlen 使用 C++
编程开发的,与 Smalltalk-80 中的类类似的便携式类集合。
X11 磁带的内容。
X 是一个由麻省理工学院和 DEC 编写的用于位图显示的可移植、网络透明的窗口系统。它运行在 Sun、DEC VAXstation 和各种其他当前的位图显示器上。X 支持重叠窗口和完全递归的子窗口,并为几种不同的用户界面样式提供钩子。应用程序包括终端仿真器、位图编辑器、多个窗口管理器、时钟、窗口转储和反转储程序以及多个排版预览器。
X11 磁带包含 MIT/DEC X 窗口系统的第 11 版,第 3 次发行版。X11 比不再支持的第 10 版更强大,但不兼容。MIT 不再将第 11 版标记为“beta 测试”,但仍在频繁发布补丁和更新。
VMS Emacs 和编译器磁带
我们提供 GNU Emacs 编辑器的 VMS 备份磁带,以及包含 beta 测试版 GNU C 编译器的单独磁带。VMS 编译器磁带还包含 Bison(编译 GCC 所需)、GAS(汇编 GCC 的输出所需)以及一些库和包含文件。这两个 VMS 磁带都包含您可以从中引导的可执行文件。
如何获取 GNU 软件
自由软件基金会的所有软件和出版物都经许可复制和重新分发。获取 GNU 软件最简单的方法是从其他拥有它的人那里获取。只需从他们那里复制即可。
如果您可以访问互联网,则可以从主机 `prep.ai.mit.edu' 获取最新的软件。有关更多信息,请阅读该主机上的文件 `/u2/emacs/GETTING.GNU.SOFTWARE'。
如果您无法从朋友或网上获得该软件,或者如果您更愿意直接从我们这里获取副本,或者如果您想为我们的工作贡献一些资金,自由软件基金会将以复制和分发费用的形式分发磁带。请参阅内封底上的订购单。
如果您无法访问网络,并且您的计算机无法使用我们分发的媒体,则必须从第三方组获取我们的软件——这些人或组织不与我们合作,但拥有我们其他形式的软件。为了您的方便,下面列出了其他正在帮助传播 GNU 软件的团体。请注意,自由软件基金会与他们没有任何关系,并且不对其版本的及时性或响应的迅速性负责。
这些互联网站点提供了一些可通过匿名 FTP 获取的 GNU 程序
louie.udel.edu, scam.berkeley.edu, spam.istc.sri.com, bu-it.bu.edu, uunet.uu.net, nic.nyser.net, wsmr-simtel20.army.mil (under `PD:<Unix.GNU>'), and cc.utah.edu (VMS GNU Emacs).
SPAN 网络上的用户可以询问 rdss::corbet
。
有关如何使用 UUCP 获取某些 GNU 程序的信息可通过电子邮件从
hao!scicom!qetzal!upba!ugn!nepa!denny, [email protected], uunet!hutch!barber, hqda-ai!merlin, acornrc!bob, ames!killer!wisner, mit-eddie!bloom-beacon!ht!spt!gz, sun!nosun!illian!darylm, or [email protected].
俄亥俄州立大学也通过 UUCP 提供 GNU 程序。他们每月在 USENET 的新闻组 comp.sources.d
中发布他们的说明。当前详细信息请联系 Karl Kleinpaste [email protected]
或 ...!osu-cis!karl
;或 Bob Sutterfield(在上述地址中将 karl
替换为 bob
)。
有关如何获取用于 AT&T Unix PC(又名 3B1 或 PC7300)的 GNU Emacs 软盘的信息,请通过电子邮件从以下地址获取:[email protected]
。
感谢 GNUer
感谢 GNUsworthy Flashes 和 GNU 项目状态报告中提到的所有人。
感谢惠普公司提供的巨额现金捐款和两台 Spectrum 工作站。
感谢麻省理工学院计算机科学实验室及其主任迈克尔·德图佐斯教授。LCS 向 FSF 借用了一台 Microvax 用于程序开发。
感谢麻省理工学院人工智能实验室提供的各种宝贵帮助。
感谢加州大学圣巴巴拉分校的 T. Smith 博士、Dave Probert 和计算机科学系为 GNU 工作人员 Brian Fox 提供的资源和空间,以及 Brian 对 Matt Wette 的特别个人感谢,感谢他提供的宝贵帮助和支持。
感谢 Thinking Machines, Inc. 的 Brewster Kahle 借给我们一台 Sun 4/110。
感谢 K. Richard Magill 捐赠的 AT&T Unix PC。
感谢 Arnold Robbins 和 Dave Trueman 为 GAWK 和 GAWK 手册所做的工作。
感谢 Index Technology 的 Barry Kleinman 和 Andre Mesarovic 复制 Sun 磁带盒,并感谢 Phoenix Technologies Ltd. 的 Mark Nahabedian 在最后一刻复制 Sun 磁带盒。
感谢麻省理工学院 INFOODS 项目的 John Klensin 制作我们的 VMS 主磁带。
感谢东京的索尼公司和软件研究协会(Software Research Associates, Inc.)向我们发送索尼工作站。SRA 还向我们提供了现金捐款,并借给我们一名全职程序员和一名技术作家。
感谢 NeXT, Inc. 的现金捐款。
感谢卡内基梅隆大学计算机科学系的 Mach 项目借给我们一台 Sun 3/60 和 300 MB 磁盘驱动器。
感谢所有贡献端口和扩展的人,以及贡献其他源代码、文档和良好错误报告的人。
感谢那些寄钱并提供帮助的人。还要感谢那些通过订购 Emacs 手册和分发磁带支持我们的人。
创建此公告是我们感谢所有对我们的工作表示兴趣的人的一种方式。
------- | | Free Software Foundation, Inc. | stamp | 675 Massachusetts Avenue | | Cambridge, MA 02139 USA | here | | | -------