Uma nota pedante: "núcleo monolítico" significa algo completamente diferente. O kernel do Linux é sempre monolítico, independentemente de alguns ou todos os seus módulos serem construídos como LKMs ou compilados diretamente no kernel.
Quando os LKMs são carregados no kernel, não há absolutamente nenhuma diferença no desempenho em comparação com os módulos internos, pois o código LKM é executado no mesmo processo que o resto do kernel, não há comunicação entre processos ou nada.
% bl0ck_qu0te%No entanto, LKMs podem ser carregados mediante solicitação, portanto, se você pegar o kernel padrão do Ubuntu e recompilá-lo com todos os módulos internos, você obterá um kernel enorme que provavelmente irá desacelerar o sistema por causa do uso de muito mais RAM para todos os módulos não utilizados (o que possivelmente também causará todos os tipos de conflitos entre si).
Por outro lado, se você compilar um kernel que é customizado para sua máquina em particular e tem apenas os módulos para o hardware da máquina, o kernel provavelmente será mais rápido que o kernel padrão de estoque, especialmente no momento da inicialização. Eu tenho jogado com um kernel personalizado para o meu EeePC no Arch Linux e posso relatar que é realmente notado mais rápido:
-
o kernel pode ficar muito fino, incluindo apenas recursos que sua máquina realmente usa. A coisa toda de
kernel-eeepc
é de apenas 4Mb, o que torna mais rápido carregar a partir do disco e usa menos RAM quando carregada, deixando mais memória para os programas do espaço do usuário. -
nenhum módulo para carregar significa menos E / S de disco durante a inicialização.
-
ter drivers de hardware embutidos significa que não há necessidade de análise de hardware durante a inicialização, o que economiza tempo.
-
Os drivers de hardware internos eliminam a necessidade do ramdisk inicial, portanto, o kernel pode ser carregado diretamente pelo GRUB.
-
você pode desativar outros recursos do kernel desnecessários, o que reduz novamente o tamanho do kernel e o torna mais rápido.
As desvantagens, no entanto, são:
-
Atualizações automáticas do kernel tornam-se inúteis, você precisa construir novos kernels a partir da fonte
-
Se a máquina morrer e você conectar o disco em outro computador, a máquina provavelmente não inicializará.
Em suma, este é um exercício divertido e educativo, mas não é algo que eu consideraria fazer em uma máquina que não seja muito restrita por hardware.