Linux 现在是企业巨头的奴隶吗?

作者:Doc Searls

Linux 内核开发人员的薪水由谁支付重要吗?如果重要,那么重要程度如何,又在哪些方面重要?

讨论由此展开,源于 Linux 内核开发(2008 年 4 月) — Greg Kroah-Hartman、Jonathan Corbet 和 Amanda McPherson 的一份报告。该报告涵盖了广泛的内容。以下是小标题:

  • 开发模型
  • 发布频率
  • 变更率
  • 源代码大小
  • 谁在进行这项工作
  • 谁在赞助这项工作
  • 公司为何支持 Linux 开发
  • 结论
  • 致谢
  • 资源。

猜猜哪个小标题最受关注?

让我们从 Linux 成长并找到工作 开始,作者是 Tom Slee。Tom 写道:

亮点之一是:“超过 70% 的内核开发显然是由那些因其工作而获得报酬的开发人员完成的”。14% 由已知是无偿和独立的开发人员贡献,13% 由可能或可能没有报酬的人员(未知)贡献,因此有偿工作人员完成的工作量可能高达 85%。因此,Linux 内核在很大程度上是专业人士而非志愿者的产物。

因此,Linux 已经成为一组公司的经济合资企业,就像 Visa 是一组金融机构的经济合资企业一样。正如 Linux 基金会的报告明确指出的那样,这些公司出于各种商业原因参与其中。有些公司希望确保 Linux 在他们的硬件上运行。其他公司希望确保其发行业务的基础是稳固的。等等,这些公司都无法独立实现其目标。同样,Visa 在世界各地不同规模和类型的商店中提供服务。一些银行主要在一个国家需要他们的服务,一些在另一个国家需要,但是当他们共同努力时,他们都可以在世界各地提供他们的服务。

...Linux 基金会的报告已经明确指出,开源已经跨越了其商业卢比孔河,而且可能无法回头了。

Nick Carr开源作为企业合资企业 中延续了这一观点

Linux 基金会的一份新报告揭示了最著名和最成功的开源软件项目——Linux 操作系统开发——在多大程度上已经从志愿工作转变为企业主导的倡议。

Nick 继续引用 Tom Slee 的文章,并补充说:

从志愿者模式转变为企业模式并没有什么特别令人惊讶的地方——当大量资金进入时,这往往会发生——但这确实揭示了,虽然基于网络的“社会生产”努力在其规模上是前所未有的,并且在其技术中介结构中是不寻常的,但它们并不比任何其他类型的生产商业价值商品的劳动更免疫,甚至更具抵抗力,而被纳入既定的市场体系。Linux 内核开发从无偿劳动到有偿劳动,从志愿者到雇员的转变表明,互联网不一定会削弱中央管理的权力,也不会废除所有关于商业组织的旧真理。

在 TechnologyOwl 中,Timothy Lee 以 开源模式关乎组织,而非谁签署你的工资单 反驳了这一观点。Tim 专门对 Nick 写道:

首先,大多数为内核做出贡献的人都是专业程序员,而大多数专业程序员都在软件行业工作。因此,大多数内核贡献者为软件公司工作是完全不足为奇的。

但是 Carr 的观察也更深层次地错失了重点。开源模式的独特之处不在于谁(如果有的话)签署贡献者的工资单。相反,重要的是开源项目内部的组织方式。在传统的软件项目中,有一个项目经理来决定产品将具有哪些功能,并将员工分配到各种功能上工作。相比之下,没有人指导 Linux 内核的整体开发。是的,Linus Torvalds 和他的副手决定哪些补丁最终将被纳入内核,但是 Red Hat、IBM 和 Novell 的员工在 Linux 内核上工作时,并不接受他们的命令。他们致力于他们(以及他们的各自客户)认为最重要的任何事情,而 Torvalds 唯一的权力是决定他们提交的补丁是否足够好以纳入内核。Carr 认为 Linux 贡献者的非志愿者身份证明互联网“不一定会削弱中央管理的权力”,但这正是开源开发模式所做的。Linux 内核没有“中央管理”,如果存在,可能会使项目不那么成功。

在他的 CIO Insight Know It All 专栏中,Ed Cone 发表了 解读 Linux 的专业化,其中大部分内容来自 Clay Shirky 的引述。内容如下:

那种分析遗漏的是,IBM 正在为 IBM 不拥有或不单独指导的项目支付工程师的工资。你付钱给这些工程师——但在高级管理层和一线员工的所有关系中,你付钱给他们这一事实是最不重要的,从制度上来说。认为一旦你付钱让人做某事,你就有权管理他们,并有权完全接管这项工作以造福公司——这是不正确的。

IBM 没有生产代码,IBM 工程师在生产代码。IBM 支付这些人的工资是因为它从中获得了价值——Linux 为企业创造了价值,它降低了我们管理软件的成本,它增加了人们的硬件和服务预算——但是这里有一个疯狂的中间步骤,Linux 现在不是也不能被 IBM 拥有或控制。Linux 是残酷的技术精英统治,IBM 没有一位高级经理可以说:“我不在乎内核工程师怎么想,我就要这个。”他们不能在不向不为他们工作的人求助的情况下将其放入产品中。如果他们宣布内核的战略变更,他们会被人嘲笑的。他们放弃了管理他们正在支付的项目的权利,他们的竞争对手可以立即访问他们所做的一切。这不是 IBM 的产品。

这里有一种对变化的奇怪误读,认为只要有付费程序员从事该项目,它的发展就与传统组织内部发生的事情没有任何不同。它严重误解了 IBM 和 Novell 在彼此之间没有合同协议,并且没有权利期望他们的程序员的工作将被贡献给内核(如果那些组织外部的人不喜欢它)的情况下进行有效协作是多么的激进。这是一个巨大的变化。

当人们阅读这些统计数据时,他们会认为,如果有工资,那么所有其他的管理装饰品也必然随之而来。这不仅不是真的,而且实际上会让你看不到这样一个事实,即在企业内部,支付某人薪水但又不能指挥他们的工作可能是对管理文化的最大挑战,这是可以想象的。

现在说说我自己的几分看法。

首先,如果 Tim 和 Clay 是对的,那么报告的语言需要一些调试。例如,这一行:

我们在这里看到的是,少数公司负责内核总变更的大部分。但是,也有一个“长尾”公司进行了重大变更。

这里的操作名词是公司,而不是工程师。然后是这个:

参与 Linux 内核开发的公司名单包括许多最成功的科技公司。这些公司支持 Linux 开发都不是慈善行为;在每种情况下,这些公司都发现改进内核有助于他们在市场上更具竞争力。

虽然“改进内核”和 Nick 的“经济合资企业”之间存在差异,但差距并不大。事实上,我预计很多人会做出这样的解读。

其次,Linux 在不断发展的公用计算世界中的关键作用——特别是搜索和大型后端 Web 服务,如亚马逊的 S3 和 EC2——正符合 Nick 的新书《大转换:重塑世界,从爱迪生到谷歌》的主题。Nick 在书中描述了一个新兴的网络计算未来,这个未来由少数几家大型公司主导,这些公司将计算和相关服务作为纯粹的公用事业提供。几天前宣布的微软 Live Mesh,似乎也是其中之一。

第三,在我多年来与内核开发人员进行的所有对话中,没有人承认听从企业巨头的命令,为了公司的商业野心而偏袒内核开发。事实上,我只听到过相反的故事。

这来自我在 2005 年 11 月的 Geek Cruise 报告,我在其中报道了与 Andrew Morton 的对话:

Andrew 特意明确表示,大型供应商与 Linux 内核之间的共生关系对内核没有任何商业压力,并且没有讽刺意味。每个共生体都有自己的责任。为了说明这一点,他举了一个大型公司应用程序的例子。

(应用程序)团队不想在内核中提供(某些东西)之前实现它。我不愿意在内核中实现它的原因之一是,他们没有证明这对严肃的应用程序有显着的好处。他们没有做工作来证明它使应用程序受益。他们说“如果它不在内核中,我们就不做这项工作”。我说“我想看看如果我们把它放在内核中,它是否会使内核受益”。

他补充说,“在内核团队中,我们关心代码库的长期生存能力和完整性。我们不情愿出于特定原因而放入东西,而商业公司可能会这样做。”他说供应商参与内核有一个“有机过程”。今年早些时候,我与 IBM 的 Dan Frye 进行了交谈,他说的是同样的事情,并且 IBM 花费了数年时间才学会如何适应内核开发过程,而不是反之亦然。Andrew 解释说:

例如看看 IBM 的工程师,他们在内核上工作。他们现在了解(它是如何工作的)。他们不再是为内核工作的 IBM 工程师。他们是为 IBM 工作的内核开发人员。我的理论是,如果 IBM 管理层找到一位内核开发人员说“听着,我们需要做那个”,IBM 工程师不会说“哦,内核团队不会接受那个”。他会说“我们不会接受那个”。因为现在他们明白了。现在他们理解了我们对代码库的连贯性和寿命的总体关注。

鉴于现在这些公司已经参与了足够长的时间,他们了解我们对内核代码库的关注是什么。如果 IBM 需要某个特定功能,他们可以深入研究并将其放入内核。就像他们对 AIX 所做的那样。但是,他们如何做到这一点有一些限制,他们理解这一点。

但它必须对内核有好处。并且对支持 Andrew 所说的“严肃的应用程序”有好处。

对于那些没有参与该过程的人来说,“对内核有好处”是一个难以掌握的概念。事实上,我不确定如果我没有在一艘船上花一周时间接受 Andrew、Ted Ts'o 和一群其他内核开发人员的教育,我是否会掌握它。

在同一篇文章中,我认为 Linux 开发类似于物种的进化,而不是商业项目:

内核开发与摩尔定律无关。它与自然选择有关,自然选择是被动的,而不是主动的。内核的每个补丁都是适应性的,响应环境的变化,以及对物种的本质和功能的普遍改进的内在要求。

我们可以将每个补丁、每个新的内核版本,甚至是最小的增量版本,都视为一代,比其前辈更适合这个世界。将每个补丁提交——或供应商要求内核以某种方式适应其需求——视为来自环境的输入,内核可能会适应这些输入。

我们可以将 Linux 的增长视为一个成功物种的增长,该物种由于繁殖周期而做得很好,这让果蝇都感到羞愧。操作系统与其他数字生命形式一样,繁殖旺盛。一个 cp 命令或 ctrl-d,你就得到了一个副本,随时可以使用——通常进入一个环境,在那里物种可能会得到更多的改进,通过补丁。随着物种数量的增长,越来越多的补丁涌入,内核不断适应和改进。

这些适应通常是被动的,而不是主动的。对于 IBM 和 HP 等大型公司所做的更改,甚至是(或可能尤其如此),这些公司可能希望看到对内核进行主动更改,以更好地支持其商业应用程序。

Greg 在他的博客上回应,称这是“我认为对 Linux 内核真正是什么的最有见地的描述之一”。

尽管如此,关于企业对内核开发的影响的问题仍然被提出。例如,除了支付开发人员的工资外,公司如何影响 Linux 内核开发?

答案会揭示内核是一个“企业倡议”吗?我对此表示怀疑,但我不是需要被说服的人。

加载 Disqus 评论