Размерът на ядрото на Linux достигна 40 милиона реда изходен код. От 40 милиона реда, 24 милиона са свързани с кода на драйверите (например, кодът на драйверите за GPU AMD заема около 5 милиона реда), а 4.4 милиона са специфични за различни хардуерни архитектури (за поддържане на архитектурата x86 се използват около 500 хиляди реда).
От юли 2024 година размерът на ядрото се увеличи с 5 милиона реда. Отбелязаната стойност от 30 милиона реда беше премината през лятото на 2022 година, 20 милиона реда — есента на 2015 година, а 10 милиона — през есента на 2008 година. За сравнение, версия 0.0.1 на ядрото съдържаше само 10 хиляди реда код, а 1.0.0 — 176 хиляди реда.
Динамиката на растежа на кодовата база (броя редове изходен код) на ядрото:
- 0.0.1 — септември 1991, 10 хиляди реда код;
- 1.0.0 — март 1994, 176 хиляди реда код;
- 1.2.0 — март 1995, 311 хиляди реда код;
- 2.0.0 — юни 1996, 778 хиляди реда код;
- 2.2.0 — януари 1999, 1.8 милиона реда код;
- 2.4.0 — януари 2001, 3.4 милиона реда код;
- 2.6.0 — декември 2003, 5.9 млн. реда код;
- 2.6.28 — декември 2008, 10.2 млн. реда код;
- 2.6.35 — август 2010, 13.4 млн. реда код;
- 3.0 — август 2011, 14.6 милиона реда код;
- 3.5 — юли 2012, 15.5 милиона реда код;
- 3.10 — юли 2013, 15.8 млн. реда код;
- 3.16 — август 2014, 17.5 млн. реда код;
- 4.1 — юни 2015, 19.5 млн. реда код;
- 4.7 — юли 2016, 21.7 млн. реда код;
- 4.12 — юли 2017, 24.1 млн. реда код;
- 4.18 — август 2018, 25.3 милиона реда код;
- 5.2 — юли 2019, 26.55 милиона реда код;
- 5.8 — август 2020, 28.4 милиона реда код;
- 5.13 — юни 2021, 29.2 милиона реда код;
- 5.19 — август 2022, 30.5 милиона реда код;
- 6.4 — юни 2023, 32.9 милиона реда код.
- 6.10 — юли 2024, 35.1 милиона реда код.
- 6.13 — януари 2025, 39.8 милиона реда код.
Като един от вариантите за намаляване на кодовата база на ядрото беше предложено да се отделят драйверите в самостоятелен репозиторий, но това предложение в момента не се разглежда сериозно заради усложняването на процесите на тестване и проверка на качеството, а също и заради появата на допълнителни трудозатрати за синхронизация на програмните интерфейси. При разработката на драйвери в основния състав на ядрото много регресии, които влияят на драйверите, веднага се откриват по време на рецензиране от съответните лица. В случай на разделяне на разработката съществува риск, че на кода на драйверите ще се обърне по-малко внимание.
Източник: opennet.ru
