O que é o kernel do Linux? 

Se você é um novato no sistema operacional de código aberto, talvez tenha muitas dúvidas sobre alguns termos técnicos. Aqui, vamos explicar melhor o que é o kernel do Linux.

O que é o kernel do Linux? 

Para usuários casuais e fãs menos experientes, o Linux é um sistema operacional de código aberto. Para os puristas, no entanto, o título "Linux" é reservado para o kernel que alimenta o sistema operacional. Se você está curioso para saber o que é o kernel do Linux, vamos responder a essa pergunta, com foco nos usuários mais leigos.

Modos

Antes de explicar o que é o kernel, é importante entender os termos "modo de usuário" e "modo de kernel". O modo de usuário é quando a execução do código não tem capacidade de acessar diretamente o hardware ou a memória de referência. Para obter acesso ao hardware e à memória, o código em execução no modo de usuário deve delegar instruções às Interfaces de Programação de Aplicativo (APIs) do sistema. O modo de kernel é quando a execução do código tem acesso irrestrito a todo o hardware, e é reservada para as funções mais confiáveis do sistema operacional.

O que é o kernel do Linux?

Todo sistema operacional possui um kernel. Windows, macOS, iOS, Android, SO Chrome e Linux têm, cada um, um sistema de baixo nível que é responsável pela interface de todos os softwares com o hardware físico do computador. Sem o kernel, nenhum dos seus aplicativos seria capaz de usar o computador físico; aplicativos como Firefox, Chrome, LibreOffice, MS Office ou Outlook não funcionariam. O kernel também é responsável por permitir que os processos troquem informações usando o que é chamado Comunicação entre Processos (IPC).

Existem três tipos de kernels:

Kernels monolíticos: Esses kernels abrangem a CPU, a memória, o IPC, os drivers de dispositivos, o gerenciamento do sistema de arquivos e as chamadas do servidor do sistema. Também é responsável por distribuir memória do sistema para os aplicativos. Esses tipos de kernel geralmente são melhores para acessar o hardware e multitarefa.

Microkernels: Microkernels adotam uma abordagem minimalista e gerenciam apenas a CPU, a memória e o IPC.

Kernels Híbridos: Os Kernels Híbridos têm a capacidade de decidir o que eles querem executar no Modo Usuário ou Kernel. Embora isso forneça o melhor dos dois mundos, exige muito mais dos fabricantes de hardware para criar drivers que sirvam para fazer interface entre a execução de código e hardware.

Qual o kernel que o Linux usa?

Como o Linux usa código aberto, o Kernel dele é Monolítico, enquanto o MacOS e o Windows usam Kernels Híbridos. O kernel do Linux foi concebido em 1991 por Linus Torvalds. Até hoje, o Sr. Torvalds continua a ser o desenvolvedor líder no kernel do Linux, enquanto desenvolvedores de todo o mundo contribuem para o kernel do Linux.

Na verdade, estima-se que cerca de 10.000 desenvolvedores, de mais de 1.000 empresas, contribuíram para o kernel do Linux (desde que o rastreamento começou, em 2005).

Onde está o kernel?

Se você abrir uma janela de terminal e emitir o comando ls/boot, verá um arquivo chamado vmlinuz-VERSION (onde VERSION é o nome ou número da versão). O arquivo vmlinuz é o atual kernel Linux inicializável, e o "z" indica que o kernel está compactado; então ao invés de vmlinux temos vmlinuz.

vmlinuz-VERSION
vmlinuz-VERSION

A listagem do diretório/boot.

Dentro desse diretório/boot existem outros arquivos importantes do kernel, como initrd.img-VERSION, system.map-VERSION e config-VERSION (onde VERSION é um nome ou um número de release). Esses outros arquivos servem para os seguintes propósitos:

  • Initrd: usado como um pequeno disco RAM que extrai e executa o arquivo real do kernel.
  • System.map: usado para gerenciamento de memória, antes do carregamento do kernel.
  • Config: instrui o kernel sobre quais opções e módulos carregar.

Módulos

Sem módulos, o kernel não seria muito útil. Os módulos ativam efetivamente os drivers necessários para se comunicar com o hardware, sem consumir toda a memória do sistema.

Os módulos também adicionam funcionalidade ao kernel, como comunicação com periféricos, gerenciamento de sistemas de arquivos, segurança, etc. É possível listar, adicionar e remover módulos do kernel com os seguintes comandos:

  • O lsmod irá listar todos os módulos do kernel atualmente carregados.
  • O insmod carregará um módulo do kernel em execução.
  • O rmmod descarregará um módulo do kernel em execução.

Então você vê, com a ajuda de alguns comandos simples, o kernel do Linux pode ser bastante flexível.

O Kernel Atual

No momento desta publicação, o kernel estável do Linux é o 5.0, mas nem todas as distribuições do Linux incluirão o kernel mais recente. Na verdade, a distribuição atualizada da interface do Elementary OS é o kernel 4.15.0-30. O que esse número significa? No caso do kernel mais recente no Elementary OS, isso significa:

  • 4 é a versão principal
  • 15 é a versão menor
  • 0-30 é a revisão>

Também é possível fazer o download de versões diferentes do kernel do Linux a partir do kernel.org, e compilá-lo. A compilação do kernel do Linux é uma tarefa que deve ser executada apenas para quem já tem um conhecimento mais avançado.

Um kernel compilado incorretamente pode tornar o sistema não inicializável. Então, a menos que você esteja pronto para mergulhar na tarefa desafiadora de compilar um código nesse nível, use o kernel padrão, que é enviado e atualizado na sua distribuição de escolha.

Galaxy Z Fold 3: Opinião sincera!

Conteúdo relacionado

Samsung Galaxy Z Fold 3: Opinião sincera! - Review
Samsung

Samsung Galaxy Z Fold 3: Opinião sincera! - Review

É hora de comprar um dobrável? O Galaxy Z Fold 3 da Samsung está aí para apresentar o que há de mais moderno no segmento.

Após ameaça dos desenvolvedores contra inclusão, Linux pode ficar vulnerável
Linux

Após ameaça dos desenvolvedores contra inclusão, Linux pode ficar vulnerável

Os desenvolvedores insatisfeitos com a novidade ameaçam remover licenças de códigos inclusos em patches e módulos do Kernel.

Drivers de mais de 20 fabricantes de hardware estão vulneráveis a ataques de malware
Segurança digital

Drivers de mais de 20 fabricantes de hardware estão vulneráveis a ataques de malware

Pesquisa da Eclypsium aponta falhas em drivers de mais de 20 fabricantes de hardware que permitem comprometimento generalizado em PCs com Windows.