Новости Цифровое чудо на Рождество. Как ученым удалось восстановить UNIX V4 с ленты 1970-х годов

NewsMaker

I'm just a script
Премиум
27,514
46
8 Ноя 2022
Весит меньше фотографии, а изменила мир.


5etbolfgi21t8f9ydhffg66fbdq5gtrh.jpg

Куратор программного обеспечения Музея компьютерной истории Эл Коссоу успешно восстановил данные с магнитной ленты возрастом более полувека, обнаруженной в Университете Юты в прошлом месяце. На ней оказалась UNIX V4 — первая версия операционной системы UNIX, ядро которой было написано на тогда ещё новом языке программирования C.

Данные удалось извлечь с девятидорожечной ленты 1970-х годов. Теперь образ системы доступен для скачивания в Internet Archive, а запустить его можно в эмуляторе SimH . Пользователь Mastodon под ником Flexion уже опубликовал скриншот UNIX V4, работающей под SGI IRIX.


tibhj0axnmvlc009h58kvg3hzam9f12d.png


UNIX V4 в эмуляторе SimH на macOS 12

Ленту обнаружил профессор Роберт Риччи из Школы компьютерных наук Калерта при Университете Юты. Коссоу, который также ведёт проект Bitsavers , ещё тогда предположил, что данные «вполне можно восстановить». Он оказался прав, и в конце прошлой недели работа была завершена. Риччи опубликовал видео процесса восстановления — оно длится чуть более пяти минут, что неудивительно: ядро UNIX V4 занимало всего около 27 килобайт.

Для извлечения данных использовалась программа readtape , созданная Леном Шустеком из Музея компьютерной истории. Принцип её работы схож с утилитой Greaseweazle для архивирования старых дискет: вместо попытки скопировать байты или секторы программа записывает необработанные магнитные колебания, из которых затем восстанавливаются цифровые данные. Это позволяет исправлять ошибки — в данном случае не удалось прочитать лишь два блока, но их содержимое удалось реконструировать.

Исходный файл на Internet Archive занимает 1,6 гигабайта, хотя сама лента вмещала около 40 мегабайт — это связано с особенностями записи сырых данных. Для удобства Анджело Папенхофф подготовил обработанную версию с инструкцией по запуску. На Reddit пользователь drop_table_allusers объясняет : нужно запустить исполняемый файл SimH pdp-11 с параметром boot.ini, нажать «k», ввести «unix» и нажать Enter.

Система совсем крошечная: около 55 000 строк кода , из которых примерно 25 000 на языке C и менее 1000 строк комментариев. Впрочем, покойный Деннис Ритчи и его соавтор Кен Томпсон были настоящими программистами, а как гласит древняя мудрость : «Настоящим программистам комментарии не нужны — код и так понятен». Томпсон по-прежнему активен и недавно дал второе устное интервью для Музея компьютерной истории под названием «Легенда компьютерного мира рассказывает» (A Computing Legend Speaks).

Чтобы понять значимость находки, стоит вспомнить историю UNIX. Самую первую версию , позже названную «нулевым изданием», Томпсон написал вручную на ассемблере в 1969 году для свободного PDP-7 в Bell Labs — 18-битного миникомпьютера Digital Equipment Corporation 1965 года выпуска. Это было настолько давно, что восьмибитный байт ещё не стал стандартом. PDP-7 UNIX восстановили по распечаткам между 2016 и 2019 годами.

Позже Томпсон получил доступ к PDP-11 и переписал систему для этой 16-битной машины, всё ещё на ассемблере, создав UNIX First Edition . Поначалу машина имела единственный жёсткий диск RS11 объёмом в полмегабайта, хотя восстановленный исходный код относится к более поздней машине со вторым диском.

В том же году вышла UNIX v2 , а в 1972-м — UNIX V3 , в которой появились каналы (pipes) и для которой впервые был написан язык C . Теперь же найдена и восстановлена UNIX V4 — первая версия с ядром, переписанным на C. Она работала только на более мощной модели PDP-11/45 .

Многие особенности ранней UNIX объясняются ограничениями железа. Например, когда у разработчиков был единственный жёсткий диск DEC RK05 на 1,5 мегабайта, а затем появился второй, они перенесли на него домашние каталоги пользователей. Папка называлась /usr — сокращение от «users», и в ней хранились каталоги ken и dmr, а также большинство бинарных файлов системы. Возникла проблема: как смонтировать второй диск, если команда mount находится на нём же? Решением стала специальная папка /sbin на первом диске с инструментами для доступа к дополнительным накопителям. Роб Лэндли, автор Toybox (замены BusyBox Брюса Перенса), написал отличное объяснение истории разделения bin, sbin, usr/bin и usr/sbin.

Сегодня это часть юниксовой мифологии — считается, что между бинарниками в корневом каталоге (/bin, /sbin, /lib) и в дереве /usr (/usr/bin, /usr/sbin, /usr/lib) есть важное функциональное различие. Попытка примирить это разделение называется usr merge , и, забавно, даже последняя Alpine Linux 3.23 пока его не завершила .

UNIX начиналась как быстрый хак двух гениев в свободное время — они хотели использовать свободный компьютер , редкость невероятную для 1960-х, чтобы запустить симулятор Space Travel — игру о полётах по двумерной Солнечной системе. Их основной проект, операционная система MULTICS , стала несправедливо знаменита своей громоздкостью, хотя на самом деле использовалась годами и её помнят бывшие пользователи .

Кен и Деннис написали нечто крошечное и простое, используя короткие криптографические сокращения для файлов и каталогов. Их коллега, великий Брайан Керниган — буква «K» в «K&R C» и «AWK» — даже предложил название UNICS как шутку .

Проблема в том, что эта крошечная экспериментальная ОС вырвалась из лаборатории. Версия 6 стала основой знаменитой книги Лайонса , в которой содержится, пожалуй, самый известный комментарий в истории кода: «You are not expected to understand this» («Не ожидается, что вы это поймёте»). Найти его можно на строке 2238 в аннотированном исходном коде , а сам комментарий вдохновил целую книгу .

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

Тем временем оригинальные разработчики продолжали работу, улучшая и упрощая дизайн вплоть до десятого издания , после чего система была радикально переписана и превратилась в сетевую Plan 9 from Bell Labs . Сегодня работа продолжается в виде 9front.

И вот теперь ключевой этап ранней эволюции UNIX найден, оцифрован и работает. Почти как рождественское чудо.
 
Источник новости
www.securitylab.ru

Похожие темы