Citadel OS

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 02:28, 19 ноября 2018.
Citadel OS
Citadel OS Logo.gif
Publicroom.png
Общая Папка WebCit
Разработчик Clint Adams Steven M. Bellovin Nathan Bryant Art Cancro Harry Coin Brian Costello Edward Flick Nick Georbit David Given Dave West Wilfried Goesgens Michael Hampton Andru Luvisi Daniel Malament Stu Mark Edward S. Marshall Ben Mehlman Matt Pfleger Ari Samson Trey Van Riper John Walker Steve Williams Ethan Young
Написана на C
Линейка ОС UNIX
Состояние разработки Current
Исходный код Open - Source
Доступно в English
Лицензия GPL (Freie Software)
Официальный веб-сайт www.citadel.org/doku.php

Citadel - это универсальная ОС, созданная для максимально эффективной организации коллективной работы. Благодаря своей исключительной архитектуре, платформа Citadel сочетает в себе много различных функций. Citadel является открытым исходным кодом на условиях GNU лицензии. Citadel обеспечивает почтовый сервис, с использованием протоколов POP3, IMAP и SMTP со встроенной поддержкой аутентификации пользователя, сортировки и фильтрации сообщений. Citadel OS почти полностью написана на языке программирования C. [Источник 1]

Основная информация

Citadel OS включает в себя следующие компоненты:

  • Электронная почта, календарь, адресная книга, доски объявлений, мессенджер, и многое другое. Облачные хранилища в Citadel OS являются встроенными
  • Высокопроизводительный, многопротокольный, многопоточный серверный движок
  • Веб-браузер, telnet/CI, встроенное клиентское ПО
  • Электронная почта использует протоколы: POP3, IMAP и SMTP
  • Календарь и планирование групп (WebDAV, GroupDAV и Kolab-1 совместимы)
  • Встроенный listserv (сервер рассылки)
  • Встроенный RSS-канал агрегации
  • Встроенная сортировка и фильтрация почты на стороне сервера
  • Поддержка электронной почты на мобильных устройствах
  • Хранилище сообщений с одним экземпляром, управляемое базой данных
  • Проверка подлинности SMTP протокола для электронной почты
  • Поддержка нескольких доменов
  • Межсерверная репликация. Пользователи в любом количестве могут быть разбиты на любое количество серверов Citadel, что позволяет размещать данные там, где это необходимо, и обеспечивает бесконечную горизонтальную масштабируемость.
  • Поддержка "общих папок" и форумов
  • Встроенная служба обмена мгновенными сообщениями
  • Протокол SSL/TLS - шифрование для всех протоколов

Протоколы

  • Протоколы POP3 и IMAP (с дополнительным SSL для поддержки)
  • Протокол SMTP (со встроенным авт механизм)

Функции

  • Адресная книга
  • Календарь / Планирование
  • Filestorage
  • Примечания
  • Задачи
  • Вики
  • Блог
  • XMPP / Jabber[Источник 2]

Клиенты и инструменты

WebCit интерфейс HTTP для полнофункционального группового взаимодействия(как отдельный сервер)

Операционные системы

  • Все дистрибутивы Linux с easy_install.sh
  • Debian и Gentoo с выделенным .Deb и .ebuild файлов
  • Solaris и *BSD системы тоже работают

Доступ

  • Протокол HTTP: Firefox, Opera, Internet Explorer 7 и выше
  • KOLAB / GroupDAV: Thunderbird (с плагинами)
  • SyncML / OMA DS (опционально): поддерживаются Android версии 2.2, Symbian S60, Windows Mobile, iPhone и Blackberry

История

Версия 1

Версия 1, которая на самом деле называлась «UNIXrooms» и была реализована как набор расширений для среды UNIX, разработанная для добавления движка обмена сообщениями. Первоначальные планы заключались в том, чтобы никогда не реализовывать какие - либо службы, которые уже были предоставлены базовой операционной системой. Например, новые пользователи в то время были фактически добавлены в файл паролей UNIX. Версия 1 оказалась более эффективным воплощением концепции, чем как фактическая рабочая BBS. Произошло это потому, что телефонной компании потребовалось целых шесть месяцев, чтобы установить телефонную линию, поэтому было немного времени для разработки программного обеспечения.

Версия 2

B марте 1988 года появилась Citadel OS версии 2. В это время у неё было достаточно функциональности для переименования в Citadel/UX. Теперь у компании была пользовательская база данных, независимая от файла паролей UNIX, несколько типов частных комнат, работающая система электронной почты, стабильный многопользовательский доступ и множество других функций.

Версия 3

Введение Citadel в интернет обеспечило возможность тестирования и настройки программного обеспечения для надежной работы при тяжелых многопользовательских нагрузках. Некоторые из портов Citadel v3 все еще используются сегодня, такие как DaveCode (который запускает Quartz чтобы сделать его доступным через Интернет) и DOC (который запускает ISCA).

Версия 4

Citadel начал проводить капитальные изменения, став полностью распределенным клиент - серверным приложением. Первоначально была некоторая заинтересованность в реализации чего - то, совместимого с клиентским протоколом DOC, но это оказалось просто измененной версией telnet. Потребовались месяцы, чтобы разделить существующий код на пользовательский интерфейс и логические модули выполнения, но когда это было сделано, у Citadel была система, которая выглядела точно как ее предшественник, но была намного более мощной и гибкой.

Незадолго до того, как пользователи, у которых были домашние системы Linux или доступ к оболочке UNIX на своих учетных записях в Интернете, начали загружать клиентский код и запускать его локально вместо telnetting на копию хоста. Пользователям понравилось улучшение производительности. Теперь пользователи имели возможность выбирать собственные локальные текстовые редакторы и печатать сообщения локально.

Теперь стало возможным реализовать пользовательские интерфейсы, полностью отличающиеся от традиционной Citadel.

Пользователи хотели получить доступ к Citadel с помощью веб - браузера. Это привело к созданию проекта WebCit - умной программы «промежуточного программного обеспечения», которая действует как веб - сервер (изначально требовалось привязать ее к существующему веб - серверу, например Apache, но теперь он содержит собственный автономный движок HTTP) и позволяет пользователям получать доступ к системе Citadel из любого веб - браузера. Многие люди используют WebCit в качестве своего эксклюзивного доступа к системам Citadel.

Версия 5

В версии 5 была реализована высокая производительность и множество других преимуществ, поскольку она была переписана как одна многопоточная серверная программа. Сервер v4 был основан на inetd - каждый сеанс запускался как отдельный серверный процесс. В v5 использовался API - интерфейс POSIX Threads, чтобы все работало в одной серверной программе.

На этот раз установка и обслуживание проходило намного проще. По возможности редактирование текстовых файлов для внесения изменений в конфигурацию было устранено. Например, файлы конфигурации для настройки сетей были заменены утилитами командной строки в версии v5 (позже они будут заменены встроенными серверными модулями в версии 6). Интуитивные экраны конфигурации заменили необходимость использования текстового редактора.

Версия 5.50 принесла с собой ряд важных изменений. Большим изменением стала полная архитектура задней части хранилища данных. Citadel отказались от архитектуры кругового файлового обмена, первоначально созданного для платформы CP/M и дискет, Citadel перешла на использование менеджера записи GDBM для всего. Это намного более гибко, и это позволило уничтожить все произвольные лимиты системы (сообщения за номер, комнаты за систему и т. д.),

Стиль кодирования

Эти правила не установлены в ядре:

  1. Полное игнорирование стандартов кодирования GNU. Они предназначены для продвижения Emacs, и поскольку vi является единственным в True Editor, в этом нет необходимости. (Нет, вы не обязаны использовать vi в качестве текстового редактора)
  2. При написании кода используется табуляция, а табуляция по умолчанию заменят 8 символов.
  3. Допустимая ширина линии до 132 столбцов.

Скобки Кернгангана и Ричи:

if (condition is true) {
do something;
}

Закрывающая фигурная скобка должна быть отдельной строкой, если в заявлении do не существует продолжения того же выражения, что и «while», например:

do {
do something;
} while (condition is true); 

Когда в if - statement существует несколько условий else, каждый блок должен быть разделен следующим образом:

if (condition is true) {
 do something;
}
else if (other condition is true) {
 do something;
}
else if (another condition is true) {
 do something;
}
else {
 do something;
} 

Это делает код более читаемым.

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

master_startup() 
pidfile_fp 

Особый случай - это функции, которые должны быть частью «API - интерфейсов на стороне сервера», которые имеют имена, начинающиеся с «Ctdl», за которыми следуют одно или несколько слов, первая буква которых заглавная, и никаких подчеркиваний, таких как:

CtdlAccessCheck()
CtdlGetRelationship()
CtdlEncodeBase64() 

Существующий код не строго придерживается этого соглашения,

Функции должны быть понятными и делать одно, точно так же, как и в любом другом коде. Если вы пишете код для сервера Citadel или программы WebCit, ваш код должен быть потокобезопасным. Невозможность написать threadafe - код приведет к печально известному «BOOM!». ситуации случайным и непредвиденным временем.

Citadel SpamAssassin

Любая система электронной почты, подключенная к интернету, неизбежно будет получать большие объемы спама и вирусов. Citadel не исключение. Есть несколько хороших систем фильтрации спама. Citadel использует - SpamAssassin. Citadel имеет способность легко и плавно интегрироваться SpamAssassin.

SpamAssassin может работать в двух различных режимах: автономный режим или режим клиента/сервера. Citadel требует режима клиента / сервера - в частности, должен быть запущен демон spamd. Один из хороших способов, чтобы держать его работает, поставив запись в вашем /etc / inittab, который выглядит так:

spam:2345:respawn:/usr/bin/spamd -c -u spam

(Флаг 'c' говорит, что он должен работать на главном плане, что необходимо, когда вы начинаете вещи из init, и ' - U спам "говорит ему работать как пользователь под названием "спам" – если вы хотите использовать другое имя пользователя, идти прямо вперед.)

spamd слушает порт 783.

Как только SpamAssassin включился и начал прослушивать сокет TCP/IP, просто перейдите в Administration - > Domain names and Internet mail configuration - > spamassassin hosts и введите IP-адрес Вашего SpamAssassin сервера (который будет 127.0.0.1, если вы работаете на том же хосте, что и сервер Citadel, который рекомендуется).

Если нужно отфильтровать вирусы, процедура настройки антивирусной поддержки ClamAV очень похожа на эту.

Разработчики

Copyright ©1987-2014 команда разработчиков Citadel:

  • Клинт Адамс
  • Белловин, Стивен
  • Брайант, Натан
  • Art Cancro
  • Гарри Монета
  • Брайан Костелло
  • Эдвард Флик
  • Ник Георбит
  • Давид Дан
  • Дэйв Уэст
  • Вильфрид Гесгенс
  • Майкл Хэмптон
  • Андру Лувиси
  • Даниэль Маламент
  • Stu Mark
  • Эдвард Маршалл
  • Ben Mehlman
  • Matt Pfleger
  • Ари Самсон
  • Трей Ван Рипер
  • Джон Уокер
  • Стив Уильямс
  • Итан Янг

Источники

  1. Главная страница // Citadel. [1987—2018]. Дата обновления: 25.07.2018. URL: http://www.citadel.org/doku.php (дата обращения: 10.09.2018).
  2. Citadel/UX // Wikipedia. [1997—2018]. Дата обновления: 19.08.2018. URL: https://de.wikipedia.org/wiki/Citadel/UX (дата обращения: 10.09.2018).