Cu ajutorul AI, driverul ftape a fost portat pentru noile nuclee Linux, eliminat cu 20 de ani în urmă

Dmitri Brant de organizația Wikimedia a prezentat portul driver-ului ftape pentru kernel-uri Linux moderne. Driverul a încetat să fie actualizat în 2000 și a fost exclus din kernel-ul 2.6.20 în 2006 din cauza problemelor cu funcționarea pe sisteme multicore. Pentru a relua capacitatea de compilare și funcționare a driver-ului în distribuții cu kernel-uri Linux moderne, a fost necesară reconfigurarea sa ținând cont de modificările interne ale API-ului și subsistemelor kernel-ului care au avut loc în ultimii 20 de ani.

Portarea este remarcabilă prin faptul că a fost realizată aproape în întregime cu ajutorul asistentului AI Claude Code. Ca rezultat, a fost obținut un driver complet funcțional, capabil să se compileze și să funcționeze pe sisteme cu kernel-uri 6.8 și mai noi. Portarea a fost realizată în trei etape. În prima etapă, asistentului AI i s-a dat sarcina de a modifica codul driver-ului, care putea fi compilat doar cu kernel-uri 2.4, pentru a se adapta la noile versiuni ale kernel-ului. AI-ul a reușit să înlocuiască apelurile către funcțiile învechite ale kernel-ului cu apelurile actuale, a corectat utilizarea structurilor de date și a rezolvat toate erorile care apăreau la compilare.

În a doua etapă, sarcina a fost de a transforma driver-ul dintr-o formă compilabilă în kernel într-o variantă capabilă să funcționeze ca un modul de kernel de încărcare. Asistentul AI a pregătit modulul descărcabil. În a treia etapă, prin transmiterea către asistentul AI a ieșirii dmesg cu informații despre erori și probleme apărute în timpul utilizării, precum și a mesajelor de dmesg de referință de la driver-ul vechi funcțional, portul a fost adus într-o stare de funcționare capabilă să detecteze prezența unităților de bandă și să extragă conținutul cartușelor.

Munca, care la început părea dificilă și care ar fi necesitat câteva săptămâni de studiu al documentației, a fost realizată în doar două seri. Pentru a crea modulul funcțional au fost necesare trei solicitări, câteva discuții și câteva modificări manuale ale codului. În acest context, Dmitri subliniază că nu trebuie supraevaluată asistența AI, care este doar un instrument ce necesită interacțiune conștientă. Dmitri cunoaște limbajul C și are cunoștințe despre modulele kernel, dar, în opinia sa, ar fi fost imposibil să forțeze asistentul AI să acționeze în direcția dorită fără cunoștințe despre structura internă a modulelor kernel.

Atunci când formulăm o sarcină, este necesar să cunoaștem specificul și să folosim terminologia profesională, formulând clar cadrul funcției implementate și definind golurile din acest cadru pe care AI-ul trebuie să le completeze. De asemenea, este necesar să studiem punctele forte și slabe ale asistenților AI pentru a nu le oferi sarcini cu care nu se pot descurca bine. Pentru a obține un rezultat, Dmitri recomandă să privim asistentul AI ca pe un amplificator al abilităților noastre, iar comunicarea cu acesta ca pe o colaborare cu un inginer subordonat, care va face tot ce i se spune, care tinde să mulțumească, care este încrezător, dar recunoaște greșelile. Deciziile, stabilirea regulilor și responsabilitatea pentru rezultat rămân în sarcina omului.

Driverul ftape este destinat să funcționeze cu unități de bandă care folosesc cartușe QIC, în care se aplică un format proprietar de codare și compresie a informațiilor. Astfel de dispozitive au fost frecvent utilizate în anii 1990 pentru backup. Unitățile de bandă suportate de driver nu necesitau un controler SCSI scump și se conectau la un controler standard pentru dischete (de exemplu, dispozitivele Colorado Jumbo 250 și Ditto Max) sau printr-un port paralel (Trakker, Iomega Ditto).

Ftape a fost singurul driver capabil să extragă dump-uri ale cartușelor în mod raw, ceea ce permitea mai întâi să se încarce un dump complet, iar apoi să se rezolve decodarea formatului și extragerea fișierelor. Totodată, conectarea unității printr-un controler pentru dischete era asemănătoare cu un hack, deoarece driverul trebuia să "îmbețe" controlerul, care era destinat să funcționeze doar cu dischete, pentru a transmite comenzi și a organiza interacțiunea cu unitatea de bandă.

Anterior, pentru a extrage informații din cartușele de bandă, Dmitri a fost nevoit să folosească un computer separatat cu CentOS 3.5 și kernel 2.4.21. După portarea driverului, arhivele au putut fi extrase pe un PC cu distribuții moderne de Linux, cum ar fi Ubuntu 24.04. Sunt suportate atât versiunile de 32 de biți, cât și cele de 64 de biți, dar pentru a lucra cu dispozitive conectate la un controler pentru dischete este necesară o placă de bază cu un astfel de controler.

Printre aplicațiile driverului se numără recuperarea informațiilor de pe vechile cartridge cu bandă și utilizarea acestuia în proiecte de restaurare a computerelor retro. Ulterior, se intenționează să se dezvolte un instrumentar bazat pe driver pentru extragerea la un nivel jos a datelor de pe unitățile de bandă defectuoase, folosind raw-dumps pentru recuperarea informațiilor, indiferent de starea tabelelor de partiții sau de existența defectelor de corecție a erorilor.

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster