整理 | 祝涛
出品 | CSDN(ID:CSDNnews)
近日Google发起了一个新的内核项目Project Icebreaker,旨在解决两个问题:紧跟主线内核,让Google为产品引入的新特性能更容易递交到上游的主线内核;能在内核生产环境中运行任意 Google 程序,在Prodkernel变更内核版本前验证上游变化。
Google数据中心(Google Data Centers)是谷歌用来提供服务的计算机软件和大型硬件资源等技术基础设施。美国有13间;欧洲有6间;亚洲有2间;南美洲有1间。
Google数据中心产品系统运行的内核被称为Prodkernel,它是基于旧版本的Linux kernel,加上Google打上的大约9000个补丁,补丁包括各种内部API、硬件支持、性能优化,以及其它必要的微调。每隔两年左右时间,这些补丁会移植到较新版本的Linux kernel。
Google发现这种工作模式面临越来越大的挑战,原因包括:内核在两年中变化很大,跟踪bug会耗费大量时间。但Google也无法直接使用主线内核,因为它的工作负荷需要的某个特性在主线内核中可能并不存在。雪上加霜的是,Google为其产品开发的每一个特性都是在Prodkernel上开发和测试的。Prodkernel与主线内核之间的巨大差异给开发增加了越来越多的难度。
为了解决这个问题,谷歌的两位工程师Andrew Delgadillo 和Dylan Hatch来到2021年的北美开源峰会,讨论一个项目——破冰计划Project Icebreaker。
Project Icebreaker有两个主要目标:
这些目标很重要,因为团队需要“更好的上游参与”。
工程师说,在考察Icebreaker的工作结构时,要考虑两方面:
工程师Hatch认为,Icebreaker比目前的prokernel方案更有利于上游。Icebreaker特性分支是在一个最新的主线内核上完成的,它们通过这种方式进行测试,所以测试结果与上游更相关。这将允许开发者更容易地为主线提供特性。
Icebreaker也存在一些风险:
目前Icebreaker是基于5.13 kernel,而最新的内核版本是 5.14,而5.15内核还处于发布候选阶段。
Icebreaker计划在5.15或5.16紧紧抓住上游,这将是项目的转折点。工程师说,到那时,它将“乘风而上”。可能会出现的一个问题是,功能维护者不得不每隔三、四周重新调整并修复冲突——在Prodkernel模型中,这种情况大约每两年发生一次。一旦项目赶上进度,就只需要每十周左右进行一次调整,并与主线计划保持一致。
参考链接:
- https://lwn.net/SubscriberLink/871195/d7e9acf5894446e6/
- https://www.google.com/intl/zh-CN/about/datacenters/