Unix那么多的标准有何历史渊源,GNU和linux又存在哪些不为人知的py交易?

很多人并不清楚 Linux 和 Unix 的区别。

简单来讲,先有的 Unix,后来开发 Unix 的公司不允许免费使用了,和倡导免费的组织打起了官司。

然后,有一部分使用习惯的人很不爽,发起了 GNU 计划。

但是 GNU 计划复制了 UNIX 大部分工具和软件,唯独缺一个正常运行的 UNIX 内核,

这时(1991年)有个叫 Linus Torvalds 的学生,对,就是个本科在读学生,

他看过一款简易版 Unix 的系统 (Minix) 的源码,然后就自己模仿着写了一款类 UNIX 操作系统内核,取名叫 Linux

并且,在网上豪言 “老子写的系统你们可以免费用, 不仅如此,老子帮你们优化!”

于是30年过去了,Linux 不断发展和壮大,并且因为坚持开源免费,受到程序开发者们的广泛喜爱。

(图为林爸爸 Linus Torvalds)

既然 UNIX 先来到这个世界上,那么先说下 UNIX 吧,到底 UNIX 是啥呢?

UNIX 的定义一般大致分两类:

第一类  指通过SUS所规范的 官方一致性测试,且由 OPEN GROUP正式授权冠以 "UNIX" 的操作系统。目前没有开源的 UNIX 实现

      SUS 全拼 Single UNIX Specification,这个 SUS 是个 Unix 标准之一,顾名思义,它就是想告诉世人:

      “老子是唯一的 UNIX 规格标准!”

      这个唯一的标准,要从 UNIX 被 At&T 公司卖给 Novell 公司说起。

      大家知道 UNIX 的首个实现是贝尔实验室的 Ken Tompson 开发出来的,

      然后这个贝尔实验室是 At&T 电话公司下辖的实验室,而 AT&T 以前是美国电话市场最大的垄断公司。

      随着时间的变迁和美国反垄断法的施行,AT&T 的实力不如以前,

      在1993年,Novell 公司从 AT&T 收购了 UNIX 的相关业务,

      Novell 买来UNIX然后放弃了 UNIX 这项业务………………(汗!),UNIX 商标权转让给了 X/OPEN 公司。

       X/OPEN 公司是当时由多家国际计算机厂商组成的联盟。致力于采纳和改进现有标准,以制定出一套全面而又一致的开放系统标准。X/OPEN 公司编纂了一本基于 POSIX 标准的可移植性指导丛书《 X/OPEN 可移植性指南》,

       这份指南的第一版推出 XPG3(我也不知道1和2为毛没有)。后来又有了 XPG4 和 XPG4版本2(没想到吧,不是XPG5)!

       这个 XP4 版本2就是 SUS 的前身,其中吸收了 AT&T System V 接口定义第三号中的重要内容,此版也被称为 Spec 1170,

       此处的1170是指标准中所定义的接口(函数、头文件、命令)数量………………啧啧!

       X/OPEN 收购 AT&T (准确说是 Novell) 的 Unix 业务和商标权后,将XPG4版本2“重新包装”为SUS,也叫SUSv1,或称 UNIX95。

  以上就是 SUS 标准的由来,用的最广泛的没记错应该是 SUSv4了。

  怎么样,这个标准的推出程序还是挺复杂的。

  看完上面对 SUS 由来的介绍,肯定有人会问,

   AT&T System V是什么?  ——这就是 Unix 一般分类中的第二大类里的东西了。

第二类  指那种运作方式类似于经典的 UNIX 系统的操作系统。比如,最初 Bell 实验室的 UNIX 系统,及其后来的主要分支 AT&T System VBSD。根据这一定义,一般将 Linux 视为 UNIX 系统。(我宣布 二类 4:1 胜一类 XD,好吧,问题成串来了!)

   最初的 Bell 实验室的 Unix 系统是什么情况,后来咋又分家了呢,System V 和 BSD 是咋回事呢,Linux 和 Unix 系统又有怎样的前世今生,一切的一切请关注今晚20:30分播出的大型科教节目《走近林爸》…………sorry,我又给自己加戏了~~

   1) 最初的 UNIX 系统 —— Bell 实验室 UNIX 以及 C语言 的诞生

   1969年 (此年我国青年正在如火如荼的上山下乡抵制四旧呢,现在竟然在互联网领域追了上来) ,在 AT&T 电话公司下辖的 Bell实验室中,Ken Thompson (not Klay Thompson's father,他是B语言和Unix之父) 开发出了首个 UNIX 实现,至于为何命名为UNIX,建议使用 fucking baidu去了解。

(图左为Ken Thompson。图右为C语言之父Dennis Ritchie,同样逝于2011,然世人只知道这一年steve jobs逝世)

   1969~1979年十年间,(AT&T) UNIX一共发布了前六版,尤其是1975年的第六版,是在 AT&T 之外广泛使用的首个UNIX版本。

   当时在美帝政府的授权下,AT&T 之前垄断着全美电话市场。AT&T 与美帝政府达成的协议条款 禁止 AT&T 涉足软件销售行业——这意味着 AT&T 公司不能将 UNIX 作为产品销售( UNIX 和 ENIAC 一样也是美帝和巨头公司军工合作项目中诞生的)。相反,从1974年的 UNIX 第五版开始,AT&T 准许高校在支付象征性的发布费用(1美刀?) 后使用 UNIX 系统。UNIX 系统的高校发布版包括了相关文档及内核源码(约1万行)。这个高校发布版极大促进了 UNIX 的普及和使用,但也使 UNIX 系统产生分歧。到1979年1月 (AT&T) UNIX 第七版发布,从该版起,UNIX 分裂为了两大分支:BSDSystem V

   2) BSD 的诞生

   Ken Thompson 于1975~1976学年在他的母校 UCB (加州大学伯克利分校) 担任客座教授,在此期间,他和研究生们一起为UNIX 开发了许多新特性。1979年12月,诞生了首个完整的 UNIX 发布版 3BSD。1983年,UCB的计算器系统研究组发布了 4.2BSD,该版本的发布意义深远,因为其包含了 TCP/IP 实现,其中包括socket API以及各种网络工具。4.2BSD和其前身4.1BSD在世界多所大学开始流传,还有 SUN 公司销售的 SunOS 也是基于 BSD 版 UNIX 的。

   3) System V 的诞生。

   在BSD版UNIX在大学广为流传的同时,美国的反托拉斯法案 (详请google) 强制对 AT&T 进行拆分。随着 AT&T 在电话系统市场垄断地位的丧失,AT&T 也因而获准销售 UNIX,这也催生了 System III(3) 于1981年发布,其由 AT&T 所属的 USG (UNIX Support Group) 研发。1983年,System V首个发布版诞生。到1989年,USG 推出 System V Release4。

由于除了遍布于学术界的各种 BSD 发布版外,到20世纪80年代末,商业性质的 UNIX 实现在各种硬件架构上都有了广泛应用,比如 Solaris,  Ultrix 等,当时商用UNIX OS往往与其生产厂商的所销售专有硬件架构搭配,意味着消费者转换OS或者硬件平台成本很高,所以,具备可移植性的 UNIX 系统的需求已显现出来。

以上大概就是 UNIX 的诞生和简要发展历程。

那么对于普通人,与 UNIX 经常搞混的 Linux 又是怎样的操作系统呢?

(图为 Linux 小企鹅,比深圳某鹅厂的企鹅瘦一丢丢)

    首先,术语 Linux 通常用来指代 完整的类 UNIX(UNIX-like)OS,Linux 内核只是其中一部分,一般商业 Linux 发布版中所含的诸多关键组件实际上发源于另一项目,早在 Linux 问世前几年就已经启动了。

    GNU 项目—— GNU is Not UNIX

    1984年,Richard Stallman,供职于 MIT (麻省理工哦),开始着手创建一个 "free" UNIX 实现。由之前所提到,那些专有商用OS 的厂商强加了限制条款,即在一般情况下,计算机软件的消费者不但无权阅读自己所购软件的源码,而且还不能复制、更改以及重新发行所购软件。这让 Statllman 很不爽。于是,为了开发出一套完整而又可自由获取 (前人种树),包含内核以及所有相关软件包的 类 UNIX 操作系统,Stallman 选择正面刚,他发起了 GNU 项目。GNU 项目启动时,BSD 还不具备Stallman 指的那种 "free" 属性,使用 BSD 不但仍需获得 AT&T 的许可,而且用户不得随意修改并重新发布 BSD 中 AT&T 拥有产权的代码部分。

   GNU 项目重要成果之一,就是制定了 GNU GPL (通用公共许可协议),也是 Stallman 倡导的自由 (free) 软件概念在法律上的体现。Linux 发布版中的大多数软件,都是以GPL或与之类似的许可协议发布的 (包括 Linux 内核)。以 GPL 许可协议发布的软件不但必须开放源码,而且应能在 GPL 条款的约束下自由对其进行重新发布。可以不受限制的修改以 GPL 许可协议发布的软件,但任何经修改后发布的软件仍需遵守 GPL 条款。若经过修改的软件以二进制形式发布,那么软件的修改者必须满足软件使用者的以下要求:以不高于发行成本的价格,获得修改后的软件源码。

   最初 GNU 项目开发了大量类 UNIX OS 的程序,但未能开发出能够有效运作的 UNIX 内核,于是在90年代 GNU 项目以 Mach 微内核为基础,发起了 GNU/HURD 计划,然而到如今,HURD仍未能发布。至此,对GNU项目所开发的类 UNIX OS 来说,万事具备,只欠一个能有效运作的内核。

Linux 内核 —— 完美的互补

    1991年,Linus Torvalds,一位芬兰赫尔辛基大学的学生,在一门学习课程中,开始接触一款小型的类UNIX的OS 的内核——Minix。由于 Minix 的开发作者是荷兰大学的一位教授,将 Minix 连同源码完全开放,作为大学操作系统设计课程的教学工具 (教授万岁) 。数月后,Torvalds 开发出一个 UNIX 内核“雏形”,可以编译并运行各种 GNU 程序,为求得其他程序员帮助(早期的开源),Torvalds 在网上公布了系统的源码并且一呼百应,其他程序员一起加入到了 Linux 的开发行列,为 Linux 增加了很多新特性。到1994年3月,开发者们发布了 Linux 1.0版本。2003年12月,Linux 内核 2.6发布 (2.6版本相当具有里程碑意义)。

 

  题外话:BSD 版本——另一款开源的类 UNIX

(图右为 BSD 吉祥物beastie)

    其实,20世纪90年代初, 另一种可以免费获得的 UNIX,也能在x86-32硬件架构上运行 —— 386/bsd 。这项移植工作基于 BSD Net/2 (4.3BSD源码的版本之一),该版本中残存的所有 AT&T 专有源码要么被全部替换,要么予以删除。Jolitzes夫妇 将 Net/2 代码移植到了 x86-32 硬件架构,重写了缺失的源码,并与1992年2月发布了 386/BSD 0.0 版本。但是发布完后,对 386/BSD的开发工作便处于各种原因停滞不前,面对日渐积压的大量补丁程序,另外两组开发团队相机而动,基于 386/BSD 分别创建了自己的版本 :  NetBSD 和 FreeBSD。NetBSD 侧重于对大量硬件平台的可移植性;FreeBSD 则主要关注性能,并成为如今应用最广泛的 BSD 。NetBSD 0.7于1993年4月发布,FreeBSD 1.0 发布于1993年12月1996年OpenBSD 从 NetBSD 分离出去后发布了OpenBSD 2.0,相比较而言,OpenBSD 偏重于安全性。2003年中,一款新型BSD —— DragonFlyBSD出世,它分离于FreeBSD 4.x,但又与FreeBSD 5.x不同,能够支持对称多处理器 (SMP) 架构。

    提到 BSD,必须要说20世纪90年代初 USL(UNIX System Laboratories) 和 Berkeley 之间的那场官司。USL 派生自 AT&T 的子公司,专门从事 UNIX 的开发和销售,而1992年初,BSDi (Berkeley Software Design,Incorporated公司) 开始发行受商业支持的BSD UNIX —— BSD/OS,该发布版包含二进制和源代码,售价995美元,而且,BSDi 还建议潜在客户使用其电话号码1-800-ITS-UNIX,试问这谁能忍,人都骑到你脖子上了还能忍?于是,1992年4月,USL 对 BSDi 发起诉讼,诉状称 BSDi 售出产品中含有 USL 专有源码及商业机密,要求其停止销售。此外,诉状还指称 BSDi 的电话号码容易误导消费者,要求 BSDi 停止使用。这场诉讼最终还加入了对 UC (加州大学) 的索赔请求。最终法院驳回了 USL 几乎所有的诉讼请求,仅对其中两项请求予以支持。随后,UC 又对 USL 发起诉讼,诉称:USL 没有为 System V 中使用的 BSD 代码支付费用。

   这场诉讼悬儿未决之际,USL 被 Novell 收购,Novell时任CEO —— Ray Noorda公开声称:较之于法庭辩论,自己的公司更愿意参与市场竞争。双方最终于1993年1月达成庭外和解。在删除 Net/2 release 源码 18000 个文件中的3个文件,对若干其他文件做出细微改动,并为其他大约70个文件添加USL版权注意事项后,UC 仍可继续自由发布 BSD。1994年6月,经过修改的系统以 4.4BSD-Lite 之名发布。此时,根据和解条款,BSDi、FreeBSD 以及 NetBSD 纷纷以经过修改的 4.4BSD-Lite 源码替换了各自的Net/2 基础源码。尽管这在一定程度上延误了 BSD 衍生系统的开发,但也有有其积极意义。UC CSRG自 Net/2 发布后3年的开发成果,被重新同步到上述系统中。

以上内容总体上对UNIX和Linux以及UNIX的各版本的由来和基本发展做了简要描述,对这段诞生史有兴趣的可以阅读相关书籍!

我是Mark Fan!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值