“测试效果差”是Linux长期以来的一个主要弱点,目前这一情形有了转机,自动化测试平台KernelCI已成为Linux基金会的一份子。KernelCI是一个基于社区的开源分布式测试自动化系统,专注于上游Linux内核开发。该项目现已获得了包括Google、Microsoft和Red Hat等公司的资助。
KernelCI项目始于五年前,当时一些内核维护者意识到,“Linux可在如此多的硬件上运行,但是对该硬件的测试却非常少。”
众所周知,Linux内核是由一个大型的协作式开源社区开发的,该社区通过Linux内核邮件列表(LKML)进行协作。但是Linux内核测试是分散的,在测试软件或方法上没有足够的协作。Linux内核开发人员Russell Currey提到,这种邮件列表方式下如何处理补丁是一个问题,大多数包含补丁的邮件缺少上下文,从电子邮件中也几乎不可能知道修补程序是否已被合并或拒绝。“通常,邮件列表所携带的元数据级别根本不如当代项目托管站点,这使CI(连续集成)问题更加棘手。”
“传统上,仅在最常见的硬件上进行测试。但是,由于Linux在比任何其他操作系统上更多的硬件上运行,因此在所有这些硬件上进行测试也很重要”,KernelCI联合创始人Kevin Hilman表示。“我们为内核提供了开源软件,但并未采用开源方法进行测试。KernelCI希望收集并共享我们的测试软件,就像共享其余代码一样”。通过合并这些测试项目并寻求共同点,新的KernelCI也将帮助解决在LKML中处理补丁的问题。
展望未来,KernelCI将做的不只是硬件测试。Hilman认为不仅需要进行更好的测试,还需要进行更好的跟踪和修复。KernelCI的未来目标不仅是测试各种设备,而且还要统一所有上游Linux内核测试工作。这将提供一个存储、查看、比较和跟踪测试结果的平台。
总的来说,KernelCI将改善Linux长期支持(LTS)内核测试状况,巩固现有的测试计划,改善Linux的整体安全性,并增加测试硬件的数量。这将提高Linux内核的质量、稳定性,并有助于它的长期维护。