De Linux-kernel bevat inmiddels 40 miljoen regels broncode. Van de 40 miljoen regels zijn er 24 miljoen drivercode (de drivercode voor AMD GPU's neemt bijvoorbeeld ongeveer 5 miljoen regels in beslag) en 4.4 miljoen zijn specifiek voor verschillende hardwarearchitecturen (ongeveer 86 duizend regels worden gebruikt ter ondersteuning van de x500-architectuur). ).
Sinds juli 2024 is de kernomvang met 5 miljoen lijnen toegenomen. In de zomer van 30 werd de grens van 2022 miljoen aansluitingen overschreden, in het najaar van 20 de grens van 2015 miljoen aansluitingen en in het najaar van 10 de grens van 2008 miljoen. Ter vergelijking: de kernelversie 0.0.1 bevatte slechts 10 regels code, terwijl versie 1.0.0 er 176 bevatte.
Groeidynamiek van de kernelcodebasis (aantal regels broncode):
- 0.0.1 - september 1991, 10 regels code;
- 1.0.0 - maart 1994, 176 duizend regels code;
- 1.2.0 - maart 1995, 311 duizend regels code;
- 2.0.0 - juni 1996, 778 duizend regels code;
- 2.2.0 - januari 1999, 1.8 miljoen regels code;
- 2.4.0 - januari 2001, 3.4 miljoen regels code;
- 2.6.0 - december 2003, 5.9 miljoen regels code;
- 2.6.28 - december 2008, 10.2 miljoen regels code;
- 2.6.35 - augustus 2010, 13.4 miljoen regels code;
- 3.0 - augustus 2011, 14.6 miljoen regels code;
- 3.5 - juli 2012, 15.5 miljoen regels code;
- 3.10 - juli 2013, 15.8 miljoen regels code;
- 3.16 - augustus 2014, 17.5 miljoen regels code;
- 4.1 - juni 2015, 19.5 miljoen regels code;
- 4.7 - juli 2016, 21.7 miljoen regels code;
- 4.12 - juli 2017, 24.1 miljoen regels code;
- 4.18 - augustus 2018, 25.3 miljoen regels code;
- 5.2 - juli 2019, 26.55 miljoen regels code;
- 5.8 - augustus 2020, 28.4 miljoen regels code;
- 5.13 - juni 2021, 29.2 miljoen regels code;
- 5.19 - augustus 2022, 30.5 miljoen regels code;
- 6.4 - juni 2023, 32.9 miljoen regels code.
- 6.10 - juli 2024, 35.1 miljoen regels code.
- 6.13 - Januari 2025, 39.8 miljoen regels code.
Als een van de opties om de kernelcodebasis te verkleinen, werd voorgesteld om de drivers te scheiden in een aparte repository, maar dit voorstel wordt nog niet serieus overwogen vanwege de complicatie van test- en kwaliteitsborgingsprocessen, evenals de opkomst van extra arbeidskosten voor het synchroniseren van software-interfaces. Bij het ontwikkelen van drivers in de hoofdkernel worden veel regressies die van invloed zijn op de drivers direct geïdentificeerd tijdens het beoordelingsproces door de beheerders. Als de ontwikkeling wordt gesplitst, bestaat het risico dat de drivercode minder aandacht krijgt.
Bron: opennet.ru
