Dmitrij Brant z organizacji Wikimedia zaprezentował port sterownika ftape dla nowoczesnych jąder Linux. Sterownik przestał być aktualizowany w 2000 roku i został usunięty z jądra 2.6.20 w 2006 roku z powodu problemów przy pracy na systemach wielordzeniowych. Aby przywrócić możliwość kompilacji i działania sterownika w dystrybucjach z nowoczesnymi jądrami Linux, jego przetworzenie było konieczne, z uwzględnieniem zmian wewnętrznych API i podsystemów jądra, które miały miejsce w ciągu ostatnich 20 lat.
Portowanie jest szczególnie interesujące, ponieważ zostało wykonane niemal w całości przez AI-asystenta Claude Code. W rezultacie powstał w pełni funkcjonalny sterownik, który może być kompilowany i działać na systemach z jądrami 6.8 i nowszymi. Portowanie zostało zrealizowane w trzech etapach. W pierwszym etapie AI-asystent miał za zadanie modyfikację kodu sterownika, który mógł być kompilowany tylko z jądrami 2.4, aby móc kompilować go z nowymi wersjami jądra. AI z powodzeniem zastąpił w sterowniku odwołania do przestarzałych funkcji jądra aktualnymi wywołaniami, dostosował użycie struktur danych i usunął wszystkie błędy, które pojawiały się podczas kompilacji.
W drugim etapie postawiono zadanie przekształcenia sterownika z formy skompilowanej w jądro na wersję, zdolną działać jako moduł jądra. AI-asystent przygotował moduł do załadowania. W trzecim etapie, dzięki przesłaniu AI-asystentowi wyników dmesg z informacjami o błędach i problemach, które występowały podczas pracy, oraz wzorcowych komunikatów dmesg od działającego starego sterownika, port został doprowadzony do stanu funkcjonalności, zdolnego wykrywać taśmowy napęd i wyciągać zawartość kartridży.
Zadanie, które początkowo wydawało się trudne do zrealizowania i wymagało kilku tygodni studyj dokumentacji, udało się zrealizować w ciągu dwóch wieczorów. Aby stworzyć działający moduł, potrzebne były trzy zapytania, kilka dyskusji i kilka ręcznych poprawek kodu. Dmitrij zauważa przy tym, że nie należy przeceniać AI-asystentów, które są jedynie narzędziami wymagającymi sensownej interakcji. Dmitrij zna język C i ma wyobrażenie o modułach jądra, ale według niego zmuszenie AI-asystenta do działania w odpowiednim kierunku bez wiedzy na temat wewnętrznej struktury modułów jądra byłoby niemożliwe.
Podczas formułowania zadań należy znać specyfikę oraz używać profesjonalnej terminologii, jasno formułując szkielet realizowanej funkcji i określając luki w tym szkielecie, które powinien wypełnić AI. Należy również zrozumieć mocne i słabe strony asystentów AI, aby unikać zadań, z którymi nie poradzą sobie dobrze. Aby osiągnąć wynik, Dmitrij radzi traktować asystenta AI jako wzmacniacz własnych umiejętności, a komunikację z nim jako współpracę z podporządkowanym inżynierem, który zrobi wszystko, co powiedziano, dąży do zadowolenia, jest pewny siebie, ale przyznaje się do błędów. Podejmowanie decyzji, ustalanie zasad i odpowiedzialność za wynik pozostają po stronie człowieka.
Sterownik ftape jest przeznaczony do pracy z taśmowymi nośnikami danych wykorzystującymi kasety QIC, w których zastosowany jest własny, zastrzeżony format kodowania i kompresji danych. Takie urządzenia często używane były w latach 90. do tworzenia kopii zapasowych. Taśmy nośników wspieranych przez sterownik nie wymagały drogiego kontrolera SCSI i podłączały się do typowego kontrolera dysków Floppy (na przykład urządzeń Colorado Jumbo 250 i Ditto Max) lub portu równoległego (Trakker, Iomega Ditto).
Ftape był jedynym sterownikiem zdolnym do wyciągania zrzutów kaset w trybie raw, co pozwalało najpierw załadować pełny zrzut, a potem zająć się dekodowaniem formatu i wyciąganiem plików. Przy tym podłączenie nośnika przez kontroler dysków Floppy przypominało hakerstwo, ponieważ sterownik musiał "oszukiwać" kontroler zaprojektowany tylko do pracy z dyskami Floppy w celu przekazywania poleceń i organizacji interakcji z nośnikiem taśmowym.
Wcześniej, aby wydobyć informacje z taśmowych kaset, Dmitrij musiał używać osobnego komputera z CentOS 3.5 i jądrem 2.4.21. Po przeniesieniu sterownika archiwa stały się możliwe do wyodrębnienia na PC z nowoczesnymi dystrybucjami Linuxa, takimi jak Ubuntu 24.04. Obsługiwane są wersje 32- i 64-bitowe, ale do pracy z urządzeniami podłączanymi do kontrolera dysków Floppy wymagana jest płyta główna z takim kontrolerem.
Wśród zastosowań sterownika wymienione jest odzyskiwanie danych ze starych taśm magnetycznych oraz używanie w projektach rekonstrukcji retro komputerów. W przyszłości na podstawie sterownika planuje się przygotowanie narzędzi do niskopoziomowego wydobywania danych z uszkodzonych nośników taśmowych, korzystających z raw-dumpów do odzyskiwania informacji, niezależnie od stanu tabel partycji czy obecności błędów korekcji.
Źródło: opennet.ru
