当我在英特尔的开源技术中心工作时,我们的团队中有相当多的内核开发者,我一直对他们如何与来自众多公司(包括我们的竞争对手)的人们如此紧密地合作感到好奇。
关于 Linux 内核,有趣的一点是,绝大多数为其做出贡献的人都是受雇于公司来完成这项工作的;然而,大多数关于开源软件的学术研究都假设参与者是志愿者,因为某些个人需求或利他主义动机而做出贡献。虽然这对某些项目来说是事实,但这种假设对于像 Linux 内核这样的项目来说并不成立。为了了解更多信息,我采访了 16 位内核开发者,讨论人们如何在内核中协同工作。
以下是我目前了解到的。
雇佣关系
许多人首先将自己视为 Linux 内核开发者,其次才是员工。即使他们喜欢目前的工作并喜欢他们的雇主,他们中的大多数人也倾向于将雇佣关系视为暂时的,而他们作为内核开发者的身份则被视为更持久和更重要。尽管公司有时会影响员工贡献的领域,但个人在如何完成工作方面有相当大的自由度。许多人在日常工作中很少受到指导,雇主高度信任他们能够完成有用的工作。然而,他们偶尔会被要求做一些特定的工作,或者对公司特别重要的某个领域感兴趣。
许多内核开发者也经常与他们的竞争对手合作,他们在互动时将彼此视为个人,而不会关注他们的雇主彼此竞争这一事实。当我在英特尔工作时,我经常看到这种情况,因为我们的内核开发者几乎与我们所有主要的竞争对手都有合作。
与他人合作
每位内核开发者与某些人的合作比其他人更紧密。有些是纯粹的专业关系,但另一些则发展成了友谊。这些友谊和专业关系,以及在会议上与人面对面会面,使得在邮件列表上进行协作变得更容易。
在大多数情况下,人们似乎并不特别关心其他 Linux 内核开发者在哪里工作,然而,有些人对志愿者软件开发者比对受雇于公司从事类似工作的人更宽容和更有帮助。
物理位置也并不特别重要,因为协作发生在邮件列表上,人们异步回复,这使得跨越多个时区进行协作变得容易。尽管有些人会跟踪他们主要合作者的时区以估计何时收到回复,但在大多数情况下,时区似乎并不那么重要。
协作在邮件列表上进行
我的研究重点是协作以及哪些人在内核上协同工作。对于 Linux 内核,关于补丁的讨论发生在各种邮件列表上,因此如果您想了解人们如何协作,邮件列表确实是最好的去处。此外,真正的工作发生在许多子系统列表上,因此我的重点不是主要的 Linux 内核邮件列表(LKML),而是几个子系统邮件列表。
这并不意味着我忽略了源代码。我还将一个人的近期代码提交或维护者身份视为可能影响人们协作方式的因素。
以 Linux USB 邮件列表为例

opensource.com
例如,此图代表了 Linux USB 邮件列表在两年期间(2013 年 10 月 31 日至 2015 年 10 月 31 日)的回复。对消息的回复超过 8,000 条,或每天约 10 条,这还不包括未回复的消息。较大、较深的圆圈代表在 USB 邮件列表上回复或被回复最多的公司,较深的箭头表示两家公司之间更多的电子邮件往来。我只为员工在邮件列表上活动最多的公司添加了名称。小环表示一家公司的员工互相回复(或可能回复自己)。例如,德州仪器和英特尔等公司有多人在 USB 代码方面工作,他们互相回复。
您还会看到竞争对手之间的大量活动。您会看到大型半导体公司,如德州仪器、英特尔等。您还会看到 Linux 发行版公司员工之间的连线。红帽和 Novell (SUSE) 之间有一条很强的连线,有点难以看到,并且还有一条从 Novell 到 Canonical 的非常细小的连线,您几乎看不到。
对于 Linux USB 列表,我还运行了专注于理解某些因素的统计模型,这些因素使人们更有可能回复他人。以下是一些亮点- 某人更有可能回复维护者。
- 最近贡献过代码的人更有可能被回复或回复他人。
- 最近为代码的相同领域做出贡献的人也更有可能互相回复。
- 在同一家公司工作的员工倾向于互相回复。
- 没有证据表明时区相似的人更有可能合作。
下一步是什么?
我的博士学位即将完成,但我还有六到八个月的时间,我将继续使用各种类型的统计模型来研究其他一些邮件列表,以完成我的研究。所有这些最终都将发表在我的论文中(供任何想阅读几百页关于内核的学术长篇大论的人)。在完成这项研究后,我计划回到一家科技公司工作,做一些类似于我之前在高级开源社区角色中所做的工作,在那里我可以让每个人都叫我博士。
在 Dawn Foster 的演讲中了解更多信息,内核邮件列表中的协作,在 开源峰会欧洲站上,该峰会将于 10 月 23 日至 26 日在布拉格举行。
1 条评论