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 escluso dal kernel 2.6.20 nel 2006 a causa di problemi di funzionamento su sistemi multi-core. Per ripristinare la possibilità di compilazione e funzionamento del driver in distribuzioni con kernel Linux moderni, è stato necessario rielaborarlo tenendo conto delle modifiche alle API interne e ai sottosistemi del kernel avvenute negli ultimi 20 anni.
Il porting è notevole perché è stato realizzato quasi interamente grazie all'assistente AI Claude Code. Il risultato è stato un driver completamente funzionante, in grado di essere compilato e operare su sistemi con kernel 6.8 e versioni successive. Il porting è stato effettuato in tre fasi. Nella prima fase, è stata affidata all'assistente AI la modifica del 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 nel driver le chiamate a funzioni obsolete del kernel con invocazioni aggiornate, ha corretto l'uso delle strutture dati e ha risolto tutti gli errori riscontrati durante la compilazione.
Nella seconda fase, è stata posta la questione della trasformazione del driver da una forma compilata nel kernel a una versione in grado di funzionare come modulo del kernel caricabile. L'assistente AI ha preparato il modulo caricabile. Nella terza fase, fornendo all'assistente AI l'output dmesg con informazioni sugli errori e problemi riscontrati durante l'operazione, nonché messaggi dmesg di riferimento dal vecchio driver funzionante, il port è stato portato a uno stato operativo, in grado di riconoscere la presenza dell'unità di nastro e di estrarre il contenuto delle cartucce.
Il lavoro, che inizialmente sembrava difficile e richiedeva diverse settimane per studiare la documentazione, è stato completato in due sere. Per creare il modulo di lavoro sono stati necessari tre richieste, diverse discussioni e alcune modifiche manuali al codice. Dmitry sottolinea che non bisogna sopravvalutare i 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 costringere l'assistente AI ad agire nella direzione giusta senza conoscere la struttura interna dei moduli del kernel, a suo avviso, sarebbe impossibile.
Quando si formula il compito è necessario conoscere la specificità e utilizzare la terminologia professionale, definendo chiaramente la struttura della funzione da realizzare e identificando i vuoti in questa struttura che l'AI deve riempire. È anche necessario studiare i punti di forza e di debolezza degli assistenti AI, per non dare loro compiti con cui non possono cavarsela bene. Per raggiungere un risultato, Dmitry consiglia di considerare l'assistente AI come un amplificatore delle proprie capacità, e interagire con lui come se si collaborasse con un ingegnere subordinato, che farà tutto ciò che viene detto, desidera accontentare, è sicuro di sé, ma riconosce gli errori. La decisione finale, la definizione delle regole e la responsabilità per il risultato rimangono a carico dell'uomo.
Il driver ftape è progettato per lavorare con le unità a nastro che utilizzano cartucce QIC, che applicano un proprio formato proprietario di codifica e compressione delle informazioni. Dispositivi simili sono stati utilizzati frequentemente negli anni '90 per il backup. Le unità a nastro supportate dal driver non richiedevano un costoso controller SCSI e si collegavano a un controller standard per dischi floppy (ad esempio, i dispositivi Colorado Jumbo 250 e Ditto Max) o a una porta parallela (Trakker, Iomega Ditto).
Ftape è stato l'unico driver in grado di estrarre i dump delle cartucce in modalità raw, permettendo prima di caricare l'intero dump e poi di affrontare la decodifica del formato e l'estrazione dei file. Il collegamento dell'unità tramite il controller dei dischetti sembrava un hack, poiché il driver doveva "ingannare" il controller progettato per funzionare solo con i dischetti, per inviare comandi e organizzare l'interazione con l'unità a nastro.
In precedenza, per estrarre informazioni dalle cartucce a nastro, Dmitry doveva utilizzare un computer separato con CentOS 3.5 e il kernel 2.4.21. Dopo il porting del driver, è stato possibile estrarre gli 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 al controller dei dischetti è 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 di ricostruzione di retrocomputer. In futuro, si prevede di preparare uno strumento basato sul driver per l'estrazione a basso livello di dati da unità a nastro difettose, utilizzando dump raw per il ripristino delle informazioni, indipendentemente dallo stato delle tabelle delle partizioni o dalla presenza di errori di correzione.
Fonte: opennet.ru
