Boteco Digital

Entendendo o Kernel – Parte 1

Tendo em vista que muitos usuários do GNU/Linux não entendem como o kernel funciona, resolvi fazer este post “entendendo o kernel”, vou dividir ele em 4 posts sendo o primeiro falando sobre o que é o kernel e entender a versão numérica do mesmo, seguido do post “módulos do kernel”, o terceiro falará sobre gerenciamento de módulos do kernel, e por último compilando o kernel.

O kernel de um sistema operacional é entendido como o seu núcleo ou “coração do sistema operacional”. Ele representa o nível mais baixo de troca de mensagens com o hardware, sendo responsável por todo o gerenciamento dos recursos do sistema operacional. No Kernel estão definidas as formas de operação com todos os periféricos, gerenciamento de memória, interrupções e outros.

Podemos dizer, de forma simples e direta, que o kernel é um conjunto de aplicações necessárias para fornecer a outro conjunto de aplicações, usadas pelos usuários, uma forma de utilizar os recursos do sistema. Diferente de outros sistemas operacionais (ex: Windows), no Linux, apenas parte dos drivers estão carregados em memória. A grande maioria, pode ser carregada dinâmicamente quando necessário. Por este comportamento “modular” do sistema, é que costumamos a nos referir aosmódulos de dispositivo, ao invés do termo “drivers”, mais usual.

Versão numérica do Kernel

O kernel do linux possui um número de versão numérica (ex: 2.6.26.1-1-686), sendo esse número, constituido por uma série de campos, cada qual com um significado próprio:

user@debian5:~$ uname -r
2.6.26-1-686
A B C    D

ONDE:

A – VERSION: Número principal (raramente muda)
B – PATCH LEVEL: Indica mudanças importantes no funcionamento do kernel do Linux. Se ímpar, indica um kernel experimental, se par, então é um kernel considerado estável (“de produção).
C – SUBLEVEL: Sua evolução indica o suporte a novos dispositivos, bem como correção de bugs e pequenos molhoramentos no sistema.
D – EXTRA VERSION: Usado quando desejamos diferenciar duas compilações de um kernel de mesma versão, afim de construírem de módulos separados.

Como referido acima, a série de kernel que possui o número do “Patch Level”, par, é considerado “de produção”, assim as séries 2.0.X, 2.2.X, 2.4.X e 2.6.X são consideradas séries de Kernel estáveis.
Para sabermos qual é a versão do Kernel que estamos rodando na máquina, podemos utilizar o comando abaixo:

user@debian5:~$ uname -r

outras opções que podem ser utilizadas com o comando uname:

  • -a (lista todas as informações)
  • -s (lista o nome do kernel)
  • -n (lista o hostname)
  • -v (versão do kernel)
  • -m (lista a arquitetura do cpu)
  • -p (tipo do cpu)
  • -i (plataforma de hardware)
  • -o (sistema operacional)

Bom pessoal por hoje era isso ai, por favor se ler comente =)

O próximo será sobre os módulos do Kernel.

até a próxima e que a força esteja com vocês tux-jedi

Categorias Linux

Analista de Infraestrutura em Cloud Computing no 1º Centro de Telemática de Área do Exército Brasileiro, Consultor de TI, Administrador de Sistemas e Professor. Graduado em Análise e Desenvolvimento de Sistemas e Pós-graduado em Gestão da Segurança da Informação.

Outros posts do autor
comments powered by Disqus