Qual é o conteúdo dessa base de código monolítica?
Entendo o suporte à arquitetura do processador, a segurança e a virtualização, mas não consigo imaginar que sejam mais de 600.000 linhas.
Quais são os motivos históricos e atuais dos drivers incluídos na base de código do kernel?
Essas mais de 15 milhões de linhas incluem todos os drivers para cada peça de hardware de todos os tempos? Em caso afirmativo, isso levanta a questão: por que os drivers são incorporados ao kernel e não separam pacotes detectados e instalados automaticamente a partir de IDs de hardware?
O tamanho da base de código é um problema para dispositivos com restrição de armazenamento ou memória?
Parece que aumentaria o tamanho do kernel para dispositivos ARM com espaço limitado, se tudo isso fosse incorporado. Muitas linhas são selecionadas pelo pré-processador? Me chame de louca, mas não consigo imaginar uma máquina que precise de tanta lógica para executar o que entendo são os papéis de um kernel.
Há evidências de que o tamanho será um problema em mais de 50 anos devido à sua natureza aparentemente crescente?
Incluir drivers significa que ele crescerá à medida que o hardware for fabricado.
EDIT : Para aqueles que pensam que essa é a natureza dos kernels, depois de algumas pesquisas, percebi que nem sempre é. Não é necessário que um kernel seja tão grande, pois o microkernel Mach de Carnegie Mellon foi listado como um exemplo 'geralmente com menos de 10.000 linhas de código'
make menuconfig
para ver quanto do código pode ser ativado / desativado antes da criação.