Kernel: entenda o que é e como funciona o Kernel do Linux
Se você pesquisa ou está em processo de aprendizagem sobre o sistema Linux, sem dúvidas já deve ter ouvido falar sobre o Kernel do Linux, não é? Entender esse conceito é essencial para compreender outras aplicações e recursos desse open source.
Assim, entender o que é kernel, não apenas em Linux, mas em qualquer sistema operacional, bem como quais são suas finalidades e variações, ampliará muito a sua bagagem de conhecimento.
Pensando nisso, desenvolvemos este artigo completo, com tudo o que você precisa saber sobre Kernel do Linux e suas particularidades. Basta continuar a leitura. Confira!
Quer aprender tudo que precisa para passar no exame LPIC 101 ? Confira nosso curso preparatório para o exame da LPIC 101.
O que é Kernel?
Kernel, em poucas palavras, é a matriz de qualquer sistema operacional. Em uma tradução literal do termo, kernel significa núcleo, reforçando sua importância no gerenciamento de informações e processos.
Sem um kernel, nada funciona, seja um computador ou qualquer outro dispositivo que utiliza um sistema operacional robusto, desenhado para atender às necessidades dos usuários.
Afinal, o kernel é inicializado assim que o dispositivo é ligado, realizando sua função de reconhecer, acionar e otimizar a utilização de peças físicas do computador, garantindo o máximo desempenho.
E qual a sua finalidade?
A finalidade do kernel, de modo simples, é unir os recursos físicos aos lógicos de um aparelho. É ele quem direciona a utilização da memória RAM e placa de vídeo quando o usuário está tentando rodar jogos ou programas mais pesados, por exemplo.
O kernel também é responsável por organizar, controlar e processar os dados correspondentes às solicitações dos usuários e demandas dos componentes de hardware do dispositivo.
Assim, todas as hierarquias de arquivos, distribuição de componentes para o alocamento na memória, além da leitura e “tradução” dos dados em ações, é responsabilidade deste núcleo.
Em síntese, ele tem um papel indispensável para o bom funcionamento de qualquer sistema operacional e não pode ser ignorado. Abaixo, você entenderá em detalhes cada função essencial do kernel.
Gerenciamento de memória
Todos os endereços virtuais, tamanho de arquivos alocados (sejam eles quais forem: imagens, textos, softwares, blocos de notas, fragmentos de disco essenciais… ), precisam ser gerenciados pelo kernel.
É ele quem decide onde cada item será alocado após sua leitura e identificação. Ele também permite que o próprio usuário altere e realoque seus arquivos, conforme desejar, e emite avisos quando o sistema está prestes a se sobrecarregar ou ficar sem espaço.
Gerenciamento de processos
Todos os processos, desde a inicialização do sistema operacional até a manutenção dos softwares e programas que rodam em simultâneo são responsabilidades do kernel.
Seus cliques com o mouse, solicitações de execução de arquivos e outras são atendidas por este núcleo, que decide quais informações são mais relevantes para serem efetivadas primeiro pelo processador (ou processadores) disponível.
Gerenciamento de dispositivos
Todas as vezes que você insere um novo dispositivo nas entradas USB ou Bluetooth, seja um pendrive, mouse, teclado, smartphone ou impressora, o kernel o identifica, lê e executa, na maioria das vezes em frações de segundos.
Assim, todos os novos elementos acoplados ao sistema passam pela leitura e aprovação do kernel para estarem prontos para uso, conectando o hardware (dispositivo físico) com os softwares e elementos internos dele.
Chamadas do sistema
As chamadas do sistema, como o próprio nome sugere, correspondem a execução de comandos e solicitações específicas, com maior prioridade. Assim, a requisição é analisada pelo kernel, que aprova as atividades e permite que o sistema operacional retorne a ação desejada.
Além de compreender todas as funcionalidades e características do kernel, bem como sua participação protagonista no nosso cotidiano e convivência com as máquinas, é necessário entender quais são os tipos de kernel existentes e o que os diferencia.
Tipos de Kernels
O kernel do linux apresenta várias possibilidades de variações. Ele pode ser monolítico, microkernel, ou híbrido. Cada qual conta com suas próprias particularidades e características.
É importante entender a diferença entre os tipos de kernel e suas utilizações em Linux, a fim de complementar seu conhecimento e “ligar os pontos”, para que as informações façam sentido.
Kernel monolítico
O Kernel monolítico é estruturado em um único arquivo binário, um único processo que executa inteiramente em modo protegido.
Ele possui desempenho superior na passagem de mensagens, mas apresenta inúmeras desvantagens como a dificuldade de alterações no núcleo e o desperdício de recursos, pois os drivers de dispositivos permanecem constantemente em memória, mesmo quando os dispositivos não estão sendo utilizados.
As implementações de Kernel Monolítico por não ter diversos componentes espalhados, tem imunidade maior contra vírus e outros programas maliciosos.
Microkernels
No microkernel apenas uma pequena parte do núcleo executa em modo protegido para acessar diretamente o hardware, como também é responsável pela comunicação entre processos e gerência de memória.
O restante do sistema roda em modo usuário, uma vez que executa tarefas que não necessitam acessar diretamente o hardware, e seus serviços clássicos são assegurados por processos servidores.
Na teoria este conceito torna o kernel mais responsivo, uma vez que mais código é executado no espaço do usuário e aumenta a estabilidade, pois há menos código no espaço do kernel.
Ainda, como o sistema possui partes que são executadas como pequenos serviços, este tipo de implementação tira proveito das arquiteturas multiprocessadas. Mas em contrapartida exige grande esforço de design de seus desenvolvedores.
Os recursos do sistema são acessados através de um protocolo cliente/servidor, e para incluir um novo serviço basta acrescentar um novo servidor.
O microkernel possui um desempenho inferior ao modelo monolítico, mas pode-se alterar suas partes sem a necessidade de reiniciar a máquina permitindo a expansão para um sistema distribuído de forma mais fácil.
Pode-se entender o microkernel paralelo como um conjunto de microkernels locais cooperativos, um em cada nó da máquina paralela. O ponto crucial é a comunicação entre processos sobre um mesmo processador ou em processadores diferentes, de acordo com um protocolo cliente/servidor.
O módulo responsável pela comunicação possui as funções básicas para receber mensagens originárias de outros processadores, receber resultados de operações executadas remotamente e enviar mensagens destinadas a outros processadores.
Sua organização é baseada no modelo cliente/servidor, onde os serviços do sistema são implementados por servidores especializados.
Os Clientes, que são programas de aplicação, solicitam os serviços ao sistema operacional que os encaminham aos processos servidores. Estes recebem a solicitação e a executam, enviando o resultado de volta ao microkernel e então à aplicação.
Kernels Híbridos
De modo simples, o kernel híbrido reúne características do kernel monolítico e do microkernel, mesclando “o melhor entre os dois mundos” e formando uma arquitetura nova, totalmente interessante.
Considere, por exemplo, as vantagens e desvantagens de cada um dos modelos anteriores:
- desvantagens do kernel monolítico: desperdício de recursos, ocupa espaço desnecessário na memória, já que executa todos os drivers de uma só vez, sem que você, necessariamente, precise deles;
- vantagens do kernel monolítico: segurança e baixas probabilidades de ataques maliciosos;
- desvantagens do microkernel: menor desempenho;
- vantagens do microkernel: responsividade e menor espaço ocupado na memória.
Pensando nisso, o kernel híbrido, assim como o microkernel, evita a sobrecarga do sistema, através de recursos de monoprocessamento (ou distribuição de funções), como acontece no kernel monolítico.
Um bom exemplo de kernel híbrido é o Windows NT, lançado na década de 90. Entender esses pontos faz parte do aprendizado sobre a arquitetura do sistema Linux, cobrada em diversas certificações.
Tudo fará ainda mais sentido quando você estudar a história do Linux, bem como as proposições e idealizações de seu criador, Linus Torvalds, chamado de “o pai do Linux”. Basta continuar a leitura para entender mais.
Como funciona o sistema Kernel?
Sem dúvida o Kernel é a parte mais importante de qualquer sistema operacional sendo considerado o núcleo do sistema.
Ele é responsável pelas funções de baixo nível, como gerenciamento de memória, de processos, subsistemas de arquivos, rede, suporte aos dispositivos e periféricos conectados ao computador.
O Kernel do Linux
O núcleo Linux (Linux kernel em inglês) é um núcleo monolítico de código aberto para sistemas operacionais tipo UNIX.
Desenvolvidas para ambos sistemas computacionais, seja computadores pessoais ou servidores, normalmente na forma de distribuições Linux, e embarcados em diversos dispositivos como:
- roteadores;
- pontos de acesso sem fio;
- PABXs;
- receptores de televisão;
- Smart TVs;
- DVRs;
- e dispositivos de armazenamento em rede.
Os sistemas operacionais Android para Tablets, Smartphones, e Smartwatches utilizam serviços providos pelo núcleo Linux para implementar suas funcionalidades.
Enquanto a adoção em computadores de mesa é considerada baixa, sistemas baseados em Linux dominam praticamente todos os outros segmentos da computação: dos pequenos dispositivos móveis aos robustos Mainframes.
Segundo o ranking dos 500 supercomputadores mais poderosos do mundo, de novembro de 2017, todos do ranking executam Linux.
Linus Torvalds, o pai do Linux
O núcleo Linux foi concebido e criado em 1991 por Linus Torvalds para seu computador pessoal, sem qualquer intenção multiplataforma.
Mas, desde então, tem se expandido suportando um grande número de arquiteturas de computadores, muito além dos outros sistemas operacionais ou kernels.
O Linux rapidamente atraiu desenvolvedores e usuários que os adotaram como núcleo para outros projetos de software livre, notavelmente, o sistema operacional GNU.
O núcleo Linux recebeu contribuições de aproximadamente 12.000 programadores, de mais de 1.200 companhias, incluindo algumas das maiores vendedoras mundiais de software e hardware.
Como um núcleo não trabalha sozinho, o projeto “GNU” ajudou o Linus Torvalds, criando assim o GNU/Linux.
Conclusão
Percebeu como, apesar de assustador, o termo kernel é simples de entender? Sua participação indispensável em qualquer sistema o torna ainda mais didático e palpável, já que nenhum comando ou software pode ser executado sem ele.
O kernel no Linux não é diferente: assume função mestre e precisa ser bem compreendido, especialmente por aqueles estudiosos que desejam se profissionalizar e ter seus conhecimentos validados através de exames e provas de competência.
Agora, você já entende parte da arquitetura do sistema Linux, e está preparado para avançar no seu processo de aprendizagem. Caso esteja se preparando para uma certificação, precisa de informações sólidas, didáticas e lógicas.
Para isso, convidamos você a conhecer os cursos preparatórios da Certificação Linux, desenvolvidos para facilitar a sua aprovação. Nossas metodologias de ensino aprovam 93% dos candidatos que se comprometem a aplicá-las.
Vale a pena conferir e garantir a sua vaga em um dos nossos cursos preparatórios, conforme o nível da certificação que você deseja aplicar!
Tag:kernel, linus torvalds, Linux
1 Comentário
Ótimo post! Fiquei curioso para saber mais sobre como o Kernel do Linux interage com o hardware. A explicação sobre suas funções básicas foi bem clara!