Vous êtes sur la page 1sur 3

O kernel do Linux

Introdução
Independente de qual seja, todo sistema operacional possui um kernel. Trata-se de um item fundamental, que
antes do Linux era conhecido apenas por estudantes de computação de grandes universidades ou por
desenvolvedores da área. Após o surgimento do Linux, o termo kernel ficou mais conhecido e qualquer um que
já tenha se aventurado no Linux sabe de sua existência. Porém, os conceitos que envolvem o kernel não são
claros a muita gente e por isso poucas pessoas sabem exatamente o que é kernel. O objetivo deste artigo é dar
explicações sobre isso, mas com ênfase no kernel do Linux.
O que é kernel
Kernel pode ser entendido com uma série de arquivos escritos em linguagem C e em linguagem Assembly que
constituem o núcleo do sistema operacional. É o kernel que controla todo o hardware do computador. Ele pode
ser visto como uma interface entre os programas e todo o hardware. Cabe ao kernel as tarefas de permitir que
todos os processos sejam executados pela CPU e permitir que estes consigam compartilhar a memória do
computador.
O kernel do Linux
Para entender melhor tudo o que envolve o kernel do Linux é interessante ver um
pouco da história do sistema (para conhecer a história completa, clique aqui). O
kernel do Linux foi idealizado pelo finlandês Linus Torvalds, em 1991. Torvalds era
um estudante de ciência da computação que em seus estudos teve a necessidade de
criar uma nova versão do Minix, um sistema operacional baseado no Unix e
desenvolvido por Andy Tannenbaum.
Linus começou a trabalhar nesse projeto e quando desenvolveu algo concreto,
enviou uma mensagem para um grupo de usuários do Minix na Usenet (a
antecessora da Internet). Na mensagem, Torvalds notificou sobre sua criação e
avisou que disponibilizaria o código-fonte do que tinha desenvolvido a todos os
interessados.
O que Linus Torvalds tinha criado, na verdade, era a primeira versão do kernel do Linux. Assim, falando
grossamente, bastava juntar uma série de aplicativos com o kernel para que um sistema operacional fosse
criado.
LInus Torvalds tinha vontade de ter um sistema operacional no qual fosse possível alterar conforme a
necessidade. Ao criar a "nova versão" do Minix, Torvalds tinha desenvolvido um meio de usar o hardware de
um computador por software e portanto, restava agora a cada interessado adicionar os aplicativos e as
funcionalidades desejadas para assim constituir um sistema operacional. Em outras palavras, o "motor" do
sistema estava criado, bastava adicionar a "carroceria".
O nome Linux é uma mistura de Linus com Unix. E como Linux é o nome de um kernel, talvez o InfoWester
deveria dar o nome de "O kernel Linux" ao título deste artigo. Devido a essa questão - sobre o que de fato o
nome Linux representa - o correto é dar o nome GNU/Linux a todas as distribuições desse sistema, uma vez
que essas são constituídas pelo kernel - o Linux - mais uma coleção de programas e aplicativos, sendo que a
quase totalidade desses softwares são baseados nos conceitos da GNU. No entanto, por questões de
comodidade, convencionou-se a utilizar o nome Linux para toda e qualquer distribuição.
As versões do kernel
Periodicamente, novas versões do kernel do Linux são lançadas. Isso ocorre para prover melhoras em uma
determinada função da versão anterior, para corrigir vulnerabilidades e para adicionar recursos ao kernel,
principalmente compatibilidade com novos hardwares.
Como o Linux é um sistema operacional aberto, qualquer pessoa pode estudar e/ou alterar seu código-fonte.
Devido a isso, tanto as versões estáveis quanto as versões que ainda estão em desenvolvimento são
disponibilizados a qualquer pessoa. Para que seja possível distinguir uma versão estável de uma em
desenvolvimento, foi adotada a seguinte convenção:
Cada versão do kernel é representada por 3 números distintos separados por ponto. O primeiro e o segundo
número indicam qual a série daquele kernel, enquanto que o terceiro número indica qual a versão do kernel
naquela série. Se o segundo número da representação for ímpar, significa que aquela série ainda está em
desenvolvimento, ou seja, é uma versão instável e em fase de testes e aperfeiçoamentos. Se o número for par,
significa que aquela série possui estabilidade para funcionar. O terceiro número se altera quando algum
recurso é alterado ou adicionado. Para um melhor entendimento, vamos a alguns exemplos:
2.6.2 - Esta versão do kernel é estável, pois sua série é par (6).
2.4.5 - Esta versão do kernel é estável, pois sua série é par (4).

2.5.19 - Esta série é instável, pois sua série é ímpar (5).


É importante frisar que você não precisa usar sempre a última versão do kernel. Só é recomendável fazer uma
atualização em casos de necessidade de compatibilidade com novo hardware ou em casos de melhorias de
recursos. Em alguns casos, principalmente com computadores antigos, o desempenho é melhor se usado um
kernel antigo. Em situações simples, talvez seja melhor apenas aplicar um patch (uma correção para um
problema) do que adicionar um kernel novo.
Compatibilidade
O kernel do Linux permite que o sistema operacional seja compatível com uma série de plataformas, desde
palmtops até mainframes. Até mesmo nos computadores da Apple é possível instalar o Linux. As principais
plataformas compatíveis são: Apple, Sun, Sparc, Alpha, PowerPC, i386 (Intel), ARM, entre outras.
Também existe compatibilidade com sistemas de arquivos. Acredite, apesar de não ser recomendável por
questões de desempenho, é possível instalar o Linux até mesmo em partições FAT32. As principais
compatibilidades neste aspecto são com os seguintes sistemas de arquivos: FAT, FAT32, ext2, ext3, ReiserFS,
JFS, NTFS, entre outros.
Atuação do kernel
Obviamente, o kernel "começa a trabalhar" no processo de inicialização (boot) do sistema, a partir das
instruções que são lidas na MBR (Master Boot Record), um recurso responsável por indicar ao BIOS do
computador como e onde carregar o sistema operacional. Quando isso ocorre, o kernel começa a detectar os
dispositivos de hardware essenciais do computador, como a placa de vídeo. Se até aqui tudo ocorrer sem
problemas, toda a imagem do kernel passa a ser carregada. Findo esse processo, o kernel checa a memória e a
prepara para o uso através de uma função de paginação. As interrupções (IRQs), os discos, memória-cache,
entre outros, são acionados em seguida.
Após realizar todas essas etapas, o sistema operacional está pronto para funcionar. O kernel carrega as
funções responsáveis por checar o que deve ser inicializado em nível de software e processos, como, por
exemplo, o conteúdo do arquivo /etc/init. Geralmente o que é carregado é a tela de login do usuário.
Usuário logado, sistema operacional trabalhando. O kernel agora executa suas funções, como a de controlar o
uso da memória pelos programas ou a de atender a chamada de uma interrupção de hardware.
É interessante notar que as distribuições Linux montam o kernel com recursos e drivers básicos para hardware,
afinal carregar o suporte a todo tipo de dispositivo é algo inviável. O kernel ficaria extremamente grande e
somente os drivers relacionados ao hardware do computador em questão é que seriam usados. Para lidar com
esse tipo de problema, os drivers são carregados como módulos após o kernel ser ativado. A questão é que
carregar recursos por módulo gera uma queda de desempenho (pouco significativa em computadores rápidos)
e por isso, muitos usuários preferem recompilar o kernel de seus sistemas para que esse carregue os drivers
junto com sua inicialização, ou seja, sem usar módulos.

Imagem do
kernel carregando

Onde obter o kernel


É possível baixar o código-fonte e o próprio kernel do Linux a partir do site www.kernel.org. Nesse endereço
não só é possível baixar a última versão como também versões um pouco mais antigas. Por esse mesmo site é
possível obter informações, reportar bugs e participar de listas de discussão.
Finalizando
Aos que se interessam por esse tipo de estudo, entender o que é o kernel de um sistema operacional e como
ele funciona é algo realmente fantástico. Talvez essa questão não seria tão conhecida entre os adeptos da
computação se o Linux não fosse um sistema de código-fonte aberto. Graças a ela, qualquer pessoa pode tirar
proveito do sistema operacional, ou melhor, do kernel, seja para estudar seu funcionamento, seja para usá-lo
em um terminal de uma loja. O kernel é o núcleo de um sistema operacional e assim, não é errado dizer que o
Linux é o coração das distribuições GNU/Linux. Mas isso é pouco. O Linux, mesmo que indiretamente, é um
dos grandes responsáveis pela divulgação das filosofias que regem a cultura do software livre.
Escrito por Emerson Alecrim Publicado em 31/10/2004 Atualizado em 31/10/2004

Publicado no Portal InfoWester

Vous aimerez peut-être aussi