O que é o kernel Linux?

Imagem de um programador rodeado por linhas de código

Autores

Mesh Flinders

Staff Writer

IBM Think

Ian Smalley

Staff Editor

IBM Think

O que é o núcleo do Linux?

O kernel Linux é um kernel gratuito e de código aberto crítico para muitos sistemas de computador. No sistema operacional (SO) Linux, o kernel Linux forma uma interface crítica entre as camadas de hardware e software, permitindo que o SO gerencie muitos componentes diferentes de uma só vez. 

Os kernels são programas de computador que formam o núcleo de um sistema operacional (SO) e oferecem ao usuário controle total sobre os componentes de hardware e software que compõem o sistema. Os kernels ajudam a evitar conflitos entre processos importantes que são essenciais para o funcionamento adequado do sistema. O código do kernel é mantido na memória do computador e permite todas as interações entre software e hardware; por exemplo, entrada/saída (E/S), uso de CPU e cache, drivers de dispositivo, sistemas de arquivos e soquetes de rede.

O kernel Linux kernel foi desenvolvido em 1991 por Linus Torvalds como uma alternativa gratuita ao Unix, um dos primeiros sistemas operacionais que permitia aos usuários interagir diretamente com computadores. Nos anos que se seguiram, o kernel Linux e as versões subsequentes do kernel e os lançamentos do kernel se tornaram críticos para as distribuições do Linux. Atualmente, eles são usados por algumas das maiores empresas de tecnologia, software e computação do mundo.  

Distribuições do kernel Linux

A cada nove a 10 semanas, uma nova versão do kernel Linux é lançada. Essas versões, chamadas de "kernels estáveis", são criadas por desenvolvedores de kernel do Linux e mantenedores de repositórios do Linux e podem ser encontradas em kernel.org e no GitHub.

Alguns fornecedores, no entanto, como Debian e Red Hat, preferem manter uma árvore de origem personalizada — uma coleção de todo o código-fonte do kernel Linux para seus próprios projetos. Essa abordagem tem ramificações críticas para o uso do kernel Linux em muitas aplicações empresariais modernas, como inteligência artificial (IA), edge computing e Internet das coisas (IoT). 

Por exemplo, o Red Hat Enterprise Linux é uma plataforma Linux estável e de alto desempenho que apresenta funcionalidades de segurança e recursos de gerenciamento, e é construído usando a árvore de origem Linux personalizada da Red Hat. O Debian usa sua árvore de origem para manter o Ubuntu, um código aberto que é fundamental para muitas arquiteturas de IoT. 

Kernel Linux versus sistema operacional Linux

Um kernel é um programa de computador que funciona como o coração do sistema operacional, o sistema que permite aos usuários interagir com o hardware e o software do computador. No caso do sistema operacional Linux, o kernel Linux é o código que forma o componente central do sistema operacional, permitindo que ele execute suas funções.

O sistema operacional Linux é composto por vários componentes além do kernel Linux, como bibliotecas do sistema, utilitários de espaço do usuário e aplicações. No entanto, todos esses componentes dependem do kernel Linux para se comunicarem com o sistema operacional para que possam receber comandos, como entrada/saída (E/S), e atender às solicitações do usuário. O kernel Linux é conhecido por sua flexibilidade e pode ser modificado de acordo com a necessidade do usuário ou para atender aos requisitos de um programa específico.

Ciclo de vida do kernel Linux

Cada lançamento do kernel Linux tem um ciclo de vida em que é testado, liberado ao público e, em seguida, descontinuado gradualmente. O ciclo de vida do kernel Linux é dividido em cinco fases: Prepatch, Mainline, Stable Review, Long Term Support (LTS) e End of Life (EOL). 

  • Prepatch: os desenvolvedores do Linux experimentam novas funcionalidades na árvore de origem do kernel.
  • Mainline: as alterações são estabilizadas por meio de testes e ajustes rigorosos.
  • Stable Review: o kernel passa por testes adicionais para corrigir problemas críticos identificados na fase principal antes de seu lançamento. 
  • Long Term Support (LTS): apenas alguns kernels são identificados como kernels LTS e mantidos por um período mais longo do que outros kernels, geralmente dois anos. 
  • End of Life: os kernels não selecionados para LTS têm seu suporte interrompido quando os kernels mais recentes são lançados.  

 

As mais recentes notícias de tecnologia, corroboradas por insights de especialistas.

Mantenha-se atualizado sobre as tendências mais importantes (e intrigantes) do setor em IA, automação, dados e muito mais com o boletim informativo Think. Consulte a Declaração de privacidade da IBM.

Agradecemos sua inscrição!

Sua assinatura será entregue em inglês. Você pode encontrar um link para cancelar a assinatura em todos os boletins informativos. Você pode gerenciar suas inscrições ou cancelar a inscrição aqui. Consulte nossa Declaração de privacidade da IBM para obter mais informações.

Benefícios do kernel Linux

Atualmente, o Linux é um dos sistemas operacionais de código aberto mais usados no mundo. Isso se deve em grande parte à flexibilidade e eficácia do kernel Linux. Ele fornece muitos dos recursos de gerenciamento e controle que tornam o sistema operacional Linux uma plataforma tão poderosa, incluindo aqueles que alimentam a CPU (o cérebro ativo de um sistema de computador) e sua capacidade de rede (sua capacidade de se conectar a outros dispositivos e compartilhar recursos e informações). Estes são alguns dos mais amplos benefícios empresariais do kernel Linux: 

  • Abstração: em termos de ciência da computação, o termo "abstração" significa simplesmente a omissão de informações não críticas para permitir uma interação mais contínua entre dispositivos e programas. O kernel Linux pode abstrair o hardware subjacente, ocultando detalhes sem importância sobre ele do sistema operacional e permitindo que sistemas e software funcionem de forma mais eficiente. 
  • Personalização: o kernel Linux pode ser personalizado para atender às necessidades específicas de diferentes usuários ou diferentes tipos de sistemas operacionais. O processo de personalização geralmente exige a alteração do código-fonte do kernel e a compilação de uma imagem do kernel personalizada, que é simplesmente um kernel que foi ajustado para atender a uma finalidade específica. Em seguida, funcionalidades específicas do kernel e módulos do kernel — partes de código que são carregadas ou descarregadas no kernel para adicionar ou subtrair certas funções — podem ser selecionados para atender às necessidades de computação específicas. Existem módulos de kernel populares para tarefas e dispositivos como computação de alto desempenho (HPC), aplicações empresariais e unidades de processamento gráfico (GPUs).  
  • Conteinerização: a conteinerização, o empacotamento do código do software com apenas as bibliotecas do sistema operacional e as dependências necessárias para executá-lo em qualquer ambiente de computação, é fundamental para muitas aplicações nativas da nuvem modernas. O kernel Linux é essencial para a conteinerização e tecnologias adjacentes, como Docker e Kubernetes, que tornam os contêineres possíveis. Docker e Kubernetes são as duas ferramentas de conteinerização mais populares do mercado, com 94% das empresas entrevistadas usando um ou ambos1. Docker é usado para criar e executar contêineres, e o Kubernetes é uma plataforma de orquestração de contêineres de código aberto que permite o gerenciamento e o dimensionamento de aplicações conteinerizadas. 
  • Virtualização: o kernel Linux pode executar máquinas virtuais (VMs) em uma única máquina física usando sua funcionalidade de "máquina virtual baseada em kernel (KVM)". As VMs são importantes porque permitem que os recursos de uma única máquina física, como memória, CPU, interface de rede e armazenamento, sejam usados por diferentes sistemas operacionais em um único dispositivo. Esse processo basicamente transforma o sistema Linux em um hipervisor, uma ferramenta usada para gerenciar e monitorar VMs, permitindo recursos importantes quando se trata de gerenciar VMs. 
AI Academy

Preparando-se para a IA com a nuvem híbrida

Liderada pelos principais líderes da IBM, o currículo dessa experiência foi desenvolvido para ajudar líderes empresariais a terem o conhecimento necessário para priorizar os investimentos em IA capazes de estimular o crescimento.

Como o kernel Linux funciona?

O kernel Linux é composto por seis camadas distintas ou subsistemas que habilitam suas funções principais: 

  • Implementação de chamada de sistema (SCI)
  • Gerenciamento de processos
  • Gerenciamento de memória
  • Memória virtual
  • Stack de rede
  • Drivers de dispositivos

Veja a seguir cada um deles e como funcionam.

SCI

A camada SCI carrega a funcionalidade que permite ao kernel executar chamadas de sistema a partir do espaço do usuário para o kernel. Esse é um recurso crítico do kernel Linux porque o espaço do usuário é onde o software de aplicação e os drivers executam suas cargas de trabalho, enquanto o espaço do kernel é estritamente para executar funções críticas do sistema operacional. A camada de SCI forma uma ponte entre os dois espaços. Quando uma chamada de sistema é iniciada a partir do espaço do usuário, por exemplo, uma solicitação para atualizar uma caixa de entrada de e-mail ou abrir uma aplicação móvel bancária, a chamada do sistema aciona um comutador para a camada do kernel, permitindo que a solicitação seja transmitida ao sistema operacional.

Gerenciamento de processos

A camada de gerenciamento de processos permite que o kernel Linux execute os processos que permitem que os usuários interajam com o computador. Por exemplo, quando o Linux é inicializado pela primeira vez, Init (abreviação de "initialization"), leva o sistema a um estado utilizável, executando scripts de inicialização e gerenciando níveis de execução. Cada processo representa uma virtualização individual do processador — por exemplo, código de encadeamento, dados, stack e registros de CPU.  

Gerenciamento de memória

Os computadores gerenciam a memória virtual usando o que é conhecido como "páginas". As páginas são a menor unidade em que os dados podem ser divididos em um sistema operacional que depende de memória virtual. A camada de gerenciamento de memória do kernel Linux permite que o sistema operacional e, por extensão, o usuário, gerencie a memória disponível do computador. A memória virtual é crítica para a funcionalidade de todos os programas e aplicações.

Sistema de arquivos virtuais (VFS)

O sistema de arquivos virtual (VFS) do kernel Linux fornece uma interface comum para sistemas de arquivos. O VFS opera como uma camada de comutação entre o SCI e os sistemas de arquivos suportados pelo kernel, permitindo muitas funções críticas (por exemplo, abrir, fechar, ler e escrever). 

As abstrações do sistema de arquivos (em outras palavras, a maneira como os arquivos, diretórios e sistemas de arquivos aparecem para os usuários) são outro componente importante da camada VFS, ajudando a apresentar a complexidade de um sistema de computação de uma forma representativa e fácil para o usuário entender.

O stack de redes

Cada computador em uma rede, também conhecido como "nó", deve seguir os protocolos de rede — um conjunto rigoroso de regras para compartilhar e receber dados. Esses protocolos são cruciais para permitir que dispositivos incompatíveis usem a mesma rede, por exemplo, um telefone Android e um computador Mac. 

Para facilitar esse tipo de comunicação, os protocolos de rede dependem de gateways, que são dispositivos de hardware (como roteadores) que facilitam a comunicação entre duas redes diferentes. A stack no kernel Linux usa muitos dispositivos de gateway comuns, como conversores de taxa, tradutores de protocolo e outros, para possibilitar a comunicação de redes entre dispositivos incompatíveis.

Drivers de dispositivos

Os drivers de dispositivos fornecem ao SO uma interface de software que permite o funcionamento de um dispositivo específico, como um teclado ou unidade externa, um mouse ou uma impressora. O código-fonte do kernel Linux é composto principalmente por código contido em drivers de dispositivo específicos para um determinado dispositivo. 

A árvore de origem do Linux, um diretório que contém todo o código-fonte do kernel Linux e dos drivers de dispositivo, é dividida nos vários dispositivos compatíveis e suas conexões, como Bluetooth ou porta serial. O driver do dispositivo reconhece os comandos dados a um dispositivo individual ou classe de dispositivos e cria solicitações de E/S contendo esses comandos para que o dispositivo funcione da maneira pretendida pelo usuário. 

Casos de uso do kernel Linux

Empresas de setores muito diferentes dependem do kernel Linux e dos vários recursos que eles oferecem para manter sua força de trabalho inovando e fornecer os programas, aplicações e serviços dos quais seus clientes dependem. Aqui estão alguns dos casos de uso empresarial mais comuns para o kernel Linux.

Rede de computadores

O kernel Linux permite que computadores e dispositivos de computação sejam conectados com segurança por meio de Wi-Fi, Ethernet ou outro tipo de conexão, independentemente da compatibilidade do dispositivo. Essa funcionalidade permite conhecimento crítico e compartilhamento de recursos, como o uso de intranets e a entrega rápida e eficiente de produtos de software como serviço (SaaS). 

O kernel Linux está equipado com recursos de segurança robustos que ajudam a proteger os usuários e os sistemas operacionais contra ameaças cibernéticas que podem prejudicar computadores, programas, aplicações e as redes em que são executados. Essas ameaças incluem muitos tipos diferentes de malware, como ransomware, rootkits, worms e muito mais. As ameaças que têm como alvo as vulnerabilidades do kernel Linux são tratadas por meio de patches frequentes, como correções de bugs, que protegem os sistemas e os programas executados neles. 

Otimização de recursos

Com 89% das empresas realizando iniciativas de transformação digital2, a otimização dos recursos computacionais dedicados à transformação digital tornou-se parte essencial da maioria das estratégias empresariais. 

O kernel Linux ajuda as empresas a equilibrar as necessidades dos Recursos de computação mais valiosos (como servidores, bancos de dados e software de aplicações de ponta), para que possam ter certeza de que seus sistemas e redes estão funcionando em níveis máximos por meio de um processo chamado ajuste do kernel. 

O ajuste do kernel está ajustando sutilmente as configurações do kernel Linux para melhorar o desempenho em subsistemas específicos do kernel Linux, como rede, memória, agendamento de processos e sistemas de arquivos. No caso de sistemas de arquivos, por exemplo, muitas aplicações de computação intensiva de dados, incluindo videogames, aplicativos de negociação financeira e sites de redes sociais, exigem o ajuste dos parâmetros do sistema de arquivos para serem executados em níveis de pico. O sistema de arquivos proc, um VFS no sistema operacional Linux, faz interface entre estruturas de dados internas no kernel para obter dados sobre o sistema de modo que os parâmetros do kernel possam ser ajustados para otimizar o desempenho da aplicação.

Gerenciamento de dispositivos

As empresas mais bem-sucedidas da atualidade devem equipar os funcionários com tecnologia de ponta, como notebooks e dispositivos móveis, para prosperar. O kernel Linux permite que programas e redes que sustentam milhares de funcionários em diferentes locais — e usando diferentes tipos de dispositivos — colaborem sem dificuldades. O kernel permite que os dispositivos de hardware interajam usando módulos de dispositivos específicos que podem ser carregados no kernel para que possam ser gerenciados pelo sistema operacional.

Um processo popular de gerenciamento de dispositivos Linux é conhecido como interruptO interrupt ajuda a conservar os recursos de computação, permitindo que o kernel Linux interrompa a comunicação entre um dispositivo e uma aplicação quando ela não é necessária para uma operação específica. Outra opção é o udev uma ferramenta de gerenciamento de dispositivos Linux que gerencia a adição e subtração de dispositivos de um sistema operacional e controla como cada dispositivo aparece em um diretório.

Computação em nuvem

A computação em nuvem, a entrega sob demanda de recursos de computação pela internet, tornou-se uma ferramenta essencial para muitas empresas modernas, estimulando a inovação e ajudando a fornecer soluções aos clientes de forma rápida e escalável. 

O kernel Linux possibilita a computação em nuvem de maneiras críticas e tornou-se um componente essencial de todos os maiores provedores de nuvem do mundo, incluindo Amazon (AWS), Microsoft Azure, Oracle e Google Cloud.

A escalabilidade do kernel possibilita que ele ofereça suporte a sistemas de computadores maciços, como supercomputadores e data centers, sem aumentar significativamente os recursos de computação - um recurso essencial para arquiteturas de nuvem. O kernel Linux também é ideal para cargas de trabalho na nuvem porque é altamente estável e com downtime relativamente baixo. Finalmente, o kernel Linux é altamente versátil e pode operar em vários tipos de hardware, um recurso fundamental nos ambientes virtualizados que são fundamentais para a nuvem moderna.

Notas de rodapé

1.     Top five containerization technologies in 2024, (link externo a ibm.com), 6Sense, 2024

2.     The Value of Digital Transformation, (link externo a ibm.com), Harvard Business Review, 31 de julho de 2023

Soluções relacionadas
IBM Cloud Infrastructure Center 

O IBM Cloud Infrastructure Center é uma plataforma de software compatível com o OpenStack para gerenciamento da infraestrutura de nuvens privadas em sistemas IBM zSystems e no IBM LinuxONE.

Explore o Cloud Infrastructure Center
Soluções de infraestrutura de TI

Conheça servidores, armazenamento e software projetados para sua estratégia corporativa de nuvem híbrida e IA.

Saiba mais sobre as soluções de infraestrutura de TI
Soluções de infraestrutura em nuvem

Encontre a solução ideal de infraestrutura em nuvem para as necessidades do seu negócio e expanda os recursos conforme a demanda.

Soluções em nuvem
Dê o próximo passo

Transforme sua infraestrutura empresarial com as soluções da IBM prontas para IA e nuvem híbrida. Descubra servidores, armazenamento e software projetados para proteger, expandir e modernizar seus negócios ou acesse insights de especialistas para aprimorar sua estratégia de IA generativa.

Saiba mais sobre as soluções de infraestrutura de TI Baixe o e-book