dimensione del nucleo Linux ha raggiunto la soglia dei 40 milioni di righe. Di queste 40 milioni di righe, 24 milioni sono codice driver (ad esempio, il codice driver per le GPU AMD è di circa 5 milioni di righe) e 4.4 milioni sono specifici per varie architetture hardware (circa 500 righe sono utilizzate per supportare l'architettura x86).
Da luglio 2024, la dimensione del kernel è aumentata di 5 milioni di righe. Nell’estate del 30 è stata superata la soglia delle 2022 milioni di linee, nell’autunno del 20 di 2015 milioni e nell’autunno del 10 di 2008 milioni. Per fare un confronto, la versione 0.0.1 del kernel includeva solo 10mila righe di codice e la 1.0.0 - 176mila righe.
Dinamiche di crescita della codebase (numero di righe di codice sorgente) del kernel:
- 0.0.1 - settembre 1991, 10mila righe di codice;
- 1.0.0 - marzo 1994, 176mila righe di codice;
- 1.2.0 - marzo 1995, 311mila righe di codice;
- 2.0.0 - giugno 1996, 778mila righe di codice;
- 2.2.0 - gennaio 1999, 1.8 milioni di righe di codice;
- 2.4.0 - gennaio 2001, 3.4 milioni di righe di codice;
- 2.6.0 - dicembre 2003, 5.9 milioni di righe di codice;
- 2.6.28 - dicembre 2008, 10.2 milioni di righe di codice;
- 2.6.35 - agosto 2010, 13.4 milioni di righe di codice;
- 3.0 - agosto 2011, 14.6 milioni di righe di codice;
- 3.5 - luglio 2012, 15.5 milioni di righe di codice;
- 3.10 - luglio 2013, 15.8 milioni di righe di codice;
- 3.16 - agosto 2014, 17.5 milioni di righe di codice;
- 4.1 - giugno 2015, 19.5 milioni di righe di codice;
- 4.7 - luglio 2016, 21.7 milioni di righe di codice;
- 4.12 - luglio 2017, 24.1 milioni di righe di codice;
- 4.18 - agosto 2018, 25.3 milioni di righe di codice;
- 5.2 - luglio 2019, 26.55 milioni di righe di codice;
- 5.8 - agosto 2020, 28.4 milioni di righe di codice;
- 5.13 - giugno 2021, 29.2 milioni di righe di codice;
- 5.19 - agosto 2022, 30.5 milioni di righe di codice;
- 6.4 - giugno 2023, 32.9 milioni di righe di codice.
- 6.10 - luglio 2024, 35.1 milioni di righe di codice.
- 6.13 - Gennaio 2025, 39.8 milioni di righe di codice.
Come una delle opzioni per ridurre la base di codice del kernel, è stato proposto di separare i driver in un archivio separato, ma questa proposta non è stata ancora presa seriamente in considerazione a causa della complicazione dei processi di test e di garanzia della qualità, nonché a causa della comparsa di costi di manodopera aggiuntivi per la sincronizzazione delle interfacce software. Quando si sviluppano i driver nel kernel principale, molte regressioni che riguardano i driver vengono immediatamente identificate durante il processo di revisione da parte del manutentore. Se lo sviluppo viene suddiviso, c'è il pericolo che venga prestata meno attenzione al codice del driver.
Fonte: opennet.ru
