Desmontado o Kernel para um Laptop

4

Meu objetivo imediato é compilar um pequeno kernel para meu laptop sem sacrificar a usabilidade. Estou familiarizado com as etapas de compilação do kernel (não necessariamente entendo o processo). Quais são as opções que eu posso me livrar no menuconfig para um kernel mais rápido, mais strong? Eu tenho usado o método de tentativa e erro, ou seja, desmarque os sistemas de arquivos e drivers não utilizados, mas este é um processo dolorosamente lento. Alguém pode me indicar coisas que eu não deveria tocar ou uma maneira melhor de abordar esse processo? Este pequeno "projeto" é apenas para recreação.

Especificações do sistema e sistema operacional:
placa-mãe i7 580M, Radeon HD5850, 8Gb DDR3 e MSI x86_64 Ubuntu 11.10.

    
por Antillar Maximus 06.11.2011 / 15:03

4 respostas

6

Desmarcar os sistemas de arquivos e drivers não reduzirá nem um pouco o tamanho do kernel, porque eles são compilados como módulos e somente os módulos que correspondem ao hardware que você possui são carregados.

Existem alguns recursos do kernel que não podem ser compilados como módulos e que você pode não estar usando. Comece com .config do Ubuntu, depois examine os que estão compilados no kernel ( y , não m ). Se você não entende o que é um recurso, deixe-o em paz.

A maioria dos recursos opcionais do kernel são opcionais porque você pode não querer usá-los em um sistema embarcado. Os sistemas embarcados têm duas características: eles são pequenos, portanto, não desperdiçar memória em código não utilizado é importante, e eles têm um propósito dedicado, portanto, há muitos recursos que você sabe que não vai precisar. Um PC é um dispositivo de propósito geral, onde você tende a conectar vários hardwares de terceiros e executar vários softwares de terceiros. Você não pode dizer com antecedência que nunca vai precisar desse ou daquele recurso. Principalmente, o que você será capaz de fazer é oferecer suporte a tipos de CPU diferentes dos seus e soluções alternativas para bugs em chipsets que você não possui (o que poucos não são compilados como módulos). Se você compilar um kernel de 64 bits, não haverá muitos deles, nem perto de um kernel x86 de 32 bits, onde há um pouco de bagagem histórica.

Em qualquer caso, você não vai ganhar nada significativo. Com 8GB de memória, a memória usada pelo kernel é insignificante.

Se você realmente quer brincar com kernels e outras coisas, eu sugiro comprar uma prancha de hobby ou de utilidade ( BeagleBoard , Gumstix , SheevaPlug ,…).

    
por 06.11.2011 / 16:46
2

O emagrecimento do kernel não resultará em nenhum ganho perceptível. O tempo seria melhor gasto reduzindo os aplicativos do espaço do usuário.

Para ver a rapidez com que o kernel aparece e quanta memória um sistema muito simples usa, você pode carregar apenas um shell puro. Para fazer isso, reinicie o computador e pare o grub. Edite a entrada que normalmente seria inicializada (ela já deve estar destacada e normalmente é 'e' editá-la) e encontre a linha que começa com "linux". Esta linha permite dar ao kernel alguns parâmetros. Adicione ao final da linha "init = / bin / sh", então inicialize sua entrada editada (provavelmente haverá instruções na tela para saber como fazer isso).

Ele deve inicializar muito rapidamente. Quando estiver pronto, você pode usar free para ver quanta memória está disponível.

Você também pode querer dar uma olhada no bootchart , que fornece informações sobre o que os processos estão fazendo enquanto inicializam.

    
por 06.11.2011 / 15:47
2

Eu não concordo totalmente com todas as respostas dadas aqui. Compilando seu próprio kernel, você terá um sistema mais rápido, e tempos de inicialização mais rápidos são muito apreciados em sistemas de laptops. Importa. É só que se você quiser um kernel personalizado, você terá que trabalhar para isso. E nem todas as pessoas estão dispostas a fazer isso. Se você não tiver problemas em dedicar tempo para aprender como fazê-lo, então é a solução perfeita para você.

Sobre a etapa .config, um truque fácil é começar com o kernel .config do seu trabalho atual e começar a extrair de lá de forma incremental à medida que sua compreensão das opções aumenta. Apenas faça "make menuconfig" ir para o fundo e selecione "load an alternate config file", então encontre o kernel atual .config de lá (cat /proc/config.gz > .config-current para facilitar a busca).

    
por 12.03.2012 / 17:20
0

Não é provável que remover um kernel seja importante em qualquer PC moderno. Os poucos megabytes que você pode salvar não estarão nem aqui nem ali. O ajuste do Kernel foi relevante nos dias de um VAX 11/750 onde você genuinamente poderia ter apenas uma máquina com 1-2MB de RAM. Ajustar buffer pools, tamanho da tabela de processo e coisas assim envolvia fazer concessões significativas contra a RAM da máquina em uma máquina tão pequena, então houve um tempo em que ela adquiriu uma espécie de status mítico como algo que um 'guru unix' deveria entender.

Realisticamente, qualquer PC feito nos últimos 15 anos provavelmente tem memória suficiente para isso não ter importância.

    
por 08.11.2011 / 16:23