2003 年 5 月,SCO 集团,一家 Linux 操作系统供应商,向其客户发送了一封信。信中声明, “我们认为 Linux 在很大程度上是 Unix 的未经授权的衍生品。”1 是什么让 SCO 这么做?
这一行动并非完全出乎意料。3 月份,SCO 曾对 IBM 提起诉讼,指控其泄露商业机密。2 在那起诉讼中,它对 IBM 提出了一系列指控,包括声称 IBM 意图利用 Linux 扼杀 Unix。
对于业内大多数人来说,Linux 就是 Unix。诚然,它是独立于 Unix 开发的,但相似之处显而易见且是刻意的。那么 Linux 如何扼杀 Unix 呢?这取决于你如何解读 “Unix” 这个词。 有许多看待 Unix 的方式:你可以采取谱系学的方法(“它来源于相同的代码库。”),基于标准的方法(“它符合 Unix 03 标准。”),法律方法(“它已被认证为 Unix 03 标准。”),或者技术方法(“它看起来像 Unix,闻起来像 Unix,所以它一定是 Unix。”)。基于最后一个标准,许多人会说 Linux 确实是 Unix。
Unix 家族有数百个成员,其中一些已被其父母否认。Éric Lévénez 维护着一个 Unix 族谱3,如果以微型字体打印出来,大约有 10 英尺长。 简而言之,虽然,基于原始源代码,主要有三个版本:
1. Research Unix 是最初在贝尔实验室开发的 Unix。
2. BSD(Berkeley Software Distribution 的缩写),也称为 Berkeley Unix,是在加州大学伯克利分校开发的版本。它是 20 世纪 80 年代主要的 Unix,这得益于互联网的发展以及众多工作站制造商的采用,特别是 Sun Microsystems, Inc. 和 Digital Equipment Corporation。
3. 在 80 年代早期,AT&T 开发了 System III,然后是 System V。它说服了许多工作站制造商从 Berkeley Unix 转向 System V。
在 80 年代,发生了很多事情:
System V 有什么问题?引用 Peter H. Salus 的《Unix 的四分之一个世纪》(Wiley,1994 年)封面上的一个按钮上的话,“System V 做 Unix 所做的一切,只是做得不太好。” 更技术性的原因是缺乏良好的内存管理,几乎不存在对多处理器的支持,以及安装过程更注重许可数十个单独的组件,而不是易用性。1992 年 1 月,德国杂志 iX 计划对不少于五个不同版本的 Unix System V.4 进行评测。4 当时,所有作为 “System V.4” 销售的 Unix 版本都在 PC 平台上运行。5 几周以来,iX 尝试了多台机器,但只成功启动了五种系统中的一种。该杂志放弃了评测。
硬件供应商也有自己的问题。System V.4 的初始版本,即 System V.3、微软(后来的 SCO)的 XENIX 和 4.3BSD 的混合体,存在太多漏洞,以至于那些基于 System V.4 提供 Unix 产品的供应商不得不花费长达两年的时间进行调试才能交付产品。他们还调整了代码以适应他们的系统——在这个过程中修复了技术缺陷——解决了管理问题,并给产品起了一个独特的名字。标准 System V 的市场份额开始萎缩也就不足为奇了。最新的 System V 实现是 Unix System Laboratories (USL) 和 Novell 在 1992 年创建的 UnixWare。它成功地解决了上面列出的弱点,但为时已晚。即使在 Linux 和免费 BSD 版本普及之前,标准 System V 也已开始逐渐消失。
我们已经看到 “Unix” 意味着很多东西,其中一些与货币价值相关联。特别是,商标、源代码库和相关专利被认为是很有价值的。这些分别属于不同的组织:
有趣的是,在这三个组织中,只有 SCO 对开源表示反对。除了 Unix 认证之外,Open Group 还根据 Linux 标准库提供 Linux 认证——显然是亲 Linux 的立场。而 Novell 已公开声明其对 Linux 的支持。12
SCO 的行为就好像它是 Unix 游戏中最重要的一员。事实上,它相对来说微不足道。System V 最后一次授权给第三方是在 1994 年,当时 Hewlett-Packard (HP) 将 HP-UX 升级到 10 版本。自 1982 年首次发布以来,HP-UX 一直基于 System III 和 System V,所以它并不是一个新客户。再往前追溯是在 1991 年,当时 Sun 创建了 SunOS 5。13 SCO 自己的产品不符合最新的 Unix 规范。其最新的产品 UnixWare 已通过 Single Unix Standard Version 1 或 Unix 95 认证。14 SCO OpenServer 于 1988 年推出,基于 Unix System V.3.2,并通过了 Unix 93 认证。15 无论怎么说,它们的销售情况都不佳。(我不知道除了直接从 SCO 购买之外,我还能在哪里购买 UnixWare。)Sun 在 1997 年宣布了 Unix System V.5,但到目前为止,唯一的实现是 UnixWare 7。16 与许多其他 Linux 供应商一样,SCO 尚未找到一种通过分发和支持 Linux 来盈利的方法。其独特的资产是 System V 代码库,这是几乎所有当前商业 Unix 发行版的基础。
那么这些发行版在做什么呢?它们正在逐渐消失。实际上只剩下四个主要的 Unix 供应商:HP、IBM、SGI 和 Sun。它们都在积极开发 Linux。SCO 看到其收入来源正在消失。你无法从免费软件中获得收入。(请参阅本期第 46 页 Mike Karels 的 “商业化开源软件”)。
另一方面,Linux 非常像 Unix。它肯定建立在 Unix 三分之一世纪的经验之上。但这仅仅是全部吗?难道它没有从 Unix 源代码中获益吗?如果真是这样,SCO 可以从中获利,因此它花费了大量时间调查 Linux 中是否包含任何 Unix 代码。而且,似乎,它找到了一些。
当你发现有人滥用你的知识产权时,你会怎么做?最显而易见的事情是让他们停止。但 SCO 并没有这样做。它拒绝展示足够的证据,让人们甚至自愿删除有问题的代码。相反,它要求签署严苛的保密协议,然后才会展示代码。17 它似乎并不希望代码被删除。SCO 高级副总裁 Chris Sontag 曾公开表示,“一旦贡献,代码就无法删除。”18 这当然是无稽之谈。操作系统的源代码会不断发展,这涉及到代码的替换。SCO 的法律前身曾提起诉讼,要求人们从其源代码中删除 Unix 代码。但这种态度表明 SCO 希望代码留在那里;如果 Linux 包含 Unix 源代码,它就可以收取版税。
这将解释 SCO 的许多行为。但 SCO 真的想要从 Linux 中获得版税吗?如果它想要,它能得到吗?
SCO 的做法正在造成很多损害,其中最不小的损害是给 SCO 自身。
SCO 行动最明显的影响是 FUD:恐惧、不确定性和怀疑。它发送给客户的信件似乎旨在造成最大的损害,引发了微软是幕后黑手的阴谋论,以及真正的意图是扼杀 Linux。几天后,当微软宣布它正在授权 SCO 技术19时,这些理论获得了额外的燃料。
其他影响对 SCO 的损害更大。在 3 月份对 IBM 提起的诉讼中,它写道:
84. 在 IBM 介入之前,Linux 是软件领域的自行车。Unix 是软件领域的豪华汽车。为了使 Linux 达到企业客户使用的必要质量,必须对其进行重新设计,以便 Linux 也成为软件领域的豪华汽车。这种重新设计在企业级水平上在技术上不可行甚至不可能,除非:(1) 高度的设计协调,(2) 获得昂贵而精密的的设计和测试设备,(3) 获得 Unix 代码、方法和概念,(4) Unix 架构经验,以及 (5) 非常重大的财务投资。
几乎没有必要说明这已经到了歪曲事实的地步。但还有更深远的影响。早在 IBM 介入 Linux 之前,SCO 就一直在积极尝试将 Linux 打造成 “豪华汽车”。这意味着 SCO 没有能力做到这一点。这清楚地表明 SCO 不再打算涉足 Linux 业务,但也削弱了 SCO 关于其技术专长的论点。
这只是故事的一部分。在其网站20上,SCO 仍然宣传其自己的 “企业级 Linux”。这种粗暴的矛盾削弱了其针对 IBM 的诉讼以及自身的信誉。结合其他行动,它也助长了更多的阴谋论:SCO 在保密协议 (NDA) 下向媒体和少数程序员展示了 UnixWare 和 Linux 共有的源代码。它声称这些代码是从 UnixWare 中窃取并放入 Linux 中的。
SCO 并没有竭尽全力说服人们。据报道,NDA 的条款非常严格:
[NDA] 本质上允许 SCO 将其提供的任何信息声明为机密,无论签署者是否已经知道,并且不提供任何可以披露该信息的条件。大多数 Linux 开发人员无法签署这样的 NDA,因为它很容易阻止他们再次从事内核工作。同样,任何与 Linux 合作的公司的员工都无法签署这样的 NDA。21
少数程序员已经看到了代码,并证实某些区域存在明显的相似之处,这些相似之处确实只能通过代码复制来解释。SCO 有一个解释。在其诉讼中,它声称:
86. 如果不盗用 Unix 代码、方法或概念以达到这种性能,Linux 不可能快速达到 Unix 的企业完整功能性能标准。
有人得出结论认为 SCO 自己将代码插入到 Linux 中并非不可能:它既有动机也有能力。
然而,此举能否提高 System V 的销量?这不太可能。SCO 一直在销售 Unix,但销量正在下降。大型供应商也在遭受损失。这就是他们转向 Linux 的原因。如果他们认为可以从商业 Unix 中赚钱,他们就不会这样做。
那么从 Linux 中获得版税呢?这似乎极不可能,但这取决于法院来裁决。对未识别的代码收取版税是很困难的。如果它被识别出来,就可以将其删除。无论如何,Linux 不是唯一的免费类 Unix 操作系统。还有 BSD,Unix 的真正后代。他们 10 年前就打过官司,而且早已和解。
在 Linus Torvalds 开始开发 Linux 的同时,伯克利 CSRG 的 Bill Jolitz 正在努力从构建它的 AT&T 基础上提取在伯克利编写的代码。这并不像听起来那么荒谬。在超过 10 年的开发中,几乎所有 AT&T 代码都被替换了。剩下的代码相对简单且易于替换。由于它是在大学开发的,因此没有 AT&T 代码的 BSD 可以根据更宽松的许可发布,即不需要版税的许可。
这个项目没有在伯克利完成。相反,一些 CSRG 成员成立了一家公司 Berkeley Software Design (BSDI),以销售新的操作系统,称为 BSD/386。Bill Jolitz 独立发布了一个名为 386BSD 的免费版本。AT&T 收到了伯克利版本的副本,但它并没有太在意,直到 BSDI 开始宣传其免费电话号码:1-800-ITS-UNIX。然后其子公司 USL 迅速采取行动,并在几周内更改了电话号码。但这一事件惊醒了沉睡的狗,他们进行了调查,并随后提起了诉讼。
重温该行动的结果是具有启发意义的:
这场诉讼会产生类似的结果吗?一切皆有可能,但存在许多重大差异。在 AT&T 案件中,是一家大公司起诉一家科罗拉多州的小型初创公司,并且涉及几个用户组。SCO 是一家财务基础不稳固22的小公司,起诉的是世界上最大的计算机公司。在融资昂贵的诉讼能力至关重要的情况下,SCO 显然处于更糟糕的境地。
然而,无论诉讼结果如何,SCO 都是错误的。生存的关键不是一些算法或几行源代码。开源已经证明了这一点。
开源的最大教训是,在开放的环境中,软件开发效果更好,人们可以在其中讨论问题。这种好处远远超过了源代码的商业价值。Unix 最初就是以这种方式开发的,即使访问源代码的限制比现代开源方法更严格。问题始于 20 世纪 80 年代;初创公司竞相超越对方,以争夺市场份额。公司开发了自己的 Unix 专有扩展,以将客户锁定到他们的实现中,并且他们严密保护源代码,将其感知价值提升到远远超出任何合理的程度。事实上,Unix 源代码并不比 Linux 源代码更好。
特别是 IBM,已经认识到这些错误。IBM 的企业文化与开源精神相去甚远。它拥抱 Linux 或发布其自有产品的源代码并非出于利他主义;它这样做是因为它认为这在商业上是有意义的。通过这样做,它正在获得相对于抵制变革的公司的优势,一种公平的优势。如果 SCO 想生存下去,它需要理解这个教训。诉讼无法拯救它。
1. SCO 在其网站 (http://www.sco.com) 上发布了这封信,但由于德国采取的法律行动,不得不将其删除。
2. http://www.sco.com/scosource/complaint3.06.03.html
3. http://www.levenez.com/unix/history.html
4. Der große Frust, iX 1992 年 1 月,第 75 页。
5. 这些系统是 AT&T、Interactive、Esix、Microport 和 Consensys。SCO 直到很久以后才提供 System V.4。
7. http://www.unix.org/version3/
8. Compaq 现在称为 Hewlett-Packard,但注册名称为 Compaq。没有 HP 产品通过 Unix 98 认证。
9. http://www.opengroup.org/openbrand/register/xx.htm
10. http://www.opengroup.org/comm/press/who-owns-unix.htm
11. http://www.novell.com/news/press/archive/2003/05/pr03033.html
12. 简而言之,Novell 是 Linux 和开源开发社区的热情支持者。这种支持将随着时间的推移而增加。 http://www.novell.com/news/press/archive/2003/05/pr03033.html
13. 在 1993 年还有一个 Venix 4.2 的衍生版本,但似乎从未发行过。 http://www.levenez.com/unix/history.html, http://www.sco.com/scosource/unixtree/unixhistory01.html
14. http://www.opengroup.org/openbrand/register/xu.htm
15. http://www.opengroup.org/openbrand/register/xt.htm, http://www.opengroup.org/products/cert/certprods.htm
16. http://www.levenez.com/unix/history.html, http://www.sco.com/scosource/unixtree/unixhistory01.html
17. https://linuxjournal.cn/article.php?sid=6956&mode=thread&order=0
18. http://www.byte.com/documents/s=8276/byt1055784622054/0616_marshall.html
19. http://www.sco.com/unitedlinux/
20. http://ir.sco.com/ReleaseDetail.cfm?ReleaseID=109360
21. https://linuxjournal.cn/article.php?sid=6956&mode=thread&order=0
22. http://ir.sco.com/ReleaseDetail.cfm?ReleaseID=102627
GREG LEHEY <[email protected]> 是一位居住在南澳大利亚州的独立 Unix 顾问。在他 30 年的行业生涯中,他从事过从内核开发到产品管理,从系统编程到系统管理,从处理卫星图像到汽油泵编程,以及从移植免费软件的 CD-ROM 生产到 DSP 指令集设计等各种工作。Lehey 曾担任 Tandem Computers 欧洲 Unix 技术支持经理,并在 Siemens-Nixdorf 从事 Unix 开发工作,在 IBM 从事 Linux 开发工作。他开发 BSD 代码已有 10 年,并且是 Vinum 卷管理器(BSD 的免费卷管理器)的作者。他是澳大利亚 Unix 用户组的主席和 FreeBSD 核心团队的成员。他是《移植 UNIX 软件》(O'Reilly and Associates,1995 年)和《Complete FreeBSD》(第四版,O'Reilly and Associates,2003 年)的作者。他正在 http://www.lemis.com/grog/sco.html 上对 SCO 事件进行持续分析。
最初发表于 Queue 第 1 卷,第 5 期—
在 数字图书馆 中评论本文
Amanda Casari, Julia Ferraioli, Juniper Lovato - 超越代码仓库
关于开源的大量现有研究选择研究软件仓库而不是生态系统。开源仓库最常指的是版本控制系统中记录的工件,偶尔也包括围绕仓库本身的交互。开源生态系统指的是仓库的集合、社区、它们的交互、激励机制、行为规范和文化。开源的去中心化性质使得对生态系统进行整体分析成为一项艰巨的任务,社区和身份以有机和不断发展的方式交叉。尽管存在这些复杂性,但对软件安全和供应链日益严格的审查使得在进行关于开源的研究时采取基于生态系统的方法至关重要。
Guenever Aldrich, Danny Tsang, Jason McKenney - 为那些仍然不明白的项目经理打造三部曲
本文探讨了系统采购工具箱中的三种工具,这些工具可以加速开发和采购,同时降低项目风险:OSS、开放标准和 Agile/Scrum 软件开发流程都是国防部采购项目管理工具箱的强大补充。
Jessie Frazelle - 开源固件
通过使固件的操作更加可见且不太可能造成危害,开源固件可以帮助将计算带到一个更安全的地方。本文的目标是让读者感到有能力要求供应商提供更多帮助,以推动这一变革。
Marshall Kirk McKusick, George V. Neville-Neil - FreeBSD 5.2 中的线程调度
一个繁忙的系统每秒会做出数千个调度决策,因此做出调度决策的速度对于整个系统的性能至关重要。本文——摘自即将出版的书籍《FreeBSD 操作系统设计与实现》——以开源 FreeBSD 系统为例,帮助我们理解线程调度。最初的 FreeBSD 调度器是在 20 世纪 80 年代为大型单处理器系统设计的。尽管它在今天的环境中仍然运行良好,但新的 ULE 调度器是专门为优化多处理器和多线程环境而设计的。本文首先研究了最初的 FreeBSD 调度器,然后描述了新的 ULE 调度器。