Quali sono i contenuti di questa base di codice monolitico?
Comprendo il supporto dell'architettura del processore, la sicurezza e la virtualizzazione, ma non riesco a immaginare che si tratti di oltre 600.000 linee o giù di lì.
Quali sono i motivi storici e attuali dei driver inclusi nella base di codice del kernel?
Quei 15+ milioni di linee includono ogni singolo driver per ogni componente hardware di sempre? In tal caso, ciò pone la domanda, perché i driver sono incorporati nel kernel e non pacchetti separati che vengono rilevati automaticamente e installati dagli ID hardware?
La dimensione della base di codice è un problema per i dispositivi con limiti di memoria o di memoria?
Sembra che gonfierebbe le dimensioni del kernel per i dispositivi ARM con spazio limitato se tutto ciò fosse incorporato. Molte linee sono state selezionate dal preprocessore? Chiamami pazzo, ma non riesco a immaginare una macchina che abbia bisogno di tanta logica per eseguire ciò che capisco sono i ruoli di un kernel.
Ci sono prove che la dimensione sarà un problema in oltre 50 anni a causa della sua natura apparentemente in crescita?
Includere i driver significa che crescerà man mano che viene prodotto l'hardware.
EDIT : Per coloro che pensano che questa sia la natura dei kernel, dopo alcune ricerche ho capito che non è sempre. Non è necessario che un kernel sia così grande, poiché il microkernel Mach di Carnegie Mellon è stato elencato come esempio "di solito con meno di 10.000 righe di codice"
make menuconfig
per vedere la quantità di codice che può essere abilitata / disabilitata prima della creazione.