Введение
Synchronet — это многоплатформенный пакет программного обеспечения BBS с действующими портами для Microsoft Windows, Linux и различных вариантов BSD. Более ранние версии также работали под MS DOS и OS/2, но поддержка этих платформ была прекращена в версии 3.0 (примерно в 2000 году).
История
Synchronet был первоначально написан Робом Свинделлом (a. k. a. Digital Man) из-за его желания иметь определенные функции, которых не хватало WWIV, такие как поддержка нескольких одновременных узлов, пакетная загрузка и двунаправленный обмен файлами. Большая часть программирования первой версии Synchronet была выполнена в течение двух месяцев в 1991 году, когда Свинделл был прикован к дому во время восстановления после операции. Программное обеспечение было названо в честь его способности синхронно работать в сети. В июле 1991 года автор начал вести свою собственную BBS, Vertrauen, на Synchronet. Первоначально он не планировал публиковать Synchronet, но по мере распространения информации о его программном обеспечении и получения предложений о покупке копий Synchronet, он в конечном итоге уступил, основал компанию под названием Digital Dynamics и продавал копии Synchronet по цене 100 долларов без исходного кода и 200 долларов с исходным кодом. В апреле 1992 года работодатель Свинделла обанкротился, и он начал полностью полагаться на коммерческие продажи Synchronet для своего существования, размещая рекламу в журналах, посвященных BBS, Boardwatch и BBS Callers Digest. Первая копия Synchronet, проданная через рекламу в журнале, была в июне 1992 года. Synchronet стал первым BBS-пакетом, который поддерживал QWK-сеть сообщений нативно, без необходимости каких-либо внешних утилит, в версии 1a, ревизия 10, выпущенной 25 июня 1992 года. Он также был первым BBS-пакетом с поддержкой RIP, в версии 1b, ревизия 1, выпущенной 23 января 1993 года. Интерес к Synchronet начал угасать в конце 1994 года и окончательно исчез в 1995 году. Digital Dynamics фактически обанкротилась осенью 1995 года. Несмотря на это, бета-версия версии 2.30 Synchronet для MS DOS и альфа-версия для OS/2 были выпущены в начале 1996 года. В августе 1996 года Свинделл объявил о неопределенности будущего Synchronet. В 1997 году версия 2.30 Synchronet была выпущена как бесплатное программное обеспечение, а исходный код был передан в общественное достояние позднее в том же году. В апреле 1999 года Свинделл возобновил разработку Synchronet, значительно переработав его и преобразовав большую часть кода в C++. Другая версия, 2.30c, была выпущена в декабре 1999 года, исправляя ошибки Y2K и представляя некоторые незначительные новые функции из предстоящей серии 3.x. Версия 3.00b была выпущена 25 июня 2000 года и стала первым официальным релизом серии 3.x, включающим 32-битную версию Windows и множество новых функций, связанных с Интернетом, таких как встроенный telnet-сервер. Для этого релиза поддержка dial-up была отменена, что сделало его системой, работающей только по TCP/IP. В октябре 2000 года Synchronet был выпущен на условиях GNU General Public License (GPL). В конце 2001 года Стивен Хёрд (Deuce) присоединился к проекту, первоначально в качестве разработчика *nix. Он портировал BBS на FreeBSD и выполнил большую часть разработки для Linux. Его первым значительным вкладом стала реализация библиотеки Borlands conio, позволяющая утилитам конфигурации, изначально написанным для DOS, работать на платформах, подобных Unix. Примерно в то же время Свинделл начал встраивать движок JavaScript SpiderMonkey в Synchronet с целью замены устаревшего языка BAJA, который использовался для большинства настроек BBS. Хотя BBS по-прежнему требует скриптов BAJA, многое можно сделать с помощью JavaScript. В движок JavaScript был добавлен объект socket и создан сервер "Services", который позволял легко писать простые TCP/IP-сервисы. TCP/IP-сервисы, написанные на JavaScript, поставляемые с Synchronet, включают finger, gopher, IRC и NNTP. Дополнительные интернет-сервисы были добавлены в нативный (C) код: FTP, SMTP и POP3 Робом Свинделлом и rlogin, SSH и HTTP Стивеном Хёрдом. В интересном завершении цикла, поддержка прямого dial-up для Synchronet снова доступна, поскольку Роб Свинделл написал программу-шлюз "модем-telnet" (SEXPOTS) для этой цели. Используя эту программу, SysOps снова могут предлагать свои BBS через прямые соединения модем-модем.
Библиотеки
xpdev – это кроссплатформенная библиотека разработки, предоставляющая такие функции, как многопоточность, разбор файлов INI, согласованные функции *printf и другие небольшие вспомогательные функции для остальной части проекта. По сути, каждый подпроект Synchronet полагается на xpdev. Основной разработчик – Роб Суинделл. ciolib – это чистая реализация библиотеки conio от Borland, поддерживающая отображение CP437 с использованием консоли Win32, SDL, X11, curses и ANSI через stdio. Она также включает эмулятор ANSI-терминала, поддерживающий ANSI BBS, ANSI Music, управление темпом отображения символов для анимации ANSI Art, последовательность VT500 ESC[*r для динамического изменения скорости, Commodore 64 PETSCII и Atari 8-bit ATASCII в различных режимах экрана, включая 80x25, 80x28, 80x43, 80x50 и 80x60, а также более 35 шрифтов, импортированных из исходного кода FreeBSD syscons, и возможность настройки шрифтов. Основной разработчик – Стивен Хёрд. UIFC – это библиотека текстового пользовательского интерфейса, предоставляющая систему меню для утилит конфигурации в текстовом режиме, поставляемых вместе с Synchronet. Первоначально написанная Робом Суинделлом, она была обновлена Стивеном Хердом для использования ciolib. Считается, что функциональность завершена, поэтому активная разработка ведется только при необходимости новых функций. comio – это универсальная реализация API последовательного (COM) порта для Windows и *nix. Изначально разработанная Робом Суинделлом в рамках проекта SEXPOTS, она была портирована на *nix Стивеном Хердом.
Секс-Зей
SEXYZ (Synchronet External X Modem, Y Modem, Z Modem) – это программа для передачи внешних файлов, поддерживающая протоколы X/Y/ZModem. Она была разработана для отказа от устаревших внешних протоколов DOS, таких как [F]DSZ и CEXYZ. Программа поддерживает передачу данных через TCP-сокеты и стандартный ввод/вывод. Она функциональна, и дальнейшая разработка не планируется.
Секс-поты
SEXPOTS (Synchronet EXternal Plain Old Telephone System) — это шлюз от модема к Telnet. Он принимает входящие звонки с модемов и перенаправляет их на BBS по протоколам Telnet или RLogin.
SyncTERM
SyncTERM — это эмулятор терминала, использующий xpdev, ciolib, UIFC и части SEXYZ и SEXPOTS. Помимо платформ, поддерживаемых Synchronet, он также работает в Solaris и Mac OS X. Поддерживаемые способы подключения: Telnet, rlogin, SSH, "сырые" сокеты, стандартные модемные соединения и прямые последовательные подключения (с использованием частей SEXPOTS), а также интерфейс pty в *nix. Для передачи файлов поддерживаются протоколы ZMODEM, XMODEM и YMODEM (с использованием частей SEXYZ).
SyncDraw (СинкДрау)
SyncDraw — это редактор ANSI-арта, который изначально создавался на основе старой версии MysticDraw. Он использует xpdev и ciolib, но пока не завершен. Он поддерживает шрифты TheDraw и может сохранять файлы в формате кода Synchronet Control A, однако обычно считается недостаточно доработанным для серьезной работы.
Программное обеспечение третьих сторон
Проект Synchronet продемонстрировал готовность "принимать" стороннее программное обеспечение, связанное с BBS, в своё репозиторий CVS. Обычно такое программное обеспечение адаптируется для работы с xpdev и запускается на тех же платформах, что и Synchronet, после чего остаётся в репозитории CVS без дальнейшей активной разработки.
Двери домена
Domain Entertainment когда-то была одной из ведущих компаний, разрабатывавших аддоны специально для Synchronet. Часть их программного обеспечения впоследствии была выпущена под открытой лицензией и импортирована в репозиторий CVS Synchronet в директорию xtrn.
Район зверя
The Beast's Domain – это многопользовательская интерактивная приключенческая игра в реальном времени с элементами rogue-like и графикой в стиле ANSI. В The Beast's Domain может одновременно играть до 250 пользователей.
Открытые двери
OpenDoors был одним из самых популярных на C "наборов дверей" (door kits). Поддержка формата файлов DOOR32 drop и универсальных сокетов была добавлена Робом Свинделлом, а совместимость с *nix – Стивеном Хердом.