Which language do you prefer? English 简体中文 繁体中文
...
Unix, BSD, GNU 和 Linux 之间是什么关系?

Unix

Unix, BSD, GNU, Linux 等等概念都起源于最初由贝尔实验室(1960 年代,AT&T 拥有期间)编写的操作系统:Unix。

Unix 最初的设计目标是多任务多用户的 C 语言操作系统。在发行之后,Unix 的易移植性及其独特的设计哲学使它很快吸引了社会各界的关注,但 Unix 并不是开源的,AT&T 公司通过颁发许可证的方式授权其他人使用 Unix。

BSD

随着 Unix 在学术界的影响越来越大,伯克利逐渐成为围绕 Unix 展开的学术活动的中心。70 年代,随着 Unix 的不断发展,一个新版本的软件在伯克利诞生了:BSD (Berkeley Software Distribution)。

BSD 是加州大学伯克利分校对 Unix 系统进行的扩展与重新发行,一些额外的工具与特性被添加到其中,包括著名的编辑器 vi。

如上所述,Unix 是闭源软件,版权归属于 AT&T,因此在 1989 到 1994 年间,BSD 社区重写了代码当中版权归属 AT&T 的部分,并开始以 BSD 许可证发行,从此 BSD 成为开源软件。

BSD 开源之后,BSD 的变体迅速发展,从 386BSD 开始,到 FreeBSD, NetBSD,再由 NetBSD 发展出 OpenBSD (1993),FreeBSD 发展出 DragonFly BSD (2003),Apple 公司的 MacOS / Darwin 也是基于 BSD 发展而来。

Unix 战争与 POSIX

在 BSD 大行其道的同时,Unix 的商业订单也在爆炸增长,IBM 公司的 AIX,Sun 公司的 Solaris,微软的 Xenix 等等发行版层出不穷,它们都是基于 Unix 研发的操作系统。AT&T 自己也在 Unix 的基础上开发了 System V。

发行版越来越多,社区和市场越来越混乱,自然而然地,制订标准势在必行,虽然 Unix 是 AT&T 发明的,但当时社区中最流行的发行版却是 BSD,同时商业巨头们也不愿完全服从 AT&T,在经历了数年的 Unix 战争 后,POSIX (Portable Operating System Interface) 被确立下来。

POSIX 一开始只规范了部分 C 库函数(在即将到来的 C 语言标准范畴之外),后来扩展到其他系统环境层面。基于 Unix 的操作系统都约定遵循这一操作系统的 "最小公分母"。

GNU/Linux

在 BSD 陷入法律泥潭的时候(大约 1992 - 1994 年),有两个项目获得了快速的发展:GNU 和 Linux。

GNU (GNU is Not Unix) 是由 Richard Stallman, RMS 创建的开源软件项目,包含了一个完整的操作系统 Hurd,及一系列软件,全部采用 GPL (General Public License) 许可证发行。

Linux 是由 Linux Torvalds 创建的操作系统内核项目,同样采用 GPL 许可证发行。Linux 在创建之初便迅速博取了社区的关注,一方面使用 BSD 存在法律风险,同时 Hurd(属于 GNU)又迟迟不能发布,因此大家将 GNU 中的软件与 Linux 内核结合使用,这种方式逐渐流行,最终成为主流,也就是今天常见的 GNU/Linux,或者直接叫 Linux。

叫 GNU/Linux 和 Linux 有区别吗:GNU/Linux naming controversy - Wikipedia

Linux 属于类 Unix 操作系统,因为 Linux 兼容了 POSIX。

得益于开源协议,和 BSD 一样,在 Linux 基础上也发展出很多的变体,包括免费的 Fedora, Ubuntu (商业公司 Canonical 开发,但是免费), Debian, Arch Linux, Gentoo,以及商业发行版,如 Red Had 公司的 SUSE。

参考资料

Linux vs. Unix: What's the difference? - Opensource.com

Unix wars - Wikipedia

What is the difference between Unix, Linux, BSD and GNU? - Unix & Linux Stack Exchange

4. Comparing BSD and Linux

sccmg
Loading comments...