Восстановление старого компьютера — это как реставрация классического автомобиля: то, от чего трепещет современный мир. Так было и с моим первым настоящим  компьютером, моим Mac Plus, когда я решил вывести его вперед на три десятилетия и познакомить с Интернетом.

По современным меркам, мой Mac довольно слабая машинка. Спецификации меркнут по сравнению даже с моим Kindle: 8 МГц CPU, 4 МБ RAM, жесткий диск объёмом 50 МБ, и черно-белый экран 512 х 384 пикселей. Мой нынешний ПК примерно в 200 000 раз быстрее, даже без учета GPU. Тем не менее, с Mac Plus я потерял «компьютерные  зубы», как ребенок. С ним я познакомился с жесткими дисками, модемами и интернетом.

Да, в некотором смысле, мой Mac уже был готов к работе с интернетом, сначала с помощью BBS, а затем с помощью Lynx через dial-up сессии. (Там нет ничего интересного, совсем как эротическая литература в 2400 бит, когда тебе 13 лет). Чего я так ни разу и не делал, так это не пробовал запускать на нем стек TCP/IP.

Насколько трудно бывает исправлять то, что работает не так, как хотелось бы? Вы даже не представляете

На первый взгляд, все начиналось гладко. У меня была материнская плата от моего компьютера. Она хорошо сохранилась, спокойно лежа в подвале с середины 1990-х годов. Я взял ее и внешний жесткий диск, щелкнул переключатель питания и был счастлив наблюдать, как мой Mac возвращается к жизни. Жесткий диск застонал от протеста, когда впервые раскрутился, но потом притих, и все данные оказались нетронутыми. По крайней мере, в течение первых нескольких минут.

Я вспоминал прекрасную игру моей молодости Glider, когда вдруг раздался громкий хлопок и появился запах дыма. В панике я отключил питание и вытащил разъемы. На то, чтобы найти источник едкого запаха не ушло много времени: внешний жесткий диск. Воздействие тока после многолетнего простаивания привело к поломке одного из конденсаторов во внешнем накопителе.

resized-1847

К счастью, Digikey по-прежнему продают точно такие же конденсаторы (!) и я, поработав с паяльником, вернулся к работе через несколько дней. К работе по созданию сети для своего Mac Plus!

Для достижения своей цели, мне нужен был веб-браузер, стек TCP/IP. Ну и нужен было придумать способ подключения Mac к моей домашней сети. Найти веб-обозреватель было относительно легко благодаря парням, сидящих на давно забытых FTP-сайтах в пыльных углах Интернета. Бразуер MacWeb 2.0 был и достаточно старым, чтобы работать на моем Plus и достаточно новым для отображения HTML и HTTP. Вроде как. Но мы вернемся к этому через минуту.

system_info
Офигеть, целых 4 МБ оперативной памяти! Это хорошо, потому что MacWeb требует 2 МБ

Кроме того, существовала версия MacTCP, которая была в состоянии работать (кое-как, но это не важно) на системе 7.0. Она не поддерживала такие тонкости, как DHCP, но MacWeb был счастлив использовать его, и его установка не вызвала проблем, так что не хватало только стека TCP/IP.

Добиться физического подключения Mac к сети было более сложной задачей. У Mac Plus отсутствует  порт Ethernet, а такие вещи, как Wi-Fi в те годы просто не существовали. Пару компаний делали адаптеры SCSI-Ethernet около 15 лет назад, но найти их в продаже было практически невозможно. Какое-то время я думал об этой проблеме и мне пришло в голову, что я могу использовать последовательный порт и PPP или SLIP для связи с внешним миром. Как телефонный звонок без модема.

Я установил Raspberry Pi и подключил к нему ряд CAT-5 от маршрутизатора. Используя множество старых адаптеров, я смог получить последовательный кабель, который заработал между Pi и Mac.

Что касается программного обеспечения, я сдался после нескольких неудачных попыток найти клиент PPP, который будет работать на Plus и примитивном сервере PPP, называемом SLiRP для Pi. Документация для MacTCP, MacPPP и SLiRP на удивление были по-прежнему доступна. После небольшой возни с конфигурацией, я смог получить MacTCP  работающий с MacPPP, MacPPP работающий с SLiRP, SLiRP использовал подключение Ethernet, и так далее через маршрутизатор и выход в Интернет. Поскольку серийные устройства последовательного ввода/вывода на Mac Plus требовали интенсивной работы процессора, пропускная способность была ограничена 19 кбит/с, но 19 все же намного лучше, чем ничего.

resized-1895
Маленький Raspberry-PI делает за компьютером всю тяжелую работу, который в тысячу раз слабее этой маленькой коробчки.

Теперь вы  наверное спросите: «Подожди, как ты достал все это программное обеспечение, которые не поддерживаются разработчиками?» Хороший вопрос! Дисковод Мака был настолько стар, что он был несовместим с современными компьютерными дисками. Чего уж там, даже на моих современных компьютерах дисковода не было вовсе. Я пытался использовать 100 MB ZIP-дискеты для работы с ZIP-дисководом, который поддерживал интефрейсы USB и SCSI-1. Все-таки мне удалось заставить Mac работать с ZIP-дискетами (и в итоге использовать одну из них в загрузочном дисководе), хотя даже мой Windows-PC читает HFS дискеты, используя некоторые программы. Но и здесь был подвох. Каждая попытка переместить данные с ПК на Plus ни к чему не приводила, зато я повредили файлы на Zip-дискете.

Я нашел старый эмулятор терминала Microphone, который уже был установлен ​​на Mac. Microphone поддерживал  ZMODEM для передачи файлов, c которыми, вы вероятно знакомы, если помните BBS. Таким образом, для передачи файлов на Mac, я переместил нужные файлы с моего компьютера на Raspberry Pi, а затем подключил Pi к последовательному порту. Microphone загрузился на Mac в качестве терминала, и я загрузил Minicom на Pi с Mac. Я нервно ввел необходимые ключи для передачи с Zmodem на Minicom, выбрал файлы  и нажал ввод. Minicom благодарно «пикнул» и диалог «Сохранить входящий файл?» появился на Mac. Спустя некоторое время, я обнаружил, что новое программное обеспечение работает на моем старом Mac Plus. Ура!

Итак, Raspberry Pi, MacTCP и MacWeb  — все на месте, пришло время веб-серфинга! Не так ли? Не так ли?! Нет. Еще не время.

Видимо, разработчики MacWeb, взглянув на спецификации HTTP 1.0, решили: «Разве кому-либо когда-нибудь понадобится виртуальный хостинг на основе доменных имен?» И не учли, что 99% сайтов в современном вебе используют именно их. Отсутствие поддержки виртуальных хостов означает, что вы можете использовать только IP-адрес сервера и для большинства сайтов путь оказался отрезан. О, и HTTPS, cookies и CSS не были изобретены.

Черт возьми!

Я рассказал о проблеме своему другу Тайлеру и был удивлен, когда он нашел решение  на скорую руку, через  фильтрацию прокси с помощью Python, Requests, Flask и Beautiful Soup. Ключом ко всему этому было то, что MacWeb будет включать полный адрес с именем хоста при создании запроса прокси. Запросы открывают URL, SSL и управляют cookies. BeautifulSoup помогает MacWeb открывать такие вещи, как CSS, Javascript, изображения и DIVs. А Flask заставляет прокси обрабатывать запрос и отправлять результаты обратно на Mac.

И этого, друзья, было достаточно, чтобы просматривать веб-страницы. Это выглядело примерно как современный мобильный браузер.

macplus_wiki hackernews

Конечно, все это работало чертовски медленно, но это работало! Загружались данные и страницы, а ссылки были кликабельны. Я уже говорил, что это было медленно? Это было очень медленно. Настолько медлеееенно. Медленно, медленно, медленно. Минуты, чтобы прочитать и отобразить страницу. Но какая разница? Цель состояла в том, чтобы познакомить Mac с Интернетом. И знакомство прошло успешно.

(via)