论文部分内容阅读
随着计算机和互联网的发展,各种各样的计算机软件为人们的生活工作提供了便利,其中开源软件凭借高效、稳定的优势,吸引了一大批用户群体。开源软件是来自世界各地的开发者通过自组织的形式来进行软件开发的知识创造模式。目前,国内外有关这种知识创造模式的研究大都是从宏观层面进行特征总结,缺乏数据分析的支撑,因此从数据分析角度研究开源软件协作模式具有重要意义。本文从Linux内核发布版本的静态代码数据和Git中开发者的动态开发数据两方面着手,采用复杂网络和数据分析的方法,研究了Linux内核人员组织结构、代码修改审核模式以及开发者行为特征等,在此基础之上总结出Linux内核开发者协作模式。本文的研究内容主要分为以下三个方面。(1)通过对Linux内核代码共编网络的分析得出,Linux内核代码共编网络具有明显的小世界和无标度特性,而且网络符合“中央——边缘”结构,说明在Linux内核中少量开发者进行了大量的开发工作,大量开发者只是偶发的参与到开发当中。进一步结合网络特征和数据分析得出,Linux内核开发者具有专业分工、社区划分的特点,在这样的基础上形成了层级划分的人员组织结构。(2)通过对Linux内核开发者代码修订网络和审核与提交网络的分析,得出Linux内核形成了垂直化的工作模式。在领导者的维护下,Linux内核人员以维护员为主形成了团簇式的代码合作修改结构,普通开发者在团簇结构周围形成了链式合作修改结构。此外,在层级化的人员组织结构基础上,Linux内核形成了以维护员为核心的具有明显社区划分的星型代码审核与提交方式而并非是“同行互查”,这种方式很好的保证了代码审核的高效和标准化。(3)在网络特征和数据分析的基础上,本文总结出了Linux内核开发的协作模式。领导者、维护员和普通开发者三种角色依据自己的分工形成了基于信任链的自下而上的集权治理结构和垂直化的分布式协作开发模式。在多分支并行的代码开发基础上,领导者负责维护几大主要分支以及Linux内核开发的大方向,维护员是代码开发的主力,并负责社区的维护与代码的审核提交,散布在世界各地的普通开发者通过建立自己的Linux内核版本库,为Linux内核的问题发现与修改贡献着力量。Linux内核开发者清晰的职权分工、角色定位以及社区划分很好的保证了Linux内核开发的高效和内核社区的可持续发展。