Цифрова археологія: як рятують давно загублені дані



Креслення забутих процесорів, вихідні коди легендарних ігор, невідомі твори мистецтва, — чого тільки не знаходять в архівах любителі старовини. Їх завдання — відновити, надійно зберегти і каталогізувати.

Може здатися, що ми живемо у вік, коли інформація практично не здатна загубитися: що одного разу було оцифровано або створене на комп'ютері, мало хоч якусь цінність, тиражуватися і вічно кочувати з одного цифрового носія на інший. Це, на жаль, не зовсім так: стандарти і формати змінюються з неймовірною швидкістю, а носії інформації (особливо — магнітні диски) мають вкрай обмежений термін служби. «Цифрова археологія» — тобто витяг даних зі старих носіїв і перекодування в сучасні формати стає все більш актуальною дисципліною. У цій області існують фахівці, і раз по раз з'являються історії про те, як вони героїчно витягли з цифрових руїн щось, що має незаперечну цінність.

Вихідні коди Prince of Persia

Гра Prince of Persia була розроблена в 1989 році, але згадують про неї до цих пір. Пригоди принца, який вибирається з підземелля палацу, щоб врятувати свою кохану, захопили уми і змусили гравців витратити незліченні години, щоб завчити кожен закуток на кожному рівні. Спочатку «Принц» був зроблений на комп'ютері Apple II, але незабаром його портувати на всі тодішні платформи. На даний момент вийшло дев'ять продовжень і голлівудський фільм (а також книга Віктора Пелевіна, в якій мотиви з «Принца» переплітаються з радянською реальністю).





Під час розробки гри Prince of Persia: The Sands of Time для Playstation 2 у її творців виникла цікава ідея: а чи не додати в якості «пасхального яйця» можливість запускати і оригінальну гру зразка 1990 року? Джордан Мехнер, її творець, виступав консультантом при проекті і відвідував монреальські студії Ubisoft, де робили Sands of Time, так що зв'язатися з ним не склало праці. Мехнер з готовністю погодився надіслати исходники і почав ритися в коробках зі старими дискетами, які ніколи не викидав. Але от невдача: потрібна дискета зникла.

The Sands of Time було завершено в 2003 році і розійшовся тиражем понад два мільйони примірників, а про початкові коди оригінального «Принца» так нічого і не було чутно. Про цю втрату ніхто б не впізнав, не отримай ця історія розвиток у 2012 році. Як Мехнер пізніше розповів репортерові журналу Wired, йому зателефонував батько і сказав, що знайшов у себе коробку з якимись старими дискетами, явно належали синові. Коли Мехнер молодший отримав коробку і став перебирати дискети, він побачив, що на одній з них було написано «Prince of Persia, вихідний код, 1989». Яка несподівана удача!





Але що робити з пачкою старих запорошених дискет, якщо під рукою немає ні сумісного комп'ютера, ні п'ятидюймовий дисковода, ні взагалі будь-якого диска? Якщо на дискетах записано що-небудь настільки ж важливе, як основу легендарної гри, то є сенс звернутися до професіоналів. Додому до Мехнеру прибули двоє: колекціонер старих комп'ютерів з цілим вантажівкою, на якому він привіз кілька справних Apple II, і співробітник організації The Internet Archive з чудовим пристроєм під назвою KryoFlux.

Що таке KryoFlux



Цей пристрій з виглядом нагадує будь-який інший старий п'ятидюймовий привід, але модифікований таким чином, щоб повільно, але вірно зчитувати самі застарілі дискети. В результаті його роботи створюється образ диска, максимально нагадує оригінал. KryoFlux поставляється в комплекті з адаптером USB, і може бути підключений до сучасного комп'ютера. По суті, цей пристрій служить містком між часом старих комп'ютерів і сучасними технологіями. Створили його у фірмі Software Preservation Society, «Суспільстві збереження софта». SPS починав як клуб любителів Amiga, але потім розрослася і, як ми бачимо, навіть обзавівся чимось на зразок хардверного підрозділу. Правда, крихітного — KryoFlux виробляють виключно на замовлення, а ціна на нього становить близько тисячі євро.
Мехнеру пощастило: всі його дискети вважалися майже ідеально, дорогоцінні вихідні коди Prince of Persia були отримані в повному обсязі і тут же запущені на одному із старовинних комп'ютерів. Пізніше опублікували исходники на GitHub, де їх може завантажити будь-який бажаючий (http://goo.gl/JacfnI). На жаль, для докладного вивчення потрібно знання асемблера Apple II, але тут вже нікуди не дінешся.

Заповітна коробка таїла і інші приємні сюрпризи: знайшлися вихідні коди клону гри Asteroids, який Мехнер написав в юнацтві (подібно до того, як зараз заради тренування пишуть клони Flappy Bird), а також невідома світу гра Quadris. З нею, до речі, пов'язана цікава історія. На початку вісімдесятих років Мехнер вже працював в ігровому видавництві Broderbund, куди в один прекрасний день надійшла нова незвичайна гра під назвою Tetris. Керівництво компанії вирішило, що Tetris занадто складний для простого геймера і не взявся його видавати, а от рядові співробітники грали в творіння Олексія Пажитнова днями безперервно. Їх попросили видалити Tetris зі своїх комп'ютерів — цього вимагала робоча етика (права так і не були куплені). Дистрибутиви знищили, але хотілося грати — так і з'явився Quadris — чи не перший, але похований на довгі роки клоном «Тетриса».

До речі, якщо читання про Prince of Persia викликала ностальгію і пекуче бажання пограти знову, то зараз це можна зробити в будь-який момент і навіть без установки DOSBox. З недавніх пір досить зайти на archive.org знайти гру і запустити прямо в браузері. Це можливо завдяки движку JSMESS, на який портувати DOSBox і емулятори безлічі інших старих систем. Так що ігор вісімдесятих і дев'яностих років поки що не загрожує зникнути в глибині часів.

Загублені картини Уорхола

Про те, хто такий Енді Уорхол, хоча б краєм вуха чули всі, а репродукції найвідоміших його картин на кшталт «Супу Campbell» попадаються на очі тут і там із завидною регулярністю. Він широко відомий як винахідник стилю «поп-арт», а от як піонер цифрових технологій у застосуванні до мистецтва — в значно меншій мірі. І, тим не менш, факт: Уорхол з радістю купував ті комп'ютери, які були доступні у вісімдесяті роки, і використовував їх скромні графічні можливості у своїй творчості.

Наша історія починається значно пізніше. У 2004 році хтось оцифрував стару відеокасету із записом презентації нового комп'ютера Amiga, на яку був запрошений Уорхол. Ось він за допомогою цифрової камери робить фотографію сидить перед ним Деббі Харрі (вокалістка групи Blondie), щоб потім продемонструвати знімок на екрані і буквально за кілька хвилин перетворити його в картину. Попутно він повідомляє, що пробує все нові комп'ютери, а цього чекав особливості. Справа відбувалося в 1985 році, за два роки до смерті художника.



Презентація цікава сама по собі — зараз такої концентрації зірок на сцені не дозволяє собі навіть Apple. Але діячі культури бачать на записи не те ж, що любителі техніки: Кору Аркэнджел — художник і фахівець з робіт Уорхола, в 2011 році натрапив на це відео і негайно задався питанням: «А де ж зараз ті картини, які Він малював на Amiga?» Аркэнджел відправив запит до музею Ворхола і швидко отримав відповідь: дискети є і зберігаються серед інших речей Уорхола. Дивно, що ніхто не намагався скопіювати з них інформацію раніше.

Подальша історія порятунку старих файлів в загальних рисах збігається з розповіддю про те, як діставали исходники Prince of Persia. В музей прибув Аркэнджел, команда добровольців з Комп'ютерного клубу університету Карнегі — Меллон і кілька інших фахівців. Вони привезли з собою робочі комп'ютери Amiga 500 і 1000, вже відомий нам дисковод KryoFlux в трехдюймовой модифікації та інші засоби для відновлення старих носіїв.

Іноді доходить до того, що магнітні диски доводиться діставати з пластикових конвертів і полоскати під краном із засобом для миття посуду, щоб очистити від пилу і цвілі. У випадку з архівами Уорхола ніяких радикальних засобів не знадобилося. Дискет, правда, була величезна кількість, і хоч більшість і було позначено як дистрибутиви програм, покладатися на цю інформацію не можна: раптом щось записано поверх? Копіювати довелося все і навіть перевіряти, чи не залишилося слідів стертою інформації.





Фахівці знайшли і бездоганно скопіювали 28 файлів, потенційно містять картини. Заголовки свідчили campbells.pic, botticelli.pic, marilyn1.pic і так далі. Проте вдалося відкрити лише деякі — частина картинок програма Graficraft, якою користувався Уорхол, читати відмовилося. Спроби використовувати більш старі версії редактора теж нічого не дали, і формат довелося аналізувати вручну. Втім, знавці Amiga швидко виявили, що всередині звичайні дампи відеопам'яті, ймовірно створені самою ранньою версією Graficraft. Ніяких згадок про неї не збереглося, але зображення вдалося легко розшифрувати і сконвертувати в PNG.

Обладнання Уорхола теж виявилося примітним: два комп'ютери Amiga 1000 в ідеальному стані, графічний планшет однією з перших комерційних моделей, цифрова камера DigiView, яка робила чорно-білі знімки (для кольорових потрібно тричі знімати одне і те ж через різнокольорові фільтри) і Polaroid Digital Palette — пристрій, що дозволяє записувати зображення на слайди.



На дискетах також знайшлися драйвери для тієї самої камери Live, яка застосовувалася на презентації Amiga, їх версія була позначена як «0.0». Самої камери не було, але очевидно, що у Уорхола вона з'явилася на пару років раніше, ніж у простих смертних. На комп'ютерах теж знайшли дещо цікаве — стікери «не для продажу». Явний доказ того, що художник отримував тестову продукцію одним з перших.

Креслення процесора MOS 6502

У середині вісімдесятих років процесор MOS 6502 був великим хітом — за рахунок низької ціни і одночасно високою по тим часам продуктивності. На момент появи він коштував 25 доларів, в 4-5 разів дешевше, ніж конкуренти зразок Intel 8080 і Motorola 6800. MOS 6502 ліг в основу Apple I і II, Commodore PET, Atari 2600, NES, радянського «Агата», болгарського «Правеца» і ще маси різновидів домашніх комп'ютерів. Пам'ятаєш рядки коду, які біжать перед очима T-800 у першому «Термінаторі»? Це асемблер MOS 6502! Через 15 років цей факт обіграють в «Футурамі»: чіп в голові Бендера носить ту ж саму знамениту маркування.



Зараз немає недоліку емуляторів машин на цьому знаменитому процесорі, але вони лише повторюють набір його інструкцій, а це не зовсім те ж, що даний «залізо». Креслення MOS 6502 малювалися олівцем на ватмані — САПР в ті часи ще не існувало. Якщо репринты тих схем і збереглися, то вони дуже рідкісні.

Троє американських «цифрових археологів» Грег Джеймс, Баррі Сильверман і Брайан Сильверман вирішили відновити точну цифрову копію MOS 6502, щоб вона слугувала аналогом исходников на HDL і могла використовуватися для симуляції. Як це зробити? Є тільки один спосіб, і він виглядає дуже непростим.



Упаковку чіпа проплавляют фосфорною кислотою, розігрітій до 90 градусів, після чого скрывавшуюся під шаром пластику мікросхему фотографують під мікроскопом. Саме таким чином група ентузіастів отримала близько 200 знімків, які потім склеїли, щоб отримати цифрову копію мікросхеми з роздільною здатністю 342 Мп.

Наступний крок — трасування схеми, тобто переклад з растрового виду у векторний. Готові рішення для цього не підійшли: кривоватый і повний сміття креслення нікому не потрібен. Замість цього ентузіасти написали власну програму на Python, яка видала відмінний результат. Це відкрило дорогу для наступного етапу: перетворення отриманих даних в симуляцію працюючого процесора.

Проект портувати на JavaScript, і тепер за адресою visual6502.org можна знайти чудовий симулятор. Він виконує команди процесора MOS 6502 і тут же показує, як вони виконуються. Видно не тільки вміст пам'яті і регістрів, але і знімок мікросхеми з доріжками, які підсвічуються по ходу виконання програми.



Розтин, фотографування і створення симулятора процесора здаються жахливо непростими справами, але на ділі процес зайняв всього близько півроку: з листопада 2009 року по травень 2010-го. З тих пір розробники встигли додати симулятор Motorola 6800 і збираються продовжувати використовувати свою технологію для розширення колекції. Просять надсилати будь-які старовинні мікропроцесори: одного примірника виявляється недостатньо, коли мова йде про обробці кислотою.

Потрібно сказати, що зворотна розробка процесорів — вигадка зовсім не нова. В СРСР вона широко застосовувалася для клонування західних технологій (див. «Хакер» №8 за серпень 2013), так і зараз зустрічається. Так хлопці з форуму emu-russia.net нещодавно розпорошили процесор приставки PSX і вивчають його (подробиці можна прочитати за адресою psxdev.ru). PSX — це модифікація Playstation 2 і, можливо, вона ще недостатньо застарів, щоб вважати її розкриття археологією — у голову швидше приходить думка про піратство. Але якщо це і піратство, то у його найкращому прояві. До того ж, пройде якийсь час, і ніхто не стане дивитися косо на подібне заняття.

Радянський трійковий «Сетунь»

Західна історія комп'ютерів давно розкладена по поличках, і нарити щось нове можна тільки при великому везінні. Як щодо вітчизняної археології? З радянських часів нам залишилося багату спадщину рідкісних комп'ютерів, незвичайних історій і давно забутих досягнень.

Спільноти любителів старих комп'ютерів існують і в Росії. Одне з них називається «Тринари» і присвячено вивченню історії трійкової ЕОМ «Сетунь». Слово «трійкової» тут потребує поясненні: справа в тому, що цей унікальний комп'ютер був спроектований для роботи з даними в троичном поданні, тобто замість бітів (0 або 1), він оперував тритами — їх прийнято позначати -1, 0 і 1. Відповідно, замість байтів у трійкового комп'ютера трайты, вони складаються з шести тритів і приймають значення від -364 до 364. Легкість роботи з негативними величинами, як можна помітити, дана такого комп'ютера від народження.



Керував розробкою «Сетуні» Микола Петрович Брусенцов, завідувач кафедри обчислювальної математики механіко-математичного факультету МДУ. Перший тестовий комп'ютер був завершений в 1959 році, і згодом Казанський завод математичних машин випустив ще 46 примірників, які розійшлися по НДІ і навчальним закладам. До 1970 році команда Брусенцова розробила наступну модель — «Сетунь-70». Але до серійного виробництва ця машина так і не дісталася — завадила радянська бюрократія. Вважається, що головною проблемою стала зовсім не екзотичність трійкових обчислень, а, як не парадоксально, низька вартість комп'ютера.

«Сетунь-70» на відміну від першої «Сетуні» не тільки використовувала троїчне подання даних, але і підтримувала деякі трійкові логічні операції. Приміром, трійкова логіка значно спрощує порівняння чисел: якщо аналогічні бінарні оператори можуть повернути лише значення «більше» або «менше», то троїчне порівняння враховує можливість рівності чисел.

Олександр Обухів з групи «Тринари» за старими схемами розробив емулятор «Сетуні», причому працює прямо в браузері. Досить відкрити сторінку trinary.ru/projects/setunws і опиняєшся сам на сам з панеллю управління старовинного радянського суперкомп'ютера. Щоб розібратися, що до чого, знадобиться прочитати книгу «Мала цифрова обчислювальна машина Сетунь» — а це, звичайно, осилить не кожен. Але для тих, кого захопила ідея трійкової логіки, така можливість безцінна.



Інший учасник «Тринари», Олександр Самсонов, зробив спробу піти далі і створити емулятор «Сетуні-70», щоб мати можливість запускати старі програми, які йому вдалося відновити з перфострічки. В ході інтерв'ю журналу «Комп'ютерра», Самсонов розповів про те, як зіткнувся з непередбаченими і незвичайними складнощами. Зокрема, ПЗУ «Сетуні-70» існує тільки у вигляді роздруківки в машинних кодах, причому сторінки не пронумеровані і перемішані, а всього їх близько сорока. Відновлення послідовності в цьому випадку — завдання дуже нетривіальна.

Микола Брусенцов помер 4 грудня 2014 року, всього за два місяці до виходу цього номера. З новин про це не дізнаєшся — його ім'я, як і імена багатьох інших першопрохідників початку комп'ютерної епохи, відомо лише знавцям історії обчислювальної техніки. Але саме завдяки ентузіастам ця історія збереглася, а незвичайні і маловідомі ідеї не йдуть з життя разом з їх авторами.

image

Вперше надруковано в журналі «Хакер» від 02/2015.

Підпишись на «Хакер»


Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.