Você sabe o que é kernel? Essa é uma dúvida comum entre os novatos no assunto. Ao mesmo tempo, tal conhecimento é fundamental para futuros profissionais de Tecnologia da Informação, sobretudo a quem pretende trabalhar em Ciências da Computação.
Ainda que a ideia de seguir a carreira nesse campo da TI seja alheia aos seus interesses, saiba que os estudos sobre o Linux (e coisas relacionadas a ele), muitas vezes, requer o entendimento do funcionamento de um kernel. O próprio terminal do Linux está atrelado a ele.
Porém não se preocupe com a complexidade do tema. Embora ele seja muito extenso, tudo o que você precisa no momento é adquirir noção básica e, ao continuar a leitura do artigo, tenho certeza de que terá aprendido bastante. Vamos continuar?
O que é?
De que maneira o homem se comunica com a máquina? Ao contrário do que muitos provavelmente responderiam, não é por meio do teclado, como se o objeto fosse um interpretador, nem mesmo pelo sistema operacional. O que ocorre, de fato, é a aplicação de linguagens de baixo nível (linguagem de máquina).
Esse tipo de linguagem consiste em instruções (enormes sequências de zeros e uns) que são compreendidas pelo aparelho. Digamos que somente quem ama muito o que faz consegue se dedicar a atividades que envolvam esse tipo de comunicação.
Logicamente, você não digita um monte de números para usar o seu computador — e talvez nunca precise fazê-lo —, é para isso que existe o sistema operacional. Os sistemas são camadas de software que convertem ações humanas (instruções que a gente compreende) em instruções à máquina.
Certo, então o sistema operacional faz a intermediação entre o humano e o seu computador. Sendo assim, quem faz o intermédio entre o sistema operacional e o processador da máquina? Eis que entra em cena o kernel.
Também conhecido como o núcleo de um sistema operacional, o kernel é um programa que gerencia as requisições de entrada e saída. Ou seja, tudo que vem do sistema operacional para o processador e vice-versa passa pelo kernel.
Isso significa que sem ele nada funciona? Tratando-se de computadores, sim. Para assegurar que o kernel tenha a capacidade de se comunicar com os mais variados componentes de hardware, ele utiliza de seus módulos.
O que são módulos?
Os módulos do kernel (loadable kernel module – LKM) são elementos abstratos que adicionam funcionalidade ao kernel para que ele faça o seu papel. Todas as informações relacionadas aos módulos são armazenadas em um diretório específico.
Esses módulos podem ser entendidos como um termômetro: sem eles, o kernel não consegue dosar o uso de memória RAM disponível; com eles, o kernel funciona com todos os componentes de hardware sem consumir toda a memória.
Ainda não ficou muito claro? Então imagine se o Windows tivesse à disposição todos os drivers existentes para todos os dispositivos de hardware possíveis, mas você pudesse ativar somente os drivers dos quais necessita para o seu computador funcionar.
É justamente assim que os módulos atuam no kernel. Contudo, os módulos que acompanham o Linux não contemplam tudo que existe, mas sim o que tem o código-fonte fornecido pelos fabricantes de hardware.
Os arquivos necessários para controle da placa de vídeo Nvidia, por exemplo, não costuma vir por padrão nos sistemas operacionais. Nesse caso, a fabricante desenvolve um módulo próprio, o qual pode ser baixado pelo usuário para que o kernel consiga se comunicar com a placa em questão.
O Linux é um kernel?
“Vale a pena instalar o Linux no computador?”, “compensa trocar o Windows pelo Linux?”, “qual sistema operacional é melhor: Mac, Windows ou Linux?”… Você já se deparou ou até mesmo indagou algo parecido, não é mesmo?
De certa forma não há problema algum em referir-se ao Linux como um sistema operacional, afinal ele está presente em uma série deles. A questão é que o Linux é um kernel e não o sistema operacional — no próximo artigo explicarei mais detalhadamente.
O kernel Linux tem o seu código-fonte aberto e é totalmente livre. Isso significa que a sua capacidade de comunicar-se com os componentes de hardware podem ser aplicados em qualquer dispositivo computacional. Por isso ele é o núcleo mais importante que existe.
Importância do Linux como kernel
Um fato que elucida muito bem o que estou dizendo: o kernel Linux é utilizado para o desenvolvimento de sistemas operacionais comuns (como Mac OS e Ubuntu), bem como sistemas que rodam em dispositivos móveis, a exemplo dos famosos Android e iOS.
O que há de mais sofisticado em tecnologia, como a computação em nuvem e a Internet das Coisas, foi desenvolvido com o Linux. Os próprios serviços de cloud computing da Microsoft (sim, a empresa de Bill Gates), por exemplo, necessita do Linux para funcionar.
Além disso, o kernel de código aberto tem viabilizado diversas iniciativas de Pesquisa & Desenvolvimento ao redor do mundo. Tudo isso graças aos princípios de liberdade atribuídos a ele, os quais o tornam completamente aberto a explorações e não requer investimentos financeiros.
Depois de concluir a leitura, espero que você tenha entendido o que é kernel e toda a sua relevância para a TI como um todo. No próximo conteúdo, em complemento a este, abordarei em mais detalhes o Linux. Fechado?
Entretanto, se você está começando a gostar do universo Linux e acredita que o conhecimento tem muito a contribuir para a carreira que pretende seguir, saiba que é possível alcançar o objetivo de maneira mais rápida e eficaz. Quer descobrir o segredo? Acesse agora o site Profissionais Linux