The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Четвёртый выпуск реализации kdbus для ядра Linux[BR]"
Отправлено opennews, 09-Мрт-15 20:11 
Грег Кроа-Хартман (Greg Kroah-Hartman) опубликовал (https://lkml.org/lkml/2015/3/9/340) четвёртую версию патчей с реализацией kdbus, реализованной на уровне ядра Linux надёжной, быстрой и безопасной системы обмена сообщениями, поддерживающей доставку сообщений в режиме точка-точка и в режиме мультикаст (от одного отправителя к группе получателей). Kdbus может использоваться не только для альтернативных реализаций D-Bus, не требующих запуска отдельного демона в пространстве пользователя, но и в виде самодостаточного IPC, например, данная система уже поддерживается в systemd.

Система D-Bus является универсальной шиной, нашедшей широкое распространение в дистрибутивах Linux. При этом ключевыми недостатками данной системы, обусловленными реализацией D-Bus в пространстве пользователя, является слишком низкая скорость передачи сообщений и неприменимость для приложений, предъявляющих повышенные требования ко времени задержки доставки сообщений. Из-за высоких задержек D-Bus собственные реализации транспортного слоя используются для передачи данных в PulseAudio, Wayland, во фреймворке аутентификации платформы Tizen (запросы аутентификации, связанные с одним действием в интерфейсе должны отработать без задержек для корректной отрисовки результата).

Реализованный на уровне ядра Kdbus решает данные проблемы и открывает новые горизонты для использования D-Bus. Переход на Kdbus позволит унифицировать разрозненные реализации межпроцессорного взаимодействия и сократить дублирование кода между разными проектами.  Kdbus также предоставляет средства для передачи метаданных, что даёт возможность применять идентификацию и аутентификацию для участников обмена данными.  Кроме того, kdbus предоставляет общую для всей шины систему последовательной нумерации сообщений, что решает проблемы с упорядочиванием сообщений, переданных по разным каналам.


В четвёртой версии патчей продолжено проведение внутренней реструктуризации и чистки. Пересмотрена и переработана логика работы кво, для защиты от DoS-атак 50% ресурсов теперь всегда резервируется для принимающих уведомления соединений, а остальное отдаётся для удалённых узлов. Задействованы новые функции vfs_iter_write(), kstrdup_const(), kfree_const(), появившиеся в ядре 4.0-rc1. Во время установки прекращено использование второго набора слайсов, что привело к сокращению фрагментации, снижению потребления памяти и упрощению.

Из основных достоинств реализации шины kdbus на уровне ядра отмечается:

-  Высокая производительность за счёт минимизации переключения контекста процессов, меньшего выполнения операций копирования, сокращения системных вызовов, использования memfd;

-  Высокая безопасность из-за исключения влияния пользовательских процессов на содержимое шины и использования механизмов ядра для управления передачей данных, в том числе с возможностью контроля со стороны модулей LSM;
-  Более высокая устойчивость к DoS-атакам из-за возможности выделения для отправителя ограниченного временного среза при выполнении ресурсоёмких операций и назначения более высоких приоритетов для важных узлов;

-  К сообщениям могут быть прикреплены различные метаданные;

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

-  Неподверженность многим состояниям гонки, которые трудно устранить в реализации на уровне пользователя. Например, ситуация отсоединения клиента от шины только при условии отсутствия сообщений в его очереди;

-  Возможность мониторинга на уровне ядра. Привилегированные пользователи могут подключиться к потоку сообщений без создания специализированных механизмов в пространстве пользователя;


-  Возможность прямой доставки сообщения без помещения в очередь, что удобно при организации обработки запросов активации по шине;

-  Возможность доступа к шине на ранних и заключительных этапах загрузки, в том числе во время выполнения initrd.

URL: https://lkml.org/lkml/2015/3/9/340
Новость: https://www.opennet.ru/opennews/art.shtml?num=41810

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
  Введите код, изображенный на картинке: КОД
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру