Дмитрий Брант (Dmitry Brant) от организацията Wikimedia представи порт на драйвера ftape за съвременни ядра на Linux. Драйверът спря да се обновява през 2000 г. и беше изключен от ядрото 2.6.20 през 2006 г. поради проблеми с работата на многоядрени системи. За възобновяване на възможността за компилация и работа на драйвера в дистрибуции с нови ядра на Linux се изискваше да се преработи, като се вземат предвид промените в вътрешните API и подсистемите на ядрото, настъпили през последните 20 години.
Портироването е забележително с това, че беше извършено почти изцяло от AI-асистента Claude Code. В резултат на това бе получен напълно работещ драйвер, способен да се компилира и функционира на системи с ядра 6.8 и по-нови. Портироването беше извършено в три етапа. На първия етап AI-асистентът беше натоварен с модификацията на кода на драйвера, който можеше да се компилира само с ядра 2.4, за компилация с новите версии на ядрото. AI успешно замести в драйвера извикванията към остарелите функции на ядрото с актуални повиквания, коригира използването на данни и отстрани всички грешки, възникващи при компилация.
На втория етап задачата беше да се преобразува драйвера от компилируемата форма в ядрото в вариант, който може да работи като зареждаем модул на ядрото. AI-асистентът подготви зареждаемия модул. На третия етап с помощта на dmesg-изход, предаван на AI-асистента с информация за грешките и проблемите, които възникнаха по време на работата, както и еталонни отладъчни съобщения от работещия стар драйвер, портът беше приведен в работоспособно състояние, способен да определя наличието на лентово устройство и да извлича съдържанието на касетите.
Работата, която в началото изглеждаше трудна за изпълнение и изискваща няколко седмици изучаване на документация, беше завършена за два вечера. За създаването на работещия модул бяха нужни три запитвания, няколко обсъждания и няколко ръчни корекции в кода. В същото време Дмитрий отбелязва, че не бива да се преоцени AI-помощниците, които са само инструменти, изискващи осмислено взаимодействие. Дмитрий знае езика C и има представа за модулите на ядрото, но на негово мнение, да накара AI-асистента да действа в желаната посока без знания за вътрешната структура на модулите на ядрото би било невъзможно.
При формулирането на задачата е необходимо да се познава спецификата и да се използва професионална терминология, като ясно се формулира рамката на реализируемата функция и се определят празнините в тази рамка, които AI трябва да запълни. Също така е важно да се проучат силните и слабите страни на AI асистентите, за да не им се възлагат задачи, с които не могат да се справят добре. За постигане на резултати, Дмитрий съветва да се разглежда AI асистентът като усилвател на собствените умения, а общуването с него като сътрудничество с подчинен инженер, който прави всичко, което му е казано, стреми се да угоди, самоуверен е, но признава грешките. Вземането на решенията, задаването на правила и отговорността за резултата остават в ръцете на човека.
Драйверът ftape е предназначен за работа с лентови носители, използващи картриджи QIC, в които се прилага собствен проприетарен формат за кодиране и компресия на информация. Подобни устройства често се използваха през 90-те години за резервно копиране. Лентовите носители, поддържани от драйвера, не изискваха скъп SCSI контролер и се свързваха с типичен контролер за Floppy дискове (например устройството Colorado Jumbo 250 и Ditto Max) или паралелен порт (Trakker, Iomega Ditto).
Ftape беше единственият драйвер, който можеше да извлича дампове на картриджи в raw-режим, което позволяваше първо да заредим пълния дамп, а след това да се заемем с декодирането на формата и извличането на файловете. В същото време свързването на устройството чрез контролера за флопи дискове наподобяваше хак, тъй като драйверът трябваше да "измами" контролера, проектиран да работи само с флопи дискове, за да предава команди и организира взаимодействието с лентовото устройство.
По-рано за извличане на информация от лентови картриджи, Дмитрий трябваше да използва отделен компютър с CentOS 3.5 и ядро 2.4.21. След портироването на драйвера архивите стана възможно да се извлекат на компютри с модерни дистрибуции на Linux, като например Ubuntu 24.04. Поддържат се 32- и 64-битови версии, но за работа с устройства, свързани с контролера за Floppy дискове, е необходима дънна платка с подобен контролер.
Като области на приложение на драйвера се споменава възстановяване на информация от стари магнитни касети и използването му в проекти за реконструкция на ретро компютри. В бъдеще на базата на драйвера се планира да се подготви инструментариум за ниско ниво извличане на данни от повредени магнитни носители, който използва raw дъмпове за възстановяване на информация, независимо от състоянието на таблиците за разделяне или наличието на грешки в корекцията.
Източник: opennet.ru
