15 pontos por GN⁺ 2025-09-08 | Ainda não há comentários. | Compartilhar no WhatsApp
  • O driver ftape é o único driver de kernel open source para Linux capaz de recuperar dados de fitas de backup (QIC-80) dos anos 1990
  • Porém, esse driver não recebia manutenção desde depois de 2000, então só podia ser usado em ambientes Linux antigos
  • Com o Claude Code, o autor refatorou o código-fonte legado para adequá-lo ao kernel Linux atual e o converteu com sucesso em um módulo de kernel independente
  • No processo, o Claude converteu automaticamente funções e estruturas obsoletas para APIs modernas, enquanto o usuário analisou manualmente a saída para corrigir alguns erros de configuração
  • A experiência de usar um agente de programação com IA trouxe insights sobre amplificação da capacidade do programador e sobre como fazer onboarding mais rápido em novas tecnologias e frameworks

Contexto: recuperação de fitas de backup antigas e o driver ftape

  • Recuperar dados de cartuchos de fita como QIC-80 é um dos hobbies do autor
  • Essas fitas normalmente exigem um drive de fita especial conectado ao controlador de disquete
    • Esses drives eram usados principalmente nos anos 1990 por pequenas empresas ou usuários individuais para backup
    • Usar o controlador de disquete permitia uma implementação barata sem adaptador SCSI dedicado, mas havia várias desvantagens, como limite de velocidade (500 Kbps) e um protocolo não padronizado
  • Para se comunicar com esse dispositivo de fita, no Linux o driver de kernel ftape é indispensável
    • Como apenas o ftape consegue ler os dados binários brutos puros, ele é essencial para a recuperação
  • Porém, o driver ftape não recebia manutenção desde por volta de 2000, e por isso não podia ser usado em kernels Linux modernos
    • Assim, sempre que precisava recuperar dados, o autor tinha de inicializar manualmente um Linux antigo, como o CentOS 3.5

Começando a modernização do driver de kernel com Claude Code

  • O autor pediu ao Claude Code, junto com a descrição do repositório, para modernizar o driver para que ele pudesse ser compilado em kernels atuais
  • O Claude identificou e substituiu funções e estruturas obsoletas de acordo com a API e a estrutura atuais do kernel
    • Após várias rodadas de feedback e ajustes manuais, o código do driver passou a compilar sem erros
  • O código inicial só podia ser compilado dentro da árvore completa de código-fonte do kernel, mas, após um pedido adicional, o Claude também gerou automaticamente um sistema de build para módulo externo independente
    • Com isso, tornou-se possível criar separadamente o módulo de kernel em arquivo .ko, iniciando os testes com o hardware real conectado

Processo de resolução de problemas

  • O módulo de kernel era carregado corretamente, mas surgiram problemas de detecção e comunicação com o drive
    • Como as tarefas exigiam privilégios sudo, o Claude não podia executar os testes repetidamente por conta própria, então o autor forneceu manualmente os logs do dmesg para rastrear o problema
  • Ao comparar os logs com casos anteriores bem-sucedidos, o Claude encontrou um bug relacionado à falta de configuração do endereço padrão da porta de I/O e à inicialização de parâmetros
    • O valor padrão foi convertido de -1 para 0xffff, causando falha na detecção; redefinir o endereço corretamente resolveu o problema
  • No fim, o módulo passou a ser carregado corretamente e foi bem-sucedido o dump de dados de uma fita de teste

O que a experiência mostra sobre colaboração com agentes de programação com IA

  • A interação com o Claude Code pareceu "uma colaboração com um desenvolvedor júnior", dando a sensação de trabalhar com um engenheiro real
    • O usuário ainda precisa liderar ativamente decisões de arquitetura, descoberta de problemas e direcionamento
  • Quanto mais palavras-chave específicas do domínio e solicitações concretas forem usadas, melhores os resultados
  • A produtividade do agente de IA aumenta muito quando ele recebe o tipo certo de tarefa, então é importante ter noção de suas limitações e pontos fortes
  • A IA dobrou a capacidade do autor. Um trabalho que manualmente levaria semanas foi concluído em poucos dias apenas com conversas e feedback rotineiros
    • Nesse processo, ele também aprendeu habilidades realmente úteis, como práticas modernas de desenvolvimento de kernel, arquitetura x86 e novas ferramentas de linha de comando
  • O autor destaca que isso acelera muito o onboarding e a adaptação inicial a novos frameworks, como Rust e Flutter

Conclusão: ftape volta à vida

  • Depois de 25 anos, o ftape voltou a poder ser compilado e usado em versões modernas do Linux
  • O autor continua trabalhando em melhorias adicionais e testes, e também confirmou suporte a dispositivos baseados em porta paralela, além dos drives baseados em disquete
  • O hardware físico continua praticamente o mesmo de antes, mas o sistema operacional mudou de CentOS 3.5 para Xubuntu 24.04

Referência

  • O código-fonte do projeto ftape está disponível no GitHub
  • A lista de equipamentos de coleção do autor e outros detalhes podem ser vistos em seu blog pessoal

Ainda não há comentários.

Ainda não há comentários.