С помощта на ИИ за новите ядра на Linux е пренесен драйвера ftape, изтрит преди 20 години

Дмитрий Брант (Dmitry Brant) от организацията Wikimedia представи порт на драйвера ftape за съвременните ядра на Linux. Драйверът спря да се обновява през 2000 година и беше изключен от ядро 2.6.20 през 2006 година заради проблеми с работата на многоядрени системи. За да се възобнови възможността за компилиране и работа на драйвера в дистрибуции със съвременни ядра на Linux, беше необходима неговата преработка, вземайки предвид измененията в вътрешния API и подсистемите на ядрото, настъпили през последните 20 години.

Портировката е забележителна, тъй като беше извършена почти изцяло с усилията на AI асистента Claude Code. В резултат на това беше получен напълно работещ драйвер, способен да се компилира и функционира на системи с ядра 6.8 и по-нови. Портировката беше извършена в три етапа. На първия етап AI асистентът получи задача за модифициране на кода на драйвера, който можеше да се компилира само с ядра 2.4, за изграждане с новите версии на ядрото. AI успешно замени в драйвера извикванията към остарелите функции на ядрото с актуални повиквания, коригира използването на данни и отстрани всички грешки, които възникваха при компилирането.

На втория етап беше поставена задача за преобразуване на драйвера от компилируемата в ядрото форма в версия, способна да работи като зареждащ се модул на ядрото. AI асистентът подготви зареждаемия модул. На третия етап, чрез предаване на AI асистента dmesg изхода с информация за грешките и проблемите, възникващи по време на работа, а също и еталонни отладъчни dmesg съобщения от работещия стар драйвер, портът беше приведен в работоспособно състояние, способен да определя наличието на лентово устройство и извлича съдържанието на касети.

Работата, която в началото изглеждаше трудна и изискваща няколко седмици изучаване на документацията, успя да бъде завършена за два вечера. За създаването на работещия модул бяха нужни три запитвания, няколко обсъждания и няколко ръчни корекции на кода. В същото време Дмитрий отбелязва, че не бива да се преувеличават възможностите на AI помощниците, които само са инструменти, изискващи смислено взаимодействие. Дмитрий знае езика C и има познания за модулите на ядрото, но да накара AI асистента да действа в необходимата посока без знания за вътрешното устройство на модулите на ядрото, по негово мнение, би било невъзможно.

При формулирането на задачата е необходимо да се знае спецификата и да се използва професионална терминология, ясно формулирайки рамката на реализираното умение и определяйки празнините в тази рамка, които AI трябва да запълни. Също така е важно да се проучат силните и слабите страни на AI асистентите, за да не се дават задачи, с които те не могат да се справят добре. За постигане на резултата, Дмитрий съветва да се разглежда AI асистентът като усилвател на собствените умения, а общуването с него като сътрудничество с подчинен инженер, който ще направи всичко, което му е казано, стреми се да угоди, самоуверен е, но признава грешките. Взимането на решения, задаването на правила и отговорността за резултата остават в ръцете на човека.

Драйверът ftape е предназначен за работа с лентови носители, използващи касети QIC, в които се прилага собствен проприетарен формат на кодиране и компресия на информация. Подобни устройства често са били използвани през 90-те години за резервно копиране. Поддържаните от драйвера лентови носители не са изисквали скъп SCSI контролер и са били свързани към стандартния контролер на флопи дискове (например устройства Colorado Jumbo 250 и Ditto Max) или паралелен порт (Trakker, Iomega Ditto).

Ftape беше единственият драйвер, способен да извлича дампове от касети в raw режим, което позволяваше първоначално да се зареди пълен дамп, а след това да се работи с декодирането на формата и извличането на файлове. В този случай свързването на носителя през контролер на флопи дискове наподобяваше хак, тъй като драйверът трябваше да "излъже" контролера, проектиран само за работа с флопи дискове, за да предаде команди и да организира взаимодействието с лентовия носител.

По-рано, за извличане на информация от лентови касети, Дмитрий беше принуден да използва отделен компютър с CentOS 3.5 и ядро 2.4.21. След портироването на драйвера, архивите стана възможно да се извлекат на PC с модерни дистрибуции на Linux, като Ubuntu 24.04. Поддържат се 32- и 64-битови версии, но за работа с устройства, свързани към контролера за флопи дискове, е необходима дънна платка с такъв контролер.

Като области на приложение на драйвера се споменават възстановяване на информация от стари лентови касети и използване в проекти за реставрация на ретрокомпютри. В бъдеще на база на драйвера се планира разработване на инструменти за ниско ниво извличане на данни от повредени лентови носители, използващи raw дъмпове за възстановяване на информация, независимо от състоянието на таблиците за дялове или наличието на грешки в корекцията на грешките.

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster