最近在学习 Linux 系统的时候,经常在各种文章中看到“GNU”一词,对此一直都是只知其名,不知其义。于是,决定查找资料,一探究竟。在了解“GNU”一词的过程中,也接触到“GNU/Linux 系统”一词,便产生了“GNU和Linux究竟是什么关系?”的疑问。下面将所了解到的内容整理如下,以供参考。
GNU的含义
GNU,是一个计划,由 Richard Stallman (RMS) 在1983年发起,受自由软件基金会(FSF) 支持,致力于开发一个自由且免费的类Unix操作系统。其中, GNU即GNU’s Not Unix 。
至于为什么要开发类Unix操作系统,是因为早期开源的Unix系统,受到很多用户的青睐,但后面开始逐步收费和步入商业闭源。
关于GNU还有一个名词需要了解一下,就是GPL。GNU GPL (GNU General Public License,GNU 通用公共许可证) :只要软件中包含了遵循GPL协议的产品或代码,该软件就必须也遵循GPL许可协议且开源、免费。
GNU/Linux系统
在 Linux 诞生之前,GNU已经开发了很多操作系统中的重要基础部件,如GNU汇编器(GAS)、连接器(GLD)、命令解析器(BASH)和编译软件(GCC)等等。但由于缺少合适的底层内核,所以GNU系统一直搭建不起来,虽然GNU也有一直有在自主开发内核 GNU hurd,但进展缓慢,直到2001年才开始可以稳定工作。
1991年,Linus Torvalds开发了一款操作系统内核Linux,并在1992年加入GPL使 Linux也成为自由软件,终于填补了GNU系统的一个重要空白。于是,一个基于Linux内核+ GNU组件的完整且自由的操作系统便诞生了。
这就是,“GNU/Linux系统”一词的由来。
GNU官网摘录
到了90年代初期,我们曾经把除了内核以外的东西放到一起组成了一个系统。我们也在开始开发一个内核,称为GNU Hurd,运行在Mach(一个由卡内基.梅隆大学开发的微内核系统,其中一个衍生版本成为GNU Hurd的内核)之上。开发这个内核比我们的预期要难得多;GNU Hurd在2001年开始可以稳定工作,但是距离能够被人们正常使用还有很长的路要走。
庆幸的是,我们不必再等 Hurd 了,因为有了 Linux。当 Linus Torvalds 在1992年使 Linux 成了自由软件,它填补了 GNU 系统的一个重要空白。人们可以 把 Linux 和 GNU 系统结合起来 组成一个完整的自由系统——一个带有 Linux 的 GNU 系统。换句话说,就是 GNU/Linux系统。
无论你是否使用 GNU/Linux,请不要含糊不清地使用“Linux”这一名称来混淆大众。Linux 是一个内核,是系统的主要基本部件之一。整个系统基本上是 GNU 系统,加上 Linux。如果你说的是这个组合,请称之为“GNU/Linux”。
——以上内容摘录自《Linux和GNU系统》
参考资料
如果看了上述内容后,依旧对于GNU和GNU/Linux这两个概念不太清楚,或者想要更深入的了解相关内容,可以点击以下连接进行阅读,获取更多内容。