Разница между 1.14 и текущей версией ПротоколWayland.
@@ -44,6 +44,55 @@
 
 Базовую информацию о том, как писать клиент и сервер настоятельно рекомендуется посмотреть тут [6].
 
+
+-- Сервер
+
+Работа начинается с того, что сервер создаёт новый объект типа ''wl_display''.
+''wl_display'' является глобальным контекстом, который используется при работе с клиентами.
+Композитору нужен один объект такого типа.
+
+После этого сервер должен создать UNIX-сокет по которому клиенты смогут подключиться к серверу.
+
+==={c}
+struct wl_display *display = wl_display_create();
+char *sockpath = wl_display_add_socket_auto(ctx->display);
+===
+
+Затем серверу необходимо зарегистрировать те интерфейсы и их версии, которые он поддерживает.
+
+==={c}
+struct wl_compositor *compositor = wl_global_create(display, &wl_compositor_interface,
+	3, userdata, &bind_compositor);
+===
+
+При этом ''wl_compositor_interface'' -- это структура типа ''wl_interface'',
+которая содержит базовое описание интерфейса (имя, версия, количество типов запросов, ...).
+''bind_compositor'' — это функция, которая будет вызвана,
+когда клиент попытается создать объект с этим интерфейсом.
+
+Основной работой bind_compositor будет создание 
+нового объекта (в терминах wayland -- ресурса), который будет связан с этим клиентом.
+При создании этого объекта сервер передаёт callback-функции, которые будут обрабатывать запросы клиента. 
+
+==={c}
+static const struct wl_compositor_interface compositor_interface = {
+	.create_surface = compositor_create_surface,
+	.create_region = compositor_create_region
+};
+static void bind_compositor(struct wl_client *client, void *data, uint32_t version, uint32_t id)
+{
+	struct wl_resource *resource = wl_resource_create(client, &wl_compositor_interface,
+				      version, id);
+
+	wl_resource_set_implementation(resource, &compositor_interface, data, NULL);
+}
+===
+
+Помимо функций для обработки запросов ''wl_resource_set_implementation'' позволяет связать с ресурсом
+произвольные пользовательские данные.
+
+Подобным образом происходит работа со всеми интерфейсами в wayland. Сервер регистрирует обработчики запросов на каждый ресурс и в них реализует всю логику работы приложения. 
+
 [[https://blog.4castplus.com/hubfs/Imported_Blog_Media/work_in_progress.jpg||350px]]
 
 Структура библиотеки: