Уведомления
Очистить все

D-Bus Broker

Anonymous
 Anonymous
(@Anonymous)
Guest

Важливою складовою популярних дистрибутивів Linux, є система міжпроцесної комунікації під назвою D-Bus. Простіше кажучи – застосунки можуть спілкуватися між собою, реагуючи на відповідні повідомлення, передаючи-отримуючи дані, тощо. Для ядра також вже досить давно реалізована шина обміну повідомленнями Bus1. У зв'язку з цим – D-Bus також ще називають D-Bus1.
Приблизно пару років тому назад, розробник Bus1 започаткував проект D-Bus Broker. Мотивом для створення цього проекту стало те, що демон D-Bus занадто переускладнений, а також має помилки, які не можливо виправити без досить значних втручань в архітектуру D-Bus, і, відповідно, без порушення гарантованої D-Bus функціональності. D-Bus Broker надає нову реалізацію шини D-Bus, але при цьому повністю сумісний з еталонною реалізацією D-Bus, може прозоро замінювати штатний демон D-Bus. Проект зфокусований на кращій швидкодії та продуктивності, а також на усуненні недоліків D-Bus. Також зазначу, що D-Bus Broker працює у користувацькому просторі. Дистрибутиви на кшталт Fedora вже використовують D-Bus Broker типово.
Для користувачів це означає те, що при використанні D-Bus Broker можуть частково або повністю зникнути ситуації, коли застосунки працюють в деяких випадках повільно, або ж не стабільно. Іншими словами – якщо застосунок повільно реагує на дії користувача, то це може бути пов'язано не лише з самим застосунком, але й з недоліками D-Bus (не контрольованою втратою повідомлень, витоками пам'яті, і тому подібне).
Наприклад незрячі користувачі, використовуючи скрін-рідер Orca, досить часто зтикаються з тим що в застосунку Thunderbird, переходячи до теки з дуже великою кількістю повідомлень, Orca немовби замислюється на деякий час. І цей час може бути досить довгим. У цій ситуації частково винен саме D-Bus, оскільки компонент допоміжних технологій (AT-SPI) взаємодіє з D-Bus; А скрін-рідер Orca, у свою чергу, взаємодіє з компонентом допоміжних технологій для надання користувачеві необхідної інформації. Якщо ж використовувати в цій ситуації D-Bus Broker, то Orca буде реагувати на теки з великою кількістю повідомлень у Thunderbird значно швидше.
Платою за кращу швидкодію та продуктивність D-Bus Broker можна вважати його вимоги. Працювати D-Bus Broker буде лише на відносно сучасних Linux-дистрибутивах (необзідне ядро версії не нижче ніж 4.10, а також GLibC не нижче 2.16).
Користувачі Ubuntu-OEM-Pack-MATE 18.04, можуть без проблем інсталювати D-Bus Broker. Для цього:

1. Встановлюємо пакунки, необхідні для побудови D-Bus Broker. Мені знадобилося лише встановити систему побудови з вихідного коду Meson, а також пакунки pkg-config та libsystemd-dev. Для встановлення цих пакунків необхідно виконати команду:

sudo apt install pkg-config meson libsystemd-dev

Також необхідно встановити пакунок git, якщо він відсутній;

2. Необхідно клонувати GIT-сховище D-Bus Broker. Для цього, потрібно створити теку, в якій буде зберігатися каталог з клонованим сховищем, після чого перейти до неї. Використовуючи термінал, це можгна зробити наступним чином:

2.1. Відкривши термінал, створюємо теку з назвою repos такою командою

mkdir repos

Замість repos, звичайно ж, кожен може використовувати власну назву теки;

2.2. переходимо до цієї теки командою

cd repos

Для клонування GIT-сховища, необхідно виконати команду

git clone https://github.com/bus1/dbus-broker.git

3. Перейшовши до каталогу з клонованим сховищем за допомогою команди

cd dbus-broker

створюємо теку build:

mkdir build

4. переходимо до створеної теки

cd build

5. Виконуємо команду, яка налаштовує середовище побудови

meson setup

6. Виконуємо команду

ninja

для побудови D-Bus Brokerз вихідного коду. Зауважте! Після виконання цієї та попередньої команд, про всяк випадок, необхідно читати текст, що надходить до терміналу. Мені знадобилися лише два вище зазначених пакунка; Але може статися так, що, наприклад, у оригінальній Ubuntu 18.04, потрібно буде встановити якісь додаткові компоненти. Якщо це саме ваша ситуація, то при виконанні цих команд Meson підкаже, який компонент відсутній у вашій системі;

7. виконуємо команду

ninja test

8. Встановлюємо D-Bus Broker, використовуючи команду:

sudo ninja install

9. Активуємо сервіс D-bus Broker такими командами

sudo systemctl enable dbus-broker.service

sudo systemctl --global enable dbus-broker.service

Після перезавантаження системи, D-Bus Broker одразу почне працювати.
Для оновлення GIT-сховища, тобто для отримання найновішого вихідного коду, в каталозі сховища необхідно періодично виконувати команду

git pull

Для встановлення новішої версії D-Bus Broker, краще спочатку видалити стару, використовуючи наступний порядок дій:

1. Деактивуємо сервіси D-Bus Broker командами

sudo systemctl --global disable dbus-broker.service

sudo systemctl disable dbus-broker.service

2. Перейшовши до створеної теки build, виконуємо команду

sudo ninja uninstall

3. Задля страховки від несподіванок, повертаємося в каталог зі сховищем командою

cd ../

і видаляємо створену нами теку build, із усім її вмістом

sudo rm -R build/

4. Знову створюємо теку build, і виконуємо кроки з побудови та встановлення, що описані вище.

Цитата
Размещено : 26/05/2019 9:33 пп
Поделиться:

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.