LINUX.ORG.RU

В рамках проекта D-Bus Broker развивается замена шины D-Bus

 ,


2

5

Дэвид Герман (David Herrmann), в своё время разработавший шину обмена сообщениями Bus1 для ядра Linux, представил новый проект D-Bus Broker, в рамках которого предпринята попытка переосмысления D-Bus и создания новой реализации, устраняющей недостатки штатного демона D-Bus. Код проекта написан на языке Си и распространяется под лицензией Apache 2.0.

Мотивом создания новой реализации стала излишняя раздутость и переусложнённость dbus-daemon, в сочетании с обилием отражённых в системе отслеживания ошибок проблем - от неконтролируемого расходования памяти и пропадании сообщений, до возникновения взаимных блокировок и крахов процесса. Некоторые из проблем остаются нерешёнными до 7 лет, в большей части из-за того, что их принципиально невозможно устранить без нарушения гарантированной в dbus-daemon функциональности и существенных архитектурных изменений.

В отличие от Bus1 проект D-Bus Broker реализован целиком в пространстве пользователя, остаётся полностью совместим с эталонной реализацией D-Bus и может быть использован для прозрачной замены dbus-daemon. При этом новая реализация спроектирована с оглядкой на поддержку востребованной на практике функциональности и уделяет главное внимание работе по увеличению производительности и повышению надёжности. В D-Bus Broker также принципиально не реализованы функции, помеченные как устаревшие, и расширенные возможности, не отражённые в спецификации D-Bus.

Ключевые архитектурные изменения в D-Bus Broker:

  • Уход от идеи глобальной совместной шины (Shared Medium), к которой соединяются все обработчики сообщений и через которую осуществляется отправка сообщений. Вместо общей шины предложена концепция отдельных пиров, не имеющих глобального состояния. Когда какой-то пир отправляет сообщения, эта операция рассматривается как транзакция между отправителем и одной или несколькими точками назначения.
  • Отказ от использования дополнительных IPC-механизмов, так как D-Bus сам по себе является IPC и создание надстроек IPC над IPC приводит к появлению взаимных блокировок. Иными словами D-Bus Broker является самодостаточным процессом, который позволяет оперировать только локальными данными и не привязан к внешним обработчикам, таким как чтение файлов и обращение к NSS.
  • Учёт ресурсов в привязке к пользователям. Каждый ресурс и переданный в шину объект привязан к конкретному пользователю. Таким образом, существенно упрощается реализации ограничений и лимиты больше не привязываются к пиру (ограничения теперь зависят от активности каждого пользователя, а не от общей нагрузки на обработчик).
  • Воплощение принципа, что сообщение никогда не может быть потеряно без обработки ошибки. В случае возникновения проблем не допускается возникновения неопределённых ситуаций, каждая ошибка доставки должна быть выявлена и обработана, а в случае невозможности обработки ошибки процесс должен завершить свою работу, а не просто игнорировать возникшие проблемы.

Что касается высокой производительности D-Bus Broker, то её ценой является привязка к современным окружениям Linux - для своей работы проект требует наличия ядра Linux 4.10 и glibc 2.16, и принципиально не может быть использован в старых дистрибутивах Linux или в других ОС. Предоставляются опциональные компоненты для интеграции с systemd и SELinux. Обеспечивается работа только локального IPC без поддержки сетевого взаимодействия (при необходимости проброса на другой хост предлагается пробрасывать локальный сокет через SSH).

>>> Подробности на OpenNet.ru



Проверено: anonymous_incognito ()
Последнее исправление: anonymous_incognito (всего исправлений: 3)

Мотивом создания новой реализации стала излишняя раздутость и переусложнённость dbus-daemon, в сочетании с обилием отражённых в системе отслеживания ошибок проблем - от неконтролируемого расходования памяти и пропадании сообщений, до возникновения взаимных блокировок и крахов процесса. Некоторые из проблем остаются нерешёнными до 7 лет, в большей части из-за того, что их принципиально невозможно устранить без нарушения гарантированной в dbus-daemon функциональности и существенных архитектурных изменений.

Вот что значит не unix way.Пишите программы, которые делают что-то одно и делают это хорошо.

Odalist ★★★★★
()

то её ценой является привязка к современным окружениям Linux

Значит опять будет гогно. И это опять не unix way...

Odalist ★★★★★
()
Ответ на: комментарий от Odalist

А как вторая часть твоего поста вытекает из первой?

xoraby
() автор топика
Ответ на: комментарий от Odalist

Нет, я приверженец хорошего. Однако о в сфере д-бас мои познания весьма скудны, поэтому спорить я не собираюсь.

xoraby
() автор топика

> принципиально не может быть использован в старых дистрибутивах Linux или в других ОС

FreeBSD всё ещё не трогают эти люди. Вот и хорошо. Ещё как минимум несколько лет можно будет спокойно пользоваться.

ZenitharChampion ★★★★★
()
Ответ на: комментарий от xoraby

Нет, я приверженец хорошего.

Новое, не всегда хорошо. А судя по новости

её ценой является привязка к современным окружениям Linux - для своей работы проект требует наличия ядра Linux 4.10 и glibc 2.16

это далеко не хорошо.

Odalist ★★★★★
()
Ответ на: комментарий от ZenitharChampion

На самом деле какую-то BSD нужно довести до юзабельного состояния и поддерживать на плаву. Уже хотя бы для того, чтобы старпёрам, нытикам, истеричкам, параноикам и прочим лицам с тончайшей душевной организацией было куда уходить. Лепрозорий эдакий. Там они никому не будут мешать.

JacobTwoTwo
()

Бред какой-то. dbus нельзя починить не сломав совместимость. От него надо избавляться на корню.

mittorn ★★★★★
()
Ответ на: комментарий от Odalist

это далеко не хорошо

В чем трабл? Через какое-то время все дистрибы перейдут на него и можно будет думать об использовании.

anonymous
()
Ответ на: комментарий от anonymous

Перейдут на 4.10 имелось ввиду

anonymous
()
Ответ на: комментарий от dinn

А что плохого? В уже вышедшие версии дистрибутивов никто новинки не внедряет.

Это

Обеспечивается работа только локального IPC без поддержки сетевого взаимодействия (при необходимости проброса на другой хост предлагается пробрасывать локальный сокет через SSH).

И это

привязка к современным окружениям Linux

Odalist ★★★★★
()

и распространяется под лицензией Apache 2.0

Чего это они вдруг? До сих пор же вроде всё под ГПЛ было. Неужто каким проприетарщикам подмахнуть надеются?

zabbal ★★★★★
()
Ответ на: комментарий от Odalist

А нафига в абсолютно новом продукте совместимость с говном мамонта? Пока его допилят еще куча воды утечет.

mandala ★★★★★
()

для своей работы проект требует наличия ядра Linux 4.10 и glibc 2.16, и принципиально не может быть использован в старых дистрибутивах Linux или в других ОС.

В пеЧь.

Oxdeadbeef ★★★
()

Вот что бывает, когда dcop пытаются тащить для обслуживания всей системы, а не посылания сообщений окошкам, называя это dbus.

Quasar ★★★★★
()

Что касается высокой производительности D-Bus Broker, то её ценой является привязка к современным окружениям Linux - для своей работы проект требует наличия ядра Linux 4.10 и glibc 2.16

Если уж ломать совместимость, то почему не сделать сразу нормальный механизм IPC, а не совместимый с dbus? Короче - неоправданное говно получается. Пожелаем же дружно этому проекту поскорее сдохнуть!

Quasar ★★★★★
()
Последнее исправление: Quasar (всего исправлений: 1)
Ответ на: комментарий от JacobTwoTwo

С такими высерами как сабж лепрозорием скоро станет линукс.

Quasar ★★★★★
()
Ответ на: комментарий от anonymous

Проблема в том, что в сабжевом проекте используется философия проектирования на базе психически ненормального мышления.

Quasar ★★★★★
()
Ответ на: комментарий от Odalist

Имхо что то одно. Или универсально, быстро и надежно. Или через сеть и в любой ОС.

Очередь сообщений по сети реализована десятки раз. Если все эти mq не подходят dbus, значит, это невозможно в принципе.

AVL2 ★★★★★
()

Кто-то сетью в dbus пользуется вообще?

А так молодцы что сохраняют совместимость, задолбали уже переписывать с какахи на какаху со словами «ну уж на этот раз мы всё задизайнили хорошо»

Gary ★★★★★
()

Если будет лучше и быстрее - то почему бы и нет.

vblats
()

Мотивом создания новой реализации ... Некоторые из проблем остаются нерешёнными до 7 лет, в большей части из-за того, что их принципиально невозможно устранить без нарушения гарантированной в dbus-daemon функциональности

И при этом

D-Bus Broker реализован целиком в пространстве пользователя, остаётся полностью совместим с эталонной реализацией D-Bus и может быть использован для прозрачной замены dbus-daemon

Значит старые проблемы не решены или как?

A-234 ★★★★★
()
Ответ на: комментарий от Odalist

Так маргинал-ос в принципе неюзабельны.

xoraby
() автор топика
Ответ на: комментарий от Odalist

то её ценой является привязка к современным окружениям Linux

Значит опять будет гогно. И это опять не unix way...

А привязка ядра к userspace в *BSD это unix way?

asaw ★★★★★
()
Ответ на: комментарий от xoraby

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

A-234 ★★★★★
()
Ответ на: комментарий от Quasar

Если уж ломать совместимость, то почему не сделать сразу нормальный механизм IPC, а не совместимый с dbus?

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

Axon ★★★★★
()
Ответ на: комментарий от JacobTwoTwo

Линукс, если что, сделали "старперы"

Да и сам Линус тот еще «нытик», а вот такие как ты «современные и динамичные» кроме адовой помойки systemd ничего не делают, но вот как сломать что-то - всегда рядом...

P.S. Изменения должны быть оправданными, если же кто то топит за изменения ради изменений надо бы присмотреться, так ли чисты его намерения, как декларируются, и не пытается ли человек создать проблему, на решении которой он поднимет немалые деньги.

anonymous
()

Apache 2.0

Фу, пермессивщина

ya-betmen ★★★★★
()

а кто теперь будет переписывать сустемд который весь на «глобальном дбасе», разве нет? и сколько багов в нём наделают пока будут модифицировать этот блевотный блоб? кажется любителей поттеринга в скором времени ожидают новые увлекательные приключения.

anonymous
()
Ответ на: комментарий от intelfx

OMG, щас набигут. Зато теперь есть гарантия, что эта штука будет у меня на десктопе.

xoraby
() автор топика
Ответ на: комментарий от intelfx

хочешь сказать, что любителей поттеринга ожидает в два раза больше приключений чем они думали? я пойду CVE пока зарезервирую.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.