La dimensione del kernel Linux ha raggiunto la soglia di 40 milioni di righe di codice sorgente. Di queste 40 milioni, 24 milioni riguardano il codice dei driver (ad esempio, il codice dei driver per GPU AMD occupa circa 5 milioni di righe), mentre 4,4 milioni sono specifiche per diverse architetture hardware (per supportare l'architettura x86 vengono utilizzate circa 500 mila righe).
Dal luglio 2024, la dimensione del kernel è aumentata di 5 milioni di righe. Il traguardo di 30 milioni di righe è stato superato nell'estate del 2022, 20 milioni di righe nell'autunno del 2015 e 10 milioni nell'autunno del 2008. A titolo di confronto, il rilascio del kernel 0.0.1 conteneva solo 10 mila righe di codice, mentre 1.0.0 – 176 mila righe.
Dinamica di crescita della base di codice (numero di righe di codice sorgente) del kernel:
- 0.0.1 — settembre 1991, 10 mila righe di codice;
- 1.0.0 — marzo 1994, 176 mila righe di codice;
- 1.2.0 — marzo 1995, 311 mila righe di codice;
- 2.0.0 — giugno 1996, 778 mila 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 uno dei possibili modi per ridurre la base di codice del kernel, è stato suggerito di separare i driver in un repository dedicato, ma questa proposta non è attualmente presa in seria considerazione a causa della complessità dei processi di test e verifica della qualità, nonché dell'emergere di ulteriori oneri per la sincronizzazione delle interfacce di programmazione. Durante lo sviluppo dei driver all'interno del kernel principale, molte delle regressioni che influenzano i driver vengono immediatamente identificate durante il processo di revisione da parte dei soggetti di supporto. Nel caso di una separazione dello sviluppo, esiste il rischio che il codice dei driver riceva meno attenzione.
Fonte: opennet.ru
