Linux® 内核版本 3.3 和 3.4 包括一个令人印象深刻的特性集,但是在某种意义上它们也是不详预兆的里程碑。版本 3.3 是第一个超过 1500 万行代码的 Linux 版本(采用了一种确实存在缺陷的测量方法测量的)。如果减去 Linux 内核的变体部分(比如驱动程序、架构相关代码和各种工具),数量可能会下降到 400 万以下(仍然是一个庞然大物)。
关于这个里程碑潜在的不详预兆有两个方面,Linux 内核的增长速度(自 2008 年以来增长了 50%)以及这种增长速度是否会对 Linux 内核效率(功率和性能)产生负面影响。功率和性能通常不是以每个补丁为基础进行测量,所以一个 bug 可能很容易蔓延到已发布内核中,并存留一段时间(例如,在版本 3.3 中修复的 PCI Express [PCIe] Active State Power Management 功率问题,在内核中已经存在一年了)。
在不到 21 年的时间内,Linux 已经从 10,000 多行代码增长到超过 1500 万行代码。尽管大多数代码驻留于驱动程序子树中,但内核的复杂性随着代码的增多在不断增加。很快有一天,这种扩大可能会导致修改内核来消除复杂性并提高其可维护性。
如 图 1 所示,版本 2.4 自 2001 年发布以来,Linux 内核增长迅速(从 3,377,902 行增加到 2012 的 14,998,651 行)。这段时期内,每年几乎有大约 100 万行新代码被添加到内核中。这是一个惊人的数字,会让每个软件开发人员都感到恐惧。
图 1. 版本 2.2(2001 年)到版本 3.3(2012 年)的内核大小
