Pular para o conteúdo
Desenvolvimento & DevOps

Qual a linguagem do Linux? Kernel em C, Assembly e Rust

O kernel Linux é escrito principalmente em C, usa Assembly nos trechos ligados ao processador e aceita Rust desde a versão 6.1. Veja também quais linguagens de programação são mais usadas no ecossistema Linux.

Tiago da Silva CândidoPorTiago da Silva Cândido 8 min de leitura
Compartilhe

O Linux é escrito principalmente na linguagem C. O kernel, criado por Linus Torvalds em 1991, usa C em quase todo o código, Assembly nos trechos que conversam direto com o processador e, desde a versão 6.1, aceita também Rust para drivers e novos componentes. Ferramentas de compilação e scripts auxiliares usam Make, Shell, Python e Perl.

Já o sistema completo que você instala (uma distribuição como Ubuntu, Fedora ou Linux Mint) junta milhares de programas escritos em várias linguagens. A tabela abaixo mostra quem usa o quê em cada camada.

Parte do sistemaLinguagem principalObservação
Kernel LinuxC (dialeto GNU C)Núcleo do sistema, a maior parte do código
Inicialização e rotinas de CPUAssemblyCódigo específico de cada arquitetura (x86, ARM, RISC-V)
Drivers novosRustSuportado oficialmente desde o Linux 6.1
Ferramentas de buildMake, Shell, Python, PerlConfiguram e compilam o kernel
Utilitários básicos (GNU)CComandos como ls, cp e grep
Interfaces gráficasC (GNOME/GTK), C++ (KDE/Qt)Ambientes de desktop mais populares
Scripts e automaçãoBash, PythonInstaladores, configuração e tarefas do sistema

Em que linguagem o Linux foi escrito?

O Linux foi escrito em C desde a primeira versão, compilada com o GCC, o compilador do projeto GNU. Torvalds escolheu C porque a linguagem fica perto do hardware, permite controlar memória manualmente e gera código rápido, mas ainda é portável entre processadores diferentes. Esse mesmo raciocínio já tinha levado o Unix a ser reescrito em C nos anos 1970.

O kernel não usa o C “puro” do padrão ISO. Ele depende de extensões do GNU C, como atributos especiais, Assembly embutido (inline assembly) e recursos do compilador. Por isso, durante muito tempo só o GCC conseguia compilá-lo; hoje o Clang/LLVM também é suportado oficialmente. A versão de referência do padrão foi atualizada para o C11 (gnu11) a partir do Linux 5.18.

Por que o kernel Linux não usa C++?

O kernel não usa C++ por decisão explícita dos mantenedores. Torvalds já criticou publicamente recursos como exceções, alocação implícita de memória e abstrações que escondem o custo real do código, algo crítico dentro de um kernel. Em C, cada linha faz exatamente o que parece fazer, o que facilita revisar milhões de linhas escritas por milhares de colaboradores.

Onde o Assembly entra no Linux kernel?

O Assembly aparece nos pontos em que C não consegue chegar sozinho: o código de boot, a troca de contexto entre processos, o tratamento de interrupções e as chamadas de sistema. Cada arquitetura tem sua pasta própria no código-fonte (dentro de arch/), com rotinas escritas para x86, ARM, RISC-V, PowerPC e outras.

Essa parte é pequena perto do total, mas é essencial. É ela que permite ao mesmo kernel rodar em um servidor, em um celular Android, em um roteador ou em um Raspberry Pi, trocando apenas a camada específica do processador.

Processador encaixado no soquete de uma placa-mãe
O código em Assembly do kernel muda conforme a arquitetura do processador, como x86, ARM ou RISC-V.

Camadas do Linux e suas linguagens

1. Hardware

Assembly: boot, interrupções, troca de contexto

2. Kernel

C: memória, processos, sistemas de arquivos, rede

3. Drivers

C na maioria; Rust nos novos projetos

4. Espaço do usuário

C, C++, Python, Bash, Go, Rust, JavaScript

Quanto mais perto do hardware, mais baixo nível a linguagem.

Rust no kernel Linux: o que mudou?

O Rust passou a ser aceito oficialmente no kernel a partir do Linux 6.1, tornando-se a segunda linguagem principal do projeto depois de C. A motivação é segurança de memória: boa parte das falhas graves em código C vem de erros como uso de ponteiro após liberação (use-after-free) e estouro de buffer, que o compilador do Rust bloqueia antes de o programa rodar.

A adoção é gradual. O Rust entra principalmente em drivers e componentes novos, enquanto o núcleo em C continua sendo mantido normalmente. O trabalho é coordenado pelo projeto Rust for Linux, e a documentação oficial fica em docs.kernel.org.

O Rust vai substituir o C no Linux?

Não há plano de reescrever o kernel inteiro em Rust. O código existente em C é enorme, testado há décadas e roda em dezenas de arquiteturas, algumas sem suporte completo do compilador Rust. O cenário mais provável é a convivência: C no que já existe, Rust ganhando espaço em código novo, especialmente drivers.

CritérioC no kernelRust no kernel
PresençaDesde 1991, quase todo o códigoDesde o Linux 6.1, em expansão
Segurança de memóriaDepende do programador e da revisãoGarantida pelo compilador no código seguro
CompiladoresGCC e Clangrustc (baseado em LLVM)
Uso típicoNúcleo, subsistemas, drivers antigosDrivers novos e abstrações

Quais as linguagens de programação no Linux mais usadas?

Para quem vai programar no Linux, e não no kernel, praticamente toda linguagem relevante roda nativamente, e muitas já vêm instaladas. As mais comuns no ecossistema são:

  • C: base do kernel, da biblioteca glibc, do systemd e dos utilitários GNU; indicada para quem quer entender o sistema por dentro.
  • C++: usada no KDE Plasma, em navegadores, jogos e aplicações gráficas que precisam de desempenho e orientação a objetos.
  • Bash (Shell Script): a linguagem do terminal, usada para automatizar tarefas, scripts de instalação e administração de servidores.
  • Python: presente em quase toda distribuição, usado em ferramentas do sistema, automação, ciência de dados e aprendizado de máquina.
  • Rust: cresce em ferramentas de linha de comando, componentes de sistema e no próprio kernel, pela segurança de memória.
  • Go: muito usado em infraestrutura em nuvem; ferramentas como Docker e Kubernetes foram escritas nele.
  • Perl: veterano em scripts de sistema e processamento de texto, ainda aparece em ferramentas do kernel e de distribuições.
  • JavaScript/TypeScript, Java e PHP: dominantes no desenvolvimento web e de servidores, que em grande parte rodam sobre Linux.

Os compiladores e interpretadores costumam estar no repositório da distribuição. No Ubuntu e no Debian, por exemplo, o pacote build-essential instala GCC, Make e bibliotecas básicas; o Python normalmente já vem pré-instalado. As versões oficiais podem ser conferidas em sites como python.org e gcc.gnu.org.

Notebook com terminal aberto usado para programar no Linux
Compiladores e interpretadores como GCC e Python costumam vir no repositório da própria distribuição.

Como ver o código-fonte e a linguagem do Linux na prática?

O código do kernel é aberto e pode ser baixado e lido por qualquer pessoa. Um caminho simples para conferir por conta própria:

  1. Baixe o código: pegue o arquivo da versão estável em kernel.org ou clone o repositório Git oficial do projeto.
  2. Explore as pastas: abra kernel/, mm/ e fs/ para ver código em C; arch/x86/ mostra os arquivos .S em Assembly.
  3. Procure o Rust: a pasta rust/ traz as abstrações e bindings que permitem escrever drivers na linguagem.
  4. Veja a versão do seu sistema: no terminal, o comando uname -r mostra qual kernel está em uso na sua máquina.
  5. Leia a documentação: a pasta Documentation/ explica regras de estilo, processo de contribuição e uso de Rust.

Erros comuns ao falar da linguagem do Linux

A confusão mais frequente é tratar “Linux” como uma coisa só. Tecnicamente, Linux é o kernel; o sistema completo inclui ferramentas GNU, bibliotecas, servidor gráfico e aplicativos, cada um em sua linguagem. Por isso, as duas respostas certas convivem: o kernel é em C, e o sistema como um todo é multilíngue.

  • “O Linux é feito em Python”: falso para o kernel; Python aparece em ferramentas e scripts das distribuições, não no núcleo.
  • “Rust substituiu o C”: falso; Rust complementa o C em partes novas, e o núcleo segue em C.
  • “Precisa saber C para usar Linux”: falso; o uso comum não exige programação, e o terminal pede só comandos básicos.
  • “Bash é a linguagem do Linux”: Bash é o shell padrão de muitas distribuições, mas é uma linguagem de script, não aquela em que o sistema foi escrito.

O Linux é mais leve que o Windows?

Na maioria dos casos, sim: distribuições Linux costumam usar menos memória RAM e espaço em disco que o Windows, mas isso depende da distribuição e do ambiente gráfico escolhido. Um Ubuntu com GNOME pode exigir recursos parecidos com os de um sistema moderno, enquanto opções como Xubuntu, Lubuntu ou Linux Mint XFCE rodam bem em PCs antigos.

Quanto ao tamanho, não existe um número único. As imagens ISO variam de algumas centenas de megabytes, em distribuições minimalistas, a alguns gigabytes, nas mais completas. Os requisitos atualizados ficam sempre na página de download da distribuição escolhida.

Qual a desvantagem do sistema Linux?

A principal desvantagem é a compatibilidade com softwares específicos. Programas como o pacote Adobe, alguns softwares profissionais de engenharia e jogos com anti-cheat de nível de kernel podem não funcionar ou exigir alternativas. Também pode haver mais trabalho para configurar hardware muito recente, como certas placas de Wi-Fi e impressoras.

Em troca, o usuário ganha um sistema gratuito, de código aberto, com atualizações centralizadas pelo gerenciador de pacotes e grande estabilidade, o que explica o domínio do Linux em servidores, VPS e nuvem.

Perguntas frequentes

Qual é a linguagem de programação do Linux?

O kernel Linux é escrito em C, com trechos em Assembly e, desde a versão 6.1, suporte a Rust. Os programas da distribuição usam várias outras linguagens, como C++, Python e Bash.

É possível usar o Word no Linux?

Não existe versão nativa do Microsoft Word para Linux, mas é possível usar o Word pela versão web do Microsoft 365 no navegador. Outra opção é o LibreOffice, gratuito, que abre e salva arquivos .docx.

Como mudar o idioma do Linux?

Na maioria das distribuições, basta abrir Configurações, entrar em “Região e idioma” (ou “Idioma”) e escolher o português do Brasil. Depois, encerre a sessão e entre de novo para aplicar a mudança.

Preciso aprender C para programar no Linux?

Não. C é necessário para desenvolver no kernel ou em componentes de baixo nível, mas para aplicações, automação e web você pode usar Python, Go, JavaScript, Java ou qualquer outra linguagem suportada.

Qual linguagem aprender para trabalhar com servidores Linux?

Bash é o ponto de partida, porque a administração de servidores e VPS passa pelo terminal. Em seguida, Python ajuda na automação, e Go é muito usado em ferramentas de infraestrutura e contêineres.

O Android usa a mesma linguagem do Linux?

O Android usa o kernel Linux, então sua base também é escrita em C. Já os aplicativos e boa parte das camadas superiores do Android são desenvolvidos em Java e Kotlin.

Mais em Desenvolvimento & DevOps

Compartilhe
Próxima leituraO que é Linux Red Hat: a empresa, o RHEL e como funciona11 min de leitura

Mapa do site