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类似的操作环境。从那时开始,许多程序员聚集起来开始开发一个自由的、高质量、易理解的软件。
分享到:
相关推荐
GNU链接器(GNU ld)是GNU工具集的一部分,专门用于处理程序的链接过程,它支持ARM嵌入式处理器。链接器是编译过程中不可或缺的一步,它将编译后的代码(通常是目标文件)以及所需的库文件合并成一个单一的可执行...
《GNU Radio FM无线电收发详解》 GNU Radio是一款开源的软件定义无线电(Software Defined Radio, SDR)框架,它允许用户构建复杂的射频系统,包括接收器、发射器以及信号处理链。在“FM.zip_FM_GNU Radio_gnuradio...
GNU Assembler是GNU工具套件中的一部分,专门用于ARM嵌入式处理器。它是一个汇编器,用于将汇编语言代码转换成机器语言代码,这些机器语言代码随后可以由ARM处理器执行。GNU Assembler for ARM(通常简称为as)是...
GnuRadio是一个开源软件开发工具包,用于构建软件定义无线电(SDR)系统。它提供了丰富的数字信号处理模块,使得用户无需深入底层硬件细节就能设计和实现复杂的无线通信系统。在GnuRadio 3.7.11版本中,我们可以期待...
### GNU C 库参考手册概览 #### 一、引言 《GNU C 库参考手册》是一本全面介绍GNU C库(glibc)的权威文档。GNU C库是为GNU系统及其衍生系统(如大多数Linux发行版)提供的C语言标准库实现。此手册涵盖了从基础到...
Ubuntu系统下安装GnuRadio与UHD(USRP硬件驱动)的过程涉及一系列详细的步骤,并且需要特别注意软件依赖关系以及路径设置。以下是关于如何在Ubuntu系统上安装GnuRadio和UHD的详细知识点。 首先,安装GnuRadio与UHD...
使用gnuradio实现SSB调制解调 SSB(Single SideBand)调制是一种常用的调制方式,通过传输一个边带来提高频带利用率。使用gnuradio实现SSB调制解调,需要了解SSB实验原理、边带滤波器和移相法等概念。 SSB实验原理...
在"GNURadio.rar_GNU Radio_gnuradio_gnuradio 开发_gnuradio官网_gunradio"这个压缩包中,包含了与GNU Radio相关的各种资源,帮助用户理解和学习如何使用它。 首先,"gnuradio.pdf"可能是GNU Radio的官方文档或...
《GNU汇编语法手册》是一本详尽介绍GNU汇编语言的权威指南,适用于那些希望深入理解计算机底层工作原理和程序设计的读者。在本文中,我们将深入探讨GNU汇编语言的基本概念、语法以及在实际编程中的应用。 GNU汇编...
GNU ld是一个在Unix-like系统下广泛使用的链接器,它的主要作用是将目标文件和库文件链接成一个单独的可执行文件。GNU ld链接器是GNU编译系统的一部分,并且是GNU binutils软件包的一个组件。 在文档中提到的2.14...
Gnuradio 是一个开源软件定义无线电(SDR)框架,广泛用于无线通信、信号处理和射频系统的设计。"gr-burst-master_gnuradio_源码" 是一个与 Gnuradio 相关的项目,专门针对突发信号(burst)处理。在本文中,我们将...
《围棋训练神器:GNU Go 3.8 深度解析》 GNU Go,简称Gnugo,是一款开源的围棋人工智能程序,它以其强大的棋力和丰富的训练功能,深受围棋爱好者和研究者的喜爱。在本文中,我们将深入探讨 Gnugo 3.8 版本的特性、...
Gnuradio [1] 是一个无线电信号处理方案,它遵循GNU 的GPL [2] 的条款分发。它的目的是给普通的软件编制者提供探索电磁波的机会,并激发他们聪明的利用射频电波的能力。 正如所有软件定义无线电系统的定义, 可重构...
标题中的“gnu.io.rar_android_gnu.io _librxtxSerial_librxtxSerial._librxtxS”提到了`GNU.IO`库,这实际上是在Android上实现的RXTX库,它是一个开源的Java库,用于串行和并行通信。RXTX库为Java程序员提供了与...
GNU Go 是一个开源的围棋程序,其源代码可供开发者研究和学习。这个程序的设计和实现展示了人工智能在围棋游戏中的应用,对于理解计算机围棋算法、深度学习以及搜索策略有着重要的参考价值。在这里,我们将深入探讨...
MIPS代表工具链的目标架构,GNU指的是使用GNU工具,而GCC(GNU Compiler Collection)是GNU项目的一部分,是一个强大的多语言编译器,支持C、C++、Objective-C、Fortran、Ada、Go等多种编程语言。 压缩包内的“mips...
### GNU计划概述 #### 核心概念:自由软件与GNU GNU计划,即革奴计划,是一项由Richard Stallman于1983年9月27日发起的重要倡议。其核心理念是创建一套完全自由的操作系统,这里的“自由”不仅指的是免费使用,更...
### GNU Radio 入门培训知识点概述 #### 一、GNU Radio 概览 **1.1 什么是GNU Radio** GNU Radio 是一款完全开源的软件无线电平台,它支持从设计、仿真到连接真实无线电系统的全过程。该平台具有高度模块化的特点...
GNU Global是一款强大的源代码标签系统,它主要用于帮助程序员在大型代码库中导航和理解源代码。这个6.6.8版本是专为Windows操作系统设计的,使得在Windows环境下也能享受到GNU Global带来的便利。 GNU Global的...
GNU链接器(GNU ld)是GNU项目中的一个重要的组件,用于将多个对象文件(.o)和存档文件(.a)链接成一个单独的可执行文件或共享库。GNU ld是各种Unix系统上标准链接器的 GNU 实现,它支持广泛的目标文件格式,并且...