原文出处: 阮一峰   

这几天,我在读《Unix编程艺术》。

书中介绍了Unix的发展历史。我发现,这是一个很好的例子,说明现行版权制度具有阻碍社会发展的负面作用。

2.

Unix诞生于1969年,是贝尔实验室员工Ken Thompson的个人项目。由于贝尔实验室是AT&T(美国电话电报公司)的下属机构,所以Unix的版权归AT&T所有。

AT&T垄断了美国长途电话业务,所以美国司法部在1958年与它签了一个和解协议。AT&T同意不进入计算机业,不销售任何与计算机有关的产品,以避免司法部起诉它违反《反垄断法》。Unix是计算机的操作系统,所以AT&T不能销售它,任何要求得到源码的机构,都能免费得到。

加州大学伯克利分校得到源码后,为Unix添加了许多功能。然后在1979年,推出了一个自家的Unix版本,取名为Berkeley Software Distribution(伯克利软件套件),简称BSD。

3.

正当Unix蓬勃发展之际,发生了一件谁也没有想到的事情。

1974年,美国司法部再次起诉AT&T违反《反垄断法》。1982年,哥伦比亚地区法庭判决AT&T败诉,必须被拆成8家小公司。但是,这个判决也意味着1958年的和解协议失效,AT&T从此可以进入计算机业。

1983年,AT&T发布了Unix最新版system V,这是一个商业化版本,付费才能使用,并且不得传播源码。这个决定对BSD构成了限制,为了减少纠纷,伯克利分校规定,BSD本身依然保持免费,但是只能提供给持有AT&T源码许可的公司。不过,与此同时,伯克利的师生也开始着手另一项工作:将AT&T的专有代码从BSD中逐渐去除。

80年代后期,几个伯克利毕业的学生,成立了一家Berkeley Software Design Inc.公司,简称BSDi,专门销售BSD的一个商业版本。他们在广告中宣称,自己的产品不包含任何AT&T代码。这句话惹恼了AT&T,1990年BSDi被告上法庭,稍后伯克利分校也被追加为被告。AT&T起诉BSD侵犯了Unix的版权。

这场诉讼对BSD打击极大,所有的开发活动都被迫停止,用户人心惶惶,担心自己也遭到AT&T的追究,因此BSD的使用急剧减少。最后在1994年,双方达到和解,BSD才恢复开发。

4.

AT&T与BSD之间的诉讼,是当代版权制度最恶劣的应用之一。

为什么这么说?

首先,起诉者其实与Unix毫无关系。这是AT&T经理层的决定,而不是开发者的决定。事实上,包括Ken Thompson在内的技术人员一直希望,公司能够公开源码。他们完全有理由这么要求,因为Unix从来不是AT&T的业务重点,最初是个人项目,后来也没有占用公司太多资源。销售Unix的利润,在公司全部业务中,几乎可以忽略不计。为了一点点钱,去打击一个使许多人受益的产品,何必这样做呢。

其次,AT&T根本不关心Unix的发展。它真正关心的是金钱和削弱对手。1994年,官司还没有结束,它就把Unix卖给了Novell公司,从此不再与Unix发生关系,官司也因此不了了之。既然你不想要这个产品,为什么要提起诉讼呢?真是不可理解。

最后,所谓的侵权几乎是不存在的。因为Novell从AT&T买下Unix版权后,检查了BSD的源码,在18000个组成文件中删除了3个,并对其他文件做了一些小修改,然后BSD就重新获得了自由发布源码的许可。这意味着,至多只有千分之一的BSD代码有版权问题,但是就因为这千分之一的问题,导致百分之百的产品被迫中断,完全不符合比例原则。

所以,这场版权官司就是一家利益至上的公司,以微不足道的理由,为了一个自己根本不在乎的产品,悍然发动一场损人不利己的战争。

5.

这场战争给Unix和BSD带来毁灭性的打击。

从八十年代中后期开始,AT&T固执地捍卫Unix版权,完全不顾它的创造者和开发者的愿望,导致Unix丧失活力、一蹶不振,大量开发者无法参与,只好离开了这个平台。

而BSD在1992~1994年期间,开发处于停滞,错过了发展的黄金时机。官司结束以后,又不幸发生分裂,变成了FreeBSD、NetBSD和OpenBSD三个版本。这些原因导致BSD直到今天,都还在操作系统的竞争中处在落后地位。

如果换个时间,官司的损失也许还没这么大。偏偏90年代初是计算机工业决定性的年代,错过了那几年,从此你就不要想翻身了。因为从80年代末期开始,Intel的80×86芯片有巨大的发展,性能快速上升,而成本快速下降,个人电脑的年代就要到来了。市场迫切需要能够运行在386芯片上的操作系统,但是Unix和BSD忙于打官司,都没有去做移植操作系统这件事。其他两个这样做的人,改变了人类历史。

一个是比尔·盖茨,他推出了Windows,占领了个人电脑市场,后来赚了几百亿美元。另一个是芬兰大学生Linus Torvalds,他想学习Unix,但是买不起工作站,就自己写了一个能在386上运行的Linux操作系统,现在全世界超过一半的网络服务器都在使用这个系统。Linus Torvalds后来说,如果他早知道BSD没有法律问题,并且可以被移植到386,他就会加入BSD的开发,而不是自己写一个。

我们不禁要问,如果AT&T不打版权官司、不对Unix收费的话,会发生什么事?……人类的历史、市场的格局也许都会被改写。

6.

Novell买到Unix版权后,也没在手里放多久,1995年又转手卖给了别人。从此,Unix原始版本的开发正式结束。

以后的发展集中在两个方向,一个是各个商业公司自己修改的Unix版本,比如Sun的Solaris,HP的HP-UX,IBM的AIX,另一个则是开源项目的开发,比如BSD和Linux。

Unix版权史的更多相关文章

  1. [转帖]Unix版权史

    Unix版权史   http://www.ruanyifeng.com/blog/2010/03/unix_copyright_history.html 阮一峰的blog 里面写到了 system V ...

  2. 关于Unix/Linux的终端、伪终端、控制台和shell

    历史是什么:是过去传到将来的回声,是将来对过去的反映. ——雨果(法)<笑面人> 阅读本文大概需要花费你15分钟 文章导航: 计算机的发展 UNIX系统的诞生 UNIX系统的发展 终端与控 ...

  3. [转帖]一段关于Unix与 Linux的暗黑史

    一段关于Unix与 Linux的暗黑史 https://blog.csdn.net/a343315623/article/details/51436715 微软曾经开发过 MS-DOS Xenix O ...

  4. 一段关于 Unix、Linux 和 Windows 的暗黑史

    “SCO 在言语上变得越来越好斗,而且还拒绝展示有关诉讼的任何证据,一切都似乎在表明,SCO只不过是在那里拉虎皮做大旗地狂言乱语.但是,微软 决不会轻易放弃这么可以一个利用这些狂言乱语的好机会.”20 ...

  5. 【历史】- 一段关于 Unix、Linux 和 Windows 的暗黑史

    “SCO在言语上变得越来越好斗,而且还拒绝展示有关诉讼的任何证据,一切都似乎在表明,SCO只不过是在那里拉虎皮做大旗地狂言乱语.但是,微软决不会轻易放弃这么可以一个利用这些狂言乱语的好机会.”2003 ...

  6. UNIX文化与历史--初学者必看

    UNIX文化与历史 UNIX这个名字早已被众多用户所熟知.作为一个操作系统,它以其独特的魅力----即开放性.可移植性.和多用户多任务等特点,不仅赢得了广大用户的喜爱,同时也受到许多计算机厂商的青睐. ...

  7. UNIX发展史简介

    1965年贝尔实验室(Bell Labs).通用电气(General Electric)和麻省理工学院(MIT)欲共同打造MULTICS(Multiplexed Information and Com ...

  8. SCO Openserver、SCO Unix、SCO UnixWare、Solaris几者到底是什么关系,有什么相同或不同?

    Unix操作系统的历史漫长而曲折,它的第一个版本是1969年由Ken Thompson在AT&T贝尔实验室实现的,运行在一台DEC PDP-7计算机上.这个系统非常粗糙,与现代Unix相差很远 ...

  9. Linux,Unix,GNU 到底有什么样的渊源?

    Linux,Unix, GNU,你可能经常听到这些名字被放在一起,比如 “Linux是类Unix系统”, “Linux其实应该叫 GNU/Linux” 等等.为什么会有这些说法,这些名词的历史渊源和背 ...

随机推荐

  1. 2.windows下安装git

    转自:https://blog.csdn.net/lvkelly/article/details/54666868

  2. CSS3个人盲点总结【总结中..........】

    ~:表示同辈元素之后指定类型的元素,如;elm1 ~ elm2表示,elm1之后的所有elm2元素,且elm1与elm2都是在同一个父级元素. +:表示同辈元素的兄弟元素. \A:一个空白换行符 &l ...

  3. Batch脚本获取日期SET YEAR=%date:~10,4%

    在batch脚本中我们可以通过下面的语句来对日期进行操作: SET YEAR=%date:~10,4% SET MONTH=%date:~4,2% SET DAY=%date:~7,2% SET HO ...

  4. Android 那些年,处理getActivity()为null的日子

    在日常开发中的时候,我们经常会使用ViewPager+Fragment进行视图滑动,在某些部分逻辑也许我们需要利用上下文Context(例如基本的Toast),但是由于Fragment只是衣服在Act ...

  5. Generating SSH Keys for github

    由于最近电脑重装了Windows 8.1, 想用github维护一些代码.故不得不重新生成一下ssh key. 按https://help.github.com/articles/generating ...

  6. rman参数

    rman 参数 RMAN> show all; 参数是存放在控制文件中的 改参数:(直接改) eg: CONFIGURE RETENTION POLICY TO REDUNDANCY 3 参数: ...

  7. SpringBoot学习笔记(16)----SpringBoot整合Swagger2

    Swagger 是一个规范和完整的框架,用于生成,描述,调用和可视化RESTful风格的web服务 http://swagger.io Springfox的前身是swagger-springmvc,是 ...

  8. UI控件设置

    去掉cesium默认的版权信息: 在style样式中添加 .cesium-widget-credits {display:none !important} 去掉动画控件.地址搜索控件.图层选择控件.操 ...

  9. [codevs3955]最长严格上升子序列(加强版)

    题目大意:给你一个序列,要你求该序列中最长严格上升子序列的长度. 解题思路:此题算是一道LIS模板题.普通的$O(n^2)$的LIS是会TLE的,因为$n\le 1000000$,所以此题要用单调队列 ...

  10. svn 验证位置失败 Authorization failed

    进入svn的conf目录下 修改svnserve.conf [general] anon-access = none  #未登录用户不允许访问 auth-access = write  passwor ...