![image](https://habrastorage.org/webt/6e/qe/nu/6eqenursn4-owffjvf4ev3crt8a.png)
О выходе в интернет с помощью старой, почтенной (но не всегда почившей) техники написано немало статей. Возможно, для кого-то именно эта статья окажется первой, человек вполне может заинтересоваться и начнет расширять кругозор в подобном направлении.
В данной статье описан пример возможности пребывания в современном интернете на примере компьютера архитектуры PC/XT, без Ethernet-карты, болгарского производителя «Правец».
Доступ в интернет при помощи консольного браузера, может быть полезен для просмотра документации, мануалов. Не всегда на сервере установлена графическая оболочка. Важна суть, а при помощи каких средств она получена, пожалуй, дело второе.
Также данное решение может быть использовано для управления хостом — мы получим MS-DOS терминал с функционалом Kermit.
Под катом детальные фото содержимого «ретро-Правц»а, настройка терминального соединения через RS-232, видеодемонстрация выхода в интернет. Фото кликабельны.
Приступим? :)
❯ Введение
Для чего городить огород?
Вижу для себя ряд оснований. Во-первых — изучение механизмов/возможностей/методики, ведь знать путь и пройти его — не одно и то же. Во-вторых — тестирование возможностей старого железа в современной среде. В-третьих — фиксация и систематизация опыта, ну и как шпаргалка на будущее.
Общая картина взаимодействия выглядит так:
- Компьютер под управлением операционной системы Linux (хост), имеет выход в интернет.
- На хосте в качестве экспериментальных текстовых браузеров установлены Lynx и Links2.
- К хосту при помощи нуль-модемного кабеля подключен «Правец» (используется в качестве терминала), через com-порт (RS-232).
- На «Правце» в качестве терминальной программы установлен терминальный клиент-Kermit, позволяющий осуществить соединение с хостом.
- Настройки com-портов будут одинаковыми на обеих машинах. 8N1, что означает: 8 — количество бит в пакете, N — отсутствие контроля четности и 1-стоповый бит. Работать будем со скоростью 9600 бит/с.
Почему выбрано именно такое решение, а не использована Ethernet-карта с интерфейсом ISA? Для аутентичности, в «Правце» ISA-Ethernet отсутствовала, а COM-порт был. Мы обойдемся малым, но вставить ISA-Ethernet и работать в MS-DOS в сети на скорости 10 Мбит тоже возможно.
❯ Предыстория
«Правец» — компьютер болгарского производства.
Мой экземпляр системного блока случайно был обнаружен в заброшенном сарае — КУНГе, у папы, где пролежал неизвестное количество лет. В дань уважения был установлен и выпущен погулять в интернет в 2023 году.
![image](https://habrastorage.org/webt/pm/on/ae/pmonaetndmkpppdizfoxtehk_jm.jpeg)
На момент написания статьи согласно наклейке-шильдику «Правцу» — 35 лет.
![image](https://habrastorage.org/webt/um/pc/ct/umpcctmqnxfe9w3drk0uaxj-two.jpeg)
❯ Начинка/архитектура
Системный блок и содержимое были разобраны по винтику, продуты, отмыты и очищены. Платы визуально проинспектированы и все собрано в обратном порядке.
![image](https://habrastorage.org/webt/ze/n8/c6/zen8c66lzzkbhzwiygsd7v7vy-u.jpeg)
Опишу основные узлы.
Правец базируется на процессоре архитектуры Intel 8088 производства фирмы Siemens:
![image](https://habrastorage.org/webt/u4/ak/tn/u4aktnfkf-8beaozl893_xlaxb4.jpeg)
Материнская плата фирмы производителя XL-7 TURBO:
![image](https://habrastorage.org/webt/3g/hl/z6/3ghlz6jkdfk6owwzfrpgyw6cxgq.jpeg)
Оперативная память (RAM) объемом 640Кб:
![image](https://habrastorage.org/webt/zu/md/nn/zumdnn_4ejlodldylumqgduw2xy.jpeg)
Вичестер MFM — оказался неисправным, поэтому, скрепя сердцем, отошел от аутентичности и заменил дисковую подсистему на новодельный контроллер ISA с картой Compact Flash.
Неисправный винчестер — крест на нем не ставлю, но возможно в перспективе попытаюсь реанимировать и поместить обратно в корпус:
![image](https://habrastorage.org/webt/wt/pp/yl/wtppyl9orjntvoedppar2qpkj94.jpeg)
![image](https://habrastorage.org/webt/v-/rq/ou/v-rqoupqd8nsw3goitltor_fowo.jpeg)
Контроллер флоппи:
![image](https://habrastorage.org/webt/w0/oq/vd/w0oqvdrupmbvhz8zkczviu2iism.jpeg)
Контроллер жесткого диска:
![image](https://habrastorage.org/webt/0_/cg/ll/0_cgllvgtmgjkug3plgv_zuygiw.jpeg)
Плата, на которую сделан упор в рамках данной статьи — плата коммуникационных портов. Данная плата содержит две БИС. Любопытно, что разных номиналов — UM8250B и FM88450-A.
Торцы платы содержат разъемы db9 и db25.
Через данную плату будет осуществляться коммуникация с хостом, и через нее мы выйдем в интернет.
![image](https://habrastorage.org/webt/k4/20/yd/k420ydtfuzu8mkecfdykcor6ydm.jpeg)
Итак, физически компьютер проинспектирован и собран. Приступим к загрузке операционной системы, тестам и коннекту.
Аутентичного монитора и клавиатуры, к сожалению, у меня нет. Возьму единственный свой ЭЛТ-монитор и AT-клавиатуру, подключенную через конвертер AT-XT, ну а манипулятор-мышь в данном примере не нужен, хотя его можно воткнуть в тот же универсальный COM-порт.
![image](https://habrastorage.org/webt/hc/4t/uq/hc4tuqty9vmxbmp5fzdpt0p_ooa.jpeg)
Запуск тестовой программы Checkit.
Характеристики видны на последующих фотографиях экрана:
![image](https://habrastorage.org/webt/hm/0g/e4/hm0ge4ytypcgf6ilnyo-puda__c.jpeg)
![image](https://habrastorage.org/webt/uv/7u/fe/uv7ufe3gepg2ssy_7i2zxsasbo8.jpeg)
![image](https://habrastorage.org/webt/bm/et/z-/bmetz-smlqns2xtzly_l-1vjios.jpeg)
![image](https://habrastorage.org/webt/0n/et/09/0net091xjqno7xb6_ckxjt0koh0.jpeg)
❯ Настройка хоста на стороне Linux
В качестве операционной системы — посредника доступа в интернет, используем облегченную версию Ubuntu.
Описание общей конструкции приведено выше, здесь мы увидим основные шаги настройки сервиса agetty.
Что делает agetty? Он открывает определенный (прописанный в конфигурационном файле) com-порт и выводит приглашение для авторизации. Приглашение — связка login и password для последующей работы в консоли. Таким же образом работает и подобный, по сути, сервис mgetty, только в данном случае соединение должно производиться через модем.
Нам нужно пройти 4 шага:
1. Копируем agetty.
«serial-getty@.service», изначально расположенный по пути /lib/systemd/system
в /etc/systemd/system:
sudo cp /lib/systemd/system/serial-getty@.service /etc/systemd/system/serial-getty@ttyS0.service
![image](https://habrastorage.org/webt/jc/b9/ls/jcb9ls00dhku0mizm1oxgwotmfg.jpeg)
2. Конфигурируем agetty.
Редактируем следующий файл:
![image](https://habrastorage.org/webt/mn/ve/ky/mnvekyozwcehxytjjnqsp_vbaxu.jpeg)
В части скорости передачи данных, убираем другие значения скорости, оставляя лишь 9600.
![image](https://habrastorage.org/webt/8s/he/oe/8sheoefmun9au8ivmzqrcartsna.jpeg)
3. Запускаем созданный сервис agetty.
sudo systemctl daemon-reload
sudo systemctl start serial-getty@ttyS0.service
![image](https://habrastorage.org/webt/qn/st/di/qnstdiawxbalcy9foggmikhoegw.jpeg)
4. Устанавливаем текстовые браузеры Lynx и Links2.
Для наглядности в две команды:
sudo apt install lynx
sudo apt install links2
Можно и так:
sudo apt install lynx links2
Все, настройка хоста завершена, он готов принимать входящие соединения через com-порт, и готов выходить в интернет с помощью текстовых браузеров.
❯ Настройка на стороне терминала MS-DOS
Версия MS-DOS 6.22 выбрана как наиболее зрелая, она прекрасно идет на нашей архитектуре, в части того, что нам требуется.
Физической средой передачи данных будет являться собственноручно собранный нуль-модемный кабель.
![image](https://habrastorage.org/webt/jp/_o/c7/jp_oc7n22klahpxgosa7vj-083i.jpeg)
Соединение с хостом под управлением OS Linux на программном уровне мы будем осуществлять с помощью Kermit.
Настроек в Kermit много, можно весьма гибко тюнинговать различные параметры, но в нашем случае достаточно лишь выставить скорость com-порта.
Запускаем «kermit.exe», пишем:
set speed 9600
![image](https://habrastorage.org/webt/cr/rw/gk/crrwgkbapbgozikucyw2c9rgf6a.jpeg)
Скорость порта настроена, можно переходить к соединению через последовательный порт RS232.
❯ Коннект!
В запущенном Kermit вводим комманду: connect.
![image](https://habrastorage.org/webt/c7/km/2u/c7km2unzhixlcbl_kdmby08aje8.jpeg)
Мы видим приглашение авторизации, которое нам предоставляет agetty, запущенный на хосте.
![image](https://habrastorage.org/webt/pb/4v/zv/pb4vzvn6zrxuaf0jmbp1eujzg3q.jpeg)
Работаем на камеру:
Консольные браузеры описаны тут и тут.
Были испробованы два — LYNX и Links2.
Вот мы и подобрались к вопросу — а что можно делать в консольном интернете?
Практическую пользу я вижу в чтении текстовой информации — это могут быть различные мануалы, новостные ленты. Также в познавательных целях можно подсоединиться к bbs (bulletin board system) — это электронная доска объявлений, а так же посмотреть telnet-мультики и играть в игры текстового жанра. Данные шаги ведут к пониманию механизмов и основ современного/былого интернета.
Посмотрите ролики, наглядно показывающие, как это выглядит:
Lynks2:
LYNX:
![image](https://habrastorage.org/webt/wt/bp/4s/wtbp4s_wjbq5o8gsdlzvywpaiiu.jpeg)
Ну и несколько ASCII-ART напоследок:
![image](https://habrastorage.org/webt/9m/x7/vq/9mx7vq_hsnmiwmgmkvatgkbldig.jpeg)
![image](https://habrastorage.org/webt/an/po/1_/anpo1_eosby1dnyajt0_fthyzve.jpeg)
![image](https://habrastorage.org/webt/ie/qa/q-/ieqaq-oc0tvklqzsu8m0ymqdeag.jpeg)
![image](https://habrastorage.org/webt/yr/y3/rh/yry3rhkmpwf8vi7kii7wednxguc.jpeg)
❯ Выводы
Мы подключились к текстовому интернету при помощи терминала, построенного на архитектуре PC/XT. Получать информацию из интернета описанным способом — вполне возможно.
Комментируйте, пожалуйста, всё ли было понятно, напишите свое видение данных механизмов, и как еще можно использовать подобные конструкции.
Спасибо за терпение. :)