Buckminster
(usa Debian)
Enviado em 03/09/2013 - 08:33h
jhonyjhous escreveu:
ata entendi ... todos os drivers vem em codigos fonte em linguagem C e sao compilados .. mais só é carregado os drivers do meu hardware ... entao quer dizer que posso verificar quais drivers eu preciso e excluir todos os outros ... e so compilo os drivers do meu hardware .. assim irei diminuir ainda mais o kernel .. e ele ficara mais leve ?
Não. Quando você compila o kernel, ele é compilado por inteiro e transformado em uma imagem compactada, imagem esta que é descompactada cada vez que inicia o sistema operacional. Aliás, os 71,6 MB do .tar.xz que você baixa do Kernel.org logicamente estão compactados também.
No menuconfig você pode configurar as opções como M (Módulo) ou * (built-in - embutido), ou seja, as opções que você colocar como M serão compiladas junto com o kernel, mas não farão parte do Kernel Space (espaço do Kernel) e as opções que você compilar como * (built-in) farão parte do Kernel Space. E se você deixar a opção sem marcar, ela não será compilada.
Entende-se por módulos as funções, os processos, os drivers, etc, ou seja, tudo aquilo que não faz parte do código do kernel, mas faz parte da imagem total que compõe o que chamamos de Kernel.
As funções, quando mantidas em módulos, somente serão carregadas para a memória quando forem necessárias. Por exemplo, o kernel está configurado para trabalhar com dispositivos USB, mas somente irá carregar essas funções para a memória quando o dispositivo USB for conectado.
Quanto ao Kernel ficar "mais leve", somente se ele deixar de ser Kernel.
Basicamente o que chamamos de Kernel é formado pelo Kernel Space (espaço do Kernel) e pelo User Space (espaço do usuário).
O Kernel Space é um espaço da memória (RAM) e um acesso completo para o hardware (geralmente através dos drivers). São os drivers que fazem o "meio de campo" entre o hardware e o sistema.
As aplicações do usuário são executadas no espaço do usuário, esse "espaço", grosso modo, são endereços na memória RAM.
Os drivers compilados como Built-in são carregados junto com o Kernel na inicialização do sistema e isso dá maior agilidade ao sistema, porém, ocupam mais espaço do Kernel na memória RAM e os endereços destinados ao espaço do Kernel na memória RAM somente são "limpos" quando você reinicia ou desliga o computador.
Os endereços do espaço do usuário são "limpos" pelo sistema quando você fecha o programa, o dispositivo, etc, após terminar de usá-lo. É claro que nem sempre isso acontece, às vezes o endereço fica alocado na memória para uso futuro. Isso depende do programa e de sua utilidade para o sistema.
E quanto à compilar somente os drivers do teu hardware, você só tem como saber quais os drivers especificamente que o teu hardware irá ocupar se você fizer um estudo profundo da tua placa-mãe, do teu processador, da placa de rede, etc; e da distribuição Linux que estará usando.
Mudando a distribuição, basicamente muda tudo de novo, mesmo compilando a mesma versão do Kernel que tinha antes.
O que você pode fazer é usar as opções padrões e alterar uma opção ou outra que você tenha certeza.
http://www.vivaolinux.com.br/artigo/O-Kernel-Linux?pagina=1