Linux内核开发者是如何协作的——用实际数据说话

作为开源项目中,最为成功也是最为庞大的Linux内核,如此多的开发者究竟是如何组织的?即使是自发,也超出了多数人的想象力。是的,Linux不仅仅是作为软件工程值得人们去研究,它本身就是人类协作的奇迹。本文是在读美女博士Dawn Foster亲历Linux内核开发,所研究和总结的内容。将会是她的博士论文。值得你了解。

Tue Dec 12, 2017 | 2500 Words | 大约需要阅读 5 分钟 | |

导读

开源项目的协作模式,对于绝大多数人是陌生的,也是好奇的,而这也恰是很多人感受到互联网的魅力,来自完全不同时区的人,从未谋面,却能够协同开发,在世界上最大的开源项目中进行工程攻关,堪称世界奇迹,人类史上也是罕见。本文由来自Linux内核最大的贡献公司——Intel的实习博士所作,她并非仅仅是位观察者,她本身也是开发者。本文就是她对于Linux内核开发者如何协作的记录和观察。实乃肺腑之言。

引子

Dawn Foster 在 Intel 的开源技术中心工作的时候,她所在的团队中有几位是做Linux内核开发的,那时 Dawn Foster 就对他们这些人产生了兴趣,非常好奇他们:“这些人是如何和各个公司的人进行合作的了呢?有些公司甚至是竞争对手。”

这里需要先说明一点的就是,其实Linux内核的开发人员,多数是来自商业公司的员工所做的贡献。然而,还是有很多关于开源软件的学术研究会假设大部分的工作是志愿者做的,即那些由于个人需要或利他主义的人。或许有些项目确实是由志愿者所开发和维护的,但是对于Linux内核来说是不成立的。基于此种情形,同时也是为了满足 Dawn Foster 的好奇心,Dawn Foster 采访了16位内核开发人员,主要是和他们讨论内核开发人员在开发过程中是如何进行协作的。

以下内容即是 Dawn Foster 所探索和总结的内容。

社区第一、老板第二

他们中的多数人首先认为自己是 Linux 内核开发者,然后才是某家公司的员工。即使是他们对于现在的工作很满意,对其老板也充满好感,他们中的大多数往往把雇佣关系视为暂时的,而他们作为内核开发者的身份则被认为是永久的,也是更为重要的。虽然公司在有些时候会影响到员工的贡献,但是这些员工在工作上还是享有很大的自由。这些人的日常工作并没有受到任何的干涉,老板高度信任他们,让他们去做自己认为有用的工作。但是,他们偶尔也会被要求做一些特定的工作,比如是某个公司特别感兴趣的领域。

许多内核开发者会定期与竞争对手公司的员工进行合作,他们彼此以个人身份进行交互,而并不去关注他们的雇主之间彼此的竞争关系。这点是 Dawn Foster 在 Intel 工作时所亲历的,因为Intel 的内核开发者,会和所有Intel的竞争对手公司的员工进行协作。

和他人一起协作

每位内核开发者都会对自己的同类更加的亲密,他们其中一些虽然大多是仍然是职场关系,但是很多都发展为私人友谊。基于私有友谊或职业关系,以及在一些研讨会上的碰面,让他们能够更加的利用邮件列表来进行协作。

在大多数情况下,人们似乎并不特别关心其他Linux内核开发人员在哪里工作,然而,有些志愿者软件开发人员给予的回报和帮助要比公司从事类似工作的人还要多。

具体的地理位置对于他们来说也不是什么大事,因为协作都是发生在邮件列表里,而这些是异步的,从而使得跨多个时区的协作变得容易。虽然有些开发者会了解一下关键的合作者的所在时区,从而能够判断是否能够得到及时的回复,但是绝大多数时候,人们并不在意各自的时区。

使用邮件列表进行协作

Dawn Foster 研究的重点就是内核开发者们利用邮件列表来进行协作。在Linux内核的开发中,关于补丁的讨论都是利用各个邮件列表进行的,所以如果你想知道Linux内核开发者们是如何协作的,那么邮件列表确实是最好的选择。另外,我们知道,Linux 内核真正的实际工作是那些许许多多的子系统列表,所以Dawn Foster的研究工作也不是在Linux内核的主邮件列表(LKML),而是几个经过挑选的重要的子系统邮件列表。

当然,这也并不意味着Dawn Foster会忽略掉源代码,相反,Dawn Foster 还会关注开发者们最近的代码提交,或者是维护者的状态,等等,可以影响到人们如何在一起工作的因素。

以Linux USB邮件列表为例:

举例来说,上述图展示的是两年间(2013.12.31~2015.12.31)Linux USB邮件列表上的回复。其中邮件中有回复有8,000多封,大约每天10封,不包括没有回复的邮件。较大的黑色圆圈代表那些员工在USB邮件列表中回复或回复最多的公司,用较暗的箭头表示两家公司之间的电子邮件的交互。图像中也为邮件列表上的员工活动最多的公司添加了名称。其中有一些指向自己的箭头,说明是公司自己的员工之间的交互(也有的情况是自己)。例如,像德州仪器和英特尔这样的公司就有几个人在为USB代码工作而互相回复。

同样我们从图中可以看到,在本来就是竞争对手公司之间也有很多的互动。我们可以看到诸如德州仪器、英特尔等大型半导体公司。同样,我们也可以看到即使是Linux发行版之间也有相当的交互,如在红帽和SUSE之间就有非常多的互动(线条非常的粗)。甚至是SUSE和Canonical(Ubuntu发行版母公司,译者注)之间都有些许的联系。

对于 Linux USB 模块的邮件列表来说,Dawn Foster运用了一些统计模型,即专注于去理解什么样的话题更可能会得到他人的答复,这里举一些特别的:

  • 有一些人更可能回复给维护者。
  • 那些近期有代码提交的人更可能会积极的得到回复或回复他人。
  • 最近对代码的相同领域做出贡献的人也更有可能相互回复。
  • 在同一家公司工作的员工倾向于互相回复。
  • 没有任何证据能够证明,在相近时区的就合作的更好。

接下来Dawn Foster会做点什么

(以下为Dawn Foster的第一人称叙述)

我就快完成我的博士学位修行了,可能有6到8个月的时间,在这期间我将继续使用各种统计模型来查看其他一些邮件列表,从而完成我的研究。所有这些最终都会在我的论文中发表(无疑这仅仅是对于那些想要阅读我关于内核的几百页学术漫谈的人来说的)。在完成这个研究之后,我计划到技术公司去工作,做一些类似于我以前在开源社区角色中的工作,不过那时人们将称呼我为博士了。

关于原作者

Dawn Foster,在Scale Factory 作顾问,Geek,社区经理、跑步爱好者、科幻小说迷、热爱旅行、技术发烧友、伦敦格林威治大学在读博士。

本文由作者Dawn Foster 发表在Opensource.com上:What the data says about how Linux kernel developers collaborate。本文在Creative Commons BY-SA 4.0许可证下发布。由开源之道精心编译,欢迎转载!