GNU计划是什么

Fanly问答2020-08-28 15:28:25阅读(...)

GNU计划的目标是创建一套完全自由的操作系统GNU。GNU计划即自由软件集体协作计划,也称作革奴计划,GNU计划发起人为理查德·斯托曼。

GNU 计划,有译为“革奴计划”,是由理查德·斯托曼在 1983 年 9 月 27 日公开发起的自由软件集体协作计划。它的目标是创建一套完全自由的操作系统 GNU。

GNU

简介

GNU 计划,有译为“革奴计划”,是由理查德·斯托曼在 1983 年 9 月 27 日公开发起的,它的目标是创建一套完全自由的操作系统。理查德·斯托曼最早是在 net.unix-wizards 新闻组上公布该消息,并附带一份《GNU 宣言》等解释为何发起该计划的文章,其中一个理由就是要“重现当年软件界合作互助的团结精神”。

GNU 是“GNU’s Not UNIX”的递归缩写,为避免与 gnu(非洲牛羚,发音与“new”相同)这个单词混淆,斯托曼宣布 GNU 应当发音为“Guh-NOO”(/ˈgnuː/ (帮助·关于)),与“canoe”发音相似。

UNIX 是一种广泛使用的商业操作系统的名称。由于 GNU 将要实现 UNIX 系统的接口标准,因此 GNU 计划可以分别开发不同的操作系统。GNU 计划采用了部分当时已经可自由使用的软件,例如 TeX 排版系统和 X Window 视窗系统等。不过 GNU 计划也开发了大批其他的自由软件,这些软件也被移植到其他操作系统平台上,例如 Microsoft Windows、BSD 家族、Solaris 及 MacOS。

为保证 GNU 软件可以自由地“使用、复制、修改和发布”,所有 GNU 软件都包含一份在禁止其他人添加任何限制的情况下,授权所有权利给任何人的协议条款,GNU 通用公共许可证(GNU General Public License,GPL)。这个就是被称为‘公共版权’的概念。GNU 也针对不同场合,提供 GNU 宽通用公共许可证(与 GNU 自由文档许可证这两种协议条款。

发展历程

1985 年,理查德·斯托曼又创立了自由软件基金会(Free Software Foundation)来为 GNU 计划提供技术、法律以及财政支持。尽管 GNU 计划大部分时候是由个人自愿无偿贡献,但 FSF 有时还是会聘请程序员帮助编写。当 GNU 计划开始逐渐获得成功时,一些商业公司开始介入开发和技术支持。当中最著名的就是之后被 Red Hat 兼并的 Cygnus Solutions。

到了 1990 年,GNU 计划已经开发出的软件包括了一个功能强大的文字编辑器 Emacs、C 语言编译器 GCC 以及大部分 UNIX 系统的程序库和工具。唯一依然没有完成的重要组件,就是操作系统的内核(称为 HURD)。

1991 年,林纳斯·托瓦兹编写出了与 UNIX 兼容的 Linux 操作系统内核并在 GPL 条款下发布。Linux 之后在网上广泛流传,许多程序员参与了开发与修改。

1992 年,Linux 与其他 GNU 软件结合,完全自由的操作系统正式诞生。该操作系统往往被称为“GNU/Linux”或简称 Linux。(尽管如此,GNU 计划自己的内核 Hurd 依然在开发中,目前已经发布 Beta 版本。)

许多 UNIX 系统上也安装了 GNU 软件,因为 GNU 软件的质量比之前 UNIX 的软件还要好。GNU 工具还被广泛地移植到 Windows 和 Mac OS 上。

GNU 工程十几年以来已经成为一个对软件开发主要的影响力量,创造了无数的重要的工具,例如:强健的编译器,有力的文本编辑器,甚至一个全功能的操作系统。这个工程是从 1984 年麻省理工学院的程序员理查德·斯托曼的想法得来的,他想要创建一个自由的、和 UNIX 类似的操作环境。从那时开始,许多程序员聚集起来开始开发一个自由的、高质量、易理解的软件。

软件开发

到上世纪 90 年代初,GNU 项目已经开发出许多高质量的免费软件,其中包括有名的 emacs 编辑系统、bash shell 程序、gcc 系列编译程序、gdb 调试程序等等。这些软件为 Linux 操作系统的开发创造了一个合适的环境,是 Linux 能够诞生的基础之一。以至于目前许多人都将 Linux 操作系统称为”GNU/Linux”操作系统。

一个利用 Lisp 编写的 Emacs 文本编辑器,一个原码级的调试器,一个与 yacc 兼容的语法分析器,一个连接器,和大概 35 个应用程序。有一个 shell (命令解释器)已经接近完成。一个新的、具可移植性的、有优化功能的 C 编译器已经可以自我编译,并应可以在今年发布。还有一个初具规模的内核但是需要更多的特性以模拟 UNIX。当内核和编译器工作完成后,我们就能够发布一个适合软件开发的 GNU 系统。我们会使用 TeX 作我们的文本编辑器,但是也正在编写一个 nroff。我们也会用免费的、具可移植性的 X 视窗系统。之后我们会加一个可移植的 Common Lisp、一个 Empire 游戏、一个电子表格软件、和其他各式各样的东西,以及在线的文档。

开源项目:GNU 系列:GNU Emacs,GNU 调试器。

特性

GNU 将能够执行 Unix 的程序,但是不会和 Unix 完全一样,特别是 GNU 计划拥有支持更长文件名、文件版本号、一个不怕死机的文件系统,或许还要有自动文件名补全、与终端机无关的显示支持、可能最后还要有一个基于 Lisp 的视窗系统,以使好几个 Lisp 程序和普通的 Unix 程序能共享同一屏幕。C 和 Lisp 都将成为系统的程序语言。我们会设法支持 UUCP,MIT Chaosnet,及 Internet 的通讯协议。

GNU 最初的目标是在有虚拟内存的 68000/16000 系列机器上开发,因为这样的环境是最容易开发程序来实现 GNU 的运行。剩下来让 GNU 能在其它较小的机器上运行的工作,将会留给那些希望能在这些机器上使用的人。

GNU 不是公共的,毫无约束的软件(public domain)。GNU 计划允许每一个人修改及传播 GNU,但是绝不允许传播者对他传播的程序再加进其他的限制。也就是说,不允许将修改后的程序据为己有。GNU 计划希望能确保 GNU 所有的版本都能保持自由。

GNU 的核心精神是自由与分享,和 hacker 精神有异曲同工之妙,虽不能说 GNU 精神就是 hacker 精神,不过很难把两者清楚的分开,实际上很多 hacker 都为 GNU 做出了巨大的贡献。对知识的渴求是支持他们探索的唯一动力。

收藏0个人收藏
走进科技生活方式