Welcome,
Guest
|
TOPIC:
D-Bus Broker 4 years 11 months ago #3710
|
Важливою складовою популярних дистрибутивів 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 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, і виконуємо кроки з побудови та встановлення, що описані вище. |
Moderators: Владимир Попов
Time to create page: 0.101 seconds