Linus Torvalds lançou oficialmente a versão final do Linux kernel 7.3 em 18 de outubro de 2026. A liberação traz mudanças em vários subsistemas centrais, do escalonamento de tarefas e do isolamento de sistema de arquivos ao gerenciamento de memória de GPU e o I/O de armazenamento.

No escalonador, o lançamento conclui o suporte a escalonadores aninhados em sched_ext e melhora a distribuição de pesos de CPU entre hierarquias de cgroups. No campo da segurança, failfs e a nova chamada de sistema fchroot(2) oferecem uma abordagem diferente para o isolamento de sistema de arquivos.

A liberação também melhora o gerenciamento de VRAM sob pressão de memória, adiciona rastreamento de conjunto de trabalho (working set) para memória de máquinas virtuais e acelera várias operações de sistema de arquivos.

Ao lado das mudanças técnicas, o Linux 7.3 bate recordes de participação de desenvolvedores e de atividade de commits. O uso crescente de ferramentas assistidas por IA também continua a influenciar a forma como os desenvolvedores encontram bugs e enviam correções.

A seguir, os destaques do lançamento final do 7.3.

Atividade de desenvolvimento e o papel crescente da IA

O Linux kernel 7.3 recebeu 18.765 commits que não são de merge, de 3.021 desenvolvedores, incluindo 807 colaboradores de primeira viagem. Esses números estabelecem novos recordes para o projeto de desenvolvimento do kernel.

A liberação também reflete uma mudança na forma como os desenvolvedores encontram e corrigem bugs. Ferramentas automatizadas e modelos de linguagem de grande escala (LLMs) participam cada vez mais da revisão de código, da análise de caminhos de erro e da correção rotineira de bugs.

Torvalds descreveu o aumento resultante em pequenas correções como o novo "normal da IA". A tendência não se limita a patches gerados por IA: a revisão assistida por IA também pode identificar problemas que os desenvolvedores corrigem manualmente em seguida.

Essa atividade maior traz benefícios e desafios. Ferramentas automatizadas podem ajudar a encontrar casos extremos negligenciados e sugerir correções em uma base de código enorme. No entanto, cada patch ainda precisa de revisão e testes cuidadosos. Um número maior de patches não significa automaticamente código melhor, e os mantenedores devem continuar a avaliar as mudanças pela correção e pelo valor delas.

O volume crescente de pequenas correções é, portanto, uma parte importante da história do desenvolvimento do Linux 7.3, ao lado das mudanças arquiteturais maiores do lançamento.

Kernel central e escalonamento de tarefas

Sub-escalonadores sched_ext concluídos

O Linux 7.3 conclui o suporte a sub-escalonadores aninhados em sched_ext. Um escalonador raiz em BPF pode delegar subárvores inteiras de cgroups a escalonadores filhos e conceder a eles acesso a CPUs que pode revogar depois.

O escalonador pai passa capacidades por CPU a cada filho, incluindo controle sobre o enfileiramento de tarefas, a preempção e o gerenciamento de frequência da CPU. Assim, cada escalonador filho gerencia as tasks atribuídas a ele, em vez de depender do pai para cada decisão de escalonamento.

O kernel também adiciona um caminho de resgate para tasks que ficam presas depois que seu escalonador perde acesso às CPUs de que precisam. Em vez de deixá-las travadas até o watchdog ejetar o escalonador, o kernel as executa dentro de um orçamento limitado de banda de CPU. Isso oferece um fallback controlado quando um sub-escalonador não consegue mais progredir.

Juntas, essas mudanças dão mais controle a escalonadores BPF específicos por cgroup e fornecem um mecanismo de recuperação para falhas de escalonamento.

Escalonamento de pesos de cgroup com cgroup_mode

Em sistemas multiprocessados grandes, distribuir tempo de CPU entre hierarquias profundas de cgroups pode introduzir sobrecarga de escalonamento e distorcer a alocação de recursos. O Linux 7.3 adiciona a configuração cgroup_mode para controlar como o kernel distribui os pesos de CPU.

A configuração aceita quatro modos: up, max, concur e tasks. O padrão é concur, que busca uma distribuição de pesos mais precisa em hierarquias complexas, embora essa precisão possa ter um custo computacional maior.

A liberação também move o escalonamento de cgroups para uma única fila de execução. Isso simplifica partes do caminho de escalonamento e ajuda a reduzir sobrecarga e latência. Essas mudanças visam sistemas em que o escalonamento hierárquico pode se tornar um gargalo.

Isolamento do estado de sistema de arquivos de threads do kernel e do PID 1

O Linux 7.3 muda a forma como o kernel inicializa o estado de sistema de arquivos para threads do kernel e o processo init.

Antes, o PID 1 e as threads do kernel podiam compartilhar um fs_struct. Isso significava que operações de sistema de arquivos que alteravam a raiz do processo ou estados relacionados também podiam afetar as threads do kernel.

A liberação dá ao PID 1 seu próprio fs_struct e coloca as threads do kernel em um ponto de montagem nullfs isolado. Isso separa o estado de sistema de arquivos delas do estado dos processos de espaço de usuário e evita o compartilhamento não intencional de referências de namespaces de montagem.

Sandboxing e controle de executáveis

O pseudosistema de arquivos failfs e a fchroot(2)

O Linux 7.3 introduz failfs, um pseudosistema de arquivos que rejeita operações sem suporte com EOPNOTSUPP. Diferente de nullfs, que se comporta como se os arquivos estivessem ausentes e retorna ENOENT para caminhos inexistentes, failfs fornece uma fronteira mais forte para o acesso ao sistema de arquivos.

A liberação também introduz fchroot(2), uma alternativa baseada em descritores de arquivo para chroot(2). Um aplicativo pode abrir os descritores de diretório de que precisa antes de entrar em um ambiente restrito e então usar fchroot() com o sinalizador FD_FAILFS_ROOT para mover sua raiz para failfs.

Depois que o processo entra nesse ambiente, buscas por caminhos absolutos e a resolução de symlinks absolutos falham. O aplicativo precisa usar descritores de diretório explícitos para acessar as partes do sistema de arquivos de que precisa.

Essa abordagem reduz a dependência do estado ambiente do sistema de arquivos e evita a corrida de resolução repetida de caminhos associada às mudanças de raiz tradicionais baseadas em caminho. Ela oferece uma base útil para aplicativos que exigem isolamento rigoroso de sistema de arquivos sem depender apenas de chroot().

Seleção de binários com BPF no binfmt_misc

O Linux 7.3 estende o binfmt_misc com ganchos BPF para correspondência de binários e execução de interpretadores.

As regras tradicionais do binfmt_misc dependem de extensões de arquivo ou padrões fixos de bytes para identificar formatos executáveis. Com suporte a BPF, programas podem inspecionar os binários quando um processo chama exec() e decidir sobre a seleção e a execução do interpretador. O kernel também pode fazer substituição do loader PT_INTERP para sobrescrever o loader dinâmico especificado pelo binário.

Isso dá a distribuições como a NixOS mais flexibilidade para localizar interpretadores e loaders dinâmicos. Também ajuda a construir ambientes de binários relocáveis sem exigir scripts wrapper ou modificações em patchelf para cada executável.

Memória gráfica e rastreamento de máquinas virtuais

Proteção da VRAM sob pressão de memória

Quando vários aplicativos disputam VRAM limitada, uma GPU pode mover buffers para a RAM do sistema por meio da tabela de tradução gráfica (GTT). Isso pode prejudicar o desempenho, especialmente quando um aplicativo que precisa de memória de GPU protegida não consegue obtê-la em quantidade suficiente.

O Linux 7.3 aborda o problema integrando os cgroups de memória de dispositivo (dmemcg) ao gerenciador de memória DRM TTM.

Sob pressão de VRAM, o kernel pode despejar buffers não protegidos antes de reclamar a memória reservada para cargas de trabalho protegidas. Isso ajuda os aplicativos a aproveitar melhor a proteção de memória atribuída a eles e reduz a movimentação repetida de buffers entre VRAM e RAM do sistema.

A mudança é particularmente útil em GPUs de entrada, em que a memória é limitada e cargas concorrentes podem causar taxas de quadros instáveis. Também pode ajudar cargas locais de LLMs, incluindo llama.cpp, a evitar perdas desnecessárias de desempenho ao compartilhar memória de GPU com outros aplicativos.

Rastreamento de memória de convidados com userfaultfd

Monitores de máquina virtual (VMMs) precisam saber quais partes da memória do convidado estão em uso ativo antes de mover páginas menos acessadas para armazenamento mais lento ou remoto.

O Linux 7.3 adiciona o sinalizador UFFDIO_REGISTER_MODE_RWP a userfaultfd(2). Ele habilita o rastreamento de proteção de leitura e gravação para regiões de memória registradas, permitindo que um VMM identifique o conjunto de trabalho ativo do convidado.

O mecanismo serve a um propósito semelhante ao de rastrear acessos à memória com mprotect(PROT_NONE) e um manipulador de sinal, mas evita a sobrecarga de tratamento de sinais dessa abordagem. Os VMMs podem usar a informação para identificar memória fria e movê-la para armazenamento em camadas (tiered) ou remoto.

Isso dá aos gerenciadores de memória de máquinas virtuais uma forma mais eficiente de rastrear o uso de memória do convidado e gerenciar sua alocação.

Armazenamento e sistemas de arquivos

O Linux 7.3 melhora o desempenho de I/O e adiciona capacidades novas em Btrfs, ext4, dispositivos de bloco, FUSE, SMB e NTFS3.

Direct I/O e desempenho de fsync no Btrfs

O Btrfs muda seu caminho de Direct I/O para usar buffers de rebote iomap, em vez de cair para I/O com buffer nos casos afetados. O comportamento anterior limitava a vazão a cerca de 50% do máximo teórico do hardware. A nova implementação eleva esse valor para cerca de 95%, praticamente dobrando a vazão na carga de trabalho relatada.

A liberação também remove um atraso desnecessário de um jiffy do caminho de log usado para armazenamentos que não são SSD. A mudança melhora a vazão de fsync em cerca de 5 vezes na carga de trabalho medida.

Outra otimização pula a detecção desnecessária de buracos durante operações completas de fsync em arquivos sem buracos. Isso reduz o tempo necessário para concluir o log de arquivos com muitos extents.

Essas mudanças atacam gargalos específicos nos caminhos de I/O e de log do Btrfs, sem alterar a interface básica do sistema de arquivos.

Escritas paralelas no ext4

O ext4 melhora escritas paralelas em Direct I/O ao permitir que mais operações prossigam mantendo o bloqueio compartilhado i_rwsem em modo compartilhado.

A liberação também melhora a pré-alocação de blocos por meio de fallocate(). O kernel evita trabalho desnecessário no caminho ext4_mb_prefetch(), reduzindo o custo da pré-alocação quando esse trabalho não é necessário.

Essas mudanças ajudam a reduzir a sobrecarga de bloqueio e melhoram o desempenho em cargas de trabalho com escritas concorrentes ou que alocam grandes regiões de arquivos.

RWF_DONTCACHE para dispositivos de bloco

O Linux 7.3 adiciona suporte a RWF_DONTCACHE em I/O bruto em dispositivos de bloco. O sinalizador permite que uma requisição individual de I/O não polua o cache de páginas.

Isso dá aos aplicativos mais controle sobre o comportamento do cache, sem exigir Direct I/O em todas as operações. É útil para cargas de trabalho que acessam grandes volumes de dados uma única vez e não se beneficiam de mantê-los no cache de páginas.

FUSE zero-copy com io_uring

O FUSE permite que sistemas de arquivos rodem no espaço de usuário, mas mover dados entre o kernel e um servidor FUSE pode adicionar sobrecarga.

O Linux 7.3 melhora esse caminho ao permitir que servidores FUSE compartilhem pools de buffers diretamente com o kernel e usem io_uring para a transferência de dados. Isso reduz cópias desnecessárias de dados e pode aumentar a vazão de sistemas de arquivos em espaço de usuário que processam grandes volumes de I/O.

Atualizações de ksmbd e NTFS3

O servidor SMB dentro do kernel, ksmbd, ganha suporte às extensões Apple Time Machine, criptografia SMB3 por compartilhamento e criptografia para SMB Direct sobre RDMA.

Essas adições melhoram a compatibilidade com fluxos de trabalho de backup da Apple e oferecem mais opções para proteger compartilhamentos SMB e transferências de dados baseadas em RDMA.

O driver ntfs3 também adiciona suporte nativo a Alternate Data Streams (ADS) do NTFS. Isso permite que aplicativos acessem fluxos nomeados associados a um arquivo, como file:stream, em vez de tratar cada arquivo como um único fluxo de dados sem nome.

Vale a pena instalar o Linux kernel 7.3 agora?

Se você usa Linux em desktop, estação de trabalho ou servidor, os benefícios dependem da sua carga de trabalho.

Aplicativos intensivos em GPU podem se beneficiar do melhor gerenciamento de VRAM; cargas pesadas de armazenamento podem ver I/O mais rápido; e desenvolvedores que trabalham com escalonadores personalizados ou ambientes isolados ganham novas capacidades.

Para a maioria dos usuários, a melhor abordagem é atualizar por meio dos pacotes de kernel com suporte da distribuição e testar as mudanças específicas da sua carga de trabalho antes de implantá-las em produção.

Resumo e pontos principais

O Linux kernel 7.3 aborda vários problemas práticos em escalonamento, segurança, gerenciamento de memória e armazenamento. Escalonadores aninhados em sched_ext ganham mais controle sobre a alocação de CPU; failfs e fchroot(2) trazem uma nova abordagem para o isolamento de sistema de arquivos; e as mudanças no despejo de VRAM ajudam a proteger cargas de trabalho importantes de GPU sob pressão de memória.

A liberação também melhora o rastreamento de memória de convidados, acelera caminhos de I/O do Btrfs e do ext4 e adiciona capacidades ao FUSE, ao ksmbd e ao ntfs3.

O processo de desenvolvimento também está mudando. Números recorde de contribuições e o uso crescente de ferramentas assistidas por IA mostram como a manutenção do kernel está evoluindo. O desafio continua o mesmo: colocar mudanças úteis no kernel sem comprometer a correção, o desempenho ou a manutenibilidade.

Para mais detalhes, consulte os resumos da janela de merge do LWN, parte 1 e parte 2, e a cobertura do Kernel Newbies sobre o Linux 7.3.