A história do kernel Linux: do projeto de um estudante ao Linux 7.2

O kernel Linux nasceu como um projeto pessoal, limitado a um tipo específico de computador. Trinta e cinco anos depois, tornou-se a base de servidores, smartphones, supercomputadores, roteadores, automóveis, televisores e infraestruturas de nuvem espalhadas pelo mundo.

Tux, o mascote do Linux, representando a evolução histórica do kernel Linux
Tux tornou-se o mascote do Linux em 1996, quando o kernel já começava a ultrapassar os limites dos computadores pessoais.

Antes do Linux: Unix, GNU e Minix

Para compreender o nascimento do Linux, é necessário voltar aos sistemas Unix, desenvolvidos a partir do final da década de 1960 nos laboratórios Bell. O Unix ajudou a consolidar conceitos que ainda fazem parte dos sistemas operacionais modernos: processos, permissões, arquivos organizados em uma árvore de diretórios, pequenos programas combináveis e uma divisão clara entre o kernel e as ferramentas executadas pelo usuário.

Durante muito tempo, porém, as diferentes versões do Unix estiveram ligadas a universidades ou empresas e eram distribuídas sob licenças restritivas.

Em 1983, Richard Stallman iniciou o Projeto GNU, cujo objetivo era desenvolver um sistema operacional compatível com Unix que pudesse ser usado, estudado, modificado e redistribuído livremente. Diversos componentes fundamentais foram produzidos: compiladores, bibliotecas, interpretadores de comandos, depuradores e utilitários.

Faltava uma peça particularmente complexa: um kernel funcional e suficientemente maduro.

Outro sistema importante para essa história foi o Minix, criado pelo professor Andrew Tanenbaum para fins educacionais. O código do Minix podia ser estudado por alunos interessados em sistemas operacionais, embora sua licença inicial não oferecesse a mesma liberdade que mais tarde seria associada ao Linux.

Foi nesse ambiente que um estudante finlandês chamado Linus Benedict Torvalds começou a trabalhar em seu próprio kernel.

O computador que deu origem ao Linux

No começo de 1991, Linus Torvalds estudava ciência da computação na Universidade de Helsinque. Ele havia comprado um computador equipado com um processador Intel 80386, uma arquitetura que oferecia recursos avançados para a época, como modo protegido, paginação e mecanismos de gerenciamento de memória.

O interesse inicial de Torvalds não era criar uma plataforma mundial nem competir com empresas de software. Ele queria compreender melhor o funcionamento do processador e aproveitar seu novo computador.

Os primeiros experimentos foram relacionados à troca de tarefas e ao acesso ao terminal. Pouco a pouco, o programa cresceu. Linus implementou gerenciamento de memória, processos, acesso a dispositivos e um sistema de arquivos. O que havia começado como um emulador de terminal aproximava-se de um pequeno kernel semelhante ao Unix.

Em julho de 1991, Torvalds já procurava informações sobre as regras POSIX, o conjunto de padrões destinado a manter compatibilidade entre sistemas Unix. Em 25 de agosto daquele ano, publicou uma mensagem no grupo comp.os.minix informando que estava desenvolvendo um sistema operacional livre para computadores 386 e 486.

Na mensagem, apresentou o projeto como um hobby e avisou que ele não seria grande ou profissional como o GNU. A frase tornou-se curiosa porque descrevia justamente o oposto do que aconteceria nas décadas seguintes. As mensagens originais e os comentários de Linus sobre esse período foram preservados em um arquivo histórico sobre o nascimento do Linux.

Linux 0.01: pequeno, limitado e surpreendentemente avançado

A versão 0.01 foi disponibilizada em setembro de 1991. Seu pacote compactado ocupava aproximadamente 71 KB — um tamanho minúsculo quando comparado aos milhões de arquivos e dezenas de milhões de linhas do kernel atual.

O sistema tinha limitações consideráveis:

  • Funcionava apenas em computadores compatíveis com o Intel 386.
  • Dependia do Minix para ser compilado e instalado.
  • Tinha suporte restrito a discos rígidos, teclado, tela e portas seriais.
  • O teclado finlandês estava incorporado ao código.
  • Não possuía comandos completos para montar e desmontar sistemas de arquivos.
  • Não era um sistema adequado para ambientes de produção.
  • Exigia conhecimentos técnicos até mesmo para iniciar.

As notas oficiais do Linux 0.01 deixam claro que aquele software era experimental. Também revelam decisões técnicas relevantes. O kernel utilizava recursos específicos do 386, possuía paginação, segmentação, cópia sob escrita e um sistema de arquivos com capacidade para atender várias tarefas.

A abordagem escolhida era a de um kernel monolítico. Isso significa que componentes como gerenciamento de memória, sistema de arquivos, escalonamento e drivers executavam no espaço privilegiado do kernel.

“Monolítico” não significa necessariamente que o código seja desorganizado ou impossível de ampliar. O Linux evoluiu para uma arquitetura monolítica modular: diversos componentes podem ser separados em módulos e carregados somente quando necessários.

De Freax para Linux

Torvalds teria considerado chamar seu projeto de Freax, uma combinação de “free”, “freak” e a letra X, tradicionalmente associada aos sistemas Unix.

Ari Lemmke, administrador do servidor FTP usado para distribuir os primeiros arquivos, não gostou do nome. Ao criar o diretório público, escolheu “Linux”, combinando Linus e Unix.

O nome permaneceu.

Essa pequena decisão também mostra como o Linux começou a crescer por meio da colaboração. Linus escreveu a base inicial, mas desenvolvedores de diferentes países passaram a testar, corrigir e ampliar o sistema. O correio eletrônico, os grupos de discussão e os servidores FTP funcionaram como a infraestrutura de uma comunidade internacional muito antes da popularização das plataformas modernas de hospedagem de código.

A licença que permitiu o crescimento do projeto

A versão 0.01 não utilizava a licença GNU GPL. Linus havia escrito uma licença própria que permitia a redistribuição do código, mas proibia cobrar pelo software.

Essa restrição apresentava um problema: software livre não significa necessariamente software gratuito. A liberdade de estudar, modificar e redistribuir pode coexistir com a cobrança por cópias, serviços, suporte, integração e manutenção.

Em 1992, o Linux passou a ser distribuído sob a GNU General Public License. A adoção da GPL foi decisiva porque permitiu que pessoas e empresas utilizassem e comercializassem o sistema, desde que respeitassem as obrigações da licença ao distribuir versões modificadas.

O kernel permanece licenciado sob a GPL versão 2. Componentes individuais podem utilizar licenças compatíveis, mas o kernel como conjunto continua sob a GPL-2.0.

Essa escolha jurídica ajudou a criar um espaço incomum: empresas concorrentes poderiam investir em uma infraestrutura comum sem que uma delas tivesse o direito de fechar unilateralmente o código principal.

A discussão entre Linus Torvalds e Andrew Tanenbaum

Uma das primeiras controvérsias do Linux ocorreu em 1992. Andrew Tanenbaum, criador do Minix, criticou publicamente a arquitetura monolítica escolhida por Torvalds.

Tanenbaum defendia os microkernels, nos quais apenas mecanismos essenciais permanecem no núcleo privilegiado. Serviços como drivers e sistemas de arquivos podem ser executados como processos separados. Em teoria, essa divisão melhora o isolamento e reduz os danos provocados por falhas em componentes individuais.

Linus argumentava que sua arquitetura era mais prática e apresentava melhor desempenho no hardware disponível. A discussão também envolveu portabilidade, projeto de sistemas operacionais e a dependência inicial do Linux em relação ao processador 386.

O debate costuma ser recontado como uma disputa simples na qual um lado estava certo e o outro errado. A realidade é mais interessante. Microkernels continuam sendo usados em sistemas nos quais isolamento, verificabilidade e segurança funcional são prioridades. O Linux, por sua vez, demonstrou que um kernel monolítico modular poderia crescer, receber milhares de drivers e funcionar em muitas arquiteturas.

O próprio Linux mudou bastante. Ele deixou de ser rigidamente dependente do 386, ganhou módulos carregáveis, abstrações de hardware, isolamento de processos, namespaces, mecanismos de segurança e suporte a arquiteturas muito diferentes.

Linux 1.0: o projeto experimental torna-se utilizável

O Linux 1.0 foi lançado em 13 de março de 1994. A chegada à versão 1.0 comunicava que o kernel havia atingido um nível razoável de estabilidade e poderia ser usado fora do grupo restrito de pessoas que acompanhavam as versões experimentais.

Entre os recursos desenvolvidos ou amadurecidos durante esse período estavam:

  • Redes TCP/IP.
  • Maior quantidade de drivers.
  • Suporte a SCSI.
  • Integração de recursos de áudio.
  • Melhorias no gerenciamento de memória.
  • Suporte inicial ao formato de executáveis ELF.
  • Sistemas de arquivos mais funcionais.
  • Aprimoramentos no NFS.
  • Suporte a CD-ROM e unidades de fita.
  • Melhorias no escalonador e na criação de processos.

O arquivo oficial de mudanças do Linux 1.0 começa com uma brincadeira sobre a remoção de todos os bugs. O humor já fazia parte da comunicação do projeto, embora a estabilidade de um kernel jamais signifique ausência completa de defeitos.

O Ext2, desenvolvido principalmente por Rémy Card, Theodore Ts’o e Stephen Tweedie, tornou-se uma peça importante dos primeiros sistemas Linux. Ele substituiu sistemas de arquivos mais limitados e permaneceu durante anos como uma escolha comum. Sua estrutura está documentada na documentação oficial do kernel.

Distribuições como Slackware e Debian começaram a transformar o kernel, as ferramentas GNU e outros programas em sistemas instaláveis. Esse ponto é importante: Linux, em sentido técnico, é o kernel. Uma distribuição reúne o kernel, bibliotecas, comandos, instalador, gerenciador de pacotes, ambiente gráfico e aplicações.

Das versões 1.x ao Linux 2.0

O Linux 1.2, lançado em 1995, ampliou o suporte a hardware, redes e sistemas de arquivos. O desenvolvimento também começou a ultrapassar a arquitetura x86, afastando-se da antiga ideia de que o kernel seria inseparável do Intel 386.

Em 1996 chegou o Linux 2.0, um marco para a utilização profissional do sistema. Uma de suas características mais importantes foi o suporte a multiprocessamento simétrico, conhecido como SMP. O kernel passava a trabalhar com máquinas dotadas de mais de um processador.

O suporte a novas arquiteturas também ganhou importância. O Linux começou a aparecer em servidores, estações de trabalho e dispositivos que não se pareciam com o computador pessoal usado por Torvalds em 1991.

Foi durante a era do Linux 2.0 que o pinguim Tux se tornou o mascote do projeto. O desenho original foi criado por Larry Ewing em 1996, usando o programa GIMP. O nome costuma ser interpretado como uma referência a “Torvalds Unix”, embora também lembre a palavra inglesa “tuxedo”, relacionada à aparência de um pinguim.

Linux 2.2: redes, servidores e mais processadores

Lançado em 1999, o Linux 2.2 trouxe avanços no suporte a multiprocessamento, redes, arquiteturas e dispositivos. O kernel tornava-se cada vez mais atraente para servidores de internet e empresas que procuravam uma alternativa aos sistemas Unix comerciais.

A expansão da internet favoreceu o Linux. Servidores web, DNS, correio eletrônico, bancos de dados e compartilhamento de arquivos eram aplicações nas quais estabilidade, automação e acesso ao código tinham grande valor.

O modelo de desenvolvimento também amadurecia. Linus não analisava sozinho cada linha enviada. Mantenedores passaram a cuidar de subsistemas, como redes, armazenamento, arquiteturas, sistemas de arquivos e drivers. Essa estrutura hierárquica permanece fundamental.

Uma alteração normalmente é discutida, revisada e testada dentro de um subsistema. O mantenedor reúne as mudanças consideradas adequadas e as encaminha para os níveis seguintes. A própria documentação sobre envio de patches explica que poucas contribuições são encaminhadas diretamente a Linus Torvalds.

Linux 2.4: USB, desktops, servidores e a participação brasileira

O Linux 2.4 foi lançado em janeiro de 2001. Essa série ampliou o suporte a USB, redes, armazenamento, memória de grande capacidade, multiprocessamento e arquiteturas diferentes. O kernel passou a atender melhor tanto computadores pessoais quanto servidores mais poderosos.

Recursos como Netfilter e iptables fortaleceram sua utilização em roteadores e firewalls. O suporte a dispositivos USB ajudou a aproximar o Linux dos computadores domésticos. Durante a série 2.4, o Ext3 introduziu journaling sobre a base do Ext2, reduzindo o tempo e os riscos da recuperação após desligamentos inesperados.

A história dessa versão possui uma participação brasileira muito importante.

Marcelo Tosatti, o brasileiro responsável pela série estável 2.4

Em novembro de 2001, o gaúcho Marcelo Tosatti tornou-se mantenedor da árvore estável do Linux 2.4. Ele tinha apenas 18 anos.

Tosatti já trabalhava com o kernel na Conectiva, empresa brasileira responsável por uma das primeiras distribuições Linux da América Latina. Alan Cox sugeriu seu nome, e a escolha foi apoiada por Linus Torvalds.

Dizer que Marcelo “desenvolveu o Linux 2.4” seria incorreto. A série já existia e era resultado do trabalho de muitos desenvolvedores. Sua responsabilidade era manter a versão estável: avaliar correções, integrar mudanças seguras, tratar regressões e impedir que novidades arriscadas comprometessem máquinas em produção.

Seu primeiro lançamento como mantenedor foi o Linux 2.4.16, publicado em 26 de novembro de 2001. Uma entrevista com Marcelo Tosatti registra sua escolha e as responsabilidades assumidas.

Esse trabalho tinha um peso enorme. A série 2.4 era usada em servidores, provedores de acesso, equipamentos de rede e sistemas corporativos. Uma correção inadequada poderia afetar milhares de instalações.

A participação de Tosatti também é um capítulo relevante da tecnologia brasileira. A Conectiva não se limitava a traduzir programas. Seus profissionais contribuíam com componentes de baixo nível, empacotamento, internacionalização e desenvolvimento do próprio kernel.

Linux 2.6: a série que pareceu não terminar

O Linux 2.6 foi lançado em dezembro de 2003. Ele representou uma grande modernização na capacidade de escalar, responder rapidamente e atender diferentes categorias de dispositivo.

Entre os destaques da geração 2.6 estavam:

  • Kernel preemptivo, importante para melhorar a resposta do sistema.
  • Novo modelo de dispositivos.
  • Evolução do gerenciamento de energia.
  • Melhor suporte a NUMA e grandes máquinas multiprocessadas.
  • Sysfs e integração com ferramentas como o udev.
  • Novos escalonadores de processos.
  • Expansão do suporte a dispositivos embarcados.
  • Aprimoramentos em segurança, redes e sistemas de arquivos.
  • Virtualização com tecnologias como KVM.
  • Control groups, ou cgroups, essenciais para limitar e organizar recursos.
  • Namespaces, que ajudaram a formar a base dos contêineres modernos.
  • FUSE, permitindo sistemas de arquivos implementados no espaço do usuário.
  • Inotify, usado para monitorar alterações em arquivos e diretórios.

O Linux 2.6 permaneceu como numeração principal durante quase oito anos. Nesse intervalo, o projeto adotou um ciclo mais previsível de desenvolvimento. Em vez de guardar grandes transformações para uma futura versão 2.7, novos recursos passaram a entrar gradualmente em lançamentos regulares.

O escalonador também mudou durante essa longa fase. O Completely Fair Scheduler, ou CFS, entrou no Linux 2.6.23 e substituiu o mecanismo anterior para tarefas comuns. Seu objetivo era aproximar o uso real do processador de uma divisão ideal e justa entre processos. A documentação do CFS descreve esse princípio usando o conceito de tempo de execução virtual.

A controvérsia do BitKeeper e o nascimento do Git

O crescimento do kernel criou um problema de engenharia: como administrar mudanças produzidas por milhares de desenvolvedores?

Em 2002, o projeto começou a usar o BitKeeper, um sistema de controle de versões distribuído, porém proprietário. A escolha gerou críticas dentro da comunidade de software livre. Alguns desenvolvedores consideravam contraditório usar uma ferramenta fechada para construir um dos maiores projetos livres do mundo.

O acesso gratuito oferecido aos desenvolvedores do kernel terminou em 2005, após conflitos envolvendo a engenharia reversa do protocolo do BitKeeper.

Linus Torvalds decidiu criar uma ferramenta própria. Ela deveria ser distribuída, rápida, confiável e capaz de trabalhar com a escala incomum do kernel. O resultado foi o Git.

O Git não nasceu como uma plataforma social ou um serviço de hospedagem. Era um mecanismo para gerenciar objetos, históricos e conjuntos de mudanças de maneira distribuída. Sua criação está diretamente ligada à crise do BitKeeper, conforme relata a história oficial apresentada pelo projeto Git.

A controvérsia terminou produzindo uma das ferramentas mais importantes do desenvolvimento de software moderno.

Linux 3.0: uma mudança de número, não uma reconstrução

O Linux 3.0 foi lançado em julho de 2011, quando o projeto completava vinte anos. A mudança de 2.6.39 para 3.0 não indicava uma ruptura arquitetônica.

Linus considerava a numeração 2.6 longa e pouco prática. O novo número simplificava a identificação das versões e marcava simbolicamente o aniversário do projeto.

Durante a família 3.x, o Linux se fortaleceu em áreas que mudariam a indústria:

  • Android e dispositivos móveis.
  • Computação em nuvem.
  • Virtualização.
  • Contêineres.
  • Arquiteturas ARM.
  • Novos sistemas de arquivos, como Btrfs.
  • Aprimoramentos em cgroups e namespaces.
  • Melhor suporte a gráficos, energia e dispositivos móveis.

O domínio do Linux deixou de estar concentrado em servidores tradicionais. Bilhões de smartphones passaram a executar o kernel por meio do Android, mesmo que muitos usuários não associassem seus aparelhos ao Linux.

Linux 4.0: atualização do kernel em sistemas críticos

O Linux 4.0 chegou em abril de 2015. Assim como a versão 3.0, a troca de numeração não significou que o kernel tivesse sido reescrito.

Um recurso simbólico dessa fase foi a infraestrutura para aplicar determinadas correções ao kernel em execução, base de soluções de live patching. Em ambientes críticos, reiniciar um servidor para cada correção pode ser caro ou operacionalmente difícil. O live patching permite corrigir classes específicas de problemas sem uma reinicialização imediata.

A série 4.x também acompanhou o crescimento de contêineres, plataformas de nuvem, armazenamento flash, redes de alta velocidade, dispositivos ARM e sistemas embarcados.

Tecnologias como eBPF começaram a ultrapassar seu uso original relacionado à filtragem de pacotes. O eBPF evoluiu para uma plataforma capaz de executar programas verificados dentro do kernel, sendo usado em observabilidade, redes, segurança e análise de desempenho.

Linux 5.0: infraestrutura para nuvem, dispositivos e desempenho

Lançado em março de 2019, o Linux 5.0 foi outra alteração numérica motivada principalmente pela conveniência. O kernel continuou seguindo o ciclo regular de integração e estabilização.

Durante a família 5.x, ganharam destaque:

  • io_uring para operações de entrada e saída assíncronas.
  • Expansão do eBPF.
  • WireGuard integrado ao kernel.
  • Melhorias contínuas em AMD, Intel, ARM e RISC-V.
  • Novos drivers para GPUs e aceleradores.
  • Evolução de Ext4, XFS e Btrfs.
  • Aprimoramentos no gerenciamento de energia.
  • Suporte crescente a notebooks, servidores e dispositivos embarcados.
  • Mecanismos usados por plataformas de contêineres e orquestração.

O kernel já não podia ser avaliado apenas pelo desempenho de um computador isolado. Uma alteração aparentemente pequena poderia afetar data centers, redes móveis, clusters de supercomputação, televisores e sistemas industriais.

Linux 6.0: Rust, novas arquiteturas e segurança de memória

O Linux 6.0 foi lançado em outubro de 2022. A mudança de número não representou uma nova arquitetura, mas abriu uma série marcada pela discussão sobre segurança de memória e pela adoção inicial da linguagem Rust.

O suporte inicial à infraestrutura de Rust entrou no Linux 6.1. Isso não significou reescrever o kernel ou abandonar a linguagem C. A intenção era permitir que determinados componentes, sobretudo novos drivers, pudessem aproveitar garantias de segurança oferecidas pela linguagem.

A adoção provocou debates técnicos e culturais. O código em C possui décadas de ferramentas, experiência e convenções. Rust traz um modelo de memória diferente, exige novas abstrações e demanda conhecimento de outra linguagem. Seus defensores apontam a possibilidade de reduzir erros como uso de memória após liberação, acessos inválidos e certas condições de concorrência.

A série 6.x também desenvolveu o sched_ext, uma estrutura que permite implementar políticas de escalonamento extensíveis com auxílio do eBPF. Outras áreas em evolução incluíram io_uring, folios de memória, redes, virtualização confidencial, RISC-V e suporte ao hardware mais recente.

Linux 7.0, 7.1 e 7.2

O Linux 7.0 foi lançado em 12 de abril de 2026. Mais uma vez, não se tratava de uma reconstrução completa. A troca de 6.x para 7.x evitou que a numeração secundária continuasse crescendo indefinidamente.

Segundo o histórico do projeto, os lançamentos 7.0, 7.1 e 7.2 ocorreram com exatamente 63 dias de intervalo: 7.0 em 12 de abril, 7.1 em 14 de junho e 7.2 em 16 de agosto de 2026. A linha do tempo pode ser consultada no Linux Kernel Newbies.

Linux 7.0

Entre as mudanças destacadas no Linux 7.0 estavam:

  • Uma API genérica para informar erros de entrada e saída em arquivos.
  • Monitoramento de integridade para XFS.
  • Melhorias nos filtros do io_uring.
  • Opções voltadas à criação de contêineres com open_tree.
  • Aprimoramentos no mecanismo de swap.
  • Uso padrão de Accurate ECN em redes compatíveis.
  • Trabalho experimental relacionado à árvore de remapeamento do Btrfs.
  • Mecanismos mais seguros para lidar com objetos alocados no kernel.

Esses recursos mostram uma característica do Linux moderno: os avanços raramente cabem em uma única categoria. Um lançamento reúne mudanças em armazenamento, redes, segurança, processadores, drivers, sistemas de arquivos e ferramentas de desenvolvimento.

Linux 7.1

O Linux 7.1 continuou esse processo. Entre seus destaques estavam:

  • Um novo driver para o sistema de arquivos NTFS.
  • Melhorias no swap.
  • Ativação do mecanismo Intel FRED em hardware compatível.
  • Integração entre eBPF e io_uring.
  • Preparação para subescalonadores no sched_ext.
  • Novas opções da chamada clone3.
  • Aprimoramentos para namespaces e criação de contêineres.

A evolução de clone3, namespaces e escalonadores extensíveis é especialmente relevante para data centers. Muitas cargas de trabalho modernas são executadas em contêineres e precisam dividir processadores, memória e dispositivos entre aplicações com perfis muito diferentes.

Linux 7.2

O Linux 7.2 foi lançado em 16 de agosto de 2026 e era a versão principal mais recente na data de elaboração deste artigo. O lançamento pode ser confirmado no arquivo oficial do kernel.

Um de seus destaques é o escalonamento mais consciente da organização dos caches. O kernel pode aproximar tarefas que compartilham dados dentro do mesmo domínio de cache de último nível, reduzindo movimentações desnecessárias e melhorando o aproveitamento do processador em algumas cargas.

O Linux 7.2 também trouxe:

  • Melhorias na recuperação de memória.
  • Uma implementação de swap mais enxuta e eficiente.
  • Suporte a USB4STREAM para transportar fluxos de dados por conexões USB4.
  • Otimizações de desempenho no Btrfs.
  • O novo alvo dm-inlinecrypt para criptografia integrada de dispositivos de bloco.
  • Novas opções relacionadas à família de chamadas openat.
  • Leitura mais rápida de informações em /proc/filesystems e /proc/interrupts.
  • Preparações adicionais para subescalonadores no sched_ext.
  • Atualizações de drivers e suporte a novas gerações de hardware.

A relação detalhada pode ser consultada no resumo técnico do Linux 7.2.

Como um novo kernel é desenvolvido

O kernel atual utiliza um modelo de desenvolvimento contínuo. A versão principal costuma ser lançada a cada nove ou dez semanas.

Após um lançamento, abre-se uma janela de integração de aproximadamente duas semanas. Nesse período, Linus recebe conjuntos de mudanças preparados pelos mantenedores. Encerrada a janela, surgem as versões candidatas, identificadas por -rc1, -rc2 e assim sucessivamente.

As semanas seguintes são voltadas a testes, correções e regressões. Quando a versão é considerada suficientemente estável, ocorre o lançamento oficial. A documentação de versões do kernel explica a divisão entre mainline, stable e longterm.

Isso não significa que todos os usuários devam instalar imediatamente a versão mais recente. Distribuições e empresas costumam manter kernels estáveis ou de longo prazo, aplicando correções de segurança sem incorporar toda novidade disponível na árvore principal.

Quem paga pelo desenvolvimento do Linux?

A imagem romântica de programadores trabalhando apenas nas horas vagas representa parte da origem do Linux, mas não descreve sua realidade industrial.

Muitos desenvolvedores continuam contribuindo de forma independente. Uma parcela significativa das mudanças, porém, é produzida por profissionais pagos por empresas.

Relatórios históricos da Linux Foundation ajudam a dimensionar essa transformação. Em 2011, a fundação estimou que cerca de 75% do desenvolvimento analisado havia sido realizado por profissionais remunerados. Empresas como Red Hat, Intel, IBM, Texas Instruments, Broadcom, Samsung, Oracle e Google apareciam entre as organizações envolvidas. Os números pertencem àquele período e não devem ser apresentados como uma fotografia exata do desenvolvimento atual, mas mostram que a participação empresarial não é recente. Relatório da Linux Foundation de 2011.

Em 2017, outro levantamento contabilizou aproximadamente 15.600 desenvolvedores e mais de 1.400 empresas desde o início do acompanhamento por Git. Intel, Red Hat, Linaro, IBM, Samsung, SUSE, Google, AMD, Renesas e Mellanox estavam entre as principais organizações patrocinadoras de contribuições naquele relatório. Relatório da Linux Foundation de 2017.

O investimento empresarial acontece de várias formas:

  • Salários de engenheiros que trabalham no kernel.
  • Laboratórios de teste e integração contínua.
  • Desenvolvimento de drivers.
  • Correções de segurança.
  • Manutenção de versões de longo prazo.
  • Documentação e revisão de código.
  • Disponibilização antecipada de hardware.
  • Patrocínio de conferências e infraestrutura.
  • Trabalho em compiladores e ferramentas de diagnóstico.

Essas empresas não investem apenas por simpatia ao software livre. Fabricantes precisam que seus processadores, GPUs, controladores e dispositivos funcionem bem. Provedores de nuvem querem melhor desempenho por servidor. Empresas de telecomunicações dependem de redes rápidas e previsíveis. Fabricantes de automóveis e eletrônicos precisam de um kernel adaptável e mantido por muitos anos.

A participação empresarial cria tensões. Cada organização possui interesses próprios, e determinadas mudanças podem favorecer um fabricante ou uma categoria de produto. O processo de revisão pública, a autoridade dos mantenedores e a licença GPL ajudam a impedir que uma única companhia transforme a árvore principal em produto exclusivo.

Linus Torvalds, poder técnico e comportamento controverso

Linus Torvalds é reconhecido por sua competência técnica e por sua capacidade de coordenar um projeto gigantesco. Sua forma de comunicação, porém, tornou-se uma das maiores controvérsias da história do kernel.

Durante anos, Linus publicou respostas agressivas, insultos e críticas pessoais em listas de discussão. Seus defensores argumentavam que o kernel exige padrões elevados e que críticas diretas evitam a integração de código ruim. O problema é que rigor técnico e humilhação pessoal não são a mesma coisa.

Em setembro de 2018, Torvalds reconheceu que seu comportamento havia prejudicado pessoas e anunciou uma pausa para buscar ajuda. O episódio acompanhou a adoção de um Código de Conduta mais explícito.

O Código de Conduta do kernel Linux passou a estabelecer regras contra insultos, ataques pessoais, assédio e outras formas de comportamento inadequado.

A mudança gerou resistência em parte da comunidade. Alguns temiam que as novas normas fossem usadas para controlar discussões técnicas. Outros afirmavam que um ambiente incapaz de distinguir análise de código e agressão pessoal afastava desenvolvedores qualificados.

A pausa de Linus não apagou os episódios anteriores, mas marcou uma mudança importante: o próprio criador do projeto admitiu que a autoridade técnica não justifica qualquer forma de tratamento.

GPLv2, GPLv3 e os limites da abertura

Outra disputa importante envolve a licença do kernel. Quando a GPLv3 foi publicada, surgiram discussões sobre uma possível migração.

Linus Torvalds se opôs à mudança. Uma das divergências estava relacionada às cláusulas da GPLv3 contra a chamada “tivoização”, situação em que um fabricante distribui software livre em um dispositivo, mas utiliza mecanismos técnicos para impedir a execução de versões modificadas pelo usuário.

O kernel continua sob GPLv2. Uma mudança completa também seria juridicamente muito difícil, porque o código possui contribuições protegidas por direitos autorais de milhares de pessoas e organizações.

A discussão revelou uma diferença filosófica. Para alguns integrantes do movimento de software livre, a liberdade do usuário inclui a possibilidade prática de executar uma versão modificada. Para Torvalds, a GPLv2 oferecia um equilíbrio mais adequado entre colaboração, disponibilidade do código e liberdade dos fabricantes para construir produtos.

Drivers proprietários e a relação difícil com fabricantes

O suporte a hardware também produziu conflitos. Durante muitos anos, empresas divulgaram poucos detalhes sobre seus dispositivos ou ofereceram apenas drivers proprietários.

Essa situação cria problemas para o kernel. Um módulo fechado pode deixar de funcionar após mudanças internas, impedir auditoria, dificultar correções de segurança e tornar a investigação de falhas mais complexa.

Linus protagonizou declarações bastante agressivas contra fabricantes que dificultavam o suporte ao Linux. O episódio mais famoso envolveu a NVIDIA em 2012. Embora tenha chamado atenção para um problema real de cooperação técnica, a forma usada por Torvalds também reforçou sua reputação de comunicação hostil.

A relação com fabricantes de hardware melhorou em muitas áreas. Existem drivers abertos para diferentes GPUs, processadores e aceleradores, mas a tensão entre código proprietário, firmware fechado, documentação restrita e desenvolvimento comunitário ainda não desapareceu.

O kernel que quase ninguém vê, mas quase todos utilizam

Um usuário pode passar anos usando Linux sem instalar uma distribuição em seu computador pessoal.

O kernel está presente no Android, em servidores web, roteadores domésticos, televisores, equipamentos industriais, sistemas de entretenimento automotivo, plataformas de nuvem e supercomputadores. Ele aparece em placas minúsculas e em máquinas com milhares de processadores.

Sua força não está apenas no fato de ser gratuito. O Linux reúne quatro características difíceis de combinar:

  • Código-fonte disponível.
  • Grande diversidade de arquiteturas e dispositivos.
  • Processo contínuo de revisão.
  • Investimento de empresas que competem entre si.

Também existem fragilidades. O código acumulado durante décadas é complexo. Mantenedores experientes podem ficar sobrecarregados. Novos desenvolvedores precisam compreender regras técnicas e sociais pouco óbvias. Empresas nem sempre mantêm por tempo suficiente os componentes que introduzem. A pressão por suporte rápido ao novo hardware pode entrar em conflito com estabilidade e qualidade.

O significado do Linux 7.2

Chegar ao Linux 7.2 não significa que o projeto esteja pronto ou próximo de uma forma definitiva. Um kernel nunca fica completo porque o hardware, as ameaças de segurança e as aplicações continuam mudando.

A versão 0.01 precisava do Minix para ser instalada, reconhecia poucos dispositivos e trazia um teclado finlandês incorporado ao código. A versão 7.2 precisa coordenar processadores com arquiteturas híbridas, caches complexos, aceleradores, máquinas virtuais, contêineres, armazenamento criptografado, redes de alta velocidade e cargas de inteligência artificial.

Existe uma continuidade entre esses dois extremos. O projeto ainda é desenvolvido por meio de código compartilhado, revisão técnica e discussões públicas. Linus Torvalds continua ocupando uma posição central, mas o Linux já não pode ser compreendido como a obra de uma única pessoa.

Sua história é a história de uma comunidade que aprendeu a lidar com crescimento, empresas, conflitos, licenças, egos, segurança e mudanças constantes de hardware. É justamente essa combinação imperfeita que transformou o antigo hobby de um estudante em uma das infraestruturas mais importantes da computação moderna.

Apple apresenta M6 de 2 nm e M5 Ultra com quatro dies: o Mac entra de vez na disputa pela IA local

A Apple apresentou dois processadores que ocupam extremos diferentes de sua linha de computadores. O M6 estreia no Mac mini com uma arquitetura de 2 nanômetros voltada ao uso cotidiano, enquanto o M5 Ultra chega ao Mac Studio tentando transformar uma estação compacta em uma máquina capaz de executar modelos massivos de inteligência artificial localmente.

Representação dos processadores Apple M6 e M5 Ultra utilizados no Mac mini e no Mac Studio
O M6 inaugura a fabricação de 2 nanômetros nos chips da Apple, enquanto o M5 Ultra reúne quatro dies e pode trabalhar com até 512 GB de memória unificada.

Os dois lançamentos têm propostas muito diferentes, mas revelam a mesma direção. A Apple não está mais tratando o processamento de inteligência artificial como um recurso complementar. CPU, GPU, Neural Engine, memória e ferramentas de desenvolvimento estão sendo reorganizados para que aplicações de IA sejam executadas diretamente no computador, sem depender o tempo todo de servidores externos.

O M6 representa uma evolução mais ampla, destinada a estudantes, desenvolvedores, usuários domésticos e profissionais que precisam de um desktop pequeno e eficiente. O M5 Ultra pertence a outra categoria. Ele foi projetado para renderização 3D, edição de vídeos pesados, simulações científicas, geração de imagens, desenvolvimento de modelos e execução de grandes modelos de linguagem.

A diferença entre eles não está apenas na quantidade de núcleos. Está na maneira como a Apple pretende dividir o futuro do Mac: computadores menores ganham aceleração neural suficiente para tarefas locais, enquanto o Mac Studio assume o papel de estação de IA, vídeo e computação intensiva.

M6 é o primeiro chip de 2 nanômetros da Apple

A mudança mais visível do M6 está no processo de fabricação. Segundo a empresa, este é o primeiro processador da Apple construído com tecnologia de 2 nanômetros.

O número não deve ser interpretado como uma medida literal de cada transistor. Nas gerações atuais de semicondutores, expressões como 5 nm, 3 nm e 2 nm representam famílias de processos de fabricação, com diferentes níveis de densidade, eficiência e características elétricas.

Na prática, uma tecnologia mais avançada permite colocar mais transistores dentro de uma área limitada. Os engenheiros podem usar esse ganho para aumentar o desempenho, reduzir o consumo, acrescentar novos blocos de processamento ou equilibrar essas três possibilidades.

A Apple afirma que o processo de 2 nm proporciona ao M6 um avanço simultâneo em desempenho e eficiência energética. É uma afirmação plausível considerando a evolução da fabricação, mas a dimensão real desse ganho dependerá de medições independentes de consumo, temperatura e desempenho sustentado.

Um chip pode ser muito rápido durante alguns segundos e reduzir sua frequência quando aquece. Também pode apresentar excelente eficiência em determinada carga e comportamento diferente em outra. Esses detalhes só ficam claros quando os computadores chegam aos usuários e passam por testes fora do ambiente controlado da fabricante.

Mesmo assim, a estreia dos 2 nm é significativa. Ela dá à Apple mais espaço para ampliar partes importantes do sistema sem transformar o Mac mini em uma máquina maior ou mais difícil de resfriar.

Uma CPU de 12 núcleos com nova divisão de tarefas

O M6 traz uma CPU com 12 núcleos, dois a mais que a geração anterior. A organização interna chama atenção: são dois “super cores”, quatro núcleos de desempenho e seis núcleos de eficiência.

Os núcleos de eficiência cuidam de operações cotidianas e tarefas em segundo plano consumindo menos energia. Os núcleos de desempenho entram quando o trabalho exige mais capacidade de processamento. Os dois super cores assumem as tarefas mais sensíveis à velocidade de execução individual.

Essa estrutura representa uma evolução da arquitetura híbrida que a Apple já utiliza há várias gerações. Em vez de tratar todos os núcleos da mesma forma, o sistema distribui o trabalho conforme a necessidade. Não faz sentido ativar uma unidade muito poderosa para verificar notificações ou sincronizar pequenos arquivos. Da mesma maneira, compilar um projeto grande ou processar uma imagem complexa exige recursos que os núcleos econômicos não entregariam na mesma velocidade.

Segundo os números divulgados no comunicado oficial do M6 e do M5 Ultra, o novo processador oferece desempenho multithread de até 1,2 vez o M5 e até 2,4 vezes o M1. A empresa também afirma possuir o núcleo de CPU mais rápido do mundo em desempenho single-thread.

Essa última frase precisa ser lida como uma alegação de fabricante. A Apple informa que realizou seus testes em agosto de 2026, utilizando sistemas comerciais concorrentes e benchmarks selecionados. Ainda não há, no momento do anúncio, uma bateria ampla de avaliações independentes que permita comparar o M6 com todas as arquiteturas atuais em diferentes sistemas, aplicações e limites de energia.

O desempenho single-thread continua importante porque muitos processos não conseguem distribuir perfeitamente o trabalho entre dezenas de núcleos. Partes de compiladores, navegadores, ferramentas de edição e interfaces dependem da velocidade de uma sequência principal de instruções. É isso que costuma produzir a sensação de resposta imediata ao abrir programas, manipular projetos ou realizar operações curtas.

Já o ganho multithread aparece com mais clareza na compilação de código, exportação de arquivos, indexação, renderização e outras tarefas capazes de utilizar vários núcleos ao mesmo tempo.

Dual Neural Engine: dois blocos dedicados à IA

O M6 também estreia o que a Apple chama de Dual 16-core Neural Engine. Em termos simples, o chip possui dois motores neurais com 16 núcleos cada, voltados à execução de operações comuns em redes neurais.

O Neural Engine surgiu nos chips da Apple inicialmente ligado a recursos como reconhecimento de imagens, fotografia computacional, processamento de voz e aprendizado de máquina. Com a expansão dos modelos generativos, esse bloco ganhou outra importância.

Agora ele precisa lidar com tarefas como:

  • execução de modelos locais;
  • análise e classificação de conteúdo;
  • transcrição;
  • geração e transformação de imagens;
  • compreensão de linguagem;
  • recursos da Apple Intelligence;
  • operações realizadas por agentes de IA;
  • inferência de redes neurais incorporadas aos aplicativos.

A Apple afirma que o novo conjunto pode entregar até duas vezes o pico de capacidade computacional das gerações anteriores. Os frameworks do sistema conseguem utilizar os dois motores ao mesmo tempo, desde que o aplicativo e a carga tenham sido preparados para isso.

Esse detalhe importa. Dobrar um bloco de hardware não significa que todo aplicativo ficará duas vezes mais rápido automaticamente. O modelo precisa utilizar operações compatíveis, a tarefa precisa ser distribuída de maneira eficiente e o software deve conseguir alimentar os dois motores sem criar gargalos em outras partes do sistema.

Em alguns trabalhos, a limitação estará na GPU. Em outros, na largura de banda da memória. Também existem modelos que executam determinadas operações na CPU porque elas não se adaptam bem ao Neural Engine.

A arquitetura de IA da Apple está se tornando heterogênea. Isso significa que uma mesma carga pode ser dividida entre CPU, GPU e Neural Engine. O macOS e os frameworks da empresa tentam decidir qual parte do processador é mais adequada para cada operação.

Para o desenvolvedor, o ganho depende menos de “programar diretamente os 32 núcleos neurais” e mais de utilizar ferramentas que saibam aproveitar a arquitetura.

A GPU do M6 também ganhou aceleradores neurais

O M6 possui uma GPU de 12 núcleos, novamente dois a mais que o M5. Cada núcleo gráfico inclui um Neural Accelerator dedicado.

Essa aproximação entre computação gráfica e inteligência artificial acompanha uma transformação vista em toda a indústria. GPUs sempre foram boas em executar grandes quantidades de operações paralelas. As redes neurais se beneficiam justamente desse tipo de cálculo, especialmente multiplicações de matrizes realizadas repetidamente.

A presença de aceleradores especializados dentro dos núcleos da GPU busca melhorar esse trabalho sem depender exclusivamente do Neural Engine. Modelos generativos, ferramentas de imagem, aplicações de vídeo e grandes modelos de linguagem podem dividir suas operações entre diferentes unidades.

Segundo a Apple, o M6 apresenta um aumento próximo de 30% no pico de computação de IA pela GPU em comparação com o M5 e supera em mais de oito vezes a capacidade do M1 nessa métrica específica.

“Pico de computação” não é sinônimo de desempenho final do aplicativo. Trata-se de uma medida da capacidade teórica ou máxima de determinado bloco. O resultado percebido pelo usuário depende do modelo, da precisão numérica utilizada, do tamanho do contexto, do formato dos pesos, da memória disponível e da otimização do software.

Essa distinção ficou ainda mais necessária com a explosão das comparações de IA. Um computador pode ter excelente capacidade matemática e, mesmo assim, apresentar resultados medianos em um modelo mal otimizado. Outro pode ter números teóricos menores, mas contar com bibliotecas mais maduras e executar a mesma tarefa com maior eficiência.

O anúncio fornece uma direção. Os testes práticos dirão o tamanho do avanço.

Gráficos, jogos e ray tracing

O foco em IA não eliminou a função tradicional da GPU. O M6 recebe uma arquitetura atualizada de shaders, melhorias no Dynamic Caching e aceleração de ray tracing por hardware.

O Dynamic Caching é uma tecnologia utilizada para ajustar dinamicamente a quantidade de memória local destinada às tarefas da GPU. Em arquiteturas mais tradicionais, uma parte dos recursos pode acabar reservada sem ser totalmente utilizada. A proposta é realizar essa alocação de forma mais precisa, reduzindo desperdícios e aumentando o aproveitamento do chip.

A Apple também declara um aumento de 50% na taxa de processamento de geometria. Esse ganho pode ajudar em cenas tridimensionais complexas, jogos, modelagem 3D, visualização arquitetônica e aplicações que trabalham com muitos objetos.

O ray tracing simula o comportamento da luz para produzir reflexos, sombras e iluminação mais realistas. É uma técnica computacionalmente pesada, por isso a aceleração em hardware faz tanta diferença.

Ainda existe uma questão que a especificação do processador não resolve: disponibilidade de jogos. A Apple vem fortalecendo o Metal e aproximando o Mac de títulos mais exigentes, mas desempenho de GPU, por si só, não cria um catálogo. Desenvolvedores precisam portar, testar e manter seus jogos no macOS.

Para criação de conteúdo, o cenário costuma ser mais favorável. Aplicações de edição, renderização e produção audiovisual já aproveitam amplamente os recursos do Apple silicon.

Memória unificada mais rápida, mas limitada a 32 GB

O M6 alcança até 170 GB/s de largura de banda de memória, aproximadamente 10% acima do M5 e 2,5 vezes a largura de banda oferecida pelo M1, segundo a Apple. A capacidade máxima, porém, permanece em 32 GB no Mac mini equipado com esse chip.

Na arquitetura de memória unificada, CPU, GPU e Neural Engine acessam o mesmo conjunto de memória. Isso reduz a necessidade de copiar dados entre a memória principal e uma memória gráfica separada.

A ideia é especialmente útil em inteligência artificial. Os pesos de um modelo podem ser acessados pelos diferentes componentes do chip sem tantas movimentações intermediárias. O resultado potencial é menor latência, melhor eficiência e aproveitamento mais flexível da capacidade instalada.

Só que 32 GB ainda impõem limites claros.

Essa quantidade é confortável para atividades domésticas, desenvolvimento de software, edição de imagens, alguns projetos de vídeo e modelos locais menores. Já modelos de linguagem maiores, contextos muito extensos e geração avançada podem consumir rapidamente toda a memória disponível.

O M6 não tenta resolver o segmento extremo. Ele oferece uma base eficiente para IA local de uso cotidiano. Quem precisa carregar centenas de gigabytes de pesos entra no território do M5 Ultra.

M5 Ultra estreia uma arquitetura com quatro dies

O M5 Ultra é descrito pela Apple como o processador mais poderoso já criado pela empresa. Seu principal diferencial é a arquitetura de quatro dies, a primeira desse tipo em um chip da série M.

Um die é a parte física de silício que contém os componentes do processador. Fabricar um único chip gigantesco pode ser caro e difícil, pois qualquer defeito na produção compromete uma área maior. Uma alternativa é combinar vários dies menores por meio de conexões de alta velocidade.

No M5 Ultra, a Apple utiliza a tecnologia UltraFusion para conectar dois conjuntos M5 Max, cada um já formado por dois dies. O resultado é um sistema com quatro partes físicas trabalhando como um único processador lógico.

A comunicação entre os dies é decisiva. Se a conexão for lenta, o processador pode perder desempenho enquanto uma parte espera dados da outra. A Apple afirma ter elevado a largura de banda entre os dies para mais de 4,4 TB/s e aumentado a densidade das conexões em mais de seis vezes.

Esses números buscam permitir que os quatro dies compartilhem informações com baixa latência. Para o software, a intenção é que a estrutura se comporte como um grande sistema integrado, sem exigir que cada aplicativo seja refeito para gerenciar manualmente quatro chips separados.

É uma solução tecnicamente ambiciosa. Também será uma das partes mais interessantes dos futuros testes do Mac Studio: cargas reais mostrarão até que ponto o sistema consegue escalar entre todos os dies sem sofrer com sincronização, temperatura ou distribuição desigual do trabalho.

Até 36 núcleos de CPU no Mac Studio

O M5 Ultra pode ser configurado com uma CPU de até 36 núcleos, divididos entre 12 super cores e 24 núcleos de desempenho. Diferentemente do M6, não há núcleos de eficiência nessa configuração máxima divulgada.

Isso deixa evidente a prioridade. O M5 Ultra não foi construído para economizar cada pequena parcela de energia durante tarefas leves. Ele foi pensado para permanecer sob carga intensa, lidando com projetos nos quais terminar o trabalho mais cedo pode ser mais importante do que reduzir o consumo instantâneo.

A Apple aponta desempenho single-thread até 1,25 vez superior ao M3 Ultra e desempenho multithread até 1,3 vez maior. As comparações foram realizadas pela própria empresa com unidades de pré-produção do novo Mac Studio.

Um avanço de 30% em cargas multithread pode parecer menos dramático do que os números de IA apresentados no mesmo anúncio. A razão é que o foco desta geração está espalhado por várias áreas: interconexão dos dies, GPU, aceleradores neurais, memória, mecanismos de vídeo e execução local de modelos.

O M5 Ultra não é apenas uma CPU maior. Ele é uma plataforma de computação heterogênea.

GPU de até 80 núcleos e aceleração neural

A GPU do M5 Ultra chega a 80 núcleos, cada um equipado com um Neural Accelerator. Segundo o comunicado, a capacidade máxima de computação da GPU para IA pode ser até 4,5 vezes a do M3 Ultra e mais de seis vezes a do M1 Ultra.

Em uma comparação distinta de desempenho no Mac Studio, a empresa fala em ganhos de até 4,3 vezes sobre o M3 Ultra em determinados trabalhos de IA. A diferença entre os números ocorre porque “pico de computação” e “desempenho medido em uma aplicação” não são a mesma coisa.

A GPU incorpora shaders atualizados, Dynamic Caching de segunda geração, mesh shading acelerado e ray tracing de terceira geração. A Apple promete gráficos até 40% mais rápidos que os do M3 Ultra em sua comparação de arquitetura, enquanto a apresentação do novo Mac Studio menciona ganhos de até 1,8 vez em cargas selecionadas.

É um processador voltado a trabalhos bastante específicos:

  • renderização tridimensional;
  • efeitos visuais;
  • geração de imagens e vídeos;
  • treinamento ou ajuste de modelos;
  • simulações científicas;
  • visualização de grandes conjuntos de dados;
  • inferência de modelos generativos;
  • desenvolvimento de jogos;
  • edição de vídeo em alta resolução.

Para um usuário que navega na internet, edita documentos e ocasionalmente trabalha com imagens, grande parte dessa capacidade ficaria parada. O M5 Ultra faz sentido quando cada minuto de renderização, compilação ou processamento tem valor econômico.

Os 512 GB de memória são uma parte central do projeto

O componente mais impressionante do M5 Ultra talvez não seja a CPU nem a GPU. É a possibilidade de configurar o Mac Studio com até 512 GB de memória unificada e acessar essa memória com largura de banda de 1,2 TB/s.

A largura de banda é 50% superior à do M3 Ultra, de acordo com a Apple. Ela representa a quantidade de dados que o sistema consegue movimentar por segundo entre a memória e as unidades de processamento.

Grandes modelos de linguagem são particularmente sensíveis a esse fator. Durante a inferência, o computador precisa acessar repetidamente os pesos do modelo. Quando a largura de banda não acompanha a capacidade da GPU, os núcleos ficam esperando pelos dados.

Os 512 GB também permitem manter modelos muito grandes inteiramente na memória. A Apple afirma que o sistema pode executar localmente LLMs com centenas de bilhões de parâmetros, desde que sejam utilizados formatos e níveis de quantização compatíveis com a capacidade disponível.

Isso não significa que qualquer modelo desse tamanho será executado em sua precisão original ou terá o mesmo desempenho de um grande data center. Modelos podem exigir quantização para reduzir o consumo de memória. O tamanho do contexto também ocupa espaço, assim como o próprio sistema operacional e os aplicativos.

Mesmo com essas ressalvas, trata-se de uma capacidade incomum em um computador de mesa compacto. Muitas GPUs dedicadas de alto desempenho oferecem memória muito mais limitada. Servidores conseguem superar essa quantidade combinando várias placas, mas o custo, o consumo e a complexidade aumentam rapidamente.

A memória unificada cria uma característica interessante: os 512 GB não estão presos exclusivamente à CPU ou à GPU. O sistema pode distribuir seu uso conforme a carga. Para pesquisa local, prototipagem e trabalho com modelos privados, isso pode ser mais valioso do que uma simples comparação de núcleos.

Inteligência artificial local não é apenas uma questão de velocidade

A Apple associa os novos processadores à possibilidade de executar modelos de IA sem enviar dados continuamente para a nuvem.

Essa abordagem oferece algumas vantagens. Informações sensíveis podem permanecer no computador. A aplicação continua funcionando mesmo com conectividade limitada. O usuário não precisa pagar por cada token processado por um serviço remoto. A latência também pode diminuir, especialmente em tarefas interativas.

Existem limitações.

Modelos em nuvem podem utilizar grandes agrupamentos de GPUs, receber atualizações frequentes e atender cargas que seriam inviáveis em um computador pessoal. Executar tudo localmente exige armazenamento, memória, energia e capacidade de manutenção. Alguns modelos sequer possuem pesos abertos para instalação.

A tendência mais provável é híbrida. Tarefas privadas, rápidas ou repetitivas serão processadas no próprio Mac. Operações muito grandes ou dependentes de modelos fechados continuarão utilizando servidores.

O M6 e o M5 Ultra cobrem dois pontos dessa arquitetura. O M6 oferece IA local integrada ao computador cotidiano. O M5 Ultra tenta colocar uma parcela da computação antes restrita a servidores dentro de um desktop profissional.

Um mecanismo de mídia construído para produção audiovisual

O M5 Ultra também recebe um Media Engine mais poderoso, com aceleração dedicada para H.264, HEVC, ProRes, ProRes RAW e decodificação AV1.

Na configuração divulgada pela Apple, o chip possui dois mecanismos de decodificação de vídeo, quatro mecanismos de codificação e quatro unidades ProRes de codificação e decodificação. A empresa diz que o Mac Studio consegue reproduzir simultaneamente até 33 fluxos de vídeo ProRes 422 em resolução 8K e 30 quadros por segundo.

Esse tipo de aceleração é diferente de executar toda a operação na CPU. Blocos especializados conseguem processar codecs com mais eficiência, liberando CPU e GPU para efeitos, composição, correção de cor e outras partes do projeto.

Para editores de vídeo, estúdios e profissionais de efeitos visuais, o Media Engine pode ter impacto mais concreto do que o discurso sobre IA. Um projeto com várias câmeras, arquivos de alta resolução e camadas de efeitos coloca pressão sobre memória, armazenamento, decodificação e renderização ao mesmo tempo.

A página de especificações do Mac Studio confirma opções com CPU de 30 ou 36 núcleos, GPU de 64 ou 80 núcleos, Neural Engine de 32 núcleos e configurações de memória que chegam a 512 GB.

Desenvolvedores terão que aproveitar CPU, GPU e Neural Engine

Hardware especializado só apresenta bons resultados quando existem ferramentas capazes de utilizá-lo.

A Apple está concentrando esse trabalho em tecnologias como Core AI, Core ML, Metal, MLX e Xcode. Cada uma atua em uma parte diferente do processo de criação e execução de aplicações inteligentes.

O Core ML permite integrar modelos de aprendizado de máquina aos aplicativos. O Metal oferece acesso à computação da GPU. O MLX é um framework aberto e otimizado para Apple silicon, usado em experimentação, treinamento e inferência. Já o novo Core AI procura organizar a execução de modelos entre memória unificada, CPU, GPU e Neural Engine.

A proposta é evitar que o desenvolvedor precise administrar manualmente cada unidade de processamento. Os frameworks analisam as operações e tentam utilizar o componente mais adequado.

A Apple também permite que aplicativos acessem seus Foundation Models e recursos da Apple Intelligence por meio de ferramentas como App Intents. Desenvolvedores continuam podendo incorporar modelos próprios, o que é indispensável para empresas que trabalham com informações privadas ou sistemas especializados.

O benefício será maior nos aplicativos que adotarem essas APIs. Softwares antigos ou desenvolvidos sem otimização específica podem utilizar apenas uma pequena parte do novo hardware.

E existe a questão da compatibilidade. Nem todo modelo criado para CUDA ou preparado para GPUs de outros fabricantes será transportado imediatamente para o ecossistema da Apple. Ferramentas como MLX reduzem essa barreira, mas o ecossistema de software ainda pesa tanto quanto o silício.

Mac mini e Mac Studio deixam de disputar exatamente o mesmo usuário

O novo Mac mini com M6 procura oferecer desempenho elevado em uma máquina compacta, com 16 GB de memória na configuração inicial e possibilidade de chegar a 32 GB. Ele atende programação, produtividade, edição, desenvolvimento e experimentação com IA local.

A Apple também o posiciona como um dispositivo que pode permanecer ligado executando agentes de inteligência artificial. Esse é um uso relativamente novo para um computador doméstico: uma pequena máquina dedicada a automações, análise de documentos, geração de conteúdo, monitoramento ou serviços locais.

Já o Mac Studio com M5 Ultra funciona como estação profissional. Seu público não está apenas procurando um computador rápido. Está procurando capacidade para manter conjuntos enormes de dados na memória, processar vídeo de alta resolução ou executar modelos que não cabem em equipamentos convencionais.

A diferença aparece até na escala da conectividade. O novo Mac Studio adota Thunderbolt 5 e pode utilizar RDMA para formar grupos de várias máquinas. A Apple afirma que um cluster de quatro Mac Studio pode alcançar até três vezes o desempenho de inferência de uma única unidade em cargas selecionadas.

Isso não transforma o Mac Studio em substituto universal de um data center. Cria, porém, uma opção intermediária interessante entre um computador pessoal e uma infraestrutura especializada de servidores.

Os números são grandes, mas ainda são números da Apple

Quase todas as comparações apresentadas até agora foram produzidas pela própria fabricante em computadores de pré-produção, utilizando sistemas e cargas selecionadas.

Isso não invalida os resultados. A Apple informa a configuração das máquinas comparadas e descreve que utilizou benchmarks e aplicações específicas. O cuidado necessário está na interpretação.

“Até 4,5 vezes mais computação de IA” não significa que qualquer modelo ficará 4,5 vezes mais rápido. “Até 40% mais desempenho gráfico” não garante a mesma diferença em todos os jogos. “O núcleo mais rápido do mundo” depende do conjunto de sistemas, do benchmark e dos limites energéticos usados na comparação.

Também será necessário observar:

  • desempenho após vários minutos de carga;
  • temperatura e ruído;
  • consumo na tomada;
  • escalabilidade entre os quatro dies;
  • eficiência do Dual Neural Engine;
  • compatibilidade dos modelos;
  • desempenho com diferentes quantizações;
  • velocidade real de geração de tokens;
  • comportamento com toda a memória ocupada;
  • suporte dos aplicativos profissionais.

Os lançamentos foram anunciados em 25 de agosto de 2026, e a disponibilidade dos novos Mac mini e Mac Studio está prevista para 22 de setembro. Até que as unidades comerciais sejam analisadas por veículos e laboratórios independentes, o material oficial deve ser entendido como uma apresentação técnica acompanhada de marketing.

A mudança mais importante não está na litografia

Os 2 nanômetros do M6 são importantes. A arquitetura com quatro dies do M5 Ultra também. Mesmo assim, o aspecto mais revelador do anúncio é a distribuição do processamento neural por todo o chip.

A Apple não depende apenas de um Neural Engine maior. Ela adiciona Neural Accelerators aos núcleos da GPU, amplia a memória, aumenta a largura de banda, desenvolve novos frameworks e prepara o sistema para movimentar trabalhos entre diferentes unidades.

O computador deixa de ter “um componente de IA” isolado. A inteligência artificial passa a influenciar o desenho completo do processador.

Esse movimento também aparece na quantidade de memória do M5 Ultra. Durante anos, a discussão sobre computadores pessoais ficou concentrada em CPU e GPU. Modelos generativos trouxeram a memória novamente para o centro do projeto, pois não adianta possuir dezenas de núcleos se os pesos do modelo não cabem no sistema ou chegam lentamente às unidades de cálculo.

O M6 procura tornar a IA local uma função normal de um Mac compacto. O M5 Ultra leva a mesma ideia ao limite, com quatro dies, GPU de 80 núcleos, 512 GB de memória e largura de banda de 1,2 TB/s.

Ainda não sabemos se a geração cumprirá todas as promessas de desempenho. Isso depende de testes, aplicativos e de como os desenvolvedores responderão às novas ferramentas. O rumo, porém, ficou claro: para a Apple, o próximo ciclo dos computadores não será definido apenas por máquinas mais rápidas, mas por quanto processamento inteligente elas conseguem realizar sem sair da mesa do usuário.

COBOL: a linguagem de 1959 que ainda movimenta bancos, governos e grandes empresas

Quando uma transferência bancária é processada, uma folha de pagamento é calculada ou uma apólice de seguro é atualizada, existe uma possibilidade real de que alguma etapa dessa operação passe por um programa escrito em COBOL. A linguagem nasceu antes da internet, dos computadores pessoais e dos bancos de dados relacionais, mas continua presente em sistemas que não podem simplesmente parar para serem reconstruídos.

Representação de um sistema COBOL conectado a mainframe, banco de dados, aplicações web, APIs e serviços em nuvem
O COBOL raramente trabalha sozinho: ele faz parte de um ecossistema que reúne mainframes, bancos de dados, processamento em lote, mensageria, APIs e aplicações modernas.

Essa longevidade costuma produzir duas interpretações opostas. Para alguns, o COBOL é uma relíquia que deveria ter desaparecido há décadas. Para outros, é uma tecnologia tão confiável que não existe motivo para substituí-la. As duas visões simplificam um problema muito mais interessante.

O COBOL não continua em uso apenas porque empresas resistem à mudança. Ele permanece porque décadas de regras comerciais, cálculos financeiros, exceções operacionais e exigências regulatórias foram incorporadas aos programas. Em muitos casos, o código representa uma parte da memória institucional da organização.

O que é COBOL?

COBOL é a sigla para Common Business-Oriented Language, ou Linguagem Comum Orientada a Negócios. Trata-se de uma linguagem compilada de alto nível, criada especificamente para aplicações administrativas e processamento de dados empresariais.

Seu objetivo nunca foi controlar foguetes, desenvolver jogos ou realizar cálculos científicos avançados. O COBOL foi pensado para tarefas como:

  • processar folhas de pagamento;
  • calcular juros e parcelas;
  • atualizar saldos;
  • emitir faturas;
  • consolidar movimentações financeiras;
  • administrar apólices de seguro;
  • controlar estoques;
  • gerar relatórios;
  • processar grandes arquivos de registros;
  • validar operações segundo regras de negócio.

Uma de suas características mais conhecidas é a sintaxe relativamente próxima do inglês. Um programa simples pode conter instruções como MOVE, ADD, SUBTRACT, COMPUTE, READ, WRITE, PERFORM e DISPLAY.

Um exemplo básico seria:

       IDENTIFICATION DIVISION.
       PROGRAM-ID. CALCULA-SALDO.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01 SALDO-ATUAL    PIC S9(9)V99 COMP-3.
       01 VALOR-DEPOSITO PIC S9(9)V99 COMP-3.

       PROCEDURE DIVISION.
           ADD VALOR-DEPOSITO TO SALDO-ATUAL
           DISPLAY "NOVO SALDO: " SALDO-ATUAL
           STOP RUN.

A aparência pode parecer incomum para quem começou a programar em Python, JavaScript ou Java. Ainda assim, o propósito do código é razoavelmente legível: adicionar o valor de um depósito ao saldo atual.

A linguagem também se destaca pelo tratamento de números decimais de ponto fixo. Isso é importante em sistemas financeiros, nos quais erros de arredondamento podem produzir diferenças contábeis. A IBM descreve o COBOL como especialmente adequado ao processamento confiável e volumoso de dados comerciais, incluindo arquivos sequenciais, indexados e relativos.

Uma linguagem criada para resolver a fragmentação

No final da década de 1950, os computadores eram equipamentos grandes, caros e profundamente incompatíveis entre si. Cada fabricante possuía arquiteturas, sistemas e linguagens próprias. Um programa desenvolvido para uma máquina geralmente precisava ser reescrito para funcionar em outra.

Essa dependência preocupava governos e grandes empresas. Trocar de fornecedor não significava apenas comprar um computador novo: podia exigir a reconstrução de todo o conjunto de programas administrativos.

Em 1959, representantes do governo dos Estados Unidos, fabricantes de computadores e grandes organizações formaram o Conference on Data Systems Languages, conhecido como CODASYL. O grupo buscava criar uma linguagem comum, voltada ao processamento de dados comerciais e menos dependente de um fabricante específico.

Grace Hopper teve influência decisiva nesse processo por meio de seu trabalho com compiladores e com o FLOW-MATIC, uma linguagem que permitia descrever operações comerciais com instruções semelhantes ao inglês. É impreciso, porém, afirmar que Hopper criou o COBOL sozinha. A linguagem foi resultado do trabalho coletivo de comitês técnicos, instituições públicas e empresas.

A primeira especificação foi apresentada em 1960. O COBOL recebeu revisões sucessivas e foi padronizado pelo ANSI em 1968. Vieram depois versões como COBOL-74, COBOL-85, COBOL 2002, COBOL 2014 e COBOL 2023. A atual norma publicada é a ISO/IEC 1989:2023, que define a sintaxe e a semântica da linguagem e busca preservar seu grau de independência entre diferentes sistemas de processamento.

O fato de existir uma especificação publicada em 2023 — e de uma nova revisão estar em desenvolvimento — mostra que o COBOL não é apenas um artefato histórico congelado em 1959.

A importância dos mainframes

Embora possa ser executado em outros ambientes, o COBOL tornou-se fortemente associado aos mainframes. Esses computadores foram construídos para processar grandes volumes de dados com disponibilidade, segurança, controle de acesso e previsibilidade operacional.

A família IBM System/360, apresentada em 1964, teve papel importante nessa expansão. A proposta de uma arquitetura compatível entre diferentes modelos permitia que empresas ampliassem sua capacidade de processamento sem abandonar todo o software já desenvolvido.

O mainframe transformou-se na base de sistemas bancários, seguradoras, empresas aéreas, governos, indústrias, redes varejistas e grandes processadores de pagamentos. O COBOL encontrou nesse ambiente um espaço ideal: processamento de arquivos extensos, cálculos comerciais, tarefas repetitivas e milhões de transações que exigiam consistência.

Ainda hoje, organizações brasileiras mantêm operações importantes em mainframes. Um caso documentado é o do Banco do Brasil, que utiliza tecnologias Db2 for z/OS e IBM Z para disponibilizar dados corporativos e sustentar consultas realizadas por milhares de painéis internos. O Banco de Brasília também mantém uma infraestrutura baseada em IBM Z, z/OS, CICS e Db2.

Esses exemplos não significam que todo o sistema esteja escrito em COBOL. Eles demonstram que a plataforma na qual muitas aplicações COBOL tradicionalmente operam continua presente em instituições brasileiras relevantes.

COBOL nunca foi uma tecnologia isolada

É comum imaginar um programador escrevendo COBOL em uma tela preta e controlando sozinho todo o sistema. Na prática, aplicações corporativas são formadas por várias tecnologias interdependentes.

Aprender a sintaxe do COBOL é apenas a primeira parte. Para compreender uma aplicação real, o profissional normalmente precisa conhecer componentes de execução, armazenamento, segurança, comunicação e automação.

JCL e o processamento em lote

O Job Control Language, ou JCL, é usado no ambiente z/OS para descrever trabalhos que serão executados pelo computador.

O JCL não substitui o COBOL. Sua função é informar ao sistema qual programa executar, quais arquivos serão utilizados, onde os resultados deverão ser gravados, quais recursos serão necessários e o que fazer em determinadas condições.

Imagine o fechamento noturno de um banco. Um conjunto de tarefas pode precisar:

  1. receber os movimentos realizados durante o dia;
  2. validar os registros;
  3. calcular juros;
  4. atualizar saldos;
  5. gerar arquivos contábeis;
  6. produzir relatórios;
  7. arquivar os resultados;
  8. liberar o próximo ciclo de processamento.

Os programas responsáveis pelos cálculos podem estar em COBOL. O JCL organiza e inicia sua execução.

Esse processamento em lote continua relevante porque permite tratar enormes quantidades de dados de maneira planejada e controlada. Para quem está acostumado apenas a APIs e aplicações web, entender uma janela de processamento noturno exige uma mudança de perspectiva.

VSAM e os arquivos corporativos

Antes de bancos de dados relacionais se tornarem comuns, muitas aplicações armazenavam informações em arquivos. No ecossistema IBM, o VSAM tornou-se uma tecnologia importante para organizar e acessar conjuntos de dados sequenciais ou indexados.

Sistemas COBOL podem ler, alterar e gravar registros VSAM. É possível localizar uma conta por uma chave, percorrer registros em sequência ou produzir um novo arquivo a partir do processamento de outro.

Mesmo quando uma organização adota bancos de dados modernos, arquivos VSAM podem continuar presentes em partes da operação. A migração exige entender formatos de registros, chaves, dependências, programas consumidores e procedimentos de recuperação.

CICS e as transações on-line

O COBOL começou muito ligado ao processamento em lote, mas as empresas também precisavam executar operações interativas. Surgiu então a necessidade de controlar milhares de transações simultâneas realizadas por terminais, caixas eletrônicos e sistemas corporativos.

O CICS tornou-se uma das principais soluções para isso. Ele funciona como um servidor de aplicações transacionais, administrando execução, segurança, comunicação e acesso a recursos.

Um programa COBOL executado sob CICS pode consultar um cliente, registrar um pagamento, autorizar uma operação ou atualizar um cadastro. O usuário não precisa saber que existe COBOL atrás da interface.

O CICS Transaction Server atual não está restrito a terminais antigos. Ele oferece integração com aplicações de diferentes linguagens, observabilidade, APIs, automação e ferramentas de desenvolvimento modernas.

IMS: banco de dados e gerenciador de transações

O IMS, sigla de Information Management System, é outra tecnologia histórica encontrada em grandes ambientes corporativos. Ele reúne um banco de dados hierárquico e um gerenciador de transações.

Aplicações COBOL podem utilizar o IMS para consultar e atualizar estruturas de dados extremamente importantes. Em algumas organizações, essas bases carregam décadas de informações e continuam atendendo operações críticas.

O IMS permanece em evolução, com integração a Java, APIs REST, automação por Ansible e ferramentas voltadas à nuvem híbrida. A tecnologia é antiga, mas seu ambiente atual não corresponde necessariamente ao que existia nas décadas de 1970 ou 1980.

Db2 e o SQL embutido

Com a expansão dos bancos de dados relacionais, o Db2 passou a complementar muitas soluções COBOL. O programa pode conter comandos SQL embutidos para consultar, incluir, alterar ou excluir registros.

Isso aproximou o COBOL de um modelo de desenvolvimento ainda familiar: a aplicação executa regras de negócio enquanto o sistema de banco de dados organiza os dados, os índices, os bloqueios e as transações.

Conhecer SQL é, assim, uma habilidade valiosa para quem deseja trabalhar com COBOL corporativo. Em determinados projetos, entender o plano de acesso de uma consulta ou o impacto de um índice pode ser mais importante do que memorizar comandos da linguagem.

Mensageria, integração e sistemas distribuídos

À medida que novas plataformas foram surgindo, as aplicações COBOL precisaram conversar com sistemas Unix, Windows, Java, aplicações móveis, sites e serviços hospedados em nuvem.

Tecnologias de mensageria, como IBM MQ, passaram a transportar eventos e solicitações entre ambientes. Uma aplicação pode publicar uma mensagem que será processada por outro sistema, sem exigir que ambos estejam disponíveis exatamente no mesmo instante.

Gateways e plataformas de integração permitem que programas existentes sejam acessados por aplicações Java, .NET e outras linguagens. O CICS Transaction Gateway, por exemplo, conecta aplicações de diferentes plataformas aos serviços executados no CICS.

APIs REST e ferramentas como z/OS Connect levaram essa integração adiante. Uma aplicação de celular pode chamar uma API moderna que, internamente, aciona uma transação CICS escrita em COBOL. Para o usuário, tudo parece parte de uma única experiência digital.

O que realmente significa “tecnologia legada”?

O termo “legado” é frequentemente empregado como sinônimo de velho, ruim ou ultrapassado. Essa associação nem sempre é justa.

Um sistema legado é, antes de tudo, um sistema herdado. Ele foi construído em outro contexto tecnológico, mas continua necessário para o funcionamento da organização.

Existem sistemas COBOL bem estruturados, documentados e mantidos. Também existem sistemas Java recentes repletos de dependências problemáticas e decisões difíceis de corrigir. A idade da linguagem não determina, sozinha, a qualidade do software.

O problema surge quando uma aplicação acumula características como:

  • documentação incompleta;
  • regras de negócio conhecidas por poucas pessoas;
  • dependências que não foram mapeadas;
  • bibliotecas sem código-fonte;
  • compiladores muito antigos;
  • rotinas duplicadas;
  • ausência de testes automatizados;
  • processos manuais de implantação;
  • estruturas de dados difíceis de interpretar;
  • integrações sem responsáveis definidos.

Um programa com milhares de linhas pode incluir regras criadas após auditorias, mudanças tributárias, incorporações empresariais e exceções negociadas com clientes. Reescrever o código sem compreender esse histórico pode eliminar comportamentos aparentemente estranhos, mas essenciais.

Por isso, o maior valor de certas aplicações não está na sintaxe do COBOL. Está no conhecimento operacional codificado ao longo de décadas.

Por que não reescrever tudo?

A ideia de substituir uma aplicação COBOL por Java, C# ou outra linguagem parece simples em uma apresentação. A execução costuma ser bem mais delicada.

Uma reescrita integral precisa reproduzir o comportamento do sistema antigo, incluindo casos raros, arredondamentos, formatos de arquivos, rotinas de fechamento, integrações e procedimentos de recuperação.

Também existem particularidades como:

  • dados em EBCDIC;
  • campos numéricos em formato compactado;
  • copybooks compartilhados por muitos programas;
  • chamadas entre módulos;
  • processamento orientado a registros;
  • arquivos de largura fixa;
  • dependências entre tarefas em lote;
  • códigos de retorno usados para controlar cadeias de execução;
  • atualizações coordenadas entre COBOL, CICS, Db2, IMS e VSAM.

Converter a sintaxe não garante equivalência funcional. Uma tradução pode compilar corretamente e ainda produzir resultados diferentes em situações contábeis específicas.

A modernização responsável começa pelo inventário: quais programas existem, quem os chama, quais dados utilizam, quais regras executam e quais processos dependem deles. A própria IBM alerta que uma estratégia baseada somente na tradução do COBOL ignora a arquitetura de dados, a plataforma de execução e a integridade transacional do sistema.

A dificuldade de aprender COBOL no Brasil

A sintaxe básica do COBOL não é o maior obstáculo para novos profissionais. Com dedicação, alguém que já conhece lógica de programação pode aprender suas divisões, tipos de dados, estruturas condicionais, arquivos e subprogramas.

A dificuldade está em adquirir experiência semelhante à exigida por ambientes de produção.

Pouco espaço nas formações tradicionais

Cursos superiores e técnicos no Brasil costumam concentrar seus programas em Java, Python, JavaScript, desenvolvimento web, bancos de dados relacionais e computação em nuvem. Essa escolha é compreensível, pois essas tecnologias atendem um mercado amplo e são fáceis de praticar em computadores pessoais.

COBOL, JCL, CICS, IMS, RACF, VSAM e z/OS raramente aparecem juntos em uma graduação. Quando aparecem, muitas vezes são apresentados de maneira histórica, sem acesso a um ambiente real.

O estudante termina conhecendo a existência do COBOL, mas não necessariamente sabe compilar um programa no z/OS, submeter um job, analisar um abend, navegar por conjuntos de dados ou investigar uma transação CICS.

Acesso limitado ao ambiente completo

É possível instalar um compilador COBOL no Linux ou no Windows. Isso permite aprender a linguagem, criar programas e processar arquivos locais.

Reproduzir todo o ambiente corporativo é outra história. Um mainframe de produção envolve sistema operacional, segurança, catálogos, filas, bancos de dados, monitores transacionais, agendadores, ferramentas de desenvolvimento e padrões específicos de cada empresa.

O acesso a esses ambientes é controlado por razões óbvias. Eles armazenam informações financeiras, pessoais e comerciais. Dessa forma, boa parte do conhecimento mais valorizado é adquirida no emprego, em programas de formação interna ou em laboratórios especializados.

Forma-se um paradoxo: algumas vagas pedem experiência prática, mas o candidato só consegue essa experiência depois de entrar em uma organização que opere a plataforma.

O ecossistema é maior do que a linguagem

Uma pessoa pode escrever um programa COBOL correto e ainda não estar pronta para investigar um incidente em produção.

O trabalho pode exigir leitura de JCL, análise de códigos de retorno, conhecimento de Db2, controle de transações CICS, interpretação de arquivos VSAM, uso de TSO/ISPF, entendimento de copybooks, ferramentas de versionamento e regras internas de implantação.

Também é necessário conhecer o negócio. Um desenvolvedor que atua em sistemas bancários precisa compreender conceitos financeiros. Em seguros, precisa conhecer apólices, prêmios, sinistros e vigências. Em sistemas públicos, pode precisar interpretar normas e processos administrativos.

É justamente a combinação entre tecnologia e domínio de negócio que torna profissionais experientes difíceis de substituir.

Documentação e comunidades menores

Há muito menos conteúdo recente em português sobre COBOL e mainframe do que sobre desenvolvimento web. Vários materiais técnicos estão em inglês, e parte da documentação pressupõe acesso a produtos ou ambientes específicos.

As comunidades são menores e boa parte do código corporativo não pode ser publicada em repositórios públicos. Um desenvolvedor JavaScript encontra milhares de projetos completos para estudar. Já uma aplicação COBOL bancária real dificilmente estará disponível no GitHub, pois contém regras proprietárias e estruturas sensíveis.

Isso reduz a visibilidade do ecossistema e cria a impressão de que não existe trabalho. Na verdade, muitas oportunidades circulam em nichos formados por bancos, seguradoras, processadoras, empresas de serviços de tecnologia e consultorias.

Como começar a estudar COBOL hoje

Embora o acesso profissional continue sendo um desafio, o caminho de entrada melhorou consideravelmente.

Uma possibilidade é iniciar com GnuCOBOL em um computador pessoal. O compilador permite estudar estruturas de dados, arquivos, cálculos, subprogramas e diferentes dialetos sem depender imediatamente de um mainframe.

O Open Mainframe Project mantém um curso aberto de programação COBOL, com materiais que vão dos primeiros passos a tópicos avançados e testes. O projeto também apresenta ferramentas modernas de edição, integração com VS Code, Zowe, automação e pipelines de integração contínua.

Outra alternativa é o IBM Z Xplore, plataforma gratuita e baseada em desafios. Ela oferece contato prático com COBOL, JCL, VSAM, Db2, REXX, Linux e outros componentes do ecossistema IBM Z.

Uma trilha sensata pode seguir esta ordem:

  1. lógica de programação e estruturas de dados;
  2. sintaxe básica do COBOL;
  3. processamento sequencial de arquivos;
  4. tabelas, subprogramas e copybooks;
  5. JCL e execução de tarefas em lote;
  6. TSO, ISPF e organização de conjuntos de dados;
  7. VSAM;
  8. SQL e Db2;
  9. conceitos de CICS;
  10. depuração e análise de falhas;
  11. controle de versão, testes e automação;
  12. APIs e integração com aplicações modernas.

Projetos próprios ajudam a transformar o estudo em evidência prática. Um pequeno sistema de contas, uma folha de pagamento simulada ou um processador de arquivos de vendas pode demonstrar domínio da linguagem. O ideal é incluir testes, documentação, JCL de exemplo e uma descrição clara das regras implementadas.

Ainda assim, é preciso honestidade: um laboratório pessoal não equivale à experiência de sustentar um sistema crítico em produção. Ele serve como porta de entrada, não como substituto integral.

Como o COBOL ainda é usado

O COBOL permanece adequado a operações que reúnem grande volume, regras estáveis, cálculos comerciais e necessidade rigorosa de consistência.

Entre os usos mais comuns estão:

  • sistemas bancários centrais;
  • processamento de cartões;
  • liquidação de pagamentos;
  • folhas de pagamento;
  • faturamento;
  • previdência;
  • seguros;
  • cobrança;
  • sistemas tributários;
  • reservas e emissão de passagens;
  • gestão de grandes cadastros;
  • processamento de lotes financeiros;
  • relatórios regulatórios.

Isso não significa que o cliente interaja diretamente com uma “tela COBOL”. O aplicativo móvel pode ser desenvolvido em Swift ou Kotlin, o portal pode usar React e os serviços intermediários podem estar em Java, Go ou .NET. No centro da operação, uma transação COBOL pode validar e registrar a movimentação.

A arquitetura moderna frequentemente se parece com uma composição de camadas. O COBOL preserva a lógica central, enquanto APIs, mensageria e microsserviços oferecem novas formas de acesso.

Modernizar não é apenas migrar

Existem várias estratégias possíveis para uma aplicação COBOL:

  • manter o sistema e atualizar compiladores;
  • melhorar documentação e cobertura de testes;
  • otimizar programas sem alterar sua lógica;
  • expor funções existentes por meio de APIs;
  • substituir interfaces antigas;
  • integrar eventos e mensageria;
  • mover partes específicas para outra plataforma;
  • modularizar programas monolíticos;
  • converter somente serviços selecionados;
  • reescrever completamente uma aplicação;
  • aposentar sistemas que perderam sua função.

A melhor escolha depende do risco, do custo, da qualidade do código, da disponibilidade de profissionais e do valor comercial da aplicação.

Uma reescrita total pode ser adequada para um sistema pequeno e bem compreendido. Em uma aplicação central com milhões de transações e dependências acumuladas, a evolução incremental tende a oferecer maior controle.

Ambientes COBOL também estão incorporando Git, VS Code, pipelines de CI/CD, análise estática, testes automatizados, APIs e observabilidade. A existência de código antigo não obriga a equipe a utilizar processos antigos.

Inteligência artificial e compreensão de sistemas legados

Ferramentas de inteligência artificial começam a ser usadas para explicar programas, mapear dependências, produzir documentação, sugerir testes e auxiliar na refatoração.

O watsonx Code Assistant for Z, por exemplo, oferece recursos de descoberta de aplicações, explicação de código, geração de COBOL, refatoração modular e transformação assistida para Java.

Essas ferramentas podem reduzir o tempo necessário para navegar por grandes bases de código. Elas não eliminam a necessidade de especialistas.

Nomes de campos abreviados, regras não documentadas e comportamentos históricos exigem contexto organizacional. Uma inteligência artificial pode interpretar a estrutura do programa, mas não necessariamente sabe por que uma determinada exceção foi criada vinte anos atrás.

O uso seguro exige testes de regressão, validação de resultados, revisão humana e participação das áreas de negócio. Em aplicações financeiras e governamentais, “parece equivalente” não é um critério suficiente.

O futuro do COBOL

É improvável que o COBOL volte a ocupar posição central nos cursos de programação ou se transforme em uma linguagem popular entre iniciantes. Também é improvável que desapareça rapidamente.

Seu futuro deve ser marcado por uma redução gradual de alguns sistemas, combinada à modernização e manutenção de outros. Certas aplicações serão reescritas. Outras permanecerão em COBOL, mas ganharão APIs, monitoramento, automação, interfaces modernas e integração com ambientes distribuídos.

O padrão publicado em 2023, os compiladores atualizados, os projetos de código aberto e as ferramentas contemporâneas de desenvolvimento mostram que a linguagem ainda evolui. O próprio mercado de mainframe busca renovar profissionais: a IBM anunciou em 2024 um Mainframe Skills Council e programas de formação voltados a desenvolvedores, administradores e arquitetos de modernização.

Para o profissional brasileiro, COBOL provavelmente continuará sendo uma especialização. A quantidade de vagas pode ser menor do que em Java ou JavaScript, mas o conhecimento exigido também é mais raro. O perfil mais valorizado não será o de quem conhece somente a sintaxe da linguagem, e sim o de quem consegue compreender sistemas inteiros.

Esse profissional precisará transitar entre dois mundos: COBOL e APIs, lote e tempo real, ISPF e VS Code, arquivos tradicionais e bancos relacionais, mainframe e nuvem, regras escritas há décadas e novos produtos digitais.

A linguagem criada em 1959 não sobreviveu porque o tempo parou. Ela sobreviveu porque as organizações continuaram operando, acumulando regras e construindo novas camadas ao redor de sistemas que já funcionavam.

Compreender COBOL é também compreender que a história da computação não é feita apenas de substituições. Muitas vezes, ela avança por integração, adaptação e convivência entre tecnologias de épocas diferentes.

DeepSeek Harness: quando o agente de IA deixa de chamar ferramentas e começa a programar o próprio trabalho

Um modelo de linguagem pode ser excelente em raciocínio e geração de código, mas ele não abre arquivos, executa comandos ou altera um projeto sozinho. Entre o modelo e o computador existe uma camada operacional. É nessa parte menos visível que o DeepSeek Harness tenta mudar a maneira como agentes de IA realizam tarefas complexas.

Agente de inteligência artificial utilizando um harness para acessar arquivos, terminal e ferramentas de desenvolvimento
O modelo funciona como o cérebro do agente. O harness organiza ferramentas, contexto, permissões, execução, memória e interação com o ambiente.

O DeepSeek Harness, também identificado pelo comando dsh, é um projeto de código aberto desenvolvido pela DeepSeek. Seu objetivo não é apresentar apenas mais um modelo de inteligência artificial, mas oferecer a infraestrutura necessária para transformar diferentes modelos em agentes capazes de trabalhar com arquivos, terminal, pesquisas, ferramentas, habilidades, fluxos e subagentes.

Essa distinção parece pequena, mas é fundamental.

O modelo produz decisões em forma de tokens. O harness transforma essas decisões em ações reais. Ele apresenta as ferramentas disponíveis, recebe as chamadas geradas pelo modelo, controla a execução, devolve resultados, administra a sessão e registra aquilo que aconteceu.

Claude e Claude Code ajudam a entender a diferença. Claude é uma família de modelos. Claude Code é um ambiente de agente que conecta esses modelos ao terminal, ao sistema de arquivos e a ferramentas de desenvolvimento.

A mesma lógica aparece no ecossistema DeepSeek. Um modelo como DeepSeek V4 pode ser o “cérebro”, enquanto o DeepSeek Harness oferece o corpo operacional. O projeto, porém, foi construído para separar essas partes e permitir que componentes sejam trocados.

A proposta mais interessante aparece no chamado Code Mode, atualmente também apresentado como PTC — Programmatic Tool Calling. Em vez de obrigar o modelo a conversar com cada ferramenta individualmente, ele pode escrever um pequeno programa que organiza várias ações e executá-las em conjunto.

Menos conversa entre modelo e ferramentas. Mais execução.

Afinal, o que é um harness de IA?

A palavra harness pode ser traduzida como arreio, estrutura de conexão ou mecanismo de controle. No campo dos agentes de inteligência artificial, ela representa a camada que envolve o modelo e permite que ele interaja com sistemas externos.

Um modelo isolado recebe uma entrada e gera uma saída. Ele não possui, por natureza, acesso ao seu projeto, aos arquivos do computador, ao Git, ao terminal ou a uma API corporativa.

O harness acrescenta essas capacidades.

Quando pedimos a um agente para corrigir um erro em um programa, várias operações podem acontecer:

  1. o agente procura arquivos relevantes;
  2. lê o código;
  3. localiza símbolos ou referências;
  4. consulta instruções do projeto;
  5. elabora uma hipótese;
  6. altera um ou mais arquivos;
  7. executa testes;
  8. analisa os resultados;
  9. ajusta a implementação;
  10. apresenta um resumo.

O modelo participa das decisões, mas quem oferece acesso ao sistema de arquivos, executa os comandos, controla permissões e registra a trajetória é o harness.

Essa camada também define quanto contexto será enviado ao modelo. Um resultado enorme de terminal pode ser inserido integralmente na conversa ou filtrado antes. Uma ferramenta pode aparecer como uma função direta ou como parte de um SDK. A execução pode ocorrer no sistema principal, em um processo restrito, em um contêiner ou em outro ambiente isolado.

Dois agentes utilizando o mesmo modelo podem se comportar de maneira bastante diferente porque seus harnesses organizam ferramentas, contexto e execução de formas distintas.

O modelo importa muito. A estrutura em volta dele também.

“Tudo é um plugin”

A arquitetura do DeepSeek Harness parte de uma ideia explícita: praticamente todas as capacidades devem ser tratadas como plugins.

Modelo, ferramentas, skills, sessões, armazenamento, interface, sandbox, planejamento, subagentes e fluxos podem ser adicionados por componentes separados. O projeto utiliza o sistema de plugins Cordis para fornecer serviços e permitir que módulos colaborem sem transformar toda a aplicação em uma estrutura única e rígida.

Segundo a página oficial do DeepSeek Harness, a ferramenta oferece quatro configurações principais:

  • Standard Mode: agente de programação completo, com edição de arquivos, shell, busca local e na web, skills, planejamento, objetivos, subagentes e workflows;
  • Code Mode ou PTC Mode: mantém as capacidades do modo padrão, mas apresenta as ferramentas por meio de um SDK para que o modelo componha operações em um programa;
  • Minimal Mode: ambiente reduzido, com shell persistente e editor, pensado principalmente para testes de modelos;
  • Creator Mode: configuração destinada à inspeção do runtime, experimentação com plugins e criação de novos presets de agente.

A configuração do agente deixa de ser um bloco fechado no programa principal. Ela passa a ser uma composição de peças.

Isso permite imaginar agentes especializados. Uma equipe pode criar um preset apenas para revisão de código, outro para documentação, um para análise de logs e outro para manutenção de infraestrutura. Cada um recebe somente os componentes necessários.

A promessa de flexibilidade vem acompanhada de complexidade. Quanto mais extensível é um sistema, maior a necessidade de entender quais plugins estão ativos, quais permissões possuem e como interagem.

O projeto ainda está em developer preview. O repositório oficial no GitHub avisa que a ferramenta passa por evolução rápida e que haverá mudanças capazes de quebrar compatibilidade.

Não é um detalhe escondido. É o estado atual do software.

Como agentes trabalham no modo nativo

No funcionamento tradicional, o modelo recebe uma lista de ferramentas. Cada ferramenta possui nome, descrição e esquema de argumentos.

Suponha que o agente precise encontrar todos os arquivos de log, extrair mensagens de erro, agrupá-las por categoria e produzir um relatório.

No modo nativo, o fluxo pode ser parecido com isto:

  1. o modelo chama a ferramenta de listagem;
  2. o harness executa a chamada;
  3. o resultado volta para o contexto;
  4. o modelo lê a lista e escolhe um arquivo;
  5. chama a ferramenta de leitura;
  6. o conteúdo retorna para o modelo;
  7. o modelo decide ler o próximo arquivo;
  8. outra chamada é realizada;
  9. novos resultados entram no contexto;
  10. o modelo finalmente organiza os dados.

Cada etapa pode exigir uma nova interação com a API do modelo. O histórico cresce porque chamadas e respostas intermediárias precisam ser preservadas para que o agente saiba o que aconteceu.

Esse funcionamento possui uma vantagem: cada passo fica bastante explícito. O usuário ou o sistema de permissões pode inspecionar uma operação antes de executá-la. Também é adequado para tarefas curtas em que o resultado de uma ferramenta modifica completamente a decisão seguinte.

O custo aparece em trabalhos mecânicos e repetitivos.

Se houver cem arquivos, o agente talvez realize muitas chamadas quase iguais. O modelo recebe informações que poderiam ser filtradas por um programa comum. Tokens são consumidos para transportar listas, trechos e respostas que servem apenas como ponte entre uma ferramenta e outra.

O modelo acaba fazendo o trabalho de um laço de programação, só que por meio de várias rodadas de inferência.

Code Mode: o modelo escreve o procedimento

O Code Mode muda a representação das ferramentas.

Em vez de expor todas elas apenas como funções que o modelo chama uma por vez, o DeepSeek Harness gera uma interface tipada. O modelo escreve um programa, normalmente em TypeScript, usando esse SDK.

O programa pode:

  • listar arquivos;
  • percorrer resultados com um laço;
  • realizar leituras independentes em paralelo;
  • filtrar linhas;
  • agrupar ocorrências;
  • calcular totais;
  • tratar erros;
  • devolver apenas um resumo.

O harness executa esse programa e apresenta ao modelo o resultado relevante. Dados intermediários não precisam atravessar repetidamente a janela de contexto.

Em um exemplo simplificado, o modelo poderia produzir uma lógica parecida com esta:

const arquivos = await tools.buscarArquivos({
  padrao: "**/*.log"
});

const conteudos = await Promise.all(
  arquivos.map((arquivo) =>
    tools.lerArquivo({ caminho: arquivo })
  )
);

const erros = conteudos
  .flatMap((conteudo) => extrairErros(conteudo))
  .reduce(agruparPorTipo, {});

return erros;

Os nomes reais das ferramentas e os tipos dependem da configuração do harness. O que importa é o fluxo: uma única produção de código descreve o procedimento completo.

A ideia de apresentar ferramentas como uma API programável não surgiu exclusivamente com o DeepSeek Harness. A própria documentação técnica do projeto menciona o trabalho anterior da Cloudflare.

Em setembro de 2025, a Cloudflare publicou a proposta Code Mode: the better way to use MCP. A empresa argumentava que modelos possuem muito mais exposição a código real durante o treinamento do que a formatos artificiais de chamadas de ferramentas.

Em vez de pedir ao modelo que emitisse dezenas de estruturas JSON especiais, as ferramentas seriam transformadas em uma API TypeScript. O modelo escreveria código para combiná-las.

O DeepSeek Harness incorporou essa lógica como parte de sua arquitetura modular.

Por que programar pode economizar tokens?

Uma chamada de ferramenta tradicional exige uma sequência de mensagens.

O modelo escolhe a ferramenta e produz os argumentos. O harness executa. O resultado volta ao contexto. O modelo processa esse conteúdo e decide a etapa seguinte.

Se a operação gerar vinte mil linhas, esse material pode ocupar uma parte significativa da janela, mesmo quando o modelo precisa apenas contar quantas vezes determinado erro aparece.

Com o Code Mode, o programa executa o processamento fora do contexto principal. Ele pode ler vinte mil linhas, descartar o conteúdo irrelevante e devolver algo pequeno:

Falhas de autenticação: 138
Erros de conexão: 42
Timeouts: 17

O modelo recebe o resultado final, não toda a matéria-prima.

Essa diferença pode reduzir:

  • tokens de entrada;
  • número de chamadas ao modelo;
  • tempo acumulado de rede;
  • pressão sobre a janela de contexto;
  • repetição de instruções e esquemas;
  • exposição desnecessária de resultados intermediários ao modelo.

Também permite paralelismo. Leituras independentes podem ser enviadas em conjunto com Promise.all, em vez de depender de várias decisões sequenciais.

Só que a economia não é automática.

O SDK tipado precisa ser apresentado ao modelo. Se a interface for enorme, sua descrição também consome contexto. A documentação do próprio DeepSeek Harness reconhece que as declarações TypeScript podem ficar grandes e, no modo que expõe simultaneamente ferramentas nativas e Code Mode, as duas representações ocupam espaço.

Tarefas pequenas talvez não ganhem nada. Se o agente precisa chamar uma única ferramenta, escrever, interpretar e executar um programa pode acrescentar trabalho.

O benefício tende a aparecer quando existe composição: múltiplos arquivos, várias APIs, filtragem, laços, operações independentes ou grande volume de dados intermediários.

Velocidade não serve se o resultado estiver errado

Um agente mais rápido não é automaticamente melhor.

O programa gerado pode interpretar incorretamente o formato dos logs, ignorar arquivos, usar uma expressão regular inadequada ou agrupar erros diferentes na mesma categoria. Como várias ações são executadas em uma única etapa, um erro inicial pode se propagar por todo o processamento.

No modo nativo, o modelo observa resultados intermediários e pode corrigir o caminho. No Code Mode, ele tenta antecipar a sequência.

Isso cria uma troca.

Para operações determinísticas, repetitivas e bem estruturadas, o programa pode ser muito mais eficiente. Em tarefas ambíguas, exploratórias ou dependentes de interpretação contínua, interagir passo a passo talvez seja mais confiável.

Também é necessário avaliar a qualidade final do relatório. Se uma configuração demora 36 segundos, mas perde metade dos erros, ela não venceu a comparação.

Um teste completo deveria observar:

  • tempo total;
  • tokens de entrada e saída;
  • custo monetário;
  • cobertura dos arquivos;
  • precisão dos agrupamentos;
  • estabilidade entre execuções;
  • quantidade de intervenção humana;
  • erros de ferramenta;
  • facilidade de auditar a trajetória.

Agentes são sistemas, não cronômetros.

Programmatic Tool Calling não significa uma única ação interna

Dizer que o Code Mode realiza tudo “de uma vez” pode gerar uma interpretação errada.

As ferramentas continuam sendo chamadas. Arquivos continuam sendo lidos. Comandos continuam sendo executados. APIs ainda recebem requisições.

O que muda é quem organiza a sequência.

No modo nativo, o ciclo do agente alterna repetidamente entre modelo e ferramenta. No modo programático, o modelo escreve um procedimento, e o runtime organiza várias chamadas dentro daquela execução.

As operações internas podem continuar percorrendo o pipeline de ferramentas, incluindo validações, registros e políticas. O documento de implementação do Code Mode descreve subchamadas identificadas e registradas individualmente.

Isso é importante para observabilidade. Se o programa chama cinco ferramentas, a plataforma ainda precisa saber qual delas falhou, quais argumentos foram usados e o que aconteceu antes do resultado final.

Agrupar a coordenação não deveria apagar a trajetória.

Um harness que pode modificar o próprio harness

O Creator Mode representa a parte mais experimental da proposta.

Nesse modo, o agente pode inspecionar os serviços, plugins, eventos e ferramentas disponíveis no runtime. Também consegue montar plugins temporários e testar novas composições em memória.

A intenção é permitir que o desenvolvedor descreva uma capacidade e utilize a própria IA para ajudar a construir o módulo correspondente.

Podemos imaginar um pedido como:

Crie uma ferramenta que leia arquivos CSV do projeto, valide colunas obrigatórias e devolva um resumo dos registros inconsistentes.

O agente inspeciona as interfaces disponíveis, escreve o código do plugin, monta o componente temporariamente e testa seu comportamento.

Há um limite importante. Os plugins criados dinamicamente em memória não são necessariamente persistidos como parte definitiva da instalação. Para transformar um experimento em componente mantido, o código precisa ser revisado, salvo, testado e incorporado de maneira controlada.

A possibilidade de um agente modificar sua própria composição é poderosa. Também amplia o risco de uma configuração incorreta introduzir ferramentas excessivamente permissivas.

Extensibilidade sem governança vira superfície de ataque.

Compatibilidade com outros modelos

A separação entre modelo e harness permite trabalhar com provedores diferentes. A arquitetura atual transporta a seleção como uma combinação de provedor e modelo, em vez de presumir que toda sessão utilizará obrigatoriamente um único serviço.

Isso não significa que qualquer modelo funcionará igualmente bem.

O modo nativo exige competência em tool calling. O modelo precisa selecionar ferramentas, gerar argumentos válidos, interpretar resultados e manter o estado do trabalho.

O Code Mode exige outra combinação:

  • boa geração de TypeScript ou da linguagem configurada;
  • capacidade de compreender tipos;
  • planejamento de múltiplas etapas;
  • tratamento de erros;
  • respeito às instruções do SDK;
  • seleção adequada do que deve retornar ao contexto.

Um modelo pode conversar muito bem e ainda falhar na composição programática. Outro pode escrever código correto, mas gerar argumentos inadequados para ferramentas específicas.

Plugins comunitários já oferecem rotas para APIs compatíveis com os formatos OpenAI, Anthropic e outros provedores. O ecossistema ainda está mudando rapidamente, e compatibilidade de protocolo não garante equivalência de comportamento.

Conectar um endpoint é a parte fácil. Fazer o modelo utilizar corretamente todas as capacidades exige testes.

O custo da API não depende apenas do preço por token

A DeepSeek cobra sua API pelo volume de tokens processados. Entrada com cache, entrada sem cache e saída podem possuir preços diferentes.

Na tabela oficial consultada em agosto de 2026, o DeepSeek V4 Flash aparece com preços de 0,02 yuan por milhão de tokens de entrada com cache, 1 yuan para entrada sem cache e 2 yuan por milhão de tokens de saída. O V4 Pro aparece com 0,025 yuan para entrada com cache, 3 yuan para entrada sem cache e 6 yuan por milhão de tokens de saída.

Esses valores podem mudar. A própria documentação de preços da API DeepSeek recomenda acompanhar a página atualizada.

O custo real de um agente não é calculado apenas multiplicando o tamanho da pergunta pelo preço do modelo.

Cada nova rodada pode reenviar partes consideráveis do histórico. Definições de ferramentas, instruções, resultados anteriores e conteúdo de arquivos ocupam tokens. Em uma tarefa com muitas chamadas, o material acumulado pode superar em muito o prompt original.

O cache do provedor ajuda quando o prefixo permanece estável. Alterações na lista de ferramentas, no prompt de sistema ou na estrutura da sessão podem diminuir esse aproveitamento.

O Code Mode tenta reduzir principalmente a quantidade de resultados intermediários que retornam ao modelo. Se o programa lê cinquenta arquivos e devolve apenas uma tabela pequena, a economia pode ser expressiva.

Mas existe um custo inicial: gerar o programa e apresentar o SDK. Se a tarefa exige apenas uma leitura simples, o modo nativo pode utilizar menos tokens.

O modo de operação, portanto, faz parte da economia da API.

O risco de executar código escrito pelo modelo

O Code Mode não oferece apenas a capacidade de escolher ferramentas. Ele executa um programa produzido pelo modelo.

Isso exige uma discussão de segurança mais séria.

A implementação atual utiliza uma nova worker thread do Node.js para cada execução. O ambiente de variáveis é esvaziado, e existem limites configuráveis de memória, tempo e saída. Um laço síncrono descontrolado pode ser interrompido sem bloquear o processo principal.

Esses controles são úteis. Não equivalem a um sandbox de segurança contra código hostil.

A própria documentação do projeto afirma que o runtime baseado em worker thread oferece contenção operacional, mas não uma fronteira forte de segurança. O código pode alcançar APIs do Node, e uma thread compartilha o mesmo usuário e o mesmo sistema operacional do processo principal.

Em agosto de 2026, uma discussão no repositório do DeepSeek Harness detalhou a preocupação de que o caminho run_code possa acessar arquivos e criar processos fora das restrições esperadas em determinadas configurações. Trata-se de uma discussão técnica no GitHub, não de uma declaração conclusiva de que toda instalação foi comprometida, mas o cenário merece atenção.

Quem pretende experimentar o Code Mode deve preferir:

  • uma máquina virtual descartável;
  • um contêiner bem restrito;
  • workspace separado;
  • credenciais de curta duração;
  • ausência de chaves SSH ou tokens pessoais;
  • acesso mínimo à rede;
  • permissões limitadas;
  • revisão das operações;
  • versão fixada do software;
  • acompanhamento das correções do projeto.

Um limite de tempo impede que o programa rode indefinidamente. Ele não impede, sozinho, a leitura de um arquivo sensível durante o primeiro segundo.

Não confunda contenção de recursos com isolamento de segurança.

Code Mode não substitui o modo nativo

A arquitetura mais interessante provavelmente não será aquela que obriga todas as tarefas a usar um único modo.

Chamadas diretas continuam adequadas quando:

  • existe apenas uma ferramenta;
  • o usuário precisa aprovar cada ação;
  • a próxima decisão depende de uma interpretação cuidadosa;
  • os resultados intermediários são pequenos;
  • a transparência passo a passo é prioridade.

A execução programática tende a funcionar melhor quando:

  • há muitos arquivos;
  • várias ferramentas precisam ser combinadas;
  • resultados devem ser filtrados;
  • existem laços ou condições;
  • chamadas independentes podem ocorrer em paralelo;
  • dados intermediários são grandes;
  • a tarefa possui um procedimento relativamente claro.

O próprio DeepSeek Harness aceita configurações nativa, programática ou combinada. Isso sugere que a escolha pode ser tratada como decisão de engenharia, não como disputa ideológica.

Em uma tarefa real, o agente talvez investigue inicialmente no modo nativo, compreenda o problema e depois escreva um programa para processar o restante em escala.

Pensar primeiro. Automatizar depois.

O que o DeepSeek Harness realmente está propondo

O aspecto mais relevante do projeto não é apenas ser uma alternativa ao Claude Code.

O DeepSeek Harness apresenta uma visão na qual o agente não é um produto indivisível. Modelo, ferramentas, sessões, armazenamento, interface, execução e políticas são componentes que podem ser inspecionados e recombinados.

Essa abertura pode ajudar pesquisadores, desenvolvedores de ferramentas e equipes que desejam experimentar diferentes modelos sem reconstruir toda a infraestrutura de agente.

Também transfere mais responsabilidade para quem monta o ambiente. Em uma solução fechada, parte da complexidade é decidida pelo fornecedor. Em uma plataforma modular, o operador precisa entender plugins, permissões, compatibilidade, persistência e limites de segurança.

O Code Mode reforça essa mudança. Ele trata o modelo não apenas como um decisor que chama funções, mas como um gerador de pequenos programas operacionais.

É uma ideia coerente com aquilo que os modelos aprenderam a fazer bem: escrever código, compor APIs e transformar procedimentos em estruturas executáveis.

Talvez a próxima geração de agentes não seja definida somente por modelos maiores. Pode ser definida por harnesses capazes de decidir quando conversar, quando chamar uma ferramenta e quando escrever um programa para terminar o trabalho.

O cérebro continua importante. Só que um cérebro sem uma boa estrutura operacional passa boa parte do tempo esperando, repetindo e movimentando informações que nem precisaria ler.