Dmitry Brant da organização Wikimedia apresentou a porta do driver ftape para núcleos modernos do Linux. O driver deixou de ser atualizado em 2000 e foi excluído do núcleo 2.6.20 em 2006 devido a problemas de funcionamento em sistemas multi-core. Para retomar a capacidade de compilação e funcionamento do driver em distribuições com núcleos modernos do Linux, foi necessária sua reestruturação, levando em conta as mudanças nos APIs internos e subsistemas do núcleo que ocorreram nos últimos 20 anos.
A portabilidade é notável, pois foi realizada quase inteiramente pelo assistente de IA Claude Code. Como resultado, foi obtido um driver totalmente funcional, capaz de ser compilado e operado em sistemas com núcleos 6.8 ou mais recentes. A portabilidade foi feita em três etapas. Na primeira etapa, o assistente de IA recebeu a tarefa de modificar o código do driver, que só poderia ser compilado com núcleos 2.4, para ser construído com novas versões do núcleo. A IA substituiu com sucesso as chamadas para funções obsoletas do núcleo por chamadas atualizadas, corrigiu o uso das estruturas de dados e resolveu todos os erros que surgiram durante a compilação.
Na segunda etapa, foi dada a tarefa de transformar o driver de uma forma compilada no núcleo para uma versão que pudesse funcionar como um módulo carregável do núcleo. O assistente de IA preparou o módulo carregável. Na terceira etapa, através da transmissão ao assistente de IA da saída dmesg com informações sobre erros e problemas que surgiam durante a operação, bem como mensagens de dmesg de referência do antigo driver funcional, a porta foi trazida ao estado operacional, capaz de detectar a presença do dispositivo de fita e extrair o conteúdo das fitas.
O trabalho, que inicialmente parecia complicado e exigiria várias semanas de estudo da documentação, foi realizado em duas noites. Para criar o módulo funcional, foram necessárias três solicitações, algumas discussões e algumas edições manuais de código. Nesse processo, Dmitry observa que não se deve superestimar os assistentes de IA, que são apenas ferramentas que requerem interação significativa. Dmitry conhece a linguagem C e tem noções sobre módulos de núcleo, mas acredita que seria impossível fazer o assistente de IA agir na direção correta sem conhecimentos do funcionamento interno dos módulos do núcleo.
Ao formular uma tarefa, é necessário conhecer a especificidade e utilizar a terminologia profissional, articulando claramente a estrutura da função a ser implementada e definindo as lacunas nessa estrutura que o AI deve preencher. Também é importante estudar os pontos fortes e fracos dos assistentes de AI, para não atribuir a eles tarefas com as quais não conseguirão lidar adequadamente. Para alcançar resultados, Dmitry recomenda considerar o assistente de AI como um amplificador das próprias habilidades, e a interação com ele como uma colaboração com um engenheiro subordinado, que fará tudo o que for dito, busca agradar, é autoconfiante, mas reconhece erros. A tomada de decisões, a definição de regras e a responsabilidade pelos resultados permanecem com o ser humano.
O driver ftape destina-se a trabalhar com unidades de fita que utilizam cartuchos QIC, nos quais se aplica um formato proprietário de codificação e compressão de dados. Dispositivos como esse eram frequentemente utilizados na década de 1990 para backup. As unidades de fita suportadas pelo driver não precisavam de um controlador SCSI caro e eram conectadas a um controlador típico de disquetes (por exemplo, dispositivos Colorado Jumbo 250 e Ditto Max) ou a uma porta paralela (Trakker, Iomega Ditto).
O ftape foi o único driver capaz de extrair dumps de cartuchos em modo raw, o que permitia primeiro carregar um dump completo e depois lidar com a decodificação do formato e a extração de arquivos. Nesse caso, conectar a unidade por meio de um controlador de disquetes era semelhante a um hack, pois o driver precisava 'enganar' o controlador, projetado apenas para trabalhar com disquetes, para enviar comandos e organizar a interação com a unidade de fita.
Anteriormente, para extrair informações de cartuchos de fita, Dmitry precisava usar um computador separado com CentOS 3.5 e núcleo 2.4.21. Após o porting do driver, os arquivos puderam ser extraídos em PCs com distribuições modernas do Linux, como o Ubuntu 24.04. São suportadas compilações de 32 e 64 bits, mas para trabalhar com dispositivos conectados a controladores de disquetes, é necessário uma placa-mãe com um controlador semelhante.
As áreas de aplicação do driver incluem a recuperação de informações de antigos cartuchos de fita e o uso em projetos de recriação de computadores retro. No futuro, uma ferramenta será desenvolvida com base no driver para extração de dados em baixo nível de unidades de fita com falhas, utilizando dumps brutos para recuperação de informações, independentemente do estado das tabelas de partição ou da presença de falhas na correção de erros.
Fonte: opennet.ru
