开源软件在生产环境以及研究和软件开发中的使用越来越普及。一个明显的吸引力是购置成本低。商业软件的初始成本较高,但通常具有支持和培训等优势。用户和供应商设计了许多业务模型,将开源和商业软件结合起来;他们尽可能多地使用开源软件,并在需要时添加商业软件。他们可以将开源软件用作产品或服务的核心组件,但使用其他组件来增加价值,这可以诱使客户为产品付费(显然,在价格上很难与免费软件竞争)。
在简要概述开源软件和商业软件之间的显着差异之后,本文将描述当今市场中的几种基本业务模型,以突出显示向开源软件和服务添加价值的方式。在大多数情况下,我将仅讨论足以满足某些有用目的的完整软件系统,例如网络服务器,其中包括操作系统及其相关组件、系统目的所需的任何应用程序以及必要的本地配置信息。许多相同的原则适用于组件,例如应用程序和其他软件包。
开源软件的开发过程通常与传统商业软件的开发过程截然不同。在某些情况下,单个作者或一小群人可能会开发和分发程序或系统。然而,成功的软件通常会吸引更多的开发人员,而更大的项目通常需要更大的团队。这些团队往往是分布式的,参与者位于不同的地点,具有不同的隶属关系。一些成员可能会贡献自己的时间;另一些成员可能会付费参与该项目。一些项目开发基础设施,例如协调项目的联盟;另一些项目则以较松散的组织运作。在任何一种情况下,项目的组织都可能比传统软件开发中的中心控制少。一些项目可能有一个强大的中心人物,例如软件的初始作者,但许多其他项目已经“超越”了中心控制。
这种不那么中心化的结构在几个方面影响着开源项目的开发过程
许可是在开源和商业软件开发者之间存在明显差异的领域之一。驾驭许可领域,其中有众多的许可证——每个许可证都有其立法上的复杂性——可能很棘手。以下是许可证的简要概述:
开源软件可以免费下载,并且在多系统安装或再分发时无需许可费。
商业软件开发通常是在公司内部的集中控制下进行的,而开源软件通常是在分布式环境中开发的。这使得制定产品路线图、在设计阶段控制架构以及可能保持可实现的时间表变得更容易。商业团队在提供客户要求的功能并相应地设置优先级方面面临更大的压力。由于商业开发人员控制人员配置而不是依赖志愿者,他们可以将项目和时间表与可用人员相匹配。这使得更容易处理大型或普遍的变化,例如操作系统对多处理的支持。更集中的控制还为客户提供了对软件的设计、质量和可用性以及软件知识产权的法律责任的某种程度的问责制。
商业软件的其他相关属性包括以下内容:
软件的安装和使用通常需要一些集成工作。开发人员可以完成这项工作,或者部分或全部留给用户完成。集成包括:
当需要或希望安装新版本的软件、安装补丁或切换到替代程序时,集成过程会重复。在更新过程中,必须重新访问配置,因为选项经常更改。某些软件包可能提供更新脚本,以帮助导入以前的配置信息。
商业软件包通常提供预构建的二进制程序和安装程序,从而消除了前面描述的某些步骤。开源软件也可能提供预构建的二进制文件,特别是操作系统以及相关的文件系统和程序,如果在未安装先前版本的情况下很难构建这些文件系统和程序。开源软件包更可能需要重建组件以选择自定义配置或选项。
开源软件和传统商业软件的这些特性说明了两者之间的一些差异,并揭示了两者之间可能存在的差距。企业用户习惯于为软件付费,并且可能不愿意放弃传统软件的某些功能。这种差距导致了许多商业策略,公司在开源软件中添加功能或服务,然后可以出售这些功能或服务。当然,目标是利用通过开源可获得的资源,然后添加可以产生收入的价值。从理论上讲,这可以以更低的最终用户成本提供与传统商业软件等效的价值。这些商业模型包括:
发行。 Walnut Creek CD-ROM是最早利用免费软件的企业之一,它编译公共领域和免费提供的软件进行销售。虽然该软件可以下载,但许多用户尚未接入互联网或使用速度较慢的拨号连接。此模型的价值在于软件包的编译和更轻松的访问。这种商业模式因互联网的广泛访问而受到损害,尤其是高速访问。
软件集成。 随着Linux和FreeBSD等开源操作系统的出现,这种模式有所改变。早期的发行版不仅包含操作系统的源代码和包含的程序,还包含启动系统运行所需的即装即用二进制文件。这些版本逐渐得到增强,包括更方便的打包和安装软件,这是一个显着的改进。额外的开源软件包通常被集成,包括二进制文件的配置、构建和安装。许多Linux发行版,例如Red Hat,都在这个领域竞争。这些发行版通常价格低廉,但不包含太多支持。与早期免费软件的发行一样,操作系统软件是免费的并且可以下载,但体积更大且更难安装。随着下载速度变得更快,下载再次与CD-ROM销售竞争。一些开源组织,包括FreeBSD和Linux,现在甚至提供了在下载时轻松安装的方法,从而减少了购买CD-ROM的需求;然而,CD-ROM很方便,提供了现成的存档和备份,并且可以在没有网络访问的情况下使用。
硬件集成。 一些供应商,例如VA Linux,也开始提供完整的集成,软件预装在为操作系统选择的兼容性和适用性硬件上。更大的PC供应商最终也纷纷效仿。IBM已大规模进入市场,在其整个硬件系列上提供Linux。去年,据报道,它通过销售运行Linux的硬件赚取了15亿美元(参见 http://www.cioupdate.com/news/article.php/1574431)。
支持。 虽然大多数早期发行商在其软件包中不包含支持,但添加支持服务是下一个明显的步骤。发行商和顾问开始提供支持服务,使用不同的定价,包括捆绑的限时支持。支持可能仅限于安装和稳定性问题,或者可能包括配置、自定义或其他服务方面的帮助。此模型的一个问题是支持组织不控制其支持的软件。因此,对支持请求的可能答案是:“抱歉,事情就是这样;我们无法修复它。” 然而,提供支持的公司通常包括可以生成修复程序的开发人员,并且会将新代码提供给客户——还会将修复程序提交到开源项目的未来版本中。然而,来自支持渠道的反馈仍然不太可能以重大方式影响软件项目,因为主要开发人员不承担支持成本,而其他开发人员可能不同意为立即解决问题而生成的短期修复。
出版物。 开源市场中另一个非常成功的领域是文档和书籍的销售。O’Reilly Associates开始印刷现有的开源手册,并在1980年代中期开始了一系列关于开源软件包的原创书籍。它还通过会议和教程扩展到培训服务。
合同开发。 这是支持模型的明显扩展,公司在合同下提供工程服务。示例范围从编译器和操作系统到新CPU和系统的移植,到编写设备驱动程序和添加自定义功能。Cygnus Solutions,后来被Red Hat收购,最初是GNU软件的支持组,并增加了合同工作。最近,Wasabi Systems开始使用此模型。客户可能会完全为了自己的利益而为这些项目付费,或者他们可能会允许将生成的代码贡献回开源项目。(如果原始代码受GPL约束且软件要出售,则必须免费提供源代码。)捐赠代码提高了代码在未来系统更改中得到维护的可能性,从而减少了将添加内容重新集成到基本系统的未来版本中所需的工作。当添加内容需要修改基本系统时,可能会对合并更改产生抵制,但与开源组关系密切的公司更有可能使其更改被接受。硬件供应商可以使用合同开发来为其硬件在开源系统中提供支持。客户可以使用合同开发来填补现有软件中的空白,而无需依赖开源组的开发过程,开源组可能拥有志愿者和不可预测的时间表。
商业增值。 前面提到的模型通常添加服务并将额外的开源软件与现有的免费基础集成,在这种情况下,产品仍然是开源的。另一种选择是将商业许可软件与保持免费的开源基础捆绑在一起(例如,将商业应用程序与免费操作系统捆绑在一起)。Red Hat添加了此类产品,其售价高于Linux的基本版本。
第二个例子是提供商业许可下的扩展或专业版本,同时保持对原始免费版本的支持。Sendmail Inc. 只是其中的一个例子。使用此模型的公司通常会为免费版本的开发做出贡献,以产生良好的意愿,提高基本版本的接受度,并扩大其商业产品的市场。扩展可能包括配置和管理工具、更高性能或更高容量的版本,或添加电子邮件病毒检查等功能的组件。
此模型的第三个例子是嵌入式系统市场,其中供应商提供用于免费嵌入式操作系统的开发工具。
在这三种情况下,产品现在都包含商业许可软件和开源软件。客户像传统的软件产品一样许可并支付商业版本的费用。这种商业模式的一个挑战是保持免费版本和商业版本之间的差异化。免费版本必须足够实用才能获得市场份额。商业版本必须具有足够的附加值,以诱使客户购买它并降低免费仿制添加组件的可能性。使用商业模型的公司还提供支持服务、文档和培训——就像传统的商业软件供应商一样。
双重许可(毒丸)。 对于一小类软件,特别是与应用程序链接的软件包,商业增值模型的一个巧妙变体是可用的。Sleepy Cat Software的Berkeley DB后端数据库库就是一个例子。在此模型中,商业开发人员可以使用GPL等许可证提供软件包以供非商业用途,同时还提供具有商业许可和服务的相同软件包。
这种“扭曲”之所以成为可能,是因为需要为与免费提供的版本链接的任何应用程序提供不受限制的源代码——“毒丸”。构建使用后端数据库库的产品的公司不太可能提供源代码,因此需要为软件包付费。同时,免费软件、研究、原型设计,甚至内部使用都可以使用免费下载的库版本获得许可。如果开发人员拥有原始作品,或者如果开发人员增强了不受GPL约束的免费软件,则此模型可用。
开源的商业增强。 此模型类似于商业增值模型,因为商业上扩展了开源软件的基础,但在这种情况下,修改了基础软件而不是保持分离。BSD/OS操作系统就是一个例子。BSDi使用伯克利的Net/2和4.4BSD-Lite版本开发了该产品。然后,它填补了缺失的组件,并进行了许多其他获得许可的修改;添加了其他商业产品;并提供了完整的、受支持的版本,并以标准商业许可证销售。因此,该系统是衍生作品,而不是开源软件加商业软件的捆绑包。
当然,这种修改后的代码的使用受起始系统的许可约束。特别是,GPL强制执行对要包含在产品中的修改提供不受限制的源代码可用性。因此,不允许使用这种类型的商业衍生产品。必须为其提供源代码的修改与与原始GPL软件充分分离的添加之间的界限相当模糊,并且一些公司似乎规避了GPL的限制。例如,一些供应商提供与Linux内核(受GPL约束)动态链接的非GPL商业产品,或者作为二进制模块发货,供其客户链接到Linux中。
这种类型的产品可能源自特定版本的开源系统,然后与开源系统分道扬镳;或者它可能跟踪开源版本,并与选定的版本合并。跟踪开源版本允许合并新功能。公司可以选择要支持的开源版本(例如,选择和测试最有可能用于目标用途的稳定版本)。另一方面,合并可能很困难,因为更改范围广泛和/或选择不兼容。如果开源项目继续开发,而商业版本不跟踪它,则可能在两个版本之间建立竞争。一家公司可能难以在功能数量(包括硬件支持)方面与开源竞争,但可以在支持、稳定性或特定功能方面竞争。与之前的模型一样,商业版本必须与免费版本竞争,并且必须提供性能、稳定性、支持以及具有中心控制的商业产品的一般特性等优势。
专用产品。 一类产品是前面讨论的开源软件商业增强的特殊类别。专用服务器或互联网设备,例如防火墙或负载均衡服务器,通常由标准系统以及应用程序的特定修改构建而成。基本操作系统可以是开源系统或通用商业/开源混合系统。一些供应商选择开源系统是因为他们打算修改系统,因此不期望获得支持;另一些供应商选择商业系统是因为他们希望获得硬件和其他支持。此类别值得单独提及,因为它通常存在于具有专用功能的硬件/软件产品中,例如具有更高级系统的传统嵌入式产品。此类别的售价往往最高,因为人们似乎更愿意为定制的单用途设备付费。
纵观软件开发过程、集成问题以及开源软件和商业混合的众多商业模式,一个观察结果变得清晰:没有所谓的免费软件。当然,您可以自由下载软件,也可以自由修改软件,但重要的是要记住,志愿者和员工都贡献了自己的时间,为其他用户提供免费软件。一些项目,包括最初的BSD版本,是由政府或行业的资助开发的,这些软件被广泛提供。此外,免费软件组件的集成涉及必须考虑的成本。许多组织和个人未能认识到集成工作可能花费大量时间和成本。当然,初始成本和集成并不是故事的结局:更新、补丁、版本升级和技术支持都是持续的开销。
在互联网泡沫时期,公司纷纷使用刚刚讨论的一些模式,匆忙地利用开源软件开展业务。其中一些公司已经衰落,另一些公司已经改变了他们的商业模式。利用开源软件开展业务可能很困难。虽然免费软件的使用可以加速产品的开发,但它也降低了潜在竞争对手的进入门槛。开源项目的开发人员可能会选择实现商业产品中的功能,从而增加其吸引力。由于一些用户对价格高度敏感,或者原则上更喜欢使用开源软件,他们甚至可能选择不完整的开源解决方案,自行改进软件或等待未来版本的演变。然而,许多公司愿意为帮助解决他们问题的软件和服务付费。他们利用开源软件,同时不介意为集成、支持和服务(例如添加所需功能)付费。
只有时间才能证明哪些商业模式最终会成功。
MICHAEL J. KARELS 是一位顾问和作者,专门研究BSD和Unix系统。此前,他曾在BSDI担任系统架构师和工程副总裁,负责BSD/OS,然后在Wind River Systems担任首席技术专家。在加州大学伯克利分校计算机系统研究组工作的八年间,Karels是首席程序员,在那里他是Berkeley Unix 4.3BSD和4.4BSD版本的系统架构师。他是《The Design and Implementation of the 4.4BSD Operating System》(Addison Wesley,1996)一书的合著者。
美国政府是世界上最大的信息技术产品和服务购买者。2003年,政府将花费大约600亿美元用于购买、更新、管理和维护庞大的计算机产品和程序网络。1
开源软件对于预算紧张的官僚来说似乎是一个可能的选择;事实上,当前的环境似乎非常适合开源软件在政府IT领域占据更大的份额。虽然开源软件在华盛顿不再被视为局外人,但它在走向官方认可,成为政府集体IT系统中的主要参与者的道路上,仍然面临挑战。
开源软件作为民用和国防部(DoD)网络不可或缺的一部分,有着悠久(但低调,有时是非官方的)历史。Linux、Berkeley Software Distribution(BSD)、Apache、Samba、MySQL、PostgreSQL、Perl、Python和Zope等程序在大多数政府IT系统中都很常见。正如在公司化的美国经常发生的情况一样,对开源的大部分支持来自程序员和管理员的工作人员。用户报告说,在国务院、商务部、总务管理局和邮政服务部门以及美国国家航空航天局(NASA)、美国海军海洋局(NAVOCEANO)的众多项目中,以及当然,政府研究界的长期支持中,开源程序取得了早期成功。2 这首先引起了管理人员的注意,然后引起了政策制定者的好奇询问。“开源”的概念(“你是说我们不必为此付费?”)然而,继续给许多政策层面职位的人带来困境。
公共政策制定者通常将开源软件视为一种二分法。一方面,开源提供了一个独特的机会:免费软件和对IT系统的开发和管理的完全控制,因为源代码包含在内。这可以提高技术效率,并显着节省资金。此外,开源有助于减少对任何一家供应商的服务或支持的依赖。
另一方面,政策制定者将开源软件视为一种颠覆性技术,因为它无视已建立的开发体制,并且未能提供广泛的供应商网络,该网络可以对崩溃、更新和质量控制负责。他们想确切地知道,当事情出错时,应该向谁抱怨(向在政策制定者听说过的公司工作的人抱怨)。这不仅限于政府——公司采用开源也面临着同样的障碍。
最近,包括惠普、IBM、英特尔和甲骨文在内的主要IT供应商大量涌入支持和产品,这缓和了关于产品支持的争论。正如您可能预期的那样,来自大型企业供应商的这种日益增长的承诺显着提高了许多政府官员的兴趣水平。
此外,许多政府资助的报告提供的更高的技术认可度,有助于激发对开源软件的兴趣,并鼓励各机构探索甚至采用开源政策。3
MITRE公司最近为国防部进行的内部研究表明,国防部内部正在使用100多个开源软件应用程序。4 为情报界和军事机构成员进行的研究突出了其IT系统中使用的各种开源软件,并记录了从该软件中获得的益处。5
然而,在整个国防部正式采用开源程序是有限的。原因之一是,根据最近的联邦授权,6 与任何与国家安全相关的系统交互的所有软件程序都需要获得严格的国防部认证。关键的开源项目正在参与各种国防部认证过程,7 但迄今为止,缺乏现有的完全认证的开源软件阻碍了关键防御系统的采用工作。
国防部乐观地认为,认证将获得,并且开源在其系统中拥有未来。国防部首席信息官John Stenbit最近发布了一份政策声明《国防部中的开源软件》,该声明承认国防部“当前关于开源软件的政策[并为国防部内部开源软件的采购、使用和开发[提供了额外的指导]”。8
开源社区的许多人将该声明的发布视为在国防部内部开源程序和专有程序之间的竞争中,竞争环境趋于公平的迹象。9 人们还认为,该声明为国防部内部那些希望探索和/或实施开源程序的人提供了许可的点头——同时继续要求开源软件达到与商业软件相同的标准和要求的认证。10
情况正在好转。
1 “联邦政府爱Linux”,Erica Brown,《福布斯》,2003年6月20日,http://www.forbes.com/2003/06/20/cz_eb_0620linux_print.html。
2 “OSSI与海军合作”,OSSI,http://www.oss-institute.org/ossinavy.html,(密码请发送电子邮件至 [email protected])。
“开源渗透Navoceano系统”,John Lever和John Weathersby,《CHIPS》,2002年夏季,http://www.oss-institute.org/newspdf/CHIPSarticle.pdf。
3 “开源软件的商业案例研究”,Carolyn A. Kenwood,MITRE公司,2001年7月,http://www.mitre.org/work/tech_papers/tech_papers_01/kenwood_software/kenwood_software.pdf。
“开源渗透Navoceano系统”,John Lever和John Weathersby,《CHIPS》,2002年夏季,http://www.oss-institute.org/newspdf/CHIPSarticle.pdf。
“国防部(DoD)中的开源软件(OSS)”,John P. Stenbit,国防部,2003年5月28日(备忘录的PDF副本),http://www.egovos.org/pdf/OSSinDoD.pdf。
4 “在美国国防部中使用免费和开源软件(FOSS)”,MITRE公司,2003年1月2日,http://www.egovos.org/pdf/dodfoss.pdf。
5 “开源软件的商业案例研究”,Carolyn A. Kenwood,MITRE公司,2001年7月,http://www.mitre.org/work/tech_papers/tech_papers_01/kenwood_software/kenwood_software.pdf。
6 国家信息保障采购政策:“国家安全电信和信息安全系统委员会概况介绍第11号”,2000年1月,http://niap.nist.gov/niap/library/nstissp_11.pdf。
7 “OpenSSL 进入 FIPS(联邦信息处理标准)140-2 认证评估阶段”,开源软件研究所新闻稿,2003 年 4 月 28 日,http://www.oss-institute.org/newspdf/OSSI-OpenSSL-fips_PR.pdf。开源软件的 OpenSSL FIPS 密码模块,网站,2003 年 4 月 28 日,http://www.oss-institute.org/newspdf/OSSIFIPSRef.pdf。
8 “国防部 (DoD) 中的开源软件 (OSS)”,John P. Stenbit,美国国防部,2003 年 5 月 28 日(备忘录的 PDF 副本),http://www.egovos.org/pdf/OSSinDoD.pdf。
9 “Stenbit 告诉开源用户:检查其合法性”,Joab Jackson,《华盛顿科技》,2003 年 6 月 3 日,http://www.washingtontechnology.com/news/1_1/daily_news/20857-1.html。
10 国家信息保障采购政策:“国家安全电信和信息安全系统委员会概况介绍第 11 号”,2000 年 1 月,http://niap.nist.gov/niap/library/nstissp_11.pdf。
JOHN M. WEATHERSBY, JR. 是开源软件研究所 (http://www.oss-institute.org) 的创始人。该非营利组织的使命是促进开源软件在联邦和州政府机构以及学术实体中的开发和实施。
最初发表于 Queue 第 1 卷,第 5 期—
在 数字图书馆 中评论这篇文章
Amanda Casari, Julia Ferraioli, Juniper Lovato - 超越代码仓库
关于开源的大部分现有研究选择研究软件仓库而不是生态系统。开源仓库通常指的是版本控制系统中记录的工件,偶尔也包括围绕仓库本身的互动。开源生态系统指的是仓库的集合、社区、他们的互动、激励机制、行为规范和文化。开源的去中心化性质使得对生态系统进行整体分析成为一项艰巨的任务,社区和身份以有机和不断发展的方式交叉。尽管存在这些复杂性,但对软件安全和供应链日益严格的审查使得在进行关于开源的研究时采取基于生态系统的方法至关重要。
Guenever Aldrich, Danny Tsang, Jason McKenney - 为那些还不理解的项目经理提供的三部曲和谐
本文研究了系统采购工具箱中的三种工具,这些工具可以加速开发和采购,同时降低项目风险:OSS、开放标准和敏捷/Scrum 软件开发流程都是国防部采购项目管理工具箱的强大补充。
Jessie Frazelle - 开源固件
开源固件可以通过使固件的行为更加可见且不太可能造成危害,从而帮助将计算带到一个更安全的地方。本文的目标是让读者感到有能力向可以帮助推动这一变革的供应商提出更多要求。
Marshall Kirk McKusick, George V. Neville-Neil - FreeBSD 5.2 中的线程调度
一个繁忙的系统每秒会做出数千个调度决策,因此做出调度决策的速度对于系统的整体性能至关重要。本文 - 摘自即将出版的书籍《FreeBSD 操作系统设计与实现》- 使用开源 FreeBSD 系统为例,帮助我们理解线程调度。最初的 FreeBSD 调度器是在 20 世纪 80 年代为大型单处理器系统设计的。尽管它在今天的环境中仍然运行良好,但新的 ULE 调度器是专门为优化多处理器和多线程环境而设计的。本文首先研究了最初的 FreeBSD 调度器,然后描述了新的 ULE 调度器。