Цифровая археология: как гик копирует дискеты для спасения старых игр и приложений

24e1bcfc020d605973dd786d41eea447.jpg

Сегодня мы расскажем небольшую историю Джона К. Морриса, программиста и известного участника комьюнити, посвящённого компьютерам Apple II. Поняв, что драгоценные данные с гибких дисков от времени стали безвозвратно теряться, он решил создать собственный способ сохранить любимые игры и приложения в целости. Джон не только разработал устройство для максимально точного копирования флоппи-дисков, но и создал для него специализированное приложение и даже собственные форматы хранения данных. Но обо всём по порядку.

77a290da083b113759e70c6976abc33e.png

С начала времён люди сохраняют память о себе и событиях с помощью рисунков, клинописи, иероглифов и прочих способов зафиксировать данные на каком-либо материале. Их усилия не прошли даром, и спустя тысячи лет мы можем лучше понимать, как и чем жили наши древние предки.

Конец XX века стал одним из переломных моментов, ведь к этому времени информация из аналогового вида стала массово переходить в цифровой. Программное обеспечение стало новым объектом культурного наследия, которое нужно как-то сохранить. Параллельно со стремительной эволюцией компьютерной техники развивались и носители цифровых данных. Увы, но большинство быстро устаревало и снималось с производства. Это уже неоднократно приводило к неприятным случаям.

Утраченные данные о лунной пыли

Когда в 2008 году NASA обсуждало возможность возобновить полёты на Луну, выяснилось, что 173 (172 по данным в других источниках) магнитные ленты с данными о лунной пыли из трёх лунных экспедиций (Аполлон-11, Аполлон-12, Аполлон-14) были утрачены. Оригинальные ленты с данными хранились в университете города Перт, Австралия. В архивный фонд NASA были отправлены копии, дальнейшая судьба которых неизвестна. То ли потеряли, то ли случайно стёрли, суть от этого не меняется.

На тот момент лунная пыль интересовала людей в меньшей степени, чем победа США над СССР в «лунной гонке». Так что пропаже данных просто не придали должного значения — оригинал в целости, и ладно. Но когда пришла пора к ним обратиться, стало ясно, что у NASA нет ни одного стримера IBM 729 Mark V, которым эти ленты можно было прочитать. Ситуацию спас Австралийский компьютерный музей, где хранился один из нерабочих стримеров этой модели.

Стримеры IBM 729 и IBM 7330 (источник изображения)

Гай Холмс, CEO компании по восстановлению данных SpectrumData, взял на себя смелость решить эту проблему. По согласованию с NASA он изъял ленты с хранения в университете, поместил их в специальное помещение с оптимальным климатом и занялся восстановлением стримера, любезно предоставленного музеем. В одном из интервью он даже пошутил, что для запуска стримера нужно было найти приводной ремень от Toyota Corolla 1970-х годов выпуска. История закончилась хорошо, и команде SpectrumData удалось успешно извлечь большую часть данных, нагревая и медленно разматывая магнитные ленты одну за другой.

Похожие истории случались и с более поздними лунными экспедициями, что послужило толчком к более активному развитию способов архивирования цифровых данных. Так, в Библиотеке Конгресса США даже появилось отдельное подразделение, где хранятся не данные, а устройства для чтения данных с устаревших накопителей.

Такие корпорации, как Microsoft, разрабатывают экзотические способы долговременного хранения, а некоммерческие организации вроде Internet Archive позволяют любому человеку на планете Земля получать доступ к накопленным данным.

Данные, записанные внутри кварцевого стекла (источник изображения)

Но что делать, если ты фанат ретрокомпьютеров Apple II и у тебя собралась огромная коллекция магнитных дисков с программами и играми, которые постепенно приходят в негодность? Правильно — скопировать. И вот тут возникает масса проблем, таких как наличие защиты от копирования. Технология, призванная защитить авторские права, в этом случае играет злую шутку, не позволяя законно делать копии с защищённых носителей.

В большинстве стран мира произведение может стать общественным достоянием лишь через 70 лет. Магнитные диски столько не проживут, и ценные цифровые артефакты вполне могут быть безвозвратно утрачены. Если обращаться в официальные организации, то этот процесс займёт непозволительно много времени, которого просто нет. Столкнувшись с этой проблемой, Джон К. Моррис решил, что ждать у моря погоды не стоит и надо действовать самостоятельно.

Контроллер Applesauce

У большинства гибких дисков защита строится на том, чтобы намеренно испортить некоторые участки. При обычном копировании на другом носителе эти участки будут целыми, что позволит резидентной программе распознать подмену носителя.

Ещё часто используется метод разделения приложения на две части. Первая часть (загрузчик) располагается на стандартно отформатированном участке носителя, который доступен операционной системе. Другой участок носителя форматируется нестандартным образом, и там размещается защищаемая программа. Таким образом, только загрузчик знает, в каком порядке читать данные приложения, а для операционной системы они будут представлять собой просто неструктурированную мешанину из единиц и нулей.

Разумеется, есть и более сложные методы защиты, однако все они так или иначе полагаются на программную часть или стандартное поведение контроллера привода гибких дисков. Так что для беспрепятственного копирования любых дисков требовалось придумать что-то на самом низком уровне. Так что Джон К. Моррис спроектировал свой собственный дисковый контроллер для стандартного привода гибких дисков Apple II и назвал его Applesauce.

Один из первых прототипов Applesauce (источник изображения)

Но сам по себе контроллер привода бесполезен. Чтобы заставить его работать, требовалось ещё и написать собственный софт. Здесь был использован тот же принцип, что активно применяется в современной цифровой фотографии. Вместо того чтобы полагаться на внутренние алгоритмы обработки кадра внутри камеры, профессиональные фотографы предпочитают снимать в RAW, сохраняя «сырые» данные с матрицы. Обработка же происходит позже, при помощи стороннего программного обеспечения.

В случае с копированием магнитных дисков требовалось заставить привод читать магнитные заряды без какой-либо обработки и сохранять их в «сыром» виде. Помимо этого, нужно было решить проблему синхронизации, то есть контроллер должен был однозначно определять, где находится гибкий диск по отношению к приводу. Это бы позволило сильно упростить архитектуру контроллера и преодолеть некоторые особо хитрые способы защиты от копирования. Обе эти задачи были блестяще решены Джоном и программистами из организованного им комьюнити.

Актуальная версия контроллера Applesauce (источник изображения)

Финальный продукт представляет собой кастомный контроллер на базе платы Teensy v3.2 с устанавливаемым на привод датчиком синхронизации, который позволяет подключить родной привод Apple II по USB к любому компьютеру. Поддерживаются приводы с родным 20-пиновым интерфейсом и с подключаемым через DB-19. Есть и поддержка обычных флоппи-приводов, работающих с 32-пиновым Shugart-совместимым интерфейсом. Софт изначально планировали делать под Mac, а впоследствии портировать его на x86 и на одноплатники Raspberry Pi.

Оснащённый этим контроллером привод может легко копировать любые магнитные диски, не ограничиваясь поддержкой только дисков от Apple II. Флоппи-диски для игровых консолей Commodore 64 и 8-битной Atari также прекрасно читаются и могут быть сохранены в неизменном виде, без необходимости программного взлома.

Приложение Applesauce

На момент написания этой статьи доступна лишь версия для macOS 64-битных версий начиная с 10.11. Приложение заработает нативно — как на Intel-based-маках, так и на более современных, на базе процессора M1. Отсутствие других версий объясняется тем, что современные версии macOS легко работают в гипервизорах вроде VMware Player и Oracle VirtualBox. Но причина, скорее всего, более прозаична — у автора нет свободного времени или ресурсов на портирование.

Главное окно приложения

Главное окно приложения

Это приложение фактически представляет собой комбайн, позволяющий выполнять все сервисные операции, такие как обновление прошивки контроллера, диагностику и тестирование отдельных частей привода. Помимо работы с дисковым контроллером, Applesauce обладает рядом полезных возможностей по анализу, редактированию и преобразованию форматов. Бонусом является то, что оно полностью бесплатное и имеет открытый исходный код. Но это неточно.

Моррис разработал два новых формата данных: A2R и WOZ. Первый представляет собой как раз тот самый «сырой» RAW. Средний размер получаемых файлов составляет 20 Мб. Второй же формат, названный в честь Стивена Гэри Возняка, содержит лишь сами данные и небольшое количество метаданных вроде информации о дорожках и секторах. Он призван сократить накладные расходы эмуляторов, и получаемые файлы имеют небольшой размер, в среднем 250 Кб.

Для удобства анализа приложение выстраивает наглядное представление данных на диске и позволяет экспортировать их в графический формат PNG:

Дисковый анализатор с загруженным образом гибкого диска

Дисковый анализатор с загруженным образом гибкого диска

Вместе с потоковым представлением данных есть возможность переключиться в режим посекторного отображения информации:

Представление Physical Sectors

Представление Physical Sectors

Ещё у дискового анализатора есть поистине киллер-фича — визуализация отдельных магнитных зарядов с привязкой к временной шкале. Это в некоторых случаях позволяет восстановить плохо читаемые данные:

Представление магнитных зарядов

Представление магнитных зарядов

Скопированный таким образом диск можно сохранить не только в перечисленных выше форматах. Джон добавил в приложение возможность экспорта в форматы, которые понимают современные эмуляторы, такие как MAME:

dff3cf2bdc209f88aa3aa605499d4d78.jpg

Автор этой статьи решил на собственном опыте понять, как работает приложение, и скачал A2R-образ флоппи-диска с игрой Chess. Далее преобразовал его в формат WOZ и напрямую запустил в open-source-эмуляторе AppleWin. Результат перед вами:

Эмулятор AppleWin с запущенной игрой Chess

Эмулятор AppleWin с запущенной игрой Chess

С момента создания первых прототипов устройства было оцифровано уже более 1 000 образов оригинальных гибких дисков для Apple II. Некоторые редчайшие игры, такие как Paddle Fun (1979) и Skybombers II (1980), увидели свет только благодаря проекту Applesauce. Отдельные экземпляры устройства отправились к заядлым коллекционерам и в настоящий момент помогают оцифровывать программное наследие эпохи Apple II.

Вместо заключения

Джон не был первопроходцем в этой области и не «изобретал велосипед». До него уже были предложены похожие проекты. Например, немецкая компания Individual Computers ещё в 1996 году разработала контроллер Catweasel, позволяющий подключаться к стандартным дисководам и расширяющий спектр поддерживаемых форматов. Последняя версия устройства вышла в 2004 году и более не производится.

Вторая попытка сделать нечто подобное была предпринята в 2010 году проектом KryoFlux. Они тоже разработали свой дисковый контроллер, но решили, что им более важна звонкая монета, чем возможность помочь человечеству сохранить своё культурное наследие.

В любом случае проекты «цифровой археологии» существуют и работают. Артефакты, полученные гиками, продолжают жить и радовать, за что спасибо этим специалистам. А о каких случаях спасения цифрового наследия слышали вы?

Контроллер KryoFlux (источник изображения)

Представители KryoFlux проводят проверку потенциальных покупателей. Если они выяснят, что вы работаете в школе или музее, то контроллера вам не видать. Вместо этого вам будут предложены «услуги» по оцифровке. Добавьте к этому скудную поддержку дисководов, малое количество поддерживаемых эмуляторов, а также закрытый исходный код прошивки и ПО. С дисками для Apple II эта вундервафля работает скверно, так что Applesauce остаётся единственной доступной и открытой альтернативой.

© Habrahabr.ru