GNU

更新时间:2024-06-09 14:04

GNU是一个操作系统,其内容软件完全以GPL方式发布。这个操作系统是GNU计划的主要目标,名称来自GNU's Not Unix!的递归缩写,因为GNU的设计类似Unix,但它不包含具著作权的Unix代码。GNU的创始人,理查德·马修·斯托曼,将GNU视为“达成社会目的技术方法”。

解释

“GNU”是“GNU's Not Unix!”(GNU并非Unix!)的首字母递归缩写。Stallman宣布GNU应当发音为Guh-NOO以避免与new这个单词混淆(注:gnu在英文中原意为非洲牛羚,发音与new相同)。

UNIX是一种广泛使用的商业操作系统的名称。由于GNU将要实现UNIX系统的接口标准,因此GNU计划可以分别开发不同的操作系统部件。GNU计划采用了部分当时已经可自由使用的软件,例如TeX排版系统和X Window视窗系统等。不过GNU计划也开发了大批其他的自由软件。

历史

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

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

1991年Linus Torvalds编写出了与UNIX兼容的Linux操作系统内核并在GPL条款下发布。Linux之后在网上广泛流传,许多程序员参与了开发与修改。1992年Linux与其他GNU软件结合,完全自由的操作系统正式诞生。该操作系统往往被称为“GNU/Linux”或简称Linux。(尽管如此GNU计划自己的内核Hurd依然在开发中,已经发布Beta版本。)

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

GNU 包含3个协议条款,

GPL:GNU通用公共许可证(GNU General Public License)

LGPL:GNU较宽松公共许可证 (GNU Lesser General Public License), ) ,旧称 GNU Library General Public License (GNU 库通用公共许可证);

GFDL : GNU自由文档许可证(GNU Free Documentation License )的缩写形式。

这里指的自由,并不是价格免费,这和价格无关而是使用软件对所有的用户来说是自由的。GPL通过如下途径实现这一目标:

1.它要求软件以源代码的形式发布,并规定任何用户能够以源代码的形式将软件复制或发布给别的用户。

2.如果用户的软件使用了受 GPL 保护的任何软件的一部分,那么该软件就继承了 GPL 软件,并因此而成为 GPL 软件,也就是说必须随应用程序一起发布源代码。

3.GPL 并不排斥对自由软件进行商业性质的包装和发行,也不限制在自由软件的基础上打包发行其他非自由软件。

由于GPL很难被商业软件所应用,它要求调用它的库的代码也得GPL,全部开放,并且一同发布,不能直接连接。所以后来GNU推出了LGPL许可证

在GPL与LGPL许可证保护下发布源代码的结果很相似,对旧代码所做的任何修改对于想知道这些代码的人必须是公开的,唯一真正的不同之处在于私人版权代码是否可以与开放源代码相互连接,LGPL允许实体连接私人代码到开放源代码,并可以在任何形式下发布这些合成的二进制代码。只要这些代码是动态连接的就没有限制。(使用动态链接时,即使是程序在运行中调用函数库中的函数时,应用程序本身和函数库也是不同的实体)

许可证

GNU 认为任何软件都应当以 自由软件 发布。要让一个软件成为自由软件,您需要把它以自由软件许可证发布。我们通常使用 GNU 通用公共许可证 (GNU GPL) 发布软件,但有时我们也使用 其它自由软件许可证 发布软件。在 GNU 软件包中,GNU 只使用与GNU GPL兼容的许可证。

自由软件的文档应当是 自由文档 ,以便人们可以随着软件的改进去更新它或是重新发布它。若要把文档以自由文档的形式发布,您需要使用自由文档许可证。我们通常使用 GNU 自由文档许可证 (GNU FDL) ,但少数情况下我们也使用 其它的自由文档许可证 。

如果您开展了一个新的项目,但不太确定应该选用何种许可证,那么 “如何为您的作用选择一个许可证” 一文可以以一种简单且容易遵循的方式给您以帮助。我们正在进一步修订我们的文档许可证,同时欢迎听到您对提案的建议。请访问 许可证更新网站 阅读最新的草案并参与到修订过程中。

组成

主条目:GNU软件包列表

该系统的基本组成包括GNU编译器套装(GCC)、GNU的C库(glibc)、以及GNU核心工具组(coreutils),另外也是GNU除错器(GDB)、GNU二进制实用程序(binutils)的GNU Cashshell中和GNOME桌面环境。GNU开发人员已经向GNU应用程序和工具的Linux移植,也广泛应用在其它操作系统中使用,如BSD变体的Solaris,和OS X作出了贡献。

许多GNU程序已经被移植到其他操作系统,包括专有软件,如Microsoft Windows和OS X.GNU计划已经被证明是比他们的专有Unix更为可靠。截至2015年11月,全国共有466 GNU软件包(包括退役,但不包括383 )主办的官方GNU开发的网站。

GNU 变种

主条目:GNU variants

GNU项目的官方核心是GNU Hurd;然而,截至2012年,Linux核心正式以Linux-libre为名成为GNU项目中的一部分,并删除了所有专有组件的变种。

像FreeBSD内核其他核心依然和GNU软件合作,形成一个工作的操作系统。FSF认为Linux核心,与GNU工具和实用程序使用时,应承认自己为GNU变种,并促进改成GNU/Linux的这类系统名称(导致GNU/Linux命名争议) 。GNU工程已认可的Linux发行版,如gNewSenseTRISQUELParabola GNU/Linux-libre。不使用Hurd作为核心的GNU的其他变种包括的Debian GNU / kFreeBSD和Debian GNU / NetBSD的,将得以对BSD的核心实现GNU的早期计划。

免责声明
隐私政策
用户协议
目录 22
0{{catalogNumber[index]}}. {{item.title}}
{{item.title}}