Um kernel 3 * estável e comum é de cerca de 70 mb agora. Mas existem pequenas distribuições linux de 30 a 10 mb com software e outras coisas que ficam prontas para uso.
Como o kernel do linux pode ser tão pequeno nessas distribuições? A remoção de apenas módulos e drivers desnecessários pode reduzir drasticamente o tamanho? O que mais é feito para reduzir o tamanho do kernel?
Respostas:
Sim. Se você reduzi-los (compilar / criar módulos apenas o necessário), comprima o kernel (otimize o tamanho) ... isso resultará em um kernel tão pequeno. Você pode criar outros ainda menores para o sistema de destino. Como eu conheço meu PC, conheço minhas coisas. Então, eu vou compilar o que eu preciso. Como meus próprios drivers SATA, driver para USB, etc. Nada mais. Sem webcam, sem drives IDE antigos, nada.
Além disso: Os maiores que você encontra são o núcleo INTEIRO (que nunca é necessário usar). Até os de mesa contêm (na maioria das vezes, como módulos) MUITAS coisas desnecessárias. Mas os novatos esperam que todo tipo de hardware que eles plugem funcione.
(Observe que os módulos não serão carregados até que sejam necessários. Existem três estados:
[ ]
- Não serão compilados, não farão parte do seu kernel.[M]
- Serão compilados como um módulo.(Você pode modificá-lo , ou seu sistema irá carregá-lo automaticamente quando necessário.
Depende do sistema, área do usuário.)
[X]
- Ele será compilado no kernel E estará presente - sempre.Distros com kernel pequeno:
fonte
As primeiras distribuições Linux, como o Root-Boot de Tom , o MuLinux , o roteador Diet , o LOAF (o agora extinto) e muitas outras agora partiram, todas instalaram um sistema Linux em funcionamento em um ou dois disquetes de 1,44 MB.
O kernel do Linux cresceu, mas não esqueça que é modular, os módulos do kernel são carregados conforme necessário. Portanto, ainda é possível produzir uma distribuição Linux com uma pegada muito pequena.
Veja: Guia de Ajuste de Tamanho do Kernel - eLinux.org
Se você ler Linux_tiny.pdf , verá este
fonte
A configuração padrão do kernel está configurada para suportar o máximo de hardware possível. Um kernel sem remoção com configuração padrão resultou em um tamanho de 1897996 kB (incluindo kernel + módulos). Ao remover muitos drivers e opções desnecessários (por que eu precisaria de um módulo HP se possuo um notebook Clevo), resultou em um tamanho de 892892 kB, que é uma redução de tamanho de 53% em comparação com o kernel padrão.
Ao instalar os módulos do kernel, acrescente a
INSTALL_MOD_STRIP=1
opção. Isso removerá todos os símbolos de depuração e reduzirá o tamanho em 92% para mim (de 892892 kB para 69356 kB). Observe que isso afeta apenas os módulos a serem instalados e não o próprio kernel (vmlinuz):Em Documentação / kbuild / kbuild.txt :
fonte
A maioria das principais distribuições configura seus kernels com o máximo suporte de hardware, para que funcione imediatamente com a maioria dos computadores e qualquer coisa que você conectar posteriormente. Eles também usam um sistema initrd que não é necessário na maioria dos casos. Também existem opções na configuração do kernel que otimizam o processo de compilação, e um método de compactação melhor (embora mais lento) também pode ser selecionado. Por fim, se você estiver olhando para o tamanho do código-fonte do kernel, lembre-se de que ele também inclui suporte para várias arquiteturas além de x86 / amd64, protocolos de rede, sistemas de arquivos e outros recursos que você provavelmente nunca usará e que pode ser desativado.
fonte
É bastante simples, um sistema mínimo só precisa do bootloader + kernel, embora seja quase inútil. A maioria dos comandos usados todos os dias são binários opcionais para o sistema, como sh, ls, etc. Se você estiver interessado em componentes internos, Linux From Scratch! é um bom ponto de partida.
fonte