Dmitry Brant dell'organizzazione Wikimedia ha presentato il porting del driver ftape per i moderni kernel Linux. Il driver ha smesso di essere aggiornato nel 2000 ed è stato rimosso dal kernel 2.6.20 nel 2006 a causa di problemi di funzionamento su sistemi multi-core. Per ripristinare la possibilità di compilare e far funzionare il driver nelle distribuzioni con kernel Linux moderni, è stata necessaria una sua revisione tenendo conto delle modifiche agli API interni e alle sottosistemi del kernel avvenute negli ultimi 20 anni.
Il porting è notevole perché è stato eseguito quasi interamente con l'assistenza dell'AI Claude Code. Il risultato finale è stato un driver completamente funzionante, in grado di essere compilato e funzionare su sistemi con kernel 6.8 e versioni superiori. Il porting è stato effettuato in tre fasi. Nella prima fase, all'assistente AI è stata assegnata la compito di modificare il codice del driver, che poteva essere compilato solo con kernel 2.4, per la compilazione con le nuove versioni del kernel. L'AI ha sostituito con successo le chiamate a funzioni del kernel obsolete con chiamate aggiornate, ha corretto l'uso delle strutture dati e ha risolto tutti gli errori che si verificavano durante la compilazione.
Nella seconda fase è stato richiesto di trasformare il driver da una forma compilata nel kernel a una versione in grado di funzionare come modulo caricabile del kernel. L'assistente AI ha preparato il modulo caricabile. Nella terza fase, fornendo all'assistente AI l'output dmesg con informazioni su errori e problemi riscontrati durante il funzionamento, oltre ai messaggi di debug dmesg di riferimento dal vecchio driver funzionante, il port è stato riportato a uno stato funzionante, in grado di rilevare la presenza di un'unità a nastro ed estrarre il contenuto delle cartucce.
Un lavoro che inizialmente sembrava impossibile e richiedere settimane di studio della documentazione è stato portato a termine in due sere. Per creare un modulo funzionante sono state necessarie tre richieste, diverse discussioni e alcune modifiche manuali al codice. Dmitry sottolinea che non bisogna sovrastimare gli assistenti AI, che sono solo strumenti che richiedono un'interazione consapevole. Dmitry conosce il linguaggio C e ha una comprensione dei moduli del kernel, ma convincere un assistente AI a operare nella direzione giusta, senza una conoscenza approfondita della struttura interna dei moduli del kernel, sarebbe a suo avviso impossibile.
Quando si formula un compito, è importante conoscere le specifiche e utilizzare una terminologia professionale, definendo chiaramente la struttura della funzione da realizzare e identificando i vuoti in essa che l'AI deve riempire. È inoltre necessario comprendere i punti di forza e di debolezza degli assistenti AI, per non assegnare loro compiti che non possono svolgere bene. Per ottenere un risultato, Dmitry consiglia di considerare l'assistente AI come un potenziatore delle proprie abilità, e di vedere l'interazione con esso come una collaborazione con un ingegnere subordinato, che eseguirà tutto ciò che gli viene detto, cercando di compiacere, sicuro di sé, ma che riconosce anche gli errori. La decisione, la definizione delle regole e la responsabilità del risultato rimangono in capo all'uomo.
Il driver ftape è progettato per funzionare con unità a nastro che utilizzano cartucce QIC, le quali impiegano un proprio formato di codifica e compressione delle informazioni. Questi dispositivi erano frequentemente utilizzati negli anni '90 per il backup. Le unità a nastro supportate dal driver non richiedevano un costoso controller SCSI e si collegavano a un tipico controller per dischi floppy (ad esempio, dispositivi Colorado Jumbo 250 e Ditto Max) oppure alla porta parallela (Trakker, Iomega Ditto).
Ftape è stato l'unico driver in grado di estrarre dump delle cartucce in modalità raw, consentendo inizialmente di caricare un dump completo e successivamente di occuparsi della decodifica del formato e dell'estrazione dei file. In questo caso, collegare l'unità tramite un controller per dischi floppy sembrava un hack, poiché il driver doveva "ingannare" il controller progettato esclusivamente per funzionare con dischi floppy, per inviare comandi e stabilire interazioni con l'unità a nastro.
In passato, per estrarre informazioni dalle cartucce a nastro, Dmitrij doveva utilizzare un computer separato con CentOS 3.5 e il kernel 2.4.21. Dopo il porting del driver, è stato possibile estrarre archivi su PC con distribuzioni Linux moderne, come Ubuntu 24.04. Sono supportate le versioni a 32 e 64 bit, ma per lavorare con dispositivi collegati a un controller di floppy disk è necessaria una scheda madre con un controller simile.
Le aree di applicazione del driver includono il recupero di informazioni da vecchie cartucce a nastro e l'uso in progetti per la ricreazione di retrocomputer. In futuro, intendiamo preparare un toolkit basato sul driver per l'estrazione di dati a basso livello da supporti a nastro guasti, utilizzando dump raw per il recupero delle informazioni, indipendentemente dallo stato delle tabelle delle partizioni o dalla presenza di errori di correzione.
Fonte: opennet.ru
