Собственная BBS на Raspberry Pi. Цифровая археология на современном устройстве
С чем у вас ассоциируется аббревиатура BBS? Любители автотюнинга, конечно, вспомнят о производителе колёсных дисков — BBS Kraftfahrzeugtechnik AG. Помните, как получив стоковую машину в NFS Underground 2 и выиграв пару гонок, вы мчались в игровой магазин и ставили литые диски этого вендора? Но если вы жили до эпохи Web 1.0, то для вас BBS обозначает Bulletin Board System, то есть электронную доску объявлений.
Сколько люди живут на земле, столько они формируют сообщества. Вначале это были сообщества для добычи пищи, ведь гораздо безопаснее выследить и убить крупное животное вдесятером, чем в одиночку. С развитием цивилизации люди продолжали создавать всевозможные сообщества, но чаще всего локальные. Развитие компьютерных сетей позволило людям на разных континентах общаться друг с другом, обмениваться опытом и создавать уже глобальные сообщества. BBS стали первыми такими площадками, прообразом интернет-форумов.
Из чего состоит BBS
Здесь нет никакой магии. BBS — это обычное серверное приложение, принимающее внешние подключения через коммутируемое соединение с помощью обычного модема. Пользователю для посещения BBS нужно было дозвониться с помощью приложения-терминала. После того как соединение установлено, зарегистрироваться и получить аккаунт для входа. Некоторые BBS были сугубо коммерческими и не давали возможность регистрации без предварительной оплаты. Другие, наоборот, оставались бесплатными и поддерживались исключительно энтузиазмом их создателей.
После авторизации пользователь получал доступ к меню BBS. Говоря современным языком, это был суперапп в терминале, состоящий из:
файлового хранилища
доски объявлений
новостной ленты
электронной почты
чата с системным оператором (сокращённо сисопом)
чата с другими пользователями (только на многолинейных BBS)
игр (чаще всего текстовые квесты)
Большинство BBS почти никогда не были единым монолитным приложением. Они состояли из нескольких взаимосвязанных программ, каждая из которых отвечала за решение конкретной задачи — этакие микросервисы из прошлого века. Одна занималась установкой соединения, другая распаковкой и раскладкой по категориям (тоссингом) почты, третья позволяла конфигурировать параметры BBS и так далее.
Регистрация и подключение
Каждому пользователю назначался уровень доступа. Если пользователю запрещалось посещать все без исключения разделы, то это называлось twit (интересные ассоциации, не правда ли?). Ну а пользователь с максимальными правами, сисоп, мог делать что угодно, для него отсутствовали лимиты:
Коммутируемый доступ накладывал существенные ограничения на посещение BBS. Если к обычному веб-серверу могут подключаться сотни и тысячи пользователей одновременно, то количество телефонных линий у коммерческих станций редко превышало пару десятков. Так что для каждого пользователя время доступа к станции чаще всего ограничивалось, равно как и объём скачиваемых файлов.
Это позволяло обслуживать гораздо больше пользователей, чем позволяло количество линий. У любительских BBS часто была только одна линия, которая почти всегда была занята каким-либо пользователем. Так что дозвониться до такой станции было порой очень долгим процессом. Благо софт позволял задать количество попыток дозвона, что облегчало задачу.
Обмен данными происходил в текстовом режиме. Чтобы сделать свои BBS привлекательными, сисопы создавали изображения с помощью псевдографики (ASCII-арт) и ими кастомизировали отображаемые меню:
Как подключаться?
Несмотря на то, что в мире ещё остались редкие BBS, доступные по аналоговой телефонной линии, большинство всё же теперь работают по IP. Основным способом доступа к ним является обычный Telnet-клиент. Во многих операционных системах такой клиент установлен по умолчанию. Подойдёт даже PuTTY, который для многих остаётся основным инструментом для удалённого доступа к серверам.
Но всё же есть и более удобные BBS-клиенты — например, NetRunner. Он работает во всех современных операционных системах семейств Windows и Linux. Поддерживаются как 32-битные, так и 64-битные версии:
Для подключения к BBS достаточно нажать Alt+I, ввести адрес и порт, разделив их двоеточием, и подтвердить подключение с помощью Enter. Чтобы подключение выглядело максимально аутентично, разверните клиент на весь экран с помощью Alt+Enter.
Как развернуть свою BBS
Хотите себе собственную станцию, чтобы удивлять друзей и коллег? Легко! Для этого даже не надо рыскать в закромах архива интернета. Есть как минимум несколько простых способов поднять BBS, даже на одноплатном компьютере Raspberry Pi. Под рукой оказалась модель 3B+ с Raspberry Pi OS 32-bit без графического интерфейса.
Знакомьтесь — проект ENiGMA½ BBS. Это вполне современное приложение, написанное на Node.js. Его можно развернуть везде, где поддерживается Node.js. Среди заявленных операционных систем, помимо стандартной троицы из Windows, Linux и macOS, есть поддержка FreeBSD и OpenBSD. Любители контейнеров спокойно могут развернуть ENiGMA½ BBS в Docker на любой подходящей инфраструктуре. Из преимуществ стоит отметить то, что к станции можно подключаться не только через Telnet, но и через SSH, и даже через WebSocket.
Перед началом установки на Raspberry Pi OS надо сделать несколько предварительных действий. Вначале освежить кэш пакетов и обновить их до актуальной версии:
$ sudo apt update && sudo apt -y upgrade
Затем установить несколько дополнительных пакетов для работы с разными форматами архивов:
$ sudo apt -y install lhasa arj lrzsz
Теперь можно запустить установку специальным скриптом, который сработает практически на любой Linux-системе:
$ curl -o- https://raw.githubusercontent.com/NuSkooler/enigma-bbs/master/misc/install.sh | bash
Закройте SSH-соединение и переподключитесь заново. После этого перейдите в директорию с ENiGMA½ BBS:
$ cd /home/pi/enigma-bbs
И запустите процесс создания конфига по-умолчанию:
$ ./oputil.js config new
После ответов на все вопросы можно запускать серверное приложение:
$ ./main.js
Спустя несколько секунд BBS будет запущена, и к ней можно будет подключиться с помощью NetRunner по адресу <IP-адрес малинки>:8888
Далее нужно создать пользователя. Первый зарегистрированный пользователь на станции автоматически получает права сисопа.
Что дальше
Итак, сервер у вас есть, и он отлично работает. Но что с ним можно сделать? Здесь всё будет зависеть от того количества времени, которое вы готовы потратить. Прелесть Enigma½ BBS в том, что эта система достаточно хорошо задокументирована. Все переменные окружения, особенности кастомизации и прочие фичи — вся информация доступна как в онлайне, так и в директории enigma-bbs/docs. С помощью этой системы можно наладить обмен данными с немногими оставшимися в живых FTN-сетями, например с Fidonet.
Собственная BBS легко может стать основой для какой-нибудь интерактивной игры или презентации. Прохождение текстового квеста даже в 2023 году может быть вполне увлекательным процессом. Глядя на то, какое количество старых игр сейчас активно портируется на современные консоли, поневоле можно задуматься и о собственном игровом ретропроекте. А ещё это прекрасное развлечение для IT-специалистов — например, можно сделать внутрикорпоративный квест.
Ещё очень ценно то, что система позволит вам передавать файлы даже внутрь очень старых операционных систем, поскольку есть поддержка legacy-форматов, таких как XMODEM, YMODEM и ZMODEM. Так что имея виртуальную машину с какой-нибудь раритетной ОС, даже без поддержки со стороны гипервизора, можно передавать и принимать файлы.
Устаревший, но небесполезный
Не станем спорить, что технологии, на которых построены BBS, давно устарели. Вместе с тем они открывают потрясающие возможности для цифровой археологии. Особый интерес, конечно, представляют BBS, работающие на раритетном «железе», например на компьютере Apple II. Кстати, вышеупомянутая Heatwave BBS запущена тоже на уникальном оборудовании — персональном компьютере Geneve 9640 (клон TI-99/4A).
Прогуливаясь по различным BBS, можно исследовать не только историю развития компьютерной техники и сопутствующих технологий. Вы можете найти шедевры, созданные десятилетия назад. Это могут быть уникальные ASCII-арты или музыкальные произведения в старинных форматах трекерной музыки.
Фактически перед вами открывается целый мир, в котором нет назойливой рекламы и отслеживающих ваше поведение скриптов. Там до сих пор чувствуются отголоски давно ушедших в небытие сообществ, часть из которых вполне можно возродить. Отдельным бонусом может стать создание собственной системы связи с друзьями, которая не будет зависеть от какого-либо сервиса или подписки.
А вы раньше когда-нибудь посещали BBS? Ждём вас в комментариях.