Перевод статьи JEFF KEACHER

Воскрешение старого компьютера похоже на восстановление классической машины: получаешь незабываемые ощущения от возвращения старой вещи в современный мир. Итак, это был мой первый «реальный» компьютер, Mac Plus, и я решил подключить его к интернету!

Это скромный компьютер. Конфигурация меркнет даже по сравнению с моим Kindle: 8 МГц процессор, 4 Мб ОЗУ, 50 Мб жесткий диск, и черно-белый экран разрешением 512 х 384 точек. Мой настольный компьютер быстрее в 200.000 раз, даже не включая графического процессора. Тем не менее, на этом Mac Plus я «точил зубы» в компьютерных технологиях, когда был ребенком. Он познакомил меня с программированием на С, жесткими дисками, модемами и интернетом.

Да, в некотором смысле, я уже выходил с него в интернет, сперва через BBS, а затем через диал-ап соединение. Но поддержки TCP/IP в нем нет, и это всего лишь тупой терминал в сети.

Насколько трудно это исправить?

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

Я погрузился в ностальгические воспоминания, играя в Glider на своём стареньком Маке, когда вдруг раздался громкий хлопок, и я почувствовал дым. В панике я поспешил выключить питание. Долго искать не пришлось- дым шел из жесткого диска. После нескольких лет без работы один из конденсаторов в цепи электропитания просто не выдержал нагрузки.

resized-1847

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

Итак, для достижения своей цели, мне был нужен Веб-бразуер, поддержка TCP/IP, а так же какой-нибудь способ подключить мой Мак к домашней сети.

Найти Веб-браузер было относительно легко благодаря тем ребятам, которые до сих пор держат давным-давно запущенные FTP со стареньким совтом в самых пыльных уголках интернета. MacWeb 2.0 был одновременно стар, чтобы работать на моём Маке, и одновременно современен, чтобы поддерживать HTML и HTTP. Вроде того… Но мы вернемся к этому позже.

system_info

Отличные новости! MacWeb нуждается в 2-ух Мб оперативной памяти, тогда как у меня их целых 4!

Кроме того, MacTCP едва в состоянии работать на System 7.0 (Mac OS 7). А еще он не поддерживает некоторые мелочи, вроде DHCP, но MacWeb’у хватило и этого, так что я успешно его поставил. Теперь у нас появилась поддержка TCP/IP.

Физически подключить Мак к домашней сети было не так просто. Дело в том, что у него нет Ethernet порта, а WiFi и вовсе еще не изобрели в то время. Пара компаний изготовила адаптеры SCSI-to-Ethernet около 15-ти лет назад, но достать их сложно и стоят они не мало. Я потратил на это несколько дней, и вот, что пришло мне в голову: я мог бы использовать последовательный порт, а так же PPP или SLIP протоколы для подключения к внешнему миру. Это как диал-ап, но без использования модема.

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

resized-1895

Raspberry Pi делает всю тяжелую работу по преобразованию сигнала за несчастный Мак. Беспорядок в верхнем правом углу, это: схема сдвига уровня, нуль-модем, DB-9 to DB-25 адаптер, и последовательный кабель.

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

Теперь вы, возможно, спросите: «Подожди, как ты поставил всё это программное обеспечение, без активного подключения к интернету?». Хороший вопрос! Флоппи дисковод моего Mac’а был очень стар и у меня не было ни одного совместимого драйвера.

Сперва я попробовал 100 Мб ZIP дискеты, они изготавливались в USB и SCSI-1 версиях. И когда я пробовал перенести данные с программным обеспечением с моего Windows ПК  на Мак я не получал ничего, кроме поврежденных файлов на дискете.

Я был счастлив, когда увидел старый эмулятор терминала Microphone, уже установленный на Маке, который поддерживает протокол ZMODEM для передачи файлов. Таким образом, я перенес нужные файлы с моего ПК на Raspberry Pi, подключил Pi через последовательный порт, запустил Microphone на Mac в терминале и запустил Minicom на Pi с моего Mac (о боже, как всё сложно!). Minicom связался, раздался «БИИП» и намоем Mac загорелся диалог «Сохранить входящий файл?», программное обеспечение успешно установилось на моём стареньком Mac Plus. УРА!

Так, Raspberry Pi, MacTCP, MacWeb … всё на месте, настало время для сёрфинга в интернете! Правильно? Правильно?

Нет. Время для серфинга еще не настало…

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

Ааааргх!

Я обратился c этой проблемой к Тайлеру, ожидая, что её решение займет несколько дней кодинга. Я был приятно удивлен, когда всё было готово уже через 20 минут, для этого он использовал Python, Requests, Flask и BeautifulSoup. Решением было то, что MacWeb будет включать полный URL-адрес с именем хоста, когда будет создавать прокси запросы. Requests получает URL, разбирает SSL, и осуществляет поддержку cookie. BeautifulSoup дает понять MacWeb’у такие вещи, как CSS, Javascript, картинки и DIV’ы. Flask читает запросы и отдает отфильтрованные запросы в Mac.

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

macplus_wiki

 Конечно, это адски медленно, но это работало! Загрузка данных, рендер страниц и ссылки были активны. Все формы работали.

Я уже говорил, что это было медленно? Нет, это было ооооооооооочень и оооооооооооооочень медленно, я покажу вам это на видео:

 

Но, какая разница. Цель была достигнута!