`
haiouc
  • 浏览: 118877 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

论GNU、Linux和GNU/Linux之间的关系

阅读更多

 

相信很多人看到了这个标题就会产生疑问,这篇文章到底要讲什么东西?在回答这个问题之前,我先提出几个问题?

 


1. 什么是Linux

2. 什么是GNU

3. GNU/Linux是什么玩意儿?

在回答了以上问题后,大家自然也清楚我想说明的问题了。

 

 

 


什么是Linux
相信了解一些IT知识的人都听过Linux这个名词。维基百科上的Linux词条是最经典和最准确的说明(http://zh.wikipedia.org/wiki/Linux),在此直接应用,免去班门弄斧之嫌。
Linux操作系统(Linux),是一种计算机操作系统。Linux操作系统的内核的名字也是“Linux”。Linux操作系统也是自由软件和开放源代码发展中最著名的例子。

Linux内核最初是为英特尔386微处理器设计的。现在Linux内核支持从个人电脑到大型主机甚至包括嵌入式系统在内的各种硬件设备。

在开始的时候,Linux只是个人狂热爱好的一种产物。但是现在,Linux已经成为了一种受到广泛关注和支持的一种操作系统。包括IBM和惠普在内的一些计算机业巨头也开始支持Linux。很多人认为,和其他的商用Unix系统以及微软 Windows相比,作为自由软件的Linux具有低成本,安全性高,更加可信赖的优势。
Linux内核最初只是由芬兰人林纳斯•托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的。最初的设想中,Linux是一种类似Minix这样的一种操作系统。Linux的第一个版本在19919月被发布在Internet上,随后在10月份第二个版本就发布了。

Linux的历史是和GNU紧密联系在一起的。从1983年开始的GNU计划致力于开发一个自由并且完整的类Unix操作系统,包括软件开发工具和各种应用程序。到1991Linux内核发布的时候,GNU已经几乎完成了除了系统内核之外的各种必备软件的开发。在Linus Torvalds和其他开发人员的努力下,GNU组件可以运行于Linux内核之上。整个内核是基于GNU通用公共许可,也就是GPL(General Pubic License)的,但是Linux内核并不是GNU 计划的一部分。

Linux的标志和吉祥物是一只名字叫做Tux的企鹅,Linux的注册商标是Linus Torvalds所有的。这是由于在1996年,一个名字叫做William R. Della Croce的律师开始向各个Linux发布商发信,声明他拥有Linux商标的所有权,并且要求各个发布商支付版税,这些发行商集体进行上诉,要求将该注册商标重新分配给Linus Torvalds

Linux的某些版本是不需要安装就能使用的版本,他们称为LiveCD

 


什么是GNU
GNU计划,又称革奴计划,是由Richard Stallman1983927日公开发起的。它的目标是创建一套完全自由的操作系统。Richard Stallman最早是在net.unix-wizards新闻组上公布该消息,并附带一份《GNU宣言》等解释为何发起该计划的文章,其中一个理由就是要“重现当年软件界合作互助的团结精神”。
GNU是“GNU's Not Unix”的递归缩写。Stallman宣布GNU应当发音为Guh-NOO,与canoe发音相同,以避免与gnu(非洲牛羚,发音与new相同)这个单词混淆。UNIX是一种广泛使用的商业操作系统的名称。由于GNU将要实现UNIX系统的接口标准,因此GNU计划可以分别开发不同的操作系统部件。GNU计划采用了部分当时已经可自由使用的软件,例如TeX排版系统和X Window视窗系统等。不过GNU计划也开发了大批其他的自由软件。

为保证GNU软件可以自由地“使用、复制、修改和发布”,所有GNU软件都在一份在禁止其他人添加任何限制的情况下授权所有权利给任何人的协议条款,GNU通用公共许可证(GNU General Public LicenseGPL)。这个就是被称为“反版权”(或称Copyleft)的概念。
1985Richard Stallman又创立了自由软件基金会(Free Software Foundation)来为GNU计划提供技术、法律以及财政支持。尽管GNU计划大部分时候是由个人自愿无偿贡献,但FSF有时还是会聘请程序员帮助编写。当GNU计划开始逐渐获得成功时,一些商业公司开始介入开发和技术支持。当中最著名的就是之后被Red Hat兼并的Cygnus Solutions

到了1990年,GNU计划已经开发出的软件包括了一个功能强大的文字编辑器EmacsC语言编译器GCC,以及大部分UNIX系统的程序库和工具。唯一依然没有完成的重要组件就是操作系统的内核(称为HURD)
1991Linus Torvalds编写出了与UNIX兼容的Linux操作系统内核并在GPL条款下发布。Linux之后在网上广泛流传,许多程序员参与了开发与修改。1992Linux与其他GNU软件结合,完全自由的操作系统正式诞生。(尽管如此GNU计划自己的内核Hurd依然在开发中,目前已经发布Beta版本。)

许多UNIX系统上也安装了GNU软件,因为GNU软件的质量比之前UNIX的软件还要好。GNU工具还被广泛地移植到WindowsMac OS上。
注:以上内容来自维基百科GNU词条(http://zh.wikipedia.org/wiki/GNU

 


GNU/Linux
是什么玩意儿
通过回答上面两个问题,我们很明显可以注意到Linux只是一个操作系统内核而已,而GNU提供了大量的自由软件来丰富在其之上各种应用程序。
因此,严格来讲,Linux这个词本身只表示Linux内核,但在实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程各种工具和数据库的操作系统。基于这些组件的Linux软件被称为Linux发行版。一般来讲,一个Linux发行套件包含大量的软件,比如软件开发工具,数据库,Web服务器(例如Apache)X Window,桌面环境(比如GNOMEKDE),办公套件(比如OpenOffice.org),等等。
绝大多数基于Linux内核的操作系统使用了大量的GNU软件,包括了一个shell程序、工具、程序库、编译器及工具,还有许多其他程序,例如Emacs。正是由于Linux使用了许多GNU程序,GNU计划的开创者Richard Stallman博士提议将Linux操作系统改名为GNU/Linux。但有些人只把操作系统叫做"Linux"
有部分Linux套件,包括了Debian,采用了“GNU/Linux”的称呼。但大多数商业Linux套件依然将操作系统称为Linux。有些人也认为“操作系统”一词指的应该只是系统的内核,其他程序都只能算是应用软件,这么一来,该操作系统的内核应叫Linux,而Linux套件是在Linux内核的基础上加入各种GNU工具。
一些人拒绝使用“GNU/Linux”作为操作系统名称的人认为:
1. Linux朗朗上口;名字较短又好记;

2. Richard Stallman博士直到1990年代中期,Linux开始流行后才要求更名。

 


结语
我相信,坚持看完这些枯涩文字的读者一定明白了我需要探讨的问题,我们常说的Linux,准确地来讲,应该是叫“GNU/Linux”。虽然,我们没有为GNULinux的开发做出什么贡献,但是我们可以为GNULinux的宣传和应用做出微薄的努力,至少我们能够准确地去向其他人解释清楚GNULinux以及GNU/Linux之间的区别。让我们一起为GNU/Linux的推广贡献出自己的力量!

 

分享到:
评论

相关推荐

    学习Debian GNU / LinuxLearning Debian GNU/Linux

    Debian GNU/Linux是一种免费的操作系统,它基于GNU工具集和Linux内核构建而成。Debian项目始于1993年,由Ian Murdock发起,旨在提供一个稳定、安全且自由的平台。Debian因其高质量的标准和严格的软件包管理而受到...

    GNU / Linux高级管理GNU/Linux Advanced Administration

    涵盖高级GNU / Linux系统管理。 学生将学习如何安装,配置和优化GNU / Linux操作系统以及使用最广泛的计算机服务。

    GNU Linux Application Programming

    The wide range of applications available in GNU/Linux includes not only pure applications, but also tools and utilities for the GNU/Linux environment. GNU/Linux Application Programming takes a ...

    GNU_Linux_Programming_Unleashed/GNU/linux编程指南

    1. **Linux基础知识**:首先,书中会介绍Linux的历史、哲学以及其与GNU项目的关系,解释为何GNU/Linux是开源软件的重要代表。还会讲解Linux内核的工作原理,包括进程管理、内存管理、文件系统等核心概念。 2. **...

    GNULinux-Distribution-Timeline

    GNULinux-Distribution-Timeline

    GNU/Linux编程指南(第二版)中文版含光盘

    第1章 Linux及Linux编程综述 第2章 设置开发系统 第3章 使用GNU CC 第4章 使用GNU make管理项目 第5章 创建可移植的自配置软件 第6章 比较和合并源代码文件 第7章 使用RCS和CVS控制版本 第8章 调试 第9章 出错处理 ...

    gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu.tar.gz

    总之,gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu.tar.gz是一个针对64位AArch64架构的Linux系统的GCC工具链,由Linaro组织提供,包含了一个全面的编译和调试环境,适用于跨平台开发和性能优化。

    64位linux 编译c提示gnu/stubs-32.h:No such file or directory的解决方法

    在64位Linux系统下编译C语言程序时,可能会出现gnu/stubs-32.h文件不存在的错误,主要是因为缺少32位兼容包的原因。今天,我们就来探讨解决这个问题的方法。 首先,让我们了解问题的出现原因。在编译C语言程序时,...

    main函数关联的crt目标文件

    /usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu/crt1.o /usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/4.7/crtbegin.o /tmp/ccNY9dhT.o /usr/...

    debian gnu linux debian gnu linux

    debian gnu linux debian gnu linuxdebian gnu linux debian gnu linuxdebian gnu linux debian gnu linuxdebian gnu linux debian gnu linuxdebian gnu linux debian gnu linuxdebian gnu linux debian gnu linux

    gnu/linux编程指南源码

    在GNU/Linux编程中,学会正确地处理错误并提供清晰的错误信息对于调试和维护软件至关重要。同时,良好的日志记录可以辅助分析系统行为和追踪问题。 总而言之,《GNU/Linux编程指南》的源码提供了丰富的学习素材,...

    Debian GNU/Linux 安装手册

    Debian GNU/Linux 5.0 “lenny” 支持多种Intel x86架构的硬件,包括CPU、主板、视频支持、便携机、多处理器、图形卡、网络连接硬件等,并且对盲文点触设备、硬件语音合成设备和其他外围设备提供了支持。 **2.2 ...

    NJUPT GNU/Linux编程课件和代码

    "NJUPT GNU/Linux编程课件和代码"这个标题表明这是一个与GNU/Linux操作系统相关的编程教学资源,来源于南京邮电大学(NJUPT)。内容可能包括课件和实际的编程代码示例,旨在帮助学习者掌握在GNU/Linux环境下进行软件...

    gcc-linaro-6.3.1-2017.05-x86-64-aarch64-linux-gnu.7z

    总之,"gcc-linaro-6.3.1-2017.05-x86-64-aarch64-linux-gnu.7z"是一个用于在x86_64系统上进行Aarch64 Linux应用开发的交叉编译工具链,包含GCC编译器和其他必要的工具,使得开发者能够在不同架构之间轻松迁移和测试...

    方舟编译器工具openarkcompiler - clang+llvm-8.0.0-x86_64-linux-gnu-ubuntu-16.04.tar.xz2

    下载**clang+llvm-8.0.0-x86_64-linux-gnu-ubuntu-16.04** LLVM下载地址:http://releases.llvm.org/download.html#8.0.0 放置到`openarkcompiler/tools`目录,打开`openarkcompiler/build/config/BUILDCONFIG.gn`...

    GNU、Linux高级网络应用服务指南

    GNU、Linux高级网络应用服务指南.rarGNU、Linux高级网络应用服务指南.rar

    debian (Debian GNU/Linux下的小康生活)

    以上内容涵盖了 Debian GNU/Linux 的基础知识和安装配置流程,希望能帮助初学者快速了解 Debian 的核心概念和技术要点。接下来的部分将详细介绍 Debian 的系统管理和自动化、软硬件使用以及网络服务配置与管理等内容...

    arm-linux-gnueabi-5.4.0.tar

    arm-linux-gcc交叉编译工具: 备注:使用此资源时需要解压两次,因为上传时显示资源重复上传失败,于是套了两层压缩。... $sudo ln -s /usr/lib/x86_64-linux-gnu/libmpfr.so.6 /usr/lib/x86_64-linux-gnu/libmpfr.so.4

    GNU_Linux编程指南.part2

    GNU_Linux编程指南_part2

Global site tag (gtag.js) - Google Analytics