Разница между DBus и другим методом межпроцессного взаимодействия

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

Но сегодня, когда я изучал Dbus, я прочитал, что: «D-Bus — это система межпроцессного взаимодействия (IPC)» (см. ссылку: https://en.wikipedia.org/wiki/D).-Bus)

Итак, мой вопрос: в чем разница между DBus и другими методами IPC?


person Viet    schedule 24.11.2015    source источник


Ответы (2)


Метод IPC один к одному имеет большую группу взаимодействующих процессов, что может привести к плотной сетке. Но в случае Dbus каждый процесс может подключаться к любому количеству процессов, которым предоставлен доступ. На общем едином совместно используемом канале пользователь может подключиться к своему сеансу или новому сеансу, не мешая сеансу другого пользователя. Это значительно увеличивает производительность

Обратитесь по ссылке

https://blogs.gnome.org/abustany/2010/05/20/ipc-performance-the-return-of-the-report/

Это показывает сравнение производительности DBus с пользовательской системой IPC. Вы лучше понимаете производительность Dbus

person Murali Manohar    schedule 24.11.2015
comment
Ну, есть и другие (классические) IPC, которые не являются строго один к одному, например. Общая память. - person Matthias; 24.11.2015
comment
почему Dbus не известен как метод ipc? - person Viet; 24.11.2015
comment
@Murali: но почему во многих документах все методы IPC не содержат DBUS? Пример: en.wikipedia.org/wiki/Inter-process_communication - person Viet; 24.11.2015
comment
@Viet DBUS использует механизмы IPC, но не реализует IPC самостоятельно. - person Murali Manohar; 24.11.2015

Тут не техническая, а историческая разница.

D-Bus раньше был не Linux (то есть ядром) IPC, а дополнительным промежуточным IPC. Но в ходе внедрения systemd D-Bus стал для нескольких дистрибутивов Linux частью базовая система.

person Matthias    schedule 24.11.2015
comment
Спасибо. Под промежуточным программным обеспечением IPC вы подразумеваете, что D-Bus находится на более высоком уровне IPC, чем en.wikipedia.org /wiki/Взаимодействие_процессов? Не могли бы вы также перечислить некоторые другие методы IPC промежуточного программного обеспечения? - person Tim; 19.12.2018
comment
Это не совсем так. Хотя systemd широко использует D-Bus, D-Bus уже был обязательным компонентом большинства бесплатных дистрибутивов для настольных компьютеров задолго до написания systemd. Это отдельные проекты. - person Philip Withnall; 06.01.2019
comment
Извините, но я не вижу, в какой части вы возражаете. Тот факт, что D-Bus использовался до systemd, не делает его (ядром) IPC. Это похоже на RPC. Вы найдете множество проектов, использующих RPC. Однако большинство реализаций RPC полагались на сокеты (которые, в свою очередь, часто являются IPC ядра). - person Matthias; 07.01.2019