{ 万圣节文件I -- 1.10}
原文: http://www.opensource.org/halloween.html
.
翻译: Brian Lin, foxman@okstation.com
开放原始码软体
一个(新的?)开发方法学{ 万圣节文件主文是微软内部策略备忘录, 关於如何对Linux/Open Source现象做反应.
(本文已改名为``万圣节文件I''; 还有个续集, ``万圣节文件II'', 是第二份备忘录, 明白得指名Linux.)
微软已经公开确认这份备忘录的真实性, 但狡赖仅为工程师的研究, 并非微软的政策.
不过, 在结尾的共同作者列中, 有好些是已知在微软内部的重要关键人物, 而且该文读起来犹如该研究有公司顶级管理人员的支援; 它可能甚至被运用为政策白皮书用以引起Bill Gate的注意 (作者似乎有预期Gates会读).
不管是那种状况, 它提供我们非常有价值的观点, 来看微软轻视开放原始码的心理 -- 也就是, 您会看到, 一个由狡滑及团体近视的奇异组合.
仅管有人推测这是份蓄意的□漏, 不过看起来不太可能. 这份文件太受诅咒; 部份内容甚至可在美国司法部门上, 被用来当成反竞争业务的证据. 此外, 第一次接触时, 作者"拒绝证实或否认", 因此可以考虑微软事前并没有蓄意搞这一套.
既然作者多方引用我对开放原始码团体动力的分析 (The Cathedral and the Bazaar及Homesteading the Noosphere), 那麽看来由我来代表这个团体的反应应该算是合理的. :-)
引用索引:
本文有些实在值得引用的, 因此直接连接到它们所在之处. 知道一下``OSS''是作者对``Open Source Software''的缩写会有点帮助. FUD, 是微软特色战略, 在此文有 说明 .
*
OSS摆出一付姿态直接威胁微软短期的收入及平台, 特别是伺服器领域. 此外, 在OSS中, 其平起平坐的本质及自由理念的交换已经使其自身受益, 程度达到我们目前版权模式无法驭越的高点, 因此可以说是长期开发者心智分享的威胁.
*
最近的个案研究(网际网路)提供了非常引人注目的证据... 即商业品质可被OSS计划所达成/超越.
*
...要了解如何与OSS竞争, 我们必须专研一种运作方式, 而不是针对一家公司.
*
OSS是长期可信的... FUD战略无法用於与之战斗.
*
Linux及其它OSS支持者正使其累进更多的可信证明, 即OSS至少与商业替代品一样的强建 - 如果没有超过的话. 网际网路提供了一个理想, 高度可见的展示台给OSS界.
*
Linux被用於重要任务上, 商业环境下, 而拥有极佳的大众口碑. ... Linux性能表现远超其它UNIXes ... Linux正在逐步地接管x86 UNIX市场 ...
*
只要服务/协定是有用的, Linux就能赢.
*
OSS计划已经在许多伺服器应用上有稳固的基础, 因为拥有广泛地有用工具, 简单的协定. 利用污染这些协定, 及开发新而复杂的协定, 我们可以防堵OSS计划进入市场.
*
OSS计划在集合与驾驭数千人团体IQ的处理能力实在惊人. 更可怕的, OSS福音在网际网路传播上的规模, 远远快过及大过我们的规模.
如何阅读本文件:
注解为绿色, 用括弧包起来的, 是我说的(Eric S. Raymond). 我将我认为在文中属於关键点的转成红色. 我在这些点上有加一些注解; 您可以透过以下这些标记略过这些注解.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
我将全文留著不动(甚至没有改正错字), 因此您可以读到Bill Gates会读到的关於Open Source的所有相关. 本文很长, 但请坚持下去(译注: 译者英文版看了五个小时才看完, 因为还要思考内容). 然而反思一下, 这是很值得的 -- 有好几个令人惊讶的洞察力深藏在其中.
威胁评价:
我认为在备忘录中, 最过火最超过最危险的战略莫过於具体的阴险字眼 ``解效协定(de-commoditize protocols)''.
如果出版本文没有其它作用的话, 我希望它至少唤醒大众竞争封杀的问题, 消费者选择性的腐蚀问题, 更高的价格, 及这个战略所意含的垄断锁住消费者.
就如同微软尝试绑架Java, 及试图搞砸"写一次, 四处跑"的科技浅力, 如此禄人之心可知之.
我对此点有广泛讨论. 为如何制止这种战略有效, 我相信open-source支持者必须开始强调以下几点:
历史: (译注: 此处仅为Eric S. Raymond的变动记录, 原可舍去, 留此保持完整性, 因此不翻译了)
The first (1.1) annotated version of the VinodV memorandum was prepared over the weekend of 31 Oct-1 Nov 1998. It is in recognition of the date, and my fond hope that publishing it will help realize Microsoft's worst nightmares, that I named it the ``Halloween Document"'.
The 1.2 version featured cleanup of non-ASCII characters.
The 1.3 version noted Microsoft's acknowledgement of authenticity.
The 1.4 version added a bit more analysis and the section on Threat Assessment.
The 1.5 version added some bits to the preamble.
The 1.6 version added more to one of the comments.
The 1.7 version added the reference to the Fuzz papers.
The 1.8 version added a link to the Halloween II document.
The 1.9 version adds a note about HTTP-DAV support.
The 1.10 version adds more on the ``who do you sue?'' question.
}
Vinod Valloppillil (VinodV)
Aug 11, 1998 -- v1.00
Microsoft Confidential
Table of Contents Table of Contents *主题摘要
*开放原始码软体
*什麽是开放原始码软体?
*软体版权分类
*开放原始码软体对微软来说非常重要
*历史
*开放原始码处理过程
*开放原始码开发团队
*OSS开发整合
*平行开发
*平行除错
*冲突解决
*动机
*程式码分歧
*开放原始码强度
*OSS成长特性
*长期可信度
*平行除错
*平行发展
*OSS = `完美' API福音/文件
*新版速度
*OSS弱点
*管理价格
*处理议题
*组织可信度
*OSS公司经营模式
*第二线服务
*没有领导者 -- 市场参赛权
*廉价下游提供者
*有力的鼓动家 -- 先动手再说, $$往後再谈
*Linux
*什麽是Linux?
*Linux是真实可信的作业系统 + 发展过程
*Linux在伺服器中是中短期的威胁
*Linux不太可能是桌上系统的威胁
*击败Linux
*Netscape
*组织 & 版权
*强处
*弱点
*预测
*Apache
*历史
*组织
*强处
*弱点
*IBM & Apache
*其它OSS计划
*Microsoft的反应
*产品弱点
*撷取OSS好处 -- 开发者智慧分享
*撷取OSS好处 -- 微软内部作业
*延展OSS好处 -- 服务公共建设
*减弱OSS攻击
*其它相关链结
*感谢
*校订记录
*
开放原始码软体
一个(新的?)开发方法学 主题摘要开放原始码软体(OSS) 是个开发过程, 呈现了快速开发, 新增功能及修正既有系统错误的方式. 近年来, 随著网际网路的成长, OSS计划已达成传统商业计划所能成就的深度及复杂, 如作业系统及重任伺服器.
{ 好, 这说明了微软在这个要命关头可没有睡著. }
不过, 其它OSS处理的弱点, 提供微软一条途径, 来收取其关键特性的好处, 诸如架构改善(如storage+), 整合性(如schemas), 易用性, 及组织支援.
{ 这份摘要建议很有趣, 因为它与後面 解效协定(de-commoditizing protocols) 中不相一致. }
开放原始码软体 什麽是OSS?| 软体型态 | |||||||
Commerical Software |
|||||||
Trial Software |
X (Non-full featured) |
X |
|||||
Non-Commercial Use |
X (Usage dependent) |
X |
|||||
Shareware |
X -(Unenforced licensing) |
X |
|||||
Royalty-free binaries ("Freeware") |
X |
X |
X |
||||
Royalty-free libraries |
X |
X |
X |
X |
|||
| Open Source (BSD-Style) | X |
X |
X |
X |
X |
||
| Open Source (Apache Style) | X |
X |
X |
X |
X |
X |
|
| Open Source (Linux/GNU style) | X |
X |
X |
X |
X |
X |
X |
| License Feature | Zero Price Avenue | Redistributable | Unlimited Usage | Source Code Available | Source Code Modifiable | Public "Check-ins" to core codebase | All derivatives must be free |
Apache
C 2000 opyLeft
{ 很有趣的事, 可见到它们如何将最後三种分开来分类, 在open-source界一般视之为一同.
对我们来说, open-source版权及授权给使用者及支援厂商是最主要的, 特定的开发业务并不特别附在我们的版权形式中. 另一方面来说, 在微软的分类中, 其分类的基础是由谁来写出这些主核心程式.
这倒是反应出大部份现实中的中心观点, 并反应出备忘录作者缺乏想像及了解, 它并不完全了解分散式开发的传统, 这实在是一点都不惊讶... }
开放原始码软体对微软来说有很重要的意义{
这些句子放在一起非常地自我矛盾, 除非"最近的个案研究"都是"消遣". 既然这样, 又何必叫它们"非常引人注目的证据"? 这好似有点自我保护, 并且将第二句话补满. 然而, 第一句可算是微软的大让步. 任何状况下, "消遣"是失效的. 看看 Fuzz Revisited: A Re-examination of the Reliability of UNIX Utilities and Services . 这里有几行很适切:我们测试过商业版的UNIX工具失效率... 范围从15-43%." "免费发行的Linux版UNIX失效率次低, 9%", "在我们的研究中, 最低的是GNU工具, 仅7%.""
}
另一个重要界线, OSS界已经著手处理的是计画复杂度. OSS团队正在进行迄今为止只有商业, 具经济组织/有动机开发团队才能处理的 大规模及复杂度的计划. 例如Linux作业系统及Xfree86 GUI.
OSS过程与网际网路息息相关, 网际网路提供了巨大的分散开发资源. 看看一些OSS计划的规模:
Project |
Lines of Code |
Linux Kernel (x86 only) |
500,000 |
Apache Web Server |
80,000 |
SendMail |
57,000 |
Xfree86 X-windows server |
1.5 Million |
"K" desktop environment |
90,000 |
Full Linux distribution |
~10 Million |
OSS过程是特有的, 特别是其参与者的动机及资源可把问题攻下来. 因此, OSS有些有趣, 不重覆的资产是必须要全面加以了解的.
历史OSS
在业馀玩家及科学团体扎下很深的根, 特别是以交换原始码做为象徵.网际网路软体
对OSS的最大规模个案研究是网际网路. 大部份网际网路程式, 在早期到目前为止依然是OSS, Tim O'Reilly 有相当的描述 ( http://www.techweb.com/internet/profile/toreilly/interview ):TIM O'REILLY:
自由软体基金会/格弩计划(Free Software Foundation/GNU Project)
第一个进行现代化有组织性的OSS是在MIT的Richard Stallman. 在1983年後期, Stallman建立自由软体基金会(FSF) -- http://www.gnu.ai.mit.edu/fsf/fsf.html -- 以产生免费版本的UNIX作业系统做为终极目标. 以GNU绰号之名(绕口的名字, "Gns's Not Unix"), FSF释出一系列的原始码及执行码. 原始FSF/GNU创设动机在於生产完整的OSS Unix. 而他们做到了, 目前已经贡献了许多著名并广泛使用的应用软体及程式工具, 包含:释放式版权(CopyLeft Licensing)
FSF/GNU
软体引入了"copyleft"版权方案, 不但使得藏起原始码是非法的, 也使藏起由GNU软体原始码所延伸的工作也非法. 该文件即著名的General Public License(GPL).Wired
杂志对该方案及目标有以下的摘要 ( http://www.wired.com/wired/5.08/linux.html ):商业软体开发通常是由组织因为经济目标所设立的. 不过, 既然钱不是OSS的主要动机, 了解该威胁的性质需要深一步了解 开放原始码团队的动机及其处理过程.
换句话说, 要了解如何与OSS界竞争, 我们必须瞄准一种过程而非一家公司.
{ 这是很重要的洞察力, 是我希望微软遗漏掉的. 真正的战场不在於NT对Linux, 或是微软对Red Hat/Caldera/S.u.S.E. - 它是一场封闭原始码对开放原始码的圣战, 教堂对市集(The cathedral versus the bazaar).
这在反方面来说是一样的, 也就是何以打击微软, 因为微软是敌方象徵 - 它们是表象, 而非病根. (译注: Raymond这句话非常的深, 起源於Homesteading the Noosphere, 需要深入解释一下, 原文为: This applies in reverse as well, which is why bashing Microsoft qua Microsoft misses the point - they're a symptom, not the disease itself. 有许多的误解都由此而来, 在Open Source界有几个主流: 传统Open source是保持理念者, 可以说比较能够走长路, 也是目前OSS的主力军. 有许多吃了微软的亏的人, 不见得是公司, 大多数是个人, 进入Open source, 使用Linux, 发现了另一片天空, 有部份的人则开始拿Linux当武器, 进攻微软, 从文斗笔攻到网路奇袭, 样样都来, 糟糕的事是太成功太有效, 微软的系统太不堪一击, 造成不少破坏, 於是造成Linux恶名, 使外界误解Linux是玩家骇客的栖身之地, 这样的行动在1993-1997年间相当盛行. 译者也是其中之一, 到目前还是死性不改. 纯粹Open source是理想主义者, 对一切非开放的系统都进行笔攻, 最有名的Open source内部问题就是KDE/GNOME之间的圣战, 这场文斗在Troll Tech 释出Qt版权後落幕, 也使译者松一口气, 可以安心翻译Qt文件. 这场笔战主要是纯粹Open source主义者与抱持其它理念者之间意见整合. 部份Open source主要是商业机构, 如Sun, IBM, SGI等等这些相关者, 以及一些个人, 有著其它的考量, 不能完全释出原始码者. 在这所有流派之间, 大家可以注意到, 没有任何一点与微软有重合之处. 其次, 不管是那一种Open source版权, 其内容都与微软完全颠倒; OSS要求开放自由, MS完全封锁独裁; OSS的开发方法是科学的, MS是商业的; OSS要求免费, MS样样要钱; OSS开发者大多负责任, 有问题会以最短时间修改完成, 使用者有问题都会主动回答, MS只问钱, 有问题修改慢慢来不说, 修补程式还要钱, 顾问支援也要钱; OSS不镇压竞争者, 重复性质的开发团队, 以技术一较上下, 采自然淘汰, 有许多的例子甚至可互助共荣, 例如多样化的X Window Manager; MS眼中则容不下一颗沙子, 挡我路者死, 采用各种阴险的技俩杀死对手, 例如著名的FUD, SS战略, 及黑函等等; OSS不做夸大广告, 而MS只怕是全世界最会说谎的一家公司; 於是OSS与MS之间, 全面背道而驰, 自然而成为天敌. 再从消费者的观点来看, 购买微软货物只有助长恶势, 而OSS是站在高处, 明白指出这个问题的团体, 并与之对抗. 因此, 为何说微软是表徵, 所指的是微软的运作模式, 对世界经济与科技的发展, 有极大的伤害. OSS对抗的并不是一家公司, 而是一种现像, 而这种现像, 由微软明白的呈献, 称为微软现像, 其影响之深入及各角落. 如果有其它的公司有类似的现像, OSS本质上, 就很容易会自然相互对抗, 不用主动找上, 该公司也会自然地与OSS对峙. 因此Raymond希望Anti-MS Linux Hacker要了解到Open source的真意, 而非一谓地针对微软. ) 我希望有更多Linux玩家了解这一点.
在实际的层面, 这样的洞察意谓著, 我们可以预期微软的宣传机器, 会直指开放原始码的文化与过程, 而非特定的竞争者. 记住这句话... (译注: Raymond这句话有所保留. 似乎有意保护一些Open source的发展商, 如Red Hat/FreeBSD/Caldera/S.u.S.E./Turbo Linux等等. 我的想法与Raymond不同, 我认为微软智曩团足够聪明, 一定会得到与我相同的结论, 因此我把Raymond没讲出来的话写出来, 希望知道的人要适时地警告. 在公司级的层面, 以Open source做为基础的公司, 如Red Hat/FreeBSD等等, 使用FUD战略依然是有效的, 本文作者是工程师, 并非在市场上打战的, 无法得到这样的结论. 其次, FUD固然会对OSS整体形像无损, 但运作到公司团体的方向, 依然非常有力. 因为, Open source基础的公司是以提供顾问及服务做为主力, 也就是人与人之间的相处, FUD释放谣言, 受服务的公司听信谣言或是 相信眼前的稳定是很难判定的. Open source服务公司是站在前线, 对OSS理念的拓展, 其次, 可以回馈到Open source界. 因此, 以FUD来进攻这些公司, 会间接造成OSS理念及发展的障碍. OSS脚步一慢下来, 微软便可利用时间布署Shifting Standards战略来攻击OSS. 虽然作者建议FUD无效, 但我相信微软依然会用FUD做为武器, 最有可能的第一个目标, 可能就是Red Hat Linux, 而RH目前的後台, 正是与MS撕破脸的Netscape, Intel, Sun, AOL. 因此, Open source界要特别注要到谣言, 澄清谣言的速度要快. 此外, 要特别注意到台面下的动作, 特别是微软蚕食Open source的服务对象.) }
开放原始码开发团队{
非常有趣的, 作者注意到这一点, 但它并没有继续讨论下去Linux在国际化或在海外的延展威力的成功 (特别是欧洲), 是因为恐惧美国科技统治的威力所驱策的. 这样的遗漏可能表示出微软策略的明显盲点. ( 译注: Linux的开发者主力是美国及欧洲, 在亚洲则是日本, 台湾则在起步. 观察整个开发人员的分布及特质, 可以看出一些有趣的事实. 在美国的开发人员有大规模的反微软人士, 欧洲的心态较为中立, 并没有特意反对什麽, 因此有许多精彩的作品, 可以看出明显的软体公共建设心态. 另外, 澳洲/纽西兰也是Linux大本营, 出发点也近於欧洲. 日本/中国/台湾开发人员居住美国者也有相当多, 本土方面, 日本Turbo Linux经营成熟, 向软体公共建设稳定的迈进, 近日前则宣布描准中国大陆市场. 台湾与韩国大致相当, 台湾可能较多一点, 但重视程度离开始进行软体公共建设之路, 还有一段距离. 可以看出美国科技统治在台湾及韩国根扎得很深. ) } 大规模的贡献者及小规模的核心份子. 再一次, Linux有超过千人贡献修补程式, 除错程式等等, 而有大约200人直接为核心程式贡献.通讯 -- 网际网路规模
整合一个OSS开发团队极端依赖以网际网路为基础型式的合作. 典型被采用的方式是全方位使用网际网路统合科技:OSS
共同方向
除了通讯媒体以外, 另外有一些因素隐隐地协调著开发团队的方向. 共同目标 共同目标相当於可见的声明, 普及深入於整个开发团队分散式决策. 一个单一清悉的指令(例如, "重建UNIX")是极度有效的沟通, 并且由一个团队来执行, 而非许多个, 一个无形的团队. (例如, "制造一个好的作业系统"). 共同前例 前例是潜在最重要的因素解释在像Linux作业系统, 这样重量级的OSS计划的快速而有凝聚力的成长. 因为整个Linux团体有著经年累月的经验, 在处理多样化的UNIX上, 他们很容易就可以区分 -- 毫无质疑地 -- 什麽做法有效, 什麽失效. 他们不会争辩在文字编辑器中要用什麽命令格式 -- 大家都已经用"vi", 而发展者就是以这些做为基础, 再往上建构. 具有历史, 20:20的後见之明, 提供了强力潜在的结构 再往前仔细检视组织, 其结构具有强力而有梦想的领导力.{
第一眼看下去, 这读起来犹如红鼻子比尔的注解, 有似有人预期Gates会读这份备忘录 -- 您可以几乎看见作者跪在大哉勇领导者形像之前. 更一般地来看, 它具有一些严重而可能可利用的对开放原始码社团能力的低估, 以便使自己的领导者看来具有梦想. 我们并非从"20:20的事後聪明"中取得Emacs或Perl或是全球资讯网 -- 而把相对保守的Linux核心设计, 看成是里 2000 L去消遣模式的开发模式, 也是不正确的. 所以, 这就是说微软对开放原始码的回应, 可能就是强调错方向在革新, 同时在我们的行动, 及我们对这个世界所表达的方式两个方面上. } 共同技巧NatBro
指出, 对OSS发展来说, 先决条件需要以共同接受的技巧做为基础. 这一点与先前所提及的共同前例现像相近. 从其Email:Raymond
对自己的OSS计划解析, 以求取规则元素, 期许能够在未来被其它OSS计划所利用. 一些Raymond的规则元素包含了: 所有伟大的软体都开始於开发者个人的渴望.Raymond
断定, 在严密的开放原始码过程比传统开发环境, 更容易再利用程式码, 因为他们总是保证整个原始码可获取. 大量可取得的开放原始码降低了找寻程式草稿所需的代价.``Plan to throw one away; you will, anyhow.''
Raymond
主张精华的文件及重要的开发者支援运用到OSS计划, 以使好处最大. 程式文件是商业软体开发者典型忽略的一环, 而此通常在OSS中是致命的错误. 早点释出, 释出频繁, 然後听听您的使用者.{
这实在是个有趣的傲慢声明, 好似我是被微软那种binary-only的方式所鼓舞一样. 但这也可以看出一些东西出来 -- 虽然作者理智地掌握到原始码释放的重要性, 它却不了解真正释出原始码的手段的强大威力. 或者活在微软的傲慢中使得这一切变得不可能.(
译注: 作者不真正了解所谓, Release early, Release often的真正意义, 也许让他参与个OSS的计划才能真正体会吧.) } 弄一大票beta测试者及共同作者, 几乎所有问题都会被找出来, 并且由某人修正.{
喝, 它总算把这个搞对了. } 平行开发Raymond
引用了Linus Torvald对Linux除错过程的描述:Put alternately:
``
"Impulse Debugging"
一个平行除错的外加好处是, 我加入Raymond的假设, 即"推动除错". 以Linux系统的例子, 意指安装该作业系统的行为, 即为安装除错/开发的环境的行动. 所以, 非常可能某个使用者/开发者, 无意中发现一个其他人的元件的臭虫 -- 特别是那个臭虫是"小只的" -- 那个使用者可以很快的修改过, 并透过网际网路合作技术, 迅速传播该修正回到程式维护者. 换另一种方式说, 因为藉由GNU工具, 一般开发/除错的方法, OSS过程有一个非常低的门槛来进行除错过程. 冲突解决动机
Linux
核心成长起於Helsinki大学的教育计划. 相同地, 许多Linux/GNU系统元件(X windows GUI, shell utilities, clustering, networking, 等等)都是由教育机构个体所延展的.{
同样一个作者稍後竟然说Linux暴民会很难吸收新点子. }"
开拓"("Homesteading")要求成为第一个"发现"者或是贡献最大者. "智域"("Noosphere")则较不明确地定义为"所有工作的空间". 因此, Raymond断定, OSS玩家动机是在於占有工作的大部份领域. 换句话说, 吃最大的一块饼(take credit for the biggest piece of the prize).{
这很敏锐但读错方向了. 它引入了一个领土"疆域", 是不在我的理论中的. 这可能是作者个人的错误, 但我怀疑它反应出微软的竞争导向文化. } 在"开拓智域":...
以这种方式来检视, 很清楚地可以看出open-source玩家的社会实际上是礼物文化. 在其中, 并没有严重"求生必须品"短缺的问题 -- 磁碟空间, 网路频宽, 电脑能量. 软体是免费分享的. 这样的丰满, 产生了一个以获得别人的敬重, 来做为衡量的成功的竞争. 更简洁地 ( http://www.techweb.com/internet/profile/eraymond/interview ):SIMS:
{
啊, 这是如何地坦白, 尤其是来自微软农奴口中! 当然了, 它并没有分析到为何会与微软有关联; 可能是会砸坏家具吧... } 程式分歧OSS
中的分歧 -- BSD Unix 在OSS领域, BSD Unix是分歧程式码的最佳范例. 原有的