一文带你了解Unix,Linux,GNU,GPL的关系

Linux与Unix

Unix操作系统是一个强大的多用户、多任务操作系统,支持多种处理器架构,按照操作系统的分类,属于分时操作系统,最早由KenThompson、Dennis Ritchie和Douglas McIlroy于1969年在AT&T的贝尔实验室开发。目前它的商标权由国际开放标准组织所拥有,只有符合单一Unix规范(Single UNIX Specification,SUS)的Unix系统才能使用Unix这个名称,否则只能称为类Unix。

Unix最开始从贝尔实验室开发出来并不是处于任何商业目的,纯粹是出于兴趣。因此,Unix被开源了,广泛用于各大高校的操作系统教材。随着Unix的影响越来越大,AT&T公司想要利用其商业价值开始阻止源代码的开放。之后UNIX主要发展成为了两个分支,一个是AT&T公司支持的版本称为System V版本,一个是加州大学伯克利分校支持的伯克利版本称为BSD版本。

在两个分支下又有公司和组织在其基础上开发自己版本的UNIX系统或者类UNIX系统。在System V版本下发展UNIX有很多,例如:
- AIX, IBM版的UNIX系统;
- HP-UX, HP版的UNIX系统;
- SOLARIS,SUN版的UNIX系统;
- UnixWare, SVR4派生的UNIX系统;

在BSD版本下发展的也有一些,例如:
- FreeBSD;
- OpenBSD;
- Mac OS X;

为了方便学生学习操作系统课程,一位名叫Andrew S. Tanenbaum的大学教授写了一个基于微内核架构的类UNIX系统,名叫MINIX。后来林纳斯认为MINIX的设计不是很好,所以自己写了一个内核,取名为Linux。注意林纳斯只是完成了Linux的内核部分,但是一个完整的操作系统并只是由内核构成。如果把操作系统比作一个人,内核好比是操作系统的心脏,光有心脏没有四肢和躯干的人不算是完整的人,也什么都做不了。因此接下来我们就要谈到GNU,它和Linux内核相结合构成了完整的操作系统,应该称为GNU/Linux操作系统,只不过大多数时候被简称为Linux。而这使得很多人将Linux内核与Linux操作系统的概念给模糊了。Linux也#并不是完全的UNIX系统,成为类UNIX系统更为合适。

Linux与GNU

GNU是理查德·斯托曼发起的一项计划,该计划就是要建立完全自由的操作系统。一开始他们就开发了很多自由软件,包括我们使用的GCC,GDB等都是GNU软件,GNU软件都遵守一套称为GPL的协议,该协议规定了GNU软件必须开放源码,其他可以在该软件的基础上继续开发和修改等。GNU软件开发了很多以后,离组成一个完整的操作系统几乎就只差内核了,实际上内核也是一个软件。这时候林纳斯开发的Linux使用范围越来越广,当然了Linux从一开始林纳斯就是将其开源的。最后Linux和GNU软件结合就构成了一个完整的操作系统,因此Linux内核也遵循GPL协议。所以该操作系统的完整名称应该是GNU/Linux,Linux是内核,还包括其他人开发的X-Window,GCC,GDB等GNU软件。

参考

  • UNIX百度百科
  • Linux和GNU系统
  • Unix高级环境编程

你可能感兴趣的:(linux)