При помощи AI для новых ядер Linux портирован драйвер ftape, удалённый 20 лет назад

Новости мира unix. Хотите узнать секрет вечного счастья? Откройте страницу 246.
Ответить
acolyte
Аватара пользователя
Сообщения: 343
Зарегистрирован: 20.08.2022

#

При помощи AI для новых ядер Linux портирован драйвер ftape, удалённый 20 лет назад
Дата публикации:Mon, 08 Sep 2025 09:33:45 +0300

Дмитрий Брант (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-помощники, которые лишь инструменты, требующие осмысленного взаимодействия. Дмитрий знает язык Си и имеет представление о модулях ядра, но заставить AI-помощник действовать в нужном направлении без знаний внутреннего устройства модулей ядра по его мнению было бы невозможно.
При формулировании задачи требуется знать специфику и использовать профессиональную терминологию, чётко формулируя каркас реализуемой функции и определяя пустоты в этом каркасе, которые должен заполнить AI. Также необходимо изучить сильные и слабые стороны AI-ассистентов, чтобы не давать им задачи, с которыми они не смогут хорошо справиться. Для достижения результата Дмитрий советует рассматривать AI-ассистент как усилитель собственных навыков, а общение с ним как сотрудничество с подчинённым инженером, который сделает всё что сказано, стремится угодить, самоуверен, но признаёт ошибки. Принятие решений, задание правил и ответственность за результат остаются за человеком.
Драйвер ftape предназначен для работы с ленточными накопителями, использующими картриджи QIC, в которых применяется собственный проприетарный формат кодирования и сжатия информации. Подобные устройства часто использовались в 1990-е годы для резервного копирования. Поддерживаемые драйвером ленточные накопители не требовали дорогого SCSI-контроллера и подключались к типовому контроллеру Floppy-дисков (например, устройства Colorado Jumbo 250 и Ditto Max) или параллельному порту (Trakker, Iomega Ditto).
Ftape был единственным драйвером, способным извлекать дампы картриджей в raw-режиме, что позволяло вначале загрузить полный дамп, а уже потом разбираться с раскодированием формата и извлечением файлов. При этом подключение накопителя через контроллер Floppy-дисков напоминало хак, так как драйверу приходилось "обманывать" контроллер, рассчитанный на работу только с Floppy-дисками, для передачи команд и организации взаимодействия с ленточным накопителем.
Ранее для извлечения информации c ленточных картриджей Дмитрию приходилось использовать отдельный компьютер с CentOS 3.5 и ядром 2.4.21. После портирования драйвера архивы стало возможно извлекать на ПК c современными дистрибутивами Linux, такими как Ubuntu 24.04. Поддерживается 32- и 64-разрядные сборки, но для работы с устройствами, подключаемыми к контроллеру Floppy-дисков, требуется материнская плата с подобным контроллером.
В качестве областей применения драйвера упоминается восстановление информации со старых ленточных картриджей и использование в проектах по воссозданию ретрокомпьютеров. В дальнейшем на базе драйвера намерены подготовить инструментарий для низкоуровневого извлечения данных со сбойных ленточных накопителей, использующий raw-дампы для восстановления информации, независимо от состояния таблиц разделов или наличия сбоев коррекции ошибок.

Новость позаимствована с opennet.ru
Ссылка на оригинал: https://www.opennet.ru/opennews/art.shtml?num=63841

Жизнь за Нер'зула!

Ответить