GNU是一个自由的操作系统,其内容软件完全以GPL方式发布,因为GNU的设计类似Unix,但它不包含具著作权的Unix代码。
GNU 是一个自由的操作系统,其内容软件完全以 GPL 方式发布。这个操作系统是 GNU 计划的主要目标,名称来自 GNU’s Not Unix!的递归缩写,因为 GNU 的设计类似 Unix,但它不包含具著作权的 Unix 代码。GNU 的创始人,理查德·马修·斯托曼,将 GNU 视为“达成社会目的技术方法”。
作为操作系统,GNU 的发展仍未完成,其中最大的问题是具有完备功能的内核尚未被开发成功。GNU 的内核,称为 Hurd,是自由软体基金会发展的重点,但是其发展尚未成熟。在实际使用上,多半使用 Linux 内核、FreeBSD 等替代方案,作为系统核心,其中主要的操作系统是 Linux 的发行版。Linux 系统包涵了 Linux 内核与其他自由软体计画中的 GNU 组件和软体,可以被称为 GNU/Linux(见 GNU/Linux 命名争议)。
GNU 历史
GNU 操作系统起源于 GNU 计划,由理查·斯托曼在麻省理工学院人工智能实验室发起,希望发展出一套完整的开放原始码作业系统来取代 Unix,计划中的作业系统,名为 GNU。1983 年 9 月 27 日,理查·斯托曼在 net.unix-wizards 和 net.usoft 新闻群组中公布这项计划。。理查德·斯托曼通过使用变化单词的各种手法来选择名称,包括曲目 The Gnu。
斯托曼的目标是成立一个完全自由的操作系统,他希望电脑用户是能够“自由使用”的。因为在 20 世纪 60 年代和 70 年代-大多数人都能自由学习软件的源代码,自由地与他人分享的软件,可自由修改软件的行为,自由发布的软件的修改后的版本。这种理念,在 1985 年 3 月出版的 GNU 宣言崭露无遗。
1984 年 1 月 5 日,正式开始开发软体,为了防止这些软体将来可能被主张所有权,影响到自由软体的发展,斯托曼辞去了在实验室的工作。理查·斯托曼使用不兼容分时系统 (ITS) (一种早期的作业系统,使用汇编语言撰写,因其所运行的称为 PDP-10 的电脑系统架构停止发展而变得过时)的经验,导致了需要一种可移植系统的决定。因此,会议决定,将开发新的系统,并使用 C 和 Lisp 作为系统编程语言。且 GNU 将与 UNIX 兼容。当时,UNIX 已经是一个流行的专有操作系统。而 Unix 的设计是模块化的,所以它可以被逐步分块的实现。
1984 年,开始发展编辑器 Emacs 等软体。1985 年,发表 GNU 宣言。1989 年,发表 GNU 通用公共授权条款。GNU 计划中的其他部份,如编辑器、编译器、shell 等都已经完成,独缺作业系统核心。1990 年,自由软体基金会开始正式发展 Hurd,作为 GNU 计画中的作业系统。根据汤玛斯·布什内尔的回忆,最早自由软体基金会使用 Trix 来开发作业系统,但在 1986 年放弃这个计画。在此后,他们原希望以轻量化后的 4.4BSD 为基础进行开发。1987 年,理查德·斯托曼决定以 GNU Mach 微内核进行开发,认为可以借此加速作业系统的开发,但因为一直不确定卡内基梅隆大学何时要将核心原始码释出,造成计划延宕三年。他在之后承认这是个错误。
许多必要的软体需要从零写起,但已存在的第三方组件,如 TeX、X Window System 和 Mach 微内核等等组成了 GNU Hurd 的核心. 除了上述的第三方组件外,大多数的 GNU 软体是由许多志愿者,在他们的空闲时间,或由公司、教育机构和非营利性组织赞助下撰写。1985 年 10 月,理查·斯托曼建立自由软体基金会 (FSF)。在 1980 到 1990 年代,他们雇用软体发展工程师去转写 GNU 必须的软体。
1991 年,Linux 出现。1993 年,FreeBSD 释出。所有 GNU 计划中,运行于使用者空间的软体,都可以在 Linux 或 FreeBSD 上使用。许多开发者转向于 Linux 或 FreeBSD。其中,Linux 成为常见的 GNU 计划软体运行平台。理查德·斯托曼主张,Linux 作业系统使用了许多 GNU 计划软体,应正名为 GNU/Linux,但没有得到 Linux 社群的一致认同,形成 GNU/Linux 命名争议。
由于 GNU 颇具知名度,有兴趣的商家开始促进发展或出售 GNU 软件和技术支持。其中最突出的和成功的,是 Cygnus Solutions,现在红帽公司的一部分。
GNU 组成
该系统的基本组成包括 GNU 编译器套装(GCC)、GNU 的 C 函式库(glibc)、以及 GNU 核心工具组(coreutils),另外也是 GNU 除错器(GDB)、GNU 二进制实用程序(binutils)的 GNU Cash shell 中和 GNOME 桌面环境。GNU 开发人员已经向 GNU 应用程序和工具的 Linux 移植,现在也广泛应用在其它操作系统中使用,如 BSD 变体的 Solaris,和 OS X 作出了贡献。
许多 GNU 程序已经被移植到其他操作系统,包括专有软体,如 Microsoft Windows 和 OS X. GNU 计划已经被证明是比他们的专有 Unix 更为可靠。截至 2015 年 11 月,全国共有 466 GNU 软件包(包括退役,但不包括 383 )主办的官方 GNU 开发的网站。
GNU 变种
GNU 项目的官方核心是 GNU Hurd;然而,截至 2012 年,Linux 核心正式以 Linux-libre 为名成为 GNU 计画中的一部份,并删除了所有专有组件的变种。
像 FreeBSD 内核其他核心依然和 GNU 软件合作,形成一个工作的作业系统。FSF 认为 Linux 核心,与 GNU 工具和实用程序使用时,应承认自己为 GNU 变种,并促进改成 GNU/Linux 的这类系统名称(导致 GNU/Linux 命名争议) 。GNU 工程已认可的 Linux 发行版,如 gNewSense,TRISQUEL 和 Parabola GNU/Linux-libre。不使用 Hurd 作为核心的 GNU 的其他变种包括的 Debian GNU / kFreeBSD 和 Debian GNU / NetBSD 的,将得以对 BSD 的核心实现 GNU 的早期计划。