Мы считаем само собой разумеющейся необходимость сохранения культурного наследия человечества. Литература, картины, музыкальные произведения, предметы быта — каждая мелочь из прошлого удостоена отдельного места на полке истории, с которой мы сдуваем пыль. И нам недостаточно описаний, репродукций! Чем стала бы великая «Джоконда» в переложении современников? «Девушкой со странной улыбкой»? Нет, мы трепетно храним оригинал, чтобы снова и снова наслаждаться дыханием времени и, возможно, однажды проникнуть в тайну картины ещё глубже. Однако за последние тридцать–пятьдесят лет у нас накопился приличный пласт наследия нового типа: цифрового (назовём его так, ибо оно включает как результаты обработки информации, так и средства). По-хорошему, это богатство тоже должно быть кем-то, где-то и как-то сохранено. Проблема в том, что старые методы презервации для него не годятся.
Цифровое наследие можно подразделить на три категории. Категория первая — результаты цифрового производства: тексты (включая, конечно, и веб-страницы), музыка, изображения. Необходимость их сохранения осознана, признана — и работа кипит, щедро финансируемая на государственном и межгосударственном уровнях. И уже здесь проявляется несколько специфических сложностей, требующих особого подхода. Скажем, мы столкнулись с беспрецедентными объёмами материала: попробуйте-ка уследить за непрерывно меняющийся Вебом! Ещё хуже необходимость в наличии средств воспроизведения цифрового контента. Во второй половине 90-х каждый меломан-компьютерщик знал, что такое «XM» и «IT». Сегодня, даже если вы вспомните их значение, сможете ли на чём-то проиграть? А если сможете, уверены ли, что получите оригинальное звучание — такое, каким его задумывали авторы (разные плееры играют эти форматы по-разному)? И ситуация ухудшается: чем больше новых форматов, чем больше генерируемой информации, тем короче жизнь отдельно взятой контент-единицы.
Вторая категория составлена программным обеспечением. Здесь специфика стоит уже в полный рост: программу мало просто сохранить — распечатав на бумаге или «нарезав» лазером на пластиковую болванку; её определённо необходимо уметь исполнить. Собственно эмуляция устаревших компьютерных систем давно не проблема: производительность современных персоналок такова, что позволяет это делать не напрягаясь. Вы наверняка читали о том, как на днях гугловец Кристиан Стефансен запустил эмулятор Amiga 500 (знаковый компьютер 80-х и 90-х) в браузере Chrome (кстати, применив NaCl). Но, откровенно говоря, и здесь лучше бы иметь доступ к оригинальной технике. Потому что любой эмулятор повторяет прототип только в самых основных деталях, без нюансов. И выполнить на эмуляторе, например, программу защиты от копирования, привязанную к особенностям дисковода (а то и лентопротяжного механизма, как это делалось совсем недавно на ZX Spectrum), почти невозможно.
Вот так мы и приходим к необходимости сохранения третьей (и самой сложной) составляющей цифрового наследия — цифровых устройств. Компьютеры и компьютерная периферия (накопители, устройства ввода-вывода и пр.) в работоспособном состоянии нужно сохранить уже хотя бы для того, чтобы воспроизводить программное обеспечение и контент в оригинальном виде и тем гарантированно спасти их от цифрового устаревания. Но больше того, в них — в компьютерах, устройствах — самих может отыскаться что-то достойное увековечения. Скажем, оригинальная конструкция дисковода для Apple II, придуманная Стивом Возняком (фантастически простая для своего времени). Чем этот образчик инженерного гения хуже той же «Моны Лизы»? И если мы храним полотна да Винчи ради эстетического наслаждения и в надежде на новые открытия, разве не должны сохранить оригинал флоппи-контроллера, сотворённый сооснователем Apple?
Однако занимается ли кто-нибудь этим всерьёз? Увы, если и занимаются, то очень немногие. Причина проста: старый цифровой хлам не имеет ценности в глазах широкой общественности. Но раз уж мы с вами способны оценить красоту возняковского дисковода, как сберечь её для потомков? Вариантов всего два: сделать это напрямую, сохранив физический образец устройства, либо создать его цифровую модель — эмулировать — с максимально возможной точностью. И каждый вариант сложен по-своему.
Загляните в Computer History Museum (фотографии из него иллюстрируют колонку): они держат почти сорок тысяч экспонатов в особых хранилищах — с контролируемой влажностью, освещённостью, температурой, и так далее, и так далее, словно классические произведения общепризнанных искусств. Как и на картинах или книгах, на компьютерах имеются дефекты, повреждения — в общем, отметины, повышающие их историческую ценность, дополняющие историю рождения и жизни. Все эти мелочи важно донести до потомков. Но если архивариусы доцифровой эпохи этим бы и ограничились, хранителям цифровых устройств нужно заботиться ещё и о поддержании экспонатов в работоспособном состоянии. Что делает процесс много, много сложнее. Ведь любое электронное устройство — не монолит, как книга или картина, а сложный комплекс, разные части которого должны работать слаженно. И если из-за какой-то ерунды — вроде вздувшегося «электролита» — случается рассинхрон, экспонат превращается всего лишь в груду металла и кремния.
А время электронику не щадит. Сохнут конденсаторы, окисляются контакты, выцветает люминофор, крошится магнитная лента. И, получается, от классического способа сохранения цифрового железа рано или поздно придётся отказаться. Нет, конечно, энтузиасты, восстанавливающие и дорабатывающие старые ЭВМ и гордящиеся тем, например, что древний «Мак» удалось выпустить в Сеть, безусловно, не переведутся. Но это одиночки-волшебники, цифровые археологи, их на всё не хватит. Массово же хранить компьютеры придётся в виде эмуляторов.
В чём главный недостаток эмуляции? Она предполагает изучение устройства методом обратного инжиниринга. А это означает, что даже в лучшем случае оригинал будет воспроизведён с ограниченной точностью: мелкие «баги», забытые аппаратные особенности не будут обнаружены и учтены. Следовательно, массовые эмуляторы (QEMU и пр.) для цифрового сохранения не годятся. Чтобы воссоздать цифровое устройство точно, нужно выйти на уровень электронных элементов: резисторов, транзисторов, микросхем. Можно ли эмулировать их работу? Можно, и это давно делается, разве что называется уже не эмуляцией, а симуляцией (то есть точным воспроизведением). Приложений масса, в том числе и свободных, но затраты вычислительных ресурсов так высоки, что, насколько мне известно, никто пока таким образом старые компьютеры не воссоздаёт.
Редкие исследователи, пробовавшие задачу эмуляции с исторической точностью на зуб, подошли к ней с другой стороны. Они предпочли усовершенствовать обычные эмуляторы, сделав их более гибкими. Примером может служить проект Dioscuri — первый эмулятор x86-систем, разработанный с прицелом именно на цифровое сохранение. Идея вкратце в том, чтобы воссоздать эмулируемое устройство максимально точно за счёт написания отдельного модуля для каждого из компонентов устройства; центральный процессор, память, графический адаптер, BIOS и прочее: за каждый из них в Dioscuri отвечает свой модуль. Это по-прежнему не идеально, но уже ближе к цели.
Что дальше? Рост вычислительной мощности на порядок (если только успеем до окончания действия закона Мура!), вероятно, позволит эмулировать старые устройства на уровне элементов. Но, к сожалению, и здесь мы быстро упрёмся в стену — потому что даже микропроцессоры 80-х, уж конечно, никто и никогда не «разберёт»: снимать слой за слоем, изучая их под микроскопом, слишком трудно, а публиковать исходники производители, скорее всего, не пожелают по причине упрямства — как упрямятся до сих пор публиковать фирменные прошивки игровых компьютеров тридцатилетней давности. И, получается, однажды мы неизбежно потеряем значительную часть цифрового наследия. Грустно, но что поделаешь?