AKA主页\相关文章\万圣节文件I:开放原码软件


{ 万圣节文件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 BazaarHomesteading 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支持者必须开始强调以下几点:

  1. 买主喜欢在廉价的市场中. 卖主不喜欢.
  2. 廉价服务及协定对消费者来说有利; 比较便宜, 更多的竞争, 更多的选择.
  3. "解效(De-commoditizing)"协定意谓减少选择, 价格升高, 及镇压竞争.
  4. 因此, 微软如果胜利, 消费者一定输.
  5. 开放原始码推动 -- 的确有赖於 -- 廉价服务及协定. 因此对消费的利益是相协调的.

历史: (译注: 此处仅为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摆出一付姿态直接威胁微软短期的收入及平台, 特别是伺服器领域. 此外, 在OSS中, 其平起平坐的本质及自由理念的交换已经使其自身受益, 程度达到我们目前版权模式无法驭越的高点, 因此可以说是长期开发者心智分享的威胁.

{ 好, 这说明了微软在这个要命关头可没有睡著. }

不过, 其它OSS处理的弱点, 提供微软一条途径, 来收取其关键特性的好处, 诸如架构改善(如storage+), 整合性(如schemas), 易用性, 及组织支援.

{ 这份摘要建议很有趣, 因为它与後面 解效协定(de-commoditizing protocols) 中不相一致. }

开放原始码软体

什麽是OSS?

开放原始码软体(OSS)是一套软体产品, 同时可获得并发行原始码及执行码, 通常免费. OSS通常与"shareware""freeware"混淆, 不过它们之间在版权模式及产品处理上有很大的不同.

软体版权分类

软体型态

             

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

 

版权目录表中包含:

商业软体是微软的奶油面包. 它一定要买, 不能够再发行, 而且使用者只能有可执行码.

试用软体通常是功能受限的商业软体版本, 可自由散播, 期望刺激购买欲. 一般是60天失效的产品.

共享软体是全部功能均可用, 可自由散播, 但版权要求最终个人用户及公司团体要购买. 许多网际网路工具("WinZip") 就利用共享软体做为发行管道.

非商业使用软体是可自由取得及散播, 非营利机构可免费使用. 公司团体等等必须购买. 例如Netscape Navigator.

免费可执行软体可免费使用及散播, 但仅以可执行档发行. Internet ExploderNetMeating可适用於此.

免费函数库是软体产品物件档及原始码均可自由使用并散播, 但终端用户不得修改为适用於自己使用. 典型例子是class libraries, header files.

一小群封闭的发展者发展BSD格调的开放原始码产品, 允许免费使用散播可执行档及原始码. 使用者被允许可修改程式码, 开发团队通常并不向外界取用资源.

ApacheBSD格调开放原始码模式, 并延展成为 允许外界团体加入自用的程式.

C 2000 opyLeftGPL(General Public License)软体 把开放原始码版权向前更推进重要的一步. BSDApache形式的软体允许使用者"分歧"程式及自行加上版权条文 (例如商业化), GPL版权要求所有延展出来的工作必须也是GPL版权. "您可以自由地修改程式, 只要您的延展的工作也是可自由修改的."

{ 很有趣的事, 可见到它们如何将最後三种分开来分类, 在open-source界一般视之为一同.

对我们来说, open-source版权及授权给使用者及支援厂商是最主要的, 特定的开发业务并不特别附在我们的版权形式中. 另一方面来说, 在微软的分类中, 其分类的基础是由谁来写出这些主核心程式.

这倒是反应出大部份现实中的中心观点, 并反应出备忘录作者缺乏想像及了解, 它并不完全了解分散式开发的传统, 这实在是一点都不惊讶... }

开放原始码软体对微软来说有很重要的意义

本文主要专注於OSS. OSS完全不同於其它形式的版权(特别是"共享软体"), 尤其是在两个非常重要的方面:

    1. 始终可以完全免费地取的核心程式码
    2. 不像是免费发行的可执行码, 开放原始码设定了一套程序鼓舞其它开发者加入功能.

许多理由微软需要关注OSS:

    1. OSS计划已达"商业品质"
    2. 一个关键界线, 在许多客户眼中, OSS曾经是缺乏品质的. OSS支持者则辩解, 好程式是要看一个OSS软体中的臭虫点阅单, 而这导致比商业软体更高品质的结论.

      最近的个案研究(网际网路)提供了引人注目的证据, 在消费者眼中, 商业软体品质可由OSS计划达成或超越. 在此, 没有强烈证据OSS程式品质超出消遣范围.

      { 这些句子放在一起非常地自我矛盾, 除非"最近的个案研究"都是"消遣". 既然这样, 又何必叫它们"非常引人注目的证据"?

      这好似有点自我保护, 并且将第二句话补满. 然而, 第一句可算是微软的大让步.

      任何状况下, "消遣"是失效的. 看看 Fuzz Revisited: A Re-examination of the Reliability of UNIX Utilities and Services .

      这里有几行很适切:

      "我们测试过商业版的UNIX工具失效率... 范围从15-43%." "免费发行的LinuxUNIX失效率次低, 9%", "在我们的研究中, 最低的是GNU工具, 7%."

      }

    3. OSS计划规模与复杂度越变越大
    4. 另一个重要界线, 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

  1. OSS有相当独特的开发过程及特有的强处及弱点

OSS过程是特有的, 特别是其参与者的动机及资源可把问题攻下来. 因此, OSS有些有趣, 不重覆的资产是必须要全面加以了解的.

历史

OSS在业馀玩家及科学团体扎下很深的根, 特别是以交换原始码做为象徵.

网际网路软体

OSS的最大规模个案研究是网际网路. 大部份网际网路程式, 在早期到目前为止依然是OSS, Tim O'Reilly 有相当的描述 ( http://www.techweb.com/internet/profile/toreilly/interview ):

TIM O'REILLY: 我们所收到的最明显的讯息是, "开发原始码软体有用." ... BIND绝对是一套统治整个网际网路的重要任务软体. Apache统治网站伺服器. SendMail大概占有80%的邮件伺服器, 而且触及每一份电子邮件.

译注: BINDDNS软体, UNIX上执行, Internet没有DNS会四处碰壁. Internet上是以BIND做为DNS软体公共建设, 占有率比SendMail还高.

自由软体基金会/格弩计划(Free Software Foundation/GNU Project)

第一个进行现代化有组织性的OSS是在MITRichard 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 ):

一般大众版权,GPL,允许使用者贩卖, 复制, 并修改copyleft程式 - 也就是也可以变成copyright - 但相同的自由, 即修改或销售, 也转嫁到消费者身上. 您必须使得您的修改也可免费获得.

第二句 -- 开放原始码延伸工作 -- 是最具争议性的(不过, 可能也是最成功的)释放式版权观念.

开放原始码处理过程

商业软体开发通常是由组织因为经济目标所设立的. 不过, 既然钱不是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的服务对象.) }

开放原始码开发团队

以网际网路驱策OSS开发团队的一些关键特色:

OSS开发整合

通讯 -- 网际网路规模

整合一个OSS开发团队极端依赖以网际网路为基础型式的合作. 典型被采用的方式是全方位使用网际网路统合科技:

OSS计划到LinuxApache的规模, 只有靠大量有高等技巧的开发者 蓄集力量合力解决问题. 因此, OSS计划大小方面与网际网路的成长有直接的关系.

共同方向

除了通讯媒体以外, 另外有一些因素隐隐地协调著开发团队的方向.

共同目标

共同目标相当於可见的声明, 普及深入於整个开发团队分散式决策. 一个单一清悉的指令(例如, "重建UNIX")是极度有效的沟通, 并且由一个团队来执行, 而非许多个, 一个无形的团队. (例如, "制造一个好的作业系统").

共同前例

前例是潜在最重要的因素解释在像Linux作业系统, 这样重量级的OSS计划的快速而有凝聚力的成长. 因为整个Linux团体有著经年累月的经验, 在处理多样化的UNIX, 他们很容易就可以区分 -- 毫无质疑地 -- 什麽做法有效, 什麽失效.

他们不会争辩在文字编辑器中要用什麽命令格式 -- 大家都已经用"vi", 而发展者就是以这些做为基础, 再往上建构.

具有历史, 20:20的後见之明, 提供了强力潜在的结构 再往前仔细检视组织, 其结构具有强力而有梦想的领导力.

{ 第一眼看下去, 这读起来犹如红鼻子比尔的注解, 有似有人预期Gates会读这份备忘录 -- 您可以几乎看见作者跪在大哉勇领导者形像之前.

更一般地来看, 它具有一些严重而可能可利用的对开放原始码社团能力的低估, 以便使自己的领导者看来具有梦想. 我们并非从"20:20的事後聪明"中取得EmacsPerl或是全球资讯网 -- 而把相对保守的Linux核心设计, 看成是里 2000 L去消遣模式的开发模式, 也是不正确的.

所以, 这就是说微软对开放原始码的回应, 可能就是强调错方向在革新, 同时在我们的行动, 及我们对这个世界所表达的方式两个方面上. }

共同技巧

NatBro指出, OSS发展来说, 先决条件需要以共同接受的技巧做为基础. 这一点与先前所提及的共同前例现像相近. 从其Email:

一个关键的特色 ... OSS加入及增强的共同的UNIX/gnu/make技巧. 我想如果进入点门槛再高一点, 整个过程就会失效 ... 一个平庸技巧的UNIX程式设计师可在Linux及许多OSS产品中做出许多伟大的事. 换另一个方向来说 -- 对开发者来说, OSS领域不难达成他们的渴望, 因为大家做事的方式都相近, 除错方式也相近, 等等.

鉴於前例标示出最终目标, 共同技巧特质指出, 在整个过程中, 人数适切, 即可达成终极目标. .

教堂观与市集观

一篇由OSS支持者 -- Eric Raymond -- 非常具有影响力的文章, 首次在May 1997发表 ( http://www.redhat.com/redhat/cathedral-bazaar/ ). Raymond的文章被Netscape CTO Eric Hahn明白的指出, 是他们决定要释放浏览器原始码的主要动机.

Raymond对自己的OSS计划解析, 以求取规则元素, 期许能够在未来被其它OSS计划所利用. 一些Raymond的规则元素包含了:

所有伟大的软体都开始於开发者个人的渴望.

这总括了在OSS过程中, 开发者的核心动机 -- 由个体解决呈在眼前的急迫需求 -- 这使得OSS能够演化出复杂的需要, 而不需要由行销支援组织来固定回馈.

好的程式设计者知道如何写程式, 伟大的程式设计者知道如何重写(或再利用).

Raymond断定, 在严密的开放原始码过程比传统开发环境, 更容易再利用程式码, 因为他们总是保证整个原始码可获取.

大量可取得的开放原始码降低了找寻程式草稿所需的代价.

``Plan to throw one away; you will, anyhow.''

引自Fred Brooks, ``The Mythical Man-Month'', Chapter 11. 因为OSS开发团队通常都极度散居各地, 许多在Linux中的主要的次系统元件, 主要是由Linus来提供原型并做选择及精□.

要胁您的使用者变成共同作者, 是快速地改善程式及有效地除错的捷径.

Raymond主张精华的文件及重要的开发者支援运用到OSS计划, 以使好处最大.

程式文件是商业软体开发者典型忽略的一环, 而此通常在OSS中是致命的错误.

早点释出, 释出频繁, 然後听听您的使用者.

这是起源於微软手册的典型手法. OSS支持者会注意到他们的"释出-回馈"周期, 比商业软体速度高得多.

{ 这实在是个有趣的傲慢声明, 好似我是被微软那种binary-only的方式所鼓舞一样.

但这也可以看出一些东西出来 -- 虽然作者理智地掌握到原始码释放的重要性, 它却不了解真正释出原始码的手段的强大威力. 或者活在微软的傲慢中使得这一切变得不可能.

(译注: 作者不真正了解所谓, Release early, Release often的真正意义, 也许让他参与个OSS的计划才能真正体会吧.) }

弄一大票beta测试者及共同作者, 几乎所有问题都会被找出来, 并且由某人修正.

这可能是Raymond对整个OSS过程洞察的核心了. 它诠释这个法则为"平行除错". 更深入的分析如下.

{ , 它总算把这个搞对了. }

平行开发

一旦元件的架构建起来 (例如, 关键API及结构定义), OSS计划, Linux就会部署开许多个小团队来解决特定问题.

因为发展者通常都是做为嗜好, 因此弄出许多个竞争的状况, OSS过程中不常见的, 而大家则是捡拾最好的实作来放到产品上.

注意到, 这非常地依靠以下:

平行除错

Eric S. Raymond所提出的论点来看, 不像软体开发的其他方面, 程式除错效率是直接与参与计划的人数成正比的. 在除错方面, 可以说仅需小量/或没有管理及协调的代价.

Raymond引用了Linus TorvaldLinux除错过程的描述:

我原始描述是每个问题"对某些人来说是看不见的", Linus说能够了解并修正那个问题的人, 并非必要是, 甚至通常都不是找出那个问题的人. "有些人找到问题", "而有些人了解它", 而我要说, 找到问题的挑战性是比较大的. 但要点是, 两件事尽可能越早发生越好.

Put alternately:

``除错是可以平行的''. Jeff [Dutky <dutky@wam.umd.edu>] 可以观察到, 虽然除错需要除错者去跟某个程度的开发者沟通, 但并不需要除错者之间互相沟通. 这不会变成二次方的复杂度, 管理代价也不会把开发者搞头大.

另一个平行除错的好处, 是臭虫与修正发现/传播速度快过传统方式. 例如, TearDrop IP攻击第一次在网路上发现时, 不到二十四小时, 整个Linux团体就有修正版可供下载.

"Impulse Debugging"

一个平行除错的外加好处是, 我加入Raymond的假设, "推动除错". Linux系统的例子, 意指安装该作业系统的行为, 即为安装除错/开发的环境的行动. 所以, 非常可能某个使用者/开发者, 无意中发现一个其他人的元件的臭虫 -- 特别是那个臭虫是"小只的" -- 那个使用者可以很快的修改过, 并透过网际网路合作技术, 迅速传播该修正回到程式维护者.

换另一种方式说, 因为藉由GNU工具, 一般开发/除错的方法, OSS过程有一个非常低的门槛来进行除错过程.

冲突解决

大规模的开发过程都会糟遇冲突而需要解决. 通常解决方是都是个霸道的决定, 以便进行更进一步的发展. 在商业团队, 公司组织与效率检视结构解决这个问题 -- OSS团对如何解决?

Linux的例子中, Linus Torvalds是毫无疑问的计划"领导者". 他委托大量的元件(例如, 网路, 驱动程式, 等等)给他信任的"副官", 然後更进一步的再分派给各领域的"熟手"(例如, 区域网路驱动程式).

其它组织则由Eric Raymond所描写出来: (http://earthspace.net/~esr/writings/homesteading/homesteading-15.html):

有些完全不吃"仁慈的独裁者"模式. 一个方式是转共同作者成为委员会会员来投票(Apache). 另一个方式是"轮换独裁者", 即控制权由一群资深共同作者轮换 (Perl开发者组织即为此).

 

动机

这一节提供一个全观来看何以OSS开发者要献身於OSS计划.

解决手上的问题

这基本上是重述Raymond的第一定律 -- "所有伟大的软体都开始於开发者个人的渴望."

许多OSS计划 -- Apa 2000 che -- 起源於小规模开发者, 设定要解决手上的问题. 随後的程式码的改善通常起於个体改良程式到自己的处境 (例如, 发现某个网路卡没有驱动程式, 等等)

教育

Linux核心成长起於Helsinki大学的教育计划. 相同地, 许多Linux/GNU系统元件(X windows GUI, shell utilities, clustering, networking, 等等)都是由教育机构个体所延展的.

{ 同样一个作者稍後竟然说Linux暴民会很难吸收新点子. }

自我满足感

最飘飘然的, 而或许是最深奥的动机, OSS开发团体所表现出来的, 就是纯粹的自我满足感.

"教堂观与市集观", Eric S. Raymond:

这个被Linux玩家扩大"实用功能", 并非典型的经济, 而是无形的在玩家中的名声及自我满足感.

当然了, "您不是玩家, 除非别人给您这个封号."

开拓智域

Raymond所发表的第二篇文章 -- "开拓智域" (http://sagan.earthspace.net/~esr/writings/homesteading/), 讨论了经济动机交换(例如商业软体开发换钱)"礼物交换"(例如, OSS交换荣耀).

"开拓"("Homesteading")要求成为第一个"发现"者或是贡献最大者. "智域"("Noosphere")则较不明确地定义为"所有工作的空间". 因此, Raymond断定, OSS玩家动机是在於占有工作的大部份领域. 换句话说, 吃最大的一块饼(take credit for the biggest piece of the prize).

{ 这很敏锐但读错方向了. 它引入了一个领土"疆域", 是不在我的理论中的. 这可能是作者个人的错误, 但我怀疑它反应出微软的竞争导向文化. }

"开拓智域":

丰满使得以命令建立起的关系难以维系并交换关系, 命令变成一场无聊的游戏. 在礼物文化中, 社会关系不是由您所能控制的来决定, 而是由您送出去的礼物有多少及轻重来决定 .

...

以这种方式来检视, 很清楚地可以看出open-source玩家的社会实际上是礼物文化. 在其中, 并没有严重"求生必须品"短缺的问题 -- 磁碟空间, 网路频宽, 电脑能量. 软体是免费分享的. 这样的丰满, 产生了一个以获得别人的敬重, 来做为衡量的成功的竞争.

更简洁地 ( http://www.techweb.com/internet/profile/eraymond/interview ):

SIMS: 所以您所饥渴寻求的是注意及回报的饥渴?
RAYMOND:
完全没错.

利他主义

这是有争议的动机, 我倾向在有程度的相信, Raymond评议利他主义"变质"成自我满足心.

一小部份动机, 有些人是这样地, 起源於打击微软.

{ , 这是如何地坦白, 尤其是来自微软农奴口中! 当然了, 它并没有分析到为何会与微软有关联; 可能是会砸坏家具吧... }

程式分歧

在大型开发团队中的致命伤 -- 特别是会恶化混乱现像在网际网路规模的团队 -- 是程式分歧的风险.

程式分歧发生在开发计划拉拉扯扯时, 许多个不协调版本的程式码就演化出来了.

例如, 在商业的世界, 一个单一强大的Windows NT程式管理, 相比於这些在商业UNIX中分歧的程式, 是绝大的优点. (SCO, Solaris, IRIX, HP-UX, etc.).

OSS中的分歧 -- BSD Unix

OSS领域, BSD Unix是分歧程式码的最佳范例. 原有的BSD UNIXUCLA伯克莱分校尝试用来重制完全免费的UNIX作业系统做为教学目的. 不过, 伯克莱对非学院的使用有很严格的限制.

{ 作者对BSD分支的历史全弄错了. }

为了要制作完全免费的BSD UNIX, 一些特别(但封闭)的开发团队生产出FreeBSD. 其它与FreeBSD不同意见的就生产出(OpenBSD, NetBSD, BSDI).

以下是导致BSD分支的最重要因素:

两种动机产生一种状况, 发展者会试图去分岐程式码, 收取版税(财务上或自尊心), 消耗BSD团体社会.

Linux(缺乏)分歧

相对於BSD的例子, Linux核心未曾分歧. Linux的整体性持续保持的几个原因如下:

Linus TorvaldsLinux界是名人, 而他的决定就是最终决定. 做为对比, 相等程度的名人领导者并不在BSD界存在.

Linus在处理开发团队时算得上是公平, 合理的程式管理者, 并且他在Linux团体中名望很高. 不过, Linus并没有在每个方向都介入. 通常, 次开发群解决各自 -- 通常都很大 -- 不同的问题, 并避免分歧.

相对於BSD的封闭会员, 所有人都可以贡献Linux, 而您的状态 -- 即您开拓Linux的疆土 -- 是根据您所贡献的大小来决定的.

间接地这阻碍了程式码分支. 因为分支不会有功劳, 因此会以最小的程式量来维系主要Linux核心码的革新.

因为由Linux所延展的工作必须由某些渠道让人可获取, 它降低了以小群人分歧Linux做为长期经济利益的动机.

自尊心推动OSS开发者将股本下在最大的一片智域土地. 分歧程式码对後来的发展者说, 不可避免地缩小成就空间.

Open Source Strengths

OSS产品的强处, 什麽是微软需要注意的?

OSS指数特性

正如我们的作业系统事业一样, OSS生态系有几个指数特性:

对任何OSS计划来说, 最担心的就是要找到足够的开发人员, 吸引他们有兴趣来贡献计划. 一个基本要求, 对一个像作业系统规模的计划来说, 要结合这麽多人, 网际网路绝对是必要的. 更重要的, 这些计画的成长引擎就是网际网路所能及的范围. 合作科技的改善润滑OSS引擎.

换句话说, 网际网溧 2000 □涨赤□|造就现有OSS计划越来越大, 并使OSS计划渗透到越小的软体领域.

像商业软体一样, 最可行的OSS计划会牺牲掉相竞争的OSS计划, 并取得他们的IQ资产. 例如, Linux一直在蚕食BSD UNIX, 并吸取其核心观念(及其它商业UNIXes的观念). 这项特色鼓动参与较优越的计画.

OSS计划越大, 名望就越大, 有越大越高品质的元件贡献到智域. 这个现像回馈到"winner-take-all"OSS过程本身的各角落.

计划越大, 收到越多开发/测试/除错的程式. 除错越多, 越多人用它.

长期可信性

执行码可能会消失, 但原始码永存

OSS生态系中最有趣的关系就是长期可信性.

长期可信性定义

企业在短期内不会被排出市场时具有长期可信性. 这要看竞争者如何"处理"您了.

例如, 空中巴士工业以取得政府支援来建立长期可信性. 所以, 在空中巴士招标时, 波音(Boeing)会收一些短期非经济回报的标, 以取得可信度.

用软体工业的道地家乡话来说, 如果FUD战略无法击败一个产品/过程, 即为具有长期可信性. .

OSS具有长期可信性.

OSS系统可考虑为可信的, 因为原始码可由上百万的地方及个体取得.

{ 我们在此深入了微软的世界观. 我知道标准玩家对此的反应是作呕, 但它反应了一种使用反面行销的机械化无情, 而我们必须学著如何与之相处.

真正有趣的事, 是关於这两个叙述, 似乎暗示微软必须放弃FUD做为攻击我们的有效工具.

大部份的人可能会假设美国司法部反托拉斯案, 是导致微软把FUD的枪口移开的原因. 但如果它的盖兹主子买备忘录这一套的话, 微软会相信它们需要发展另一套更有效的回应, 因为FUD没效.

这可能是好消息但也带来坏消息. 好消息是微软会放弃行销攻击这个在过去比它明显低劣技术更有力的武器. 坏消息是, 对付我们, 放弃这个武器可能是更佳的策略; 它们不会去浪费更多的精力, 而可以全力发展更有效的反击. }

可能使Apache消失的状况, 其规模指数, 远低於如WordPerfect可能消失的状况. Apache会消失的状况并不与可执行档消失相关 (即与购买率等等息息相关因素), 而是与原始码及知识库相关.

反向来说, 消费者知道Apache大约五年历史 -- 持续地在其使用者/开发者团体有人在使用.

一位Apache消费者, 在讨论他的电子交易网站时, 选用OSS软体的理由, "因为它是开放原始码, 我可以雇用一或两位开发者来或自己来维护."

缺乏程式分析元素 长期可信

GPL及其对程式分支的嫌恶, 保障了消费者不会因为购买特定版本的商业Linux, 而用了会发生演化"死巷"的问题.

"演化死巷"是软体FUD攻击的核心.

{ 完全没错 -- 还有个重点漏掉了. 如果作者够诚实, 它会注意到OSS支持者, 都已经准备好姿势, 准备转过身来, 用这一点与微软决一死战.

作者自己承认, OSS在这一点上是穿了防弹衣的. 另一方面来说, 那个爆炸复杂, 一延再延的, 仅换个"Windows 2000"的东西, 证明了已经走到演化死巷墙角前.

作者不敢指出来. 我们应当要指出. }

平行除错

Linux及其它OSS支持者正使其累积更多的可信证明, OSS至少与商业替代品一样的强建 - 如果没有超过的话. 网际网路提供了一个理想, 高度可见的展示台给OSS.

{ 那是一大把的业馀玩家, 我们大部份都没有收钱, 几乎全部是兼职, 对抗一个亿万元建起的宣传机器, 由少数几个在科技行销企业中的大作手操控.

而且业馀玩家"正在累积更多的可信证明". . 由微软的告白, 我们确实在持续胜利.

或者这是将有台面下产品的讯息呢? }

特别是, 大型, 机敏的组织, 会依赖OSS来做企业运作, (例如, 波音, ISPs) 并因为他们可以自行修正可能导致工作停摆的错误, 而不需要依赖商业提供者, 而感到安全. (例如, UUNET就能够取得, 编译, 并加入防止TearDrop的攻击的功能到Linux, 在第一起对大众攻击发生後的24小时内.)

平行发展

换个方式说, "开发者的资源在OSS中基本上是免费的". 因为潜在的开发者简直无限, 在经济上可实行同时调查多个解决方案/版本来解决一个问题的办法, 并在最後选择最佳方案.

例如, Linux TCP/IP堆叠至少重写过三次. 组合语言码被"持续"一再的微调并精□过.

OSS = `完美' API福音/文件

OSSAPI福音/开发者教育基本上是藉由提供了底层的程式码而来. 而在封闭原始码模式中基本上只能"内定"相信, OSS API则使开发者下定决心.

NatBroCkindel指出开发者的能力分别在此. "狂热的开发者"只相信OSS的福音. 初学者/中等开发者 -- 主要的开发大众 -- 倾向相信信任模式及组织可信性 (例如 "微软说某某API是这个样子")

{ 是否大多数开发者都倾向"信任"模式是个很令人质疑的问题.

二十年的经验告诉我不是这样; 也就是说, 开发者倾向原始码, 就算非技术出身的 老板都不会天真到倾向"信任". 微软明显地想要相信它的"组织可信性"算数 -- 我在这里闻到一厢情愿的想法. (译注: 关於组织可信性方面, Windows 3.1/95文件来说, 错误率高, 书蛀虫之多, 竟要用一整本杂志, 每月出版来修正.)

另一方面, 它们可能是对的. 我们在open-source社区无法承受误算这一点的可能性. 我相信我们能够发展出高品质文件来符合这个需求. 以这种方式, "信任"著名的作者(或名声良好的出版商, O'ReillyAddison-Wesley), 可以替代"信任"API定义的组织.) }

释放速度

强烈元件化的OSS计划, 有能力在开发者完成的同时释放次元件. 因此, OSS计划释放速度快速频繁.

开放原始码弱点

OSS计划的弱点主要落於三个主项:

管理代价

OSS计划最大的路障, 就是处理指数成长的管理代价, 因为计划一大, 革新率就高, 程式量也大. 这暗示OSS计划的创新率是有上限的.

开展一个OSS计划是很艰辛的

Eric Raymond:

以市集模式来说, 很清楚地, 一个人没办法平地架楼. 一个人可以测试, 除错, 并以市集模式来改善, 但要以市集模式要 建立起计划是非常难的. Linus没试过. 我也没有. 而你初期的开发者团体要有东西可以跑, 测试并玩弄的.

Raymond的论证可延 2000 伸为, 如果没有清晰的前例/目标(或太多目标), 要发起一个计划是很困难的.

市集可信性

明显地, 在网际网路上, 片断未完成的原始码比OSS的更多. 什麽分开"死原始码""繁荣市集"?

一篇文章( http://www.mibsoftware.com/bazdev/0003.htm )提供了以下的信用标准:

"....想想以为一个很少数的参与者是误导的 FetchmailLinux"现在"有庞大数量的测试者, 但明显的最初只有几个而已.

两个计划所做的是一大匹狂热者及合理的承诺. 这承诺是部份技术性地(程式会很漂亮, 写得会很轻松)及社会学地 (如果您加入我们这一帮, 您将会有一大堆的乐处). 因此一个市集要可开发, 其必要性则是个吹牛膨胀的市集存在.

我断定一些关键的要素在市集中是可收取信用的:

後同位开发

当向JimAll描述这个问题的时候, 它提供了漂亮的类比"追逐後灯". 要使一大批半组织的暴民合作, 必须要向他们指出一个明显的目标. 有後灯具体提供了一个□糊的影像. 在这种状况下, 有个後灯可跟是有强大中心领导的媒介.

当然了, 一旦这个组织基础不再时 (一旦计划已达"艺术"的地位时), 管理层次就很需要开拓新的疆土.

{ 胡说. open-source, 所需要的只需要一个人, 有好点子, 就能够成就.

部份open-source在这一点上的原因, 是要降低造成革新所需的能量门槛. 我们有经验中知道, 作者所赞颂的"大量管理"是其中最糟糕的一个门槛.

open-source, 革新者尝试任何事, 唯一的测试是是否使用者会志愿去试用它, 并喜欢上它. 网际网路帮助了这个过程, open-source社团合作会议则特地设计来推销它.

第三的替代``追逐後灯'' ``强力的中心领导'' (而且比两者更有效率)是演化出创造力无政府状态, 因而有上千的领导者, 而数万门人跟随.

微软无法打击, 我不认为它们甚至能够了解, 没有那个胆子. }

在目前Linux团体可能需要面对的障碍, 可能是他们在许多方面都已经到达了"艺术"的层次.

{ Linux团体不但跳过这个障碍, 而且还完全摧毁. 这个事实是open-source长期优越於closed-source开发的核心. }

不性感的工作

另一个有趣的事, 则是一些"不性感"OSS工作需求, OSS带到商业层次.

在作业系统的领域, 这包含了, 小而基本的工具, 如电源管理, 暂停/回复, 管理建设, 界面优美, 深度的Unicode支援, 等等.

Apache来说, 这意谓著初学者管理功能, 如精灵.

整合/架构工作

跨模组的整合工作是OSS团队目前面临的最大挑战. Nathan Myrhvold 5/98Email备忘录, 指出在所有的软体开发工作中, 整合工作最耗心神.

到今为止, Linux已经大大, 从过去UNIX的整合/元件化模式中受益. 再者, Apache组织以相对的简单, HTTP协定容错规格及UNIX伺服器设计简化组织.

未来革新需要修改到核心架构/整合模式, 将会对OSS团队来说是难以吸收的, 因为它同时会减低他们前例及技巧的价值.

{ 这个预测源起於作者早先的主张, open-source开发大大有赖於前例设计, 而且无可避免地向後相容. 真是近视 -- 明显地, 像这些东西 Python, Beowulf, Squeak (就讲数百个革新之中这三个)没有出现在它的雷达上.

我们希望微软继续相信这一点, 因为这会减缓它们的回应. 许多部份将会看微软如何解释革新, 诸如Linux多处理器化.

有趣地是, 作者在这一点上自我矛盾. }

处理议题

这些是OSS设计/回馈方法学本质上的弱点.

重复代价

OSS过程一个重要关键是比商业软体多出许多的重复版本. (Linux就经常有一天有两个核心释放出来!). 但是商业消费者告诉我们希望少一点释放版, 而不是较多.

{ 我怀疑如果微软的东西如果不是这麽贵, 这个答案会是什麽?

这也是为何商业版Linux发行商会存在 -- 去减缓快速发展过程及消费者不想每次都换来换去之间的过程. 核心可能一天释放两次, Red Hat只每六个月释放一次. }

"非专家"回应

Linux系统不是为终端用户所开发的, 而是为玩家所开发的. 类同的, Apache网站伺服器是描准大型有智慧的网站操作员, 而非部门内部网路.

在此的关键要素是, 因为OSS没有市场/客户的回馈元素, 需求表 -- 因而特色发展 -- 是由技术高手来统治的.

MSFT的开发群, 一次再一次地学到, 容易使用, 直觉界面等等, 必须由平地建起到产品中, 而且无法在稍後加入.

{ 这要解释一下 -- 它在理论上看起来很正确, 但在微软业务中却完全弄错. 错误的地方在於微软策略上过度强调使用者界面.

有两种方式来"由平地建立"起容易使用. 一种(微软之道)是设计整个应用软体完全用UI来定义的. 这导致产生"视窗化" -- 刻板, 无趣, 臭虫倾向的怪物, 有金玉其外, 而败絮其内.

程式这样建, 第一眼看起来使用者友善, 但在长期却是大量时间与精力的下沉. 它们只能在地毯炸弹行销的方式维持, 主要的目地是要让使用者相信, 臭虫是特色, 所有臭虫都是因为愚笨的使用者错误, 或所有臭虫都会消失, 如果使用者屈服於再买下个版本. 这样的方式是基本上错误的.

另一种是UNIX/Internet/Web的方式, 将引擎(确定可动)与使用者界面(只用来看及控制的)分开. 这个要求引擎与界面使用定义良好的界面来沟通. 以浏览器/伺服器来做例证 -- 引擎做引擎的事, 界面做界面的事.

第二种方式, 整体复杂度下降, 可信度上升. 更好的事, 界面更容易演化/改良/自定, 因为它并不与引擎连接在一起. 甚至可以有许多种界面来给不同类型的使用者.

最终, 这种架构自然导致应用软体适用於企业 -- 可以使用或远端管理伺服器. 这种方式有效 -- 而这是open-source团体自然的方式以对立於微软.

在此处的关键点, 是如果微软想用UI来跟open-source团体作战, 让它们来吧 -- 因为我们可以打赢这场战, 用我们的方式. 它们可以写更加复杂的Windows巨石, 把您的应用软体及伺服器焊接起来. 我们会赢, 如果我们写乾净而分散的软体来构逐网际网路及全球资讯网, 并将使用者界面做成可插入/取出, 由使用者来选择.

注意, 不管如何, 我们的胜利将要依靠现有定义良好的协定(HTTP), 来沟通界面及引擎. 这就是为什麽在後面那个"解效(de-commoditizing)协定"的东西, 那麽地阴险. 我们需要保渭. }

有必要观察的时尚是商业OSS提供者(RedHatLinux, C2NetApache)会有回馈周期.

组织可信性

消费者要期望从OSS软体提供者中获的什麽样的服务?

支援模式

产品支援是OSS套件未来客户第一个要考虑的, 并且是商业发行商的特色探针.

不过, 大部份OSS计划是由不同成份的开发者所支援的. 扩大这项支援公共建设到商业层次将会是一大挑战. IIS vs. Apache的使用者及开发者中, 2000 有许多显注的不同.

{ 最後这一句是在打混. 如果作者继续, 它应该已经知道Apache正在痛打IIS这个猪□, 把它赶出市场中(Apache占有至少54%, 而且持续上扬; IIS是大约14%, 并且下降).

这会出现对微软来说不好吃的替代品. 这可能是Apache的非正式使用者支援管道, "组织可信性"实际产生比微软IIS组织所能提供的更好的结果. 如果这是真的, 那就很难看出同样的效应不会在其它的open-source中发生.

这个替代品 -- Apache实在是太好, 而实际不需要太多支援或"组织可信性" -- 是更加地不利. 这意味所有微软大量部署的支援及市场大军营是错误投资, 就像四十年前在Stalinist公寓区的大规模投资一样.

open-source支持者, 两个可能的解释暗示不同但平行的策略. 其一是把软体写到好得根本就不需要太多支援(我们非这样做不可, 而且必须一直做下去). 另一种是加强我们正在支援线上做的事, mailing lists, newsgroups, FAQs, 及其它非正式但很有效的管道. }

在中短期来说, 这项因素会逐步将OSS产品带到上层的使用者.

未来策略

一个极度严重的问题, 会影响到整个消费者采用OSS产品, 是在OSS发展周期中缺乏策略方向. 持续修改OSS产品的现有特色是非常的可信的, 未来特色没有组织的承诺来保证他们的发展.

{ . open-source团体中, 新的特色是由崭新及开拓领域的个别玩家所加入的. 这绝对是不可鄙视的力量. InternetWeb是用这样建起来的 -- 不是因为"组织承诺", 而是因为某人, 某处, 在想"-- 这样子不错喔...".

或者我们好运, 因为"组织可信度"在微软的世界观中看起来这麽大而朦胧. 它们花在上面的时间与精力, 并相信这是资源的先决条件, 它们不会花时间在发展有效对付我们的事上. }

Linux社团来说, "签署"协助建立"协同数位神经系统" (Corporate Digital Nervous System)有何意义? Linux要如何保证API的向後相容性? 如果下个版本的Linux不守承诺, 您要去告谁? Linux要如何与其它实体形成策略联盟?

{ 如果NT 5.0(, 对不起, "Windows 2000")不准时出版, 您要告谁? 任何人因为微软的任何向後不相容或其它的胡搞收到过补尝吗?

向後相容的问题实在讽刺, 想想看, 我没听说过有那个程式可以不用改, 就在DOS, Windows 3.1, Windows 95, Windows 98, NT 4.0上执行.

这个作者赶不上时代了. 它应该要问一问微软的兄弟Intel, 才在这个备忘录写完後两个月, Intel变成Red Hat的小股东. }

开放原始码商业模式

在过去的两年中, 贩卖OSS软体的公司相继成立, 并开始雇用全职员工来改善OSS程式. 什麽样的企业模式来付这些薪水呢?

在许多的状况中, 回答这些问题的答案大多是, "我为何要送我的协定/软体/API给标准单位?"

第二服务

OSS软体制造商提供销售, 支援, 及整合到消费者手上. 这非常有效地将OSS软体制造商从套件制造商转型成服务提供者.

缺乏领导者 -- 市场门槛

缺乏领导者的OSS商业模式可用於两种目地:

许多OSS的起步 -- 特别是作业系统领域 -- 将建立OSS产品线看成是用来对抗微软的策略.

Linux发行者, 诸如RedHat, Caldera, 及其它的, 都表示愿意雇用全职开发者, 并将他们的工作回馈给OSS团体. 透过同时投入这些资源, Red HatCaldera暗中共谋, 并相信与其相互竞争, 不如成长Linux市场, 这样双方能赚进更多的短期收入.

间接的例子是O'Reilly & Associates雇用Larry Wall -- "领导"并全职发展PERL. 排名第一的PERL参考书的发行商, 当然就是O'Reilly & Associates.

短期来说, 特别是OSS计划的成长率向上陡峭, 这样的投资产生正面的投资报酬率. 长期来说, 投资报酬的动机将会驱使这些开发者生产独有的附加功能, 而不释放成OSS.

廉价品下游提供者

这很接近缺乏领导者的企业模式. 不过, 他们不以该大量成长该市场的来获取回报, 这些企业以提供廉价下游相关产品来获取回收.

最佳的例子是小型伺服器, Whistle CommunicationsCobalt Micro, 他们实际雇用SAMBALinux的开发者.

两者都是依靠硬体来收入. 因此, 运用OSS使他们避免今日PC市场""必须有OS制造商来付的问题 (NT伺服器零售价$800, Cobalt则描准整个解决方案大约$1000).

早期的Apache开发者都是由预算紧缩的ISPsICPs所雇用.

而最近例子, IBM处理Apache. 除了宣称HTTP伺服器为日用品外, IBM希望集中在更多不可思议的技术应用服务在Apache的发行版上 (并希望能达到Apache市场占有率).

有力的鼓动家 -- 先动手再说, $$往後再谈

另一个OSS的品质指数 -- 成功的OSS计划蚕食较不成功的 -- 暗示另一种投机企业模式, 就是今天先直接投资在OSS产品, 可以晚一点再来投机/消灭竞争计划 -- 特别是该计划需要API福音时. 这是在OSS中先动手的优点.

此外, OSS过程中, 发展者的规模, 变动率, 可依赖程度的优点, 都是受惠於小起步, 通常都没办法雇用大规模的开发职员.

靠这样的例子有SendMail.Com (生产具支援的sendmail送信软体)C2Net(生产商业及具加密功能的Apache).

注意, 没有先商业起步而产生OSS计划的成功例子. 在两个例子中, 都是OSS计划先成功, 才有商业起步.

Sun Microsystem最近宣布其"JINI"计划将会以OSS的形式出现, 可做为这一投机原理的应用.

Linux

下一节分析最突出的OSS计划, 包涵Linux, Apache, NetscapeOSS浏览器.

第二份备忘录标名"Linux作业系统竞争力分析" 提供了深入对Linux系统的深入分析. 在此, 我提供一些我在Linux中的发现摘要.

什麽是Linux?

Linux(念成"LYNN-ucks", 译注: 这是美语念法, 正确为LINN-ux), 是开放原始码OS在市场占有率排名第一的作业系统. Linux起源於有至少25+年历史的老牌子UNIX作业系统.

特色摘要:

Linux是实在可信的作业系统及开发过程

就如其它的OSS产品一样, Linux的关键不是产品的版本, 而是整个处理过程. 这个过程添与可信性, 并使Linux消费者对在上面的投资感到安全.

{ 都正确. 我自己都没办法再加得更好了 :-) }

Linux是在伺服器上中短期威胁

主要对微软的威胁是LinuxNT伺服器.

Linux在未来对抗NT伺服器(及其它UNIXes)是有以下几个关键因素:

Linux 不太可能成为桌上系统的威胁

Linux不太可能在中长期对桌面系统发生威胁, 有几个因素:

打击Linux

除了攻击一般OSS计划的弱点(如整合/架构代价), 针对Linux有以下:

所有标准产品议题在NT vs. Sun可应用在Linux.

Linux的基地是目前廉价的网路及伺服器公共建设. 透过夹入外加功能 (例如 Storage+在档案系统中, DAV/POD在网路中) 到今日的廉价服务, 我们筑起一道墙, 并改变游戏规则.

{ 在此, 在早先的注解 Linux要如何赢, 我们开始看见微软策略由雾中慢慢走出. 而且相当的下流; 事实上, 它丑陋的足以像我所写的一样, 将万圣节推向最暗黑的夜.

当作者实在没有办法时, 就拿出这一套破坏整个 "廉价网路及伺服器" 公共建设(TCP/IP, SMTP, HTTP, POP3, IMAP, NFS, 及其它开放标准), 用一样名字的协定名称, 破坏已经受到微软控制的消费者及市场控制的范围. (这就是作者告诫微软农奴要`` 我们筑起一道墙, 并改变游戏规则. ''的真意).

在此`夹报式的增强功能'拐弯地引入了 外加的非标准协定(或根本是替代协定), 然後用大幅广告变成好像是标准, 即便它们是封闭的, 没有文件或只是乱写一通, 制造好像是开放的假像. 其目地是产生一个新协定, 然後在官样杂志上的列表上多打几个勾勾, 然後令微软的共栖支援厂商难以生存下去. (而成功的就被买走.)

这个游戏就叫做"先拥抱再加强". 我们以前就看过微软玩过这把戏, 它们行得很. 一旦有效, 微软就赢了, 然後下垄断的锁. 消费者输.

(这个污染标准的策略, 微软成功地打破Java的招牌.)

开放原始码支援者可用指出如何及为何消费者输来对抗 (降低竞争, 价格抬高, 降低可依赖度, 失去机会). 开放原始码支援者也可以用这句对换 -- , 开放原始码及开放标准增加制造商竞争, 降低价格, 改善可依赖度, 并增加机会.

再一次, 如微软前面备忘录所坦承的, 网际网路是我们的海报. 我们对抗"先拥抱再加强"的最佳的"刺胎针", 就是指出微软正在试图关闭网际网路. }

Netscape

Netscape为了要回复过去的雄风, 最近释放放了它的Mozilla原始码, 做为产生OSS社区的功能.

组织及版权

Netscape的组织及版权模式基於LinuxGPL, 不过有几点不同. 第一, MozillaNetscape Communicator是两套程式, 但由Netscape工程师所同时提供的.

不像GPL, Netscape保留拒决/强迫修改的权力, 而且Netscape的工程师被指派为大元件的"指导员".

强处

OSS团体中提供给反微软情结资本

相对於其它OSS计划, Mozilla被视为近期最直接对微软攻击的一项. 这就好像给用Mozilla程式的人员里 2000 q镀一样.

新的可信度

Mozilla的程式已经使Netscape的可信度再度上扬, 并渗透到最小的角落. BharatS所指出的 http://ie/specs/Mozilla/default.htm:

" 他们已经保证透过释放原始码, 他们永远不会从地平线上消失, 就如Wordstar的状况一样. Mozilla浏览器将会未来十年中依然存在, 即使其使用者群有所震动."

骚到了大渴望的痒

该浏览器使用率极高. 因此, 愿意"解决眼前问题"的人, 或修正程式的意愿很高.

弱点

後同位发展

Mozilla已经与IE4/5平起平坐. 因此, 没有前例可协助合作开发团队.

Netscape已经指定了部份高级开发者, 全职管理Mozilla程式, 并且要看看到底这样做能够将Mozilla推向什麽样的新高点.

小型智域

一个有趣的弱点就是OSS浏览器的"智域"的所剩大小.

    1. 基本浏览器已经完成了.
    2. 不再有任何大形, 需要行程开发的计划需求了. 换句话说, Netscape已经自行完成解决了80%的问题. 在为剩下的20%除错得不到自我满足感.

    3. Netscape的商业利益缩小了智域贡献者的效应.

Linus Torvald管理Linux主要原因是产生最佳的Linux所驱策. 相较之下, Netscape宣称保留决定程式管理权在基於Netscape商业/企业利益. 与其是生产重要产品来说, 开发者个程式是用来征服Netscape的股票价格.

整合代价

可能的最大损伤, 就是消费者对Mozilla所期望的功能的整合. 就如稍早所述, 整合开发/测试是不可平行化的活动, 因此有可能受到OSS过程的反噬.

特别是, IE5+的许多工作, 不只是整合元件到浏览器中, 而是继续地整合到作业系统中. 这会非常地难以与之竞争.

预测

因此我主张, 不像ApacheLinux计划一样的成功, NetscapeMozilla会造成:

记得原始码是在短时间前(1998年四月), 已经开始出现对Mozilla兴趣的警告信号. 极端不科学的证据指出, mailing list的量持续减少.

Mozilla Mailing List

April 1998

June 1998

% decline

Feature Wishlist

1073

450

58%

UI Development

285

76

73%

General Discussion

1862

687

63%

内部对MozillaMailing Lists映射可在 http://egg.Microsoft.com/wilma/lists

找到 { . 那个``机器(egg.Microsoft.com), 一看, 是台Linux. }

Apache

历史

改写自 http://www.apache.org/ABOUT_APACHE.html

1995年二月, 最受欢迎的HTTP伺服器是由NCSA, University of Illinois, Urbana-Champaign所发展的. 不过, httpd的发展在1994年中期中段, 许多webmaster自行发展自己的外加功能, 及修正码. 一小群的webmaster, 透过私人e-mail, 聚集在一起来合作他们的改变 ("patches"的形式出现). 95年二月底, 八位核心贡献者成立原始的Apache组织(A PAtCHE为名). 1995四月, Apache 0.6.2释出.

1995年五月到七月, 一个新的伺服器架构被发展出来(程式名Shambhala), 包含了模组结构及API, 以适应弹性, pool-based记忆体配置, 及可调整的事先行程分支处理模式. 这个群在七月, 转换到新的伺服器基础, 并从0.7.x新增特色, 於是在八月成为Apache 0.8.8.

在一年之内, Apache伺服器超过NCSA httpd成为Internet上排名第一的伺服器. (译注: 目前NCSA的程式分支总和占有率大约7%.)

组织

Apache发展团队目前有大约19个核心成员, 外加数百位的网站管理员进行外加功能, 分散於全世界. Apache错误报告可在: http://bugs.apache.org/index找到.

关於程式管理及争议解决程序可在 http://www.apache.org:找到

领导:

有个核心的贡献者群(不正式地称为"核心"), 由核心成员提名选举.

争议解决:

改变程式会在mailing list中提出, 并且由有效会选投票 -- 3, +1(同意), -1(不同意或否决), 来决定.

强处

市场占有率!

Apache是今天网际网路金字招牌第一号, 远远将竞争者抛在後面. 持有雄狮般的市场占有率是极为有利於控制市场的演化.

特别是, Apache市场占有率表现出几个屏壁:

支援厂商的支持

Apache提供的工具/模组持续成长增加.

弱点

效能

在短期, IIS看来似乎能在SPECweb上数字胜过Apache. 再看深一点, IIS一到与NT深度整合在一起时, 将会再进一步.

Apache, 相较之下, 有需要移植到所有平台环境的负担.

(译注: 非常奇怪的推论. 译者写All For Chinese With Apache, 并未见到有这样的问题. 平台移植时, 主要是利用共通的程式码, 各平台的程式码, 有必须分歧时, 都是分开的, 并没有会影响效能的问题存在. )

HTTP协定复杂度及应用服务

思索Apache能够如此稳固并起飞的原因是因为HTTP协定太简单了. 在越来越多的功能加到这个简陋的网站伺服器之後 (例如, 多伺服器交易支援, POD等等), Apache团队如何继续发展下去是很有趣的事.

例如ASP支援, IIS在公司内部的关键驱动程式.

(译注: ApacheASP支援 - mod_asp, 用的人不多. 主要是因为有功能更好更强大的, PHP3. Apache上的主流是用Perl, Php3, SSI.)

IBM & Apache

最近, IBM宣布将把Apache做为其WebSphere应用伺服器的一部份. 这一轰动的宣布的结果尚不明, 不过:

其它的OSS计划

其它的OSS计划:

微软反应

整个来说, 有许多想法/讨论要放到微软的反应到这个OSS现象. 本文的目的是教育及分析OSS过程, 所以在这一节, 我仅代表一些非常肤浅的意见及关心.

产品弱点

在最近的未来, OSS计划会先捏痛微软那一个部份呢?

Server vs. Client

比起OSS产品来说, 伺服器是比桌上系统来的弱的. 理由如下:

撷取OSS好处 -- 开发者的智慧分享

OSS计划在集合与驾驭数千人团体IQ的处理能力实在惊人. 更可怕的, OSS福音在网际网路传播上的规模, 远远快过及大过我们的规模.

{ 这就是, 微软将被Open Source在脑力及市场上所超过. -- 而且微软根本就知道! }

微软要如何撷取OSS产品中发展者脑力激荡的精华呢? 2000

一些初步的想法包括以下:

撷取OSS好处 -- 微软内部处理过程

微软从OSS范例中可以学到什麽呢? 更明确的说, 我们要如何从内部重建起OSS开发环境? 许多这份文件的阅读者都指出, 对内部, 我们应视微软为理想的OSS团体, 但有许多理由, 我们不是:

" 在微软的OS开发者没办法去骚到对Excel心中的渴望, 反之Excel发展者也没办法对OS一样做 -- 那会花去它们个把月才了解如何去建立, 除错, 安装, 而且反正它们可能也没办法拿到适切的原始码."

(译注: 美国的法令禁止微软这样做, OS必须与其它部门独立分开. 但由这一句看起来, 与大众推测的一致, 微软内部有明显违规的行为. 如果, 微软内部真的进行OSS, 那麽司法部门可能又要找上门了.)

"人们应当要在自己的部份下功夫, 而不去牵连到其它的部份, 因此在内部之间沟通的文件必须写清楚, 并且标明清楚, 这与更建全的元件一样重要, 要不然根本就不知道要如何呼叫函数. Linux发展系统已经演化到允许许多开发者进入, 而不会导致大量整合的问题, 因为建全性在各层次都已经非常建全了. 这实在是伟大, 长远, 及为何他会展现全面稳定的原因. "

这技俩当然了, 是撷取这些好处, 而不要带来OSS过程的代价. 这些代价通常都是在第一线竖立起来的:

延展OSS的好处 -- 服务公共建设

支援一个平台开发团体, 需要做大量服务公共建设, OSS所无法提供的. 包含了PDC's, MSDN, ADCU, ISVs, IHVs, 等等.

OSS团体相等於"MSDN"的是一群分散的网站及文件API, 各具不同品质. 微软有机会开拓网站向开发者传福音.

(译注: 该作者依然不了解OSS的特质 - 有问题自己动手解决, OSS界已经有人开始解决这个分散的问题, 例如译者正在写的Interstellar Package Broadcasting SystemCorona Packager, 用以解决大量套件的版本新讯通知, 文件/负责人, 错误报告/回报, 及安全警告, 以分散式方法来传播讯息, 比起使用网站来得自动方便. 而译者不是第一个投注时间在上面的开发者. 再者, 提供这样的服务并不会耗去系统很大的资源. 微软走了一条荆蓟小道. )

攻击OSS

一般来说, 微软要赢, 必须攻入OSS计划的核心弱点.

解效(De-commoditize)协定及应用软体

OSS计划已经在许多伺服器应用上有稳固的基础, 因为拥有广泛地有用工具, 简单的协定. 利用污染这些协定, 及开发新而复杂的协定, 我们可以防堵OSS计划进入市场.

David Stutz就提出非常好的论点: 在与微软层次的桌面整合竞争上. "廉价协定确实变成OSS计划整合的方法". IETF的工作群, 有大量的智库为OSS计划广泛地生产整合模式.

{ 换句话说, 开放协定必须要被锁起来, IETF必须要关门, 这样才能进行 ``解效(de-commoditize)协定及应用'', 并停止OSS开发.

再一次, open-source提倡者最佳的反应是, 当东西开始"de-commonditized", 向消费者指出, 制造商大赚钱, 消费者损失. }

一些微软首创的外加价值协定的例子包含:

(译注: 这样的协定早在ISO X.500协定中存在了, 以下引自O'Reilly DNS and BIND, ISBN 1-56592-236-0, p352-353, X.500.

  • X.500 is a full-blown distributed database meant to be used for a wide variety of application. You can store the phone book in an X.500 database. You can store location data in an X.500 database, .....
  • X.500 has security features involving credentials and the support of multiple encryption types; DNS is not secure.
  • X.500 has a dynamic update capability -- you can update individual records in the database over the network. ...

Anyway, you get the idea. X.500 is rich in capabilities and will be extremely useful when it is completely defined, implemented, and optimized. ... Don't let this turn you off to DNS, though. The Domain Name System really is admirably good at its job, and it does it much faster than X.500 does. True, X.500 offers richer functionality, but it may never usurp DNS's position as the Internet's directory system of choice.

由此, 我们可以看出, 这位天真的工程师以为只有微软能够做这样的事, 却不知道在开放标准中, 早就有对付这样作法的武器. 其次, 微软若真得要这样做, 免不了要大抄一番, 这一来所有人都知道了, 是否微软一定要违反智慧财产权, 否则在长路上无法开出新局. 其次, DNS系统已经在Internet上统治了近二十年, 所有系统均以此为基础, 微软要在DNS上的企图, 是明显的要花去大量资源来做的. 除非所有人都恭微软为主, 否则根本不可能能够达成. 从这一点上, 我们可以再更仔细地观察到微软内部的文化 - 唯我独尊. .)

强迫整合 - 特别是伺服器

专化的伺服器的上升特别是对我们的收入的一个长期威胁. 要抵御威胁的一个关键要点是产生在伺服器平台上廉价品的整合局面. David Stutz指出:

在此的底线就是任何拥有最佳的网路导向整合技术及处理, 将会打胜廉价伺服器事业(commodity server business). 有凝聚内箝系统, 无线连线, 及普遍网路协定者将会 使伺服器数量暴增(特别是"特殊伺服器"??) 一般目的的廉价子机(commodity client)是个不错的进入点 - 但它是否会矮化特殊目的的廉价伺服器事业?

    • 系统管理. 系统管理功能潜在地触及所有产品/平台的观点. 所以, 它不是个很容易可以用元件的方式, 嫁接到现有程式中. 它必须要从头就开始设计进去, 或者是在计划中, 不断地检视所有元件的结果. (译注: 这确实是OSS要向MS学习的地方. 然而, MS这样Just-Add-To-Windows, 则是走火入魔了.)
    • Ease of Use. 正如管理一样, 这个通常必须由地基打起, 因而导致开发的高价. OSS计划始终地在这个领域有问题
    • 解决途径. ZAW, 播话网路, 精灵, 等等. (译注: 这提及相当於Linux中的FrontEnd介面问题.)
    • 子机整合性. 我们要如何利用子机的基础来提供在伺服器上的类同整合需求呢? 例如, MSMQ, 是个中介软体, 要求同时在主从端有相近的程式基础.
    • 中介软体控制是重要的. 明显地, 做为伺服器, 在高等的功能中, 它们的协定将会给其廉价品带来风险, 这可做为伺服器事业的一道防御界线.

组织可信度

    • 释出/服务套装过程. 透过巩固并管理艰辛的工作来维续最後的修正版, 微软可以提供一个超过OSS过程的关键消费者优点, (译评: 这是否意谓, 现在微软在上面的工作, 是纯粹的商业导向, 根本无心於此, 所以臭虫满地爬. 再者, 作者是否暗示主官, "现在既使没有劣於, 最多也是相等於OSS过程"? 这个是值得大书一番, 详细探讨的一点. )
    • 长期性承诺. 透过像企业同意书的工具, 长期研究, 经营主旨, 等等, 微软比OSS过程更有能力承诺长远眼光, 并制造更大的长远期秩序. (译注: 弦外之音, "画大饼"让人流口水, 越大越好. 典型的商业手段.)

相关链结

感谢

许多人提供资料, 校对, 富有思想Email, 及同时於本文及Linux的分析上.

Nat Brown

Jim Allchin

Charlie Kindel

Ben Slivka

Josh Cohen

George Spix

David Stutz

Stephanie Ferguson

Jackie Erickson

Michael Nelson

Dwight Krossa

David D'Souza

David Treadwell

David Gunter

Oshoma Momoh

Alex Hopman

Jeffrey Robertson

Sankar Koundinya

Alex Sutton

Bernard Aboba

 

Revision History

Date

Revision

Comments

8/03/98

0.95

 

8/10/98

0.97

Started revision table

Folded in comments from JoshCo

8/11/98

1.00

More fixes, printed copies for PaulMa review

0