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 dinamicamente quando necessário. Por este comportamento “modular” do sistema, é que costumamos a nos referir aos “mó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, constituído 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 melhoramentos 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