A instalação de um driver aumenta a pegada de memória do kernel do Linux?

3

Eu li que o kernel do Linux é um kernel monolítico e contém drivers dentro dele, em um único arquivo.

Por exemplo, eu tenho dois kernels linux 3.16.0.40 e 3.16.0.50 Sistema atualmente inicializado com 3.16.0.40 e instalado para, por exemplo, driver nvidia

O driver é enviado em um kernel?

Se sim, se eu selecionar 3.16.0.50 do grub e inicializar um sistema

Ele pode acessar o driver atualmente instalado do kernel anterior?

a alternância entre os kernels do Linux afeta o software que precisa desse driver?

    
por Abdul Rehman 25.10.2015 / 13:25

2 respostas

1

Depende.

O kernel do Linux tem um recurso chamado Módulos de Kernel Carregável (LKM) .

Como os drivers são geralmente construídos como módulos do kernel, eu uso os dois termos "drivers" e "módulos" de maneira intercambiável. Os módulos são os arquivos que terminam com *.ko (objetos do kernel). Eles geralmente estão localizados em uma subpasta abaixo de /lib/modules .

  • Para responder à sua questão-título: (aumentar a pegada do kernel)

    Um kernel que possui todos os módulos / drivers internos não aumenta o espaço ocupado pela memória durante o tempo de execução. Tudo é carregado na inicialização. Se o (s) driver (s) forem módulos do kernel, eles podem ser carregados posteriormente, e assim, aumentar o footprint do kernel em um estágio posterior.

    Quando você compara o tamanho do arquivo de um kernel com todos os drivers internos e um kernel com módulos, aquele com os módulos é menor. O tamanho dos módulos é a diferença.

  • A pergunta de texto: (drivers de acesso do kernel anterior)

    Não, isso não é possível. Cada driver / módulo precisa ser construído para o kernel exato que deve ser executado. Por esse motivo, você verá um diretório com o nome do kernel sob o caminho raiz dos módulos /lib/modules .

Há mais informações em HOWTO dos módulos de kernel carregáveis do Linux . Uma boa maneira de aprender mais sobre o kernel e módulos é construir um kernel você mesmo. Não é tão difícil quanto parece. Existem tutoriais para o Ubuntu e para kernels de estoque . (você provavelmente encontrará mais tutoriais se você for do google).

    
por 28.10.2015 / 08:25
1

O Kernel é compilado antes da instalação em um sistema, portanto, em uma vez que seu tamanho é definido em pedra. Drivers e outros módulos ou programas não afetarão o tamanho do kernel. Somente recompilar o kernel mudaria seu tamanho.

É por isso que existem tantas versões do Linux. Pequeno a enorme. Alguns são compilados para funcionar sem uma interface GUI, a fim de serem pequenos e enxutos para projetos que precisam apenas de uma conexão terminal como a IOT (Internet Of Things). Alguns têm GUIs personalizadas, como Ubuntu e RedHat etc.

Você pode ter a opção de escolher a GUI, o Gnome ou o KDE. Mas isso é como as opções em um carro. Você pode trocar a tinta e adicionar assentos de couro, mas ainda é um cilindro de 4 cilindros.

    
por 28.10.2015 / 08:45