Serj Kalichev hace 1 año
padre
commit
c085e228b6
Se han modificado 1 ficheros con 52 adiciones y 2 borrados
  1. 52 2
      docs/klish3.ru.md

+ 52 - 2
docs/klish3.ru.md

@@ -1,4 +1,4 @@
-# Klish версии 3
+# Klish версия 3
 
 ## Обзор
 
@@ -41,4 +41,54 @@
 Klish в первую очередь расчитан на подход Cisco, т.е. на немедленно выполняемые
 команды. Однако проект имеет систему плугинов, что позволяет расширять его
 возможности. Так плугин klish-plugin-sysrepo, реализованный отдельным проектом,
-работая на основе хранилища sysrepo, позволяет организовать Juniper подход.
+работая на основе хранилища sysrepo, позволяет организовать Juniper подход.
+
+
+## Основные сведения
+
+Основа проекта klish - библиотека libklish. На ее основе построены клиент klish
+и сервер klishd. Основную работу выполняет сервер klishd. Он загружает
+конфигурацию команд и ожидает запросов от клиентов. Взаимодействие между
+клиентами и сервером происходит по UNIX-сокетам с использованием специально
+разработанного для этой цели протокола KTP (Klish Transfer Protocol). Задача
+клиента - передача ввода от оператора на сервер и получение от него
+результата для показа оператору. Клиент не знает, какие команды существуют,
+как их выполнять. Все это делает серверная сторона. Так как клиент имеет
+относительно простой код, не трудно реализовать альтернативные программы -
+клиенты, например графический клиент или клиент для автоматизированного
+управления. Сейчас написан только текстовый клиент klish. Когда клиент
+соединяется с сервером, порождается отдельный процесс для обслуживания
+конкретного клиента. При завершении сессии, процесс также завершается. Таким
+образом типичное применение klish - это заранее запущенный в системе сервер
+klishd и клиенты, подключающиеся к нему по мере надобности.
+
+Klish имеет два типа плугинов. Плугины для загрузки конфигурации команд
+(директория dbs/ в дереве исходных кодов) и плугины, реализующие действия для
+команд (директория plugins/ в дереве исходных кодов).
+
+Для настройки параметров сервера используется конфигурационный файл
+'/etc/klish/klishd.conf'. Альтернативный конфигурационный файл можно указать при
+запуске сервера klishd.
+
+Для настройки параметров клиента используется конфигурационный файл
+'/etc/klish/klish.conf'. Альтернативный конфигурационный файл можно указать при
+запуске клиента klish.
+
+
+## Загрузка конфигурации команд
+
+В составе klish существуют следующие плугины dbs (DataBases) для загрузки
+конфигурации команд (схемы):
+
+* expat - Использует библиотеку expat для загрузки конфигурации из XML.
+* libxml2 - Использует библиотеку libxml2 для загрузки конфигурации из XML.
+* roxml - Использует библиотеку roxml для загрузки конфигурации из XML.
+* ischeme - Использует встроенную в C-код конфигурацию (Internal Scheme).
+
+Существует внутреннее представление схемы, совпадающее с ischeme.
+Остальные плугины переводят внешние представление в ischeme, а klish
+обрабатывает ischeme внутренними механизмами.
+
+Установленные плугины dbs находятся в '/usr/lib/klish/dbs' (если конфигурировать
+сборку с --prefix=/usr). Их имена 'kdb-<имя>.so', например
+'/usr/lib/klish/dbs/kdb-libxml2.so'.