Программист подключил 27-летний Mac к интернету

Программист подключил 27-летний Mac к интернету

Винтажный компьютер Mac Plus был подключен к интернет с помощью специального программного и аппаратного обеспечения

30.12.14 в 21:40
Программист подключил 27-летний Mac к интернету

Американский программист Джеф Кичер (Jeff Keacher) решил подключить Mac Plus 1986 года выпуска к интернету. Эта задача была очень сложной, так как появившись на свет 27 лет назад Mac Plus просто не умел работать с современными версиями протоколов, аппаратная часть также не могла быть подключена просто напрямую, так как мы это делаем в современных Mac лишь воткнув провод, но Джефа эти трудности не остановили. О проделанном пути он написал статью в свой блог, а ниже мы приводим ее перевод.

Как я подключил 27-летний компьютер к интернету

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

«Мой Macintosh Plus. Тут он отображает Wikipedia». Фото: Jeff Keacher

Это скромный компьютер, мой Mac. Его спецификации меркнут по сравнению с планшетным компьютером: процессор 8 МГц, 4 МБ оперативной памяти, 50 МБ жесткий диск и черно-белый экран с разрешением 512×384 px. Мой текущий настольный компьютер примерно в 200 000 раз быстрее, без учета графической карты. Тем не менее, этот Mac Plus был компьютером, в который я вгрызался когда был ребенком. Он помог мне освоить С, жесткие диски, модемы и интернет.

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

Насколько может быть трудно решить эту задачу?

Сначала все шло гладко. Я попросил маму отправить мне этот компьютер и он был доставлен в хорошем состоянии, будучи хранившимся в спокойствии в подвале с середины 90х годов. Я подключил его к питанию, подключил его внешний жесктий диск, переключил кнопку питания и увидел счастливое лицо Mac, оживщее на экране маленького CRT-дисплея. Конечно, жесткий диск стонал в знак протеста, когда он впервые закрутился, но он быстро затих и все выглядело стабильным, включая нетронутую информацию. Покрайней мере в течение первых нескольких минут.

Я ощущал глубокое ощущение ностальгии, когда включил и поиграл в игру Glider (сейчас она также доступна на iOS и OS X), как вдруг раздался громкий звук «БУХ» и потянуло запахом дыма. В панике я отключил питание и вытащил пробки. Обнюхивание в поисках источника дыма не было долгим, сразу стало ясно: едкий дым исходил из внешнего жесткого диска. Стресс тока после многих лет использования оказался слишком сильным для одного из конденсаторов внутри фильтра источника питания HDD.

«Взорвавшийся конденсатор от источника питания внешнего HDD»

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

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

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

«Целые 4 МБ RAM! Хороший знак, ведь MacWeb требуется всего 2 МБ»

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

Физическое подключение Mac Plus было более сложным вызовом. Mac Plus не имел Ethernet порта и такой вещи как Wi-Fi, они были изобретены спустя годы, после того как он был выпущен на рынок. Несколько компаний создали SCSI-to-Ethernet адаптеры лет 15 назад, но они были редки и дороги. Я поразмыслил над этой проблемой некоторое время и мне пришло в голову то, что я могу использовать последовательные порты и PPP или SLIP в качестве моста к внешнему миру. Это как диалап, только без использования модема.

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

На стороне программной части я пытался и после нескольких неудач нашел PPP клиент, который смог запуститься на Mac Plus, также как и супер-простой PPP сервер под названием SLiPR, созданный для Raspberry Pi.

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

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

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

Я использовал 100 МБ Zip диск, так как Zip дисководы создавались с поддержкой USB и SCSI-1. В то время как мне удалось подключить Mac к Zip дисководу (и на самом деле я переключился на один из них, для использования его в качестве основного загрузочного диска), я научил свой Windows PC читать отформатированные в HFS диски, используя некоторые классические инструменты. Каждая попытка переместить данные с PC на Mac Plus не приводила ни к чему, кроме как поврежденным файлам на Zip диске.

Поэтому не было выбора, кроме как использовать последовательный порт. Мне удалось иметь старый терминальный эмулятор под названием Microphone, который уже был установлен на Mac. Microphone поддерживал ZMODEM для передачи файлов, который, вероятно, заставит вас кивать головой, если вы еще помните времена BBS.

Таким образом, для передачи файлов на Mac я использовал SFTP для передачи файлов с PC на Raspberry Pi. Raspberry Pi подключенный к последовательному порту передавал данные в Mac через Microphone, работая в качестве терминал. Запущенный Minicom передавал данные в Pi от Mac. Я нервно инициировал запуск передачи даных ZMODEM от Minicom, выбрал нужные файлы и нажал Enter.

Minicom выдал «БИП» и диалог «Сохранить входящие файлы?» появился на экране Mac. Некоторое время спустя я уже запустил новое программное обеспечение на своем старом Mac Plus. Ура!

Так, с Raspberry Pi, MacTCP и MacWeb на местах я был готов для веб-серфинга! Правильно? Да?

Нет. Не совсем серфинга.

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

Ах и HTTPS, cookies и CSS также не были еще изобретены.

ААААГР!!!

Я рассказал о своих проблемах Тайлеру @tghw, указав, что я был несколько занят работой, чтобы найти решение и был удивлен когда он создал решение на скорую руку в виде фильтра прокси, используя Python, Requests, Flask, и Beautiful Soup. Ключом к работе всего этого было то, что MacWeb включает полный URL, вместе с именем хоста, когда создает прокси запрос. Запрос выбирает URL, оголяет SSL и управляет любыми cookies. Beautiful Soup берет на себя вещи, которые MacWeb не в состоянии понять, такие как CSS, JavaScript, картинки и DIV'ы. Flask вытаскивает прокси обязанности, читает запросы и отправляет отфильтрованный результат в Mac Plus.

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

«Страница о Mac Plus на википедии отображается на экране моего Mac Plus»

Конечно это было до черта медленно, но это работало! Информация загружалась, страницы рендерились и ссылки были кликабельными. Даже формы в общем работали.

«Hacker News на Mac Plus. Удивительно нормально отображаются, если учесть, что Mac Plus не поддерживает CSS»

Я упомянул о том, что это было медленно? Это было медленно. Тааак медлееено. Медленно медленно медленно. Так что уходила минута на считывание информации и медленный рендеринг страницы. Вот видео показывающее этот медленный процесс (некоторые участки видео ускорены в 40 раз, из-за того, что в реальности это занимало до 4-х минут. Из-за этого я решил подергать мышкой, чтобы убедиться что Mac не замер, но в этот же момент страница полностью отобразилась):

Какая разница. Моя цель была в том, чтобы просто привести Mac Plus в интернет. Эта встреча прошла успешно».


Бонус. Реклама Mac Plus

Вернитесь обратно по стрелке

Как с помощью приложения для iPhone не потеряться в незнакомом районе или городе

Чудесный компас-навигатор работает без включенного интернета, пригодится в поездках

14.12.12 в 18:25

Бывали ли вы в ситуации когда находясь в незнакомом районе города или чужой стране, вы вдруг обнаруживаете что потерялись? Вы не знаете в какую сторону вам идти и где, примерно, находится ваш отель или дом. Опасность заблудиться может испортить все впечатление от прогулки.

Как смело гулять и не бояться потеряться? С помощью специального приложения для iPhone вы сможете найти путь назад даже из самых запутанных районов!

Как это работает? Выходя из отеля или дома, сохраните местоположение в приложении. Теперь можно идти гулять без опаски!

Решили вернуться назад? Запустите приложение, выберите сохраненное местоположение и оно отобразит стрелку и расстояние до него, все просто! По сути это компас, но указывает он не на север (как обычный компас), а на то место, до которого вам нужно дойти.

В отличие от картографических сервисов вам не нужно разбираться со сложными картами. Будете ли вы пользоваться этим приложением каждый день или оно спасет вас раз в год — не важно, главное что проблема навигации в незнакомых местах будет решена.

Отзывы уже использующих приложение

Отличная идея ★★★★★
от Probka
Превосходно работает ! Идея просто супер !
Пользуюсь и всегда нахожу машину , друзей , свои любимые места ! + можно их пересылать ) всем советую 😉
Полезная программа ★★★★★
от kvirus
Можно поставить метку о припаркованном автомобиле и просто якоря.
Есть список якорей! Сделано просто и понятно , на русском языке !
Восторг! ★★★★★
от Александр Расников
Я в восторге от приложения!) Эталон простоты и функциональности!
Очень удобно ставить "якоря" и потом ориентироваться. Для похода в лес классная вещь. И функция парковки авто кстати. Раньше было отдельным приложением, теперь все в одном!

Сейчас читают

Популярное