De grootte van de Linux-kernel heeft de grens van 40 miljoen regels broncode bereikt. Van de 40 miljoen regels is 24 miljoen toe te schrijven aan stuurprogramma's (bijvoorbeeld, de stuurprogrammatuur voor AMD GPU's beslaat ongeveer 5 miljoen regels), en 4,4 miljoen is specifiek voor verschillende hardware-architecturen (om de x86-architectuur te ondersteunen, zijn ongeveer 500.000 regels nodig).
In juli 2024 is de grootte van de kernel met 5 miljoen regels toegenomen. De mijlpaal van 30 miljoen regels werd in de zomer van 2022 bereikt, 20 miljoen regels in de herfst van 2015, en 10 miljoen in de herfst van 2008. Ter vergelijking: de release van kernel 0.0.1 omvatte slechts 10.000 regels code, terwijl 1.0.0 176.000 regels telde.
De groei van de codebase (aantal regels broncode) van de kernel:
- 0.0.1 — september 1991, 10.000 regels code;
- 1.0.0 — maart 1994, 176.000 regels code;
- 1.2.0 — maart 1995, 311.000 regels code;
- 2.0.0 — juni 1996, 778.000 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 codebasis van de kernel te verkleinen, is voorgesteld om stuurprogramma's in een aparte repository onder te brengen, maar dit voorstel wordt momenteel niet serieus overwogen vanwege de complicaties in de testprocessen en kwaliteitscontrole, alsook door de extra inspanningen die nodig zijn voor de synchronisatie van software-interfaces. Bij de ontwikkeling van stuurprogramma's in de hoofdstructuur van de kernel worden veel regressies die invloed hebben op de stuurprogramma's onmiddellijk tijdens de evaluatie door de betrokkenen ontdekt. Bij het splitsen van de ontwikkeling bestaat het risico dat de stuurprogramma's minder aandacht krijgen.
Bron: opennet.ru
