- 本文介绍的是操作系统。关于自由软件项目,请参看“GNU项目”。
GNU /ɡnuː/ 是完全由自由软件组成的类Unix计算机操作系统。GNU是“GNU不是Unix!”的递归缩写,因为GNU设计为类Unix,但不同于Unix,GNU是自由软件,并且没有包含Unix代码,是自由软件基金会(FSF)最初的重点。然而,非GNU内核,最著名的是Linux内核,也可以与GNU软件同时使用。GNU软件与Linux内核的结合通常称为Linux(或GNU/Linux;参见GNU/Linux命名争议)。
历史[ | ]
GNU(“GNU不是Unix!”)操作系统是理查德·斯托曼在麻省理工学院(MIT)人工智能实验室发起的,理查德·斯托曼在1983年9月27日于net.unix-wizards和net.usoft新闻组上公开宣布了称为“GNU项目”的项目。软件的开发开始于1984年1月5日,当时斯托曼辞去了他在实验室的工作,这样他们就不能宣称所有权或者干涉将GNU组件分发为自由软件。理查德·斯托曼选择该名称使用了多种双关语,包括歌曲《The Gnu》。
GNU项目的目标是开发完全的自由软件操作系统。斯托曼希望计算机用户得到“自由”,就像20世纪60年代和70年代那样,自由地研究他们使用的软件的源代码,自由地与其他人共享软件,自由地修改软件的行为,并且自由地发布他们对该软件的修改版本。这种哲学后来在1985年3月发表在GNU宣言中。
理查德·斯托曼对不兼容分时系统(ITS),一种用汇编语言编写,由于PDP-10的终止而变得过时的早期操作系统的经历,导致了可移植系统是必要的这一决定。因此决定使用C和Lisp作为编程语言来开始开发,这样GNU就能兼容Unix。当时,Unix已经是流行的专有操作系统。Unix的设计是模块化的,所以可以一块一块地重新实现它。
大部分所需的软件都必须从头开始编写,但现有的兼容的第三方自由软件组件也被采用,如TeX排版系统、X窗口系统,以及Mach微内核,它构成了GNU Hurd(GNU的官方内核)的GNU Mach核心的基础。除了上述第三方组件,GNU大部分由志愿者编写;有些利用业余时间,有些由公司、教育机构和其他非营利组织付钱。1985年10月,斯托曼成立了自由软件基金会(FSF)。在20世纪80年代末和90年代,FSF聘请了软件开发者来编写GNU所需的软件。
随着GNU取得了声望,感兴趣的企业开始对GNU软件的开发或销售以及技术支持做出贡献。其中最突出和成功的是Cygnus Solutions,现在成为Red Hat的一部分。
组件[ | ]
- 主条目:GNU软件包列表
该系统的基本组件包括GNU编译器集合(GCC)、GNU C函式库(glibc),以及GNU核心工具组(coreutils),但也包括GNU调试器(GDB)、GNU二进制工具组(binutils)、GNU Bash shell和GNOME桌面环境。GNU开发者已经进行了GNU应用程序和工具的Linux移植,它们现在也广泛应用于其他操作系统,如BSD变种、Solaris和Mac OS X。
许多GNU程序都移植到了其他操作系统,包括像Microsoft Windows和Mac OS X这样的专有平台。GNU程序已被证明比它们所对应的专有Unix程序更可靠。
截至2014年8月,官方GNU开发网站上已经托管了总共452个GNU软件包(包括退役的,除去退役的还有373个)。
GNU变种[ | ]
- 主条目:GNU变种
GNU项目的官方内核是GNU Hurd微内核;然而,截至2012年,Linux以Linux-libre的形式成为GNU项目的官方组成部分,Linux-libre是删除了所有专有组件的Linux变种。
其他内核,例如FreeBSD内核,也与GNU软件共同组成运行的操作系统。FSF认为当Linux与GNU工具和工具组一起使用时,应该认为是GNU的变种,并提倡这种系统使用“GNU/Linux”这个术语(引发了GNU/Linux命名争议)。GNU项目已经认可了使用Linux的变种,例如gNewSense、Trisquel和Parabola。其他不使用Hurd内核的GNU变种,包括Debian GNU/kFreeBSD和Debian GNU/NetBSD,实现了BSD内核上的GNU早期计划。
版权、GNU许可证和管理工作[ | ]
GNU项目建议贡献者将GNU软件包的版权转让给自由软件基金会,尽管自由软件基金会认为将对现有项目的小修改发布到公有领域也是可以接受的。然而,这并不是必需的;软件包的维护者可以保留他们所维护的GNU软件包的版权,尽管只有版权持有人可以实行使用的许可证(例如GNU GPL),在这种情况下,是版权持有人而不是自由软件基金会来实行它。
为了开发所需软件,斯托曼撰写了一个许可证,称为GNU通用公共许可证(最初称为Emacs通用公共许可证),其目标是保证用户共享和更改自由软件的自由。斯托曼在他对詹姆斯·高斯林和一个称为UniPress的程序的经历之后撰写了这个许可证,内容围绕GNU Emacs程序中所使用的软件代码的争议。在80年代,大部分GNU软件包有它自己的许可证:Emacs通用公共许可证、GCC通用公共许可证等等。1989年,FSF发布了可用于其所有软件,也可以用于非GNU项目的单一许可证:GNU通用公共许可证(GPL)。
目前大部分GNU软件,以及大量不属于GNU项目的一部分的自由软件程序,都使用这个许可证;它也是最常用的自由软件许可证。它给予程序的所有接受者运行、复制、修改和分发该程序的权利,但禁止他们对其分发的任何副本施加进一步的限制。这种思想通常称为copyleft。
1991年,GNU宽通用公共许可证(LGPL),当时称为函式库通用公共许可证,为GNU C函式库而撰写,以允许它与专有软件链接。1991年也发布了GNU GPL的第2版。用于文档的GNU自由文档许可证(FDL)随后在2000年发布。GPL和LGPL在2007年修订为第3版,增加了保护用户免受硬件限制的条款,硬件限制会阻止用户在他们自己的设备上运行修改过的软件。
除了GNU自己的软件包,GNU项目的许可证也用于许多与GNU无关的项目,例如Linux内核,它经常与GNU软件一起使用。少数由大部分GNU/Linux发行版使用的软件,例如X窗口系统,使用宽松自由软件许可证。
标志[ | ]
GNU的标志是角马的头像。最初由Etienne Suvasa绘制,现在的首选是由Aurelio Heckert设计的更粗、更简单的版本。它出现在GNU软件以及GNU项目的纸质和电子文档中,也用于自由软件基金会的材料。
这里展示了官方标志的一种修改版本。它是由自由软件基金会在2013年9月,为了纪念GNU项目30周年而创建的。
参见[ | ]
外部链接[ | ]
导航框[ | ]
查 | 论 | 编GNU项目 | |
---|---|
历史 |
|
许可证 | |
指导方针 |
|
软件 | |
公众演讲者 |
|
其他话题 |
|