Mit Hilfe von KI wurde der ftape-Treiber fĂŒr neue Linux-Kernel portiert, der vor 20 Jahren entfernt wurde.

Dmitry Brant von der Organisation Wikimedia stellte den Port des ftape-Treibers fĂŒr moderne Linux-Kernel vor. Der Treiber wurde 2000 nicht mehr aktualisiert und wurde aufgrund von Problemen bei der Nutzung auf Mehrkernsystemen im Jahr 2006 aus dem Kernel 2.6.20 entfernt. Um die Möglichkeit zur Kompilierung und zum Betrieb des Treibers in Distributionen mit modernen Linux-Kernen wiederherzustellen, war eine Überarbeitung unter BerĂŒcksichtigung der Änderungen in den internen APIs und Subsystemen des Kernels, die in den letzten 20 Jahren stattgefunden haben, erforderlich.

Das Portieren ist bemerkenswert, da es fast vollstĂ€ndig mit Hilfe des KI-Assistenten Claude Code durchgefĂŒhrt wurde. Am Ende wurde ein vollstĂ€ndig funktionierender Treiber geschaffen, der sich auf Systemen mit Kernen 6.8 und neuer zusammenstellen und betreiben lĂ€sst. Das Portieren erfolgte in drei Phasen. In der ersten Phase bestand das Ziel des KI-Assistenten darin, den Treiber-Code, der nur mit Kernen 2.4 kompiliert werden konnte, so zu modifizieren, dass er mit den neuen Kernel-Versionen zusammengebaut werden konnte. Die KI ersetzte erfolgreich die Verweise im Treiber auf veraltete Kernel-Funktionen durch aktuelle Aufrufe, passte die Verwendung von Datenstrukturen an und beseitigte alle Fehler, die bei der Kompilierung auftraten.

In der zweiten Phase wurde die Aufgabe gestellt, den Treiber von seiner kompilierbaren Form im Kernel in eine Version zu transformieren, die als ladbares Kernelmodul arbeiten kann. Der KI-Assistent bereitete das ladbare Modul vor. In der dritten Phase wurde durch die Übergabe der dmesg-Ausgabe mit Informationen ĂŒber Fehler und Probleme, die wĂ€hrend des Betriebs auftraten, sowie von Referenz-dmesg-Nachrichten des funktionierenden alten Treibers, der Port in einen betriebsbereiten Zustand versetzt, der in der Lage ist, das Vorhandensein des Bandlaufwerks zu erkennen und den Inhalt der Kassetten abzurufen.

Die Arbeit, die zunĂ€chst als schwierig und als nĂ©cessitant mehrere Wochen Dokumentationsstudium erschien, konnte in nur zwei Abenden abgeschlossen werden. FĂŒr die Erstellung des Arbeitsmoduls waren drei Anfragen, mehrere Diskussionen und ein paar manuelle Codeanpassungen erforderlich. Dabei weist Dmitrij darauf hin, dass man AI-Assistenten, die lediglich Werkzeuge sind, die ein sinnvolles Interagieren erfordern, nicht ĂŒberschĂ€tzen sollte. Dmitrij kennt die Programmiersprache C und hat ein VerstĂ€ndnis fĂŒr die Kernmodule, ist jedoch der Meinung, dass es unmöglich wĂ€re, den AI-Assistenten ohne Kenntnisse ĂŒber den internen Aufbau der Kernmodule in die richtige Richtung zu lenken.

Bei der Formulierung der Aufgabe ist es wichtig, die Spezifika zu kennen und eine Fachterminologie zu verwenden, wĂ€hrend man das GerĂŒst der zu realisierenden Funktion klar formuliert und die LĂŒcken im GerĂŒst definiert, die der AI gefĂŒllt werden mĂŒssen. Zudem ist es notwendig, die StĂ€rken und SchwĂ€chen der AI-Assistenten zu studieren, um ihnen keine Aufgaben zu geben, die sie nicht gut bewĂ€ltigen können. Um ein Ergebnis zu erzielen, empfiehlt Dmitrij, den AI-Assistenten als VerstĂ€rker der eigenen FĂ€higkeiten zu betrachten und die Kommunikation mit ihm als Zusammenarbeit mit einem untergeordneten Ingenieur, der alles genau nach Anweisung macht, bestrebt ist zu gefallen, selbstbewusst, aber bereit, Fehler zuzugeben. Die Entscheidungsfindung, das Setzen von Regeln und die Verantwortung fĂŒr das Ergebnis liegen weiterhin beim Menschen.

Der ftape-Treiber ist fĂŒr die Arbeit mit Bandlaufwerken gedacht, die QIC-Kassetten verwenden, in denen ein eigenes proprietĂ€res Format zur Kodierung und Komprimierung von Informationen verwendet wird. Solche GerĂ€te wurden hĂ€ufig in den 1990er Jahren fĂŒr Backups verwendet. Die vom Treiber unterstĂŒtzten Bandlaufwerke benötigten keinen teuren SCSI-Controller und konnten an einen typischen Floppy-Disk-Controller (z. B. Colorado Jumbo 250 und Ditto Max) oder einen parallelen Port (Trakker, Iomega Ditto) angeschlossen werden.

Ftape war der einzige Treiber, der in der Lage war, Dumps von Kassetten im Raw-Modus zu extrahieren, was es zunĂ€chst ermöglichte, einen vollstĂ€ndigen Dump zu laden und sich dann mit der Dekodierung des Formats und der Extraktion von Dateien zu befassen. Dabei erinnerte die Verbindung des Speichermediums ĂŒber den Floppy-Controller an einen Hack, da der Treiber den Controller, der nur fĂŒr die Zusammenarbeit mit Floppy-Disketten ausgelegt war, "ĂŒberlisten" musste, um Befehle zu ĂŒbertragen und die Interaktion mit dem Bandlaufwerk zu organisieren.

FrĂŒher musste Dmitry einen separaten Computer mit CentOS 3.5 und Kernel 2.4.21 verwenden, um Informationen von Bandkassetten zu extrahieren. Nach dem Portieren des Treibers wurde es möglich, Archive auf PCs mit modernen Linux-Distributionen wie Ubuntu 24.04 zu extrahieren. Es werden 32- und 64-Bit-Versionen unterstĂŒtzt, aber fĂŒr die Arbeit mit GerĂ€ten, die an den Floppy-Controller angeschlossen sind, ist ein Motherboard mit einem Ă€hnlichen Controller erforderlich.

Die Anwendungsbereiche des Treibers umfassen die Wiederherstellung von Informationen von alten Bandkassetten und die Verwendung in Projekten zur Rekonstruktion von Retro-Computern. ZukĂŒnftig wird auf Basis des Treibers ein Toolset fĂŒr die niedrigstufige Datenauslese von fehlerhaften Bandlaufwerken vorbereitet, das Raw-Dumps zur Wiederherstellung von Informationen verwendet, unabhĂ€ngig vom Zustand der Partitionstabellen oder dem Vorhandensein von Fehlerkorrekturproblemen.

Quelle: opennet.ru

ZuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server đŸ”„ ZuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server - ProHoster