LINUX.ORG.RU

История изменений

Исправление hateyoufeel, (текущая версия) :

Ну вроде следующие шаги же были очевидны. Вот есть у вас универсальная шина. Ну ок. Ну тогда завяжите максимум на неё. Логически отвяжите её от хоста, сделайте её местом встречи друг с другом провайдеров различных типов ресурсов и их потребителей, таких как (удалённые) принтеры, каналы вывода и ввода звука, порты доступа к видеоускорителям, удалённые файловые системы и так далее.

А низзя. По двум причинам:

  1. dbus тормозит как овощ. Если вспомнишь драму 10-летней давности про kdbus, то причина была как раз в этом. Если ты будешь пихать слишком много сообщений, шина встанет колом. Адекватной задержки от dbus ждать тоже не приходится, т.е. у тебя реакция на запрос может быть дольше чем пинг в другой конец страны.

  2. у dbus с безопасностью примерно полный швах, впрочем как и в целом в линуксе. Всё держится только на том, что линуксоеды в основном ставят код только из проверенных паразиториев. Но если к этому будет удалённый доступ, то всё, можно будет вешаться. Изначально в dbus была возможность доступа через сеть, я году в 2008 вроде даже пытался что-то такое с ним делать, но не осилил. В итоге от этого отказались.

В общем, если тебе нужно запросить название текущего трека у музыкального плеера, то тут dbus – прямо топчик. А если ты хочешь по нему гонять большие массивы данных – экран моего компа сейчас при разрешении 51202160 требует 2.6 гигабайта в секунду, если без сжатия (5120px2160px4bpp60кадров) – с жёсткими требованиями по времени, то тут полный обсёр и можно закапываться.

И тут мы приходим к главной проблеме: в десктопном Linux тупо нет подходящего IPC. За 30 лет его не то что не разработали, про это даже думать боятся. Есть вагон разных примитивов, в основном древних как сам UNIX – сокеты, сигналы, шареная память и прочая срань – но собрать из этого адекватную шины для межпроцессного взаимодействия почему-то никто не осилил.

Тут можно вспомнить мою любимую статью про Linux/Unix, которой в минувшем августе стукнуло аж 11 лет, но она остаётся всё ещё весьма актуальной: https://queue.acm.org/detail.cfm?id=2349257. Очень рекомендую, если есть лишние 5 минут за кофе.

Исходная версия hateyoufeel, :

Ну вроде следующие шаги же были очевидны. Вот есть у вас универсальная шина. Ну ок. Ну тогда завяжите максимум на неё. Логически отвяжите её от хоста, сделайте её местом встречи друг с другом провайдеров различных типов ресурсов и их потребителей, таких как (удалённые) принтеры, каналы вывода и ввода звука, порты доступа к видеоускорителям, удалённые файловые системы и так далее.

А низзя. По двум причинам:

  1. dbus тормозит как овощ. Если вспомнишь драму 10-летней давности про kdbus, то причина была как раз в этом. Если ты будешь пихать слишком много сообщений, шина встанет колом. Адекватной задержки от dbus ждать тоже не приходится, т.е. у тебя реакция на запрос может быть дольше чем пинг в другой конец страны.

  2. у dbus с безопасностью примерно полный швах, впрочем как и в целом в линуксе. Всё держится только на том, что линуксоеды в основном ставят код только из проверенных паразиториев. Но если к этому будет удалённый доступ, то всё, можно будет вешаться. Изначально в dbus была возможность доступа через сеть, я году в 2008 вроде даже пытался что-то такое с ним делать, но не осилил. В итоге от этого отказались.

В общем, если тебе нужно запросить название текущего трека у музыкального плеера, то тут dbus – прямо топчик. А если ты хочешь по нему гонять большие массивы данных – экран моего компа сейчас при разрешении 51202160 требует 2.6 гигабайта в секунду, если без сжатия (5120px2160px4bpp60кадров) – с жёсткими требованиями по времени, то тут полный обсёр и можно закапываться.

И тут мы приходим к главной проблеме: в Linux тупо нет подходящего IPC. За 30 лет его не то что не разработали, про это даже думать боятся. Есть вагон разных примитивов, в основном древних как сам UNIX – сокеты, сигналы, шареная память и прочая срань – но собрать из этого адекватную шины для межпроцессного взаимодействия почему-то никто не осилил.

Тут можно вспомнить мою любимую статью про Linux/Unix, которой в минувшем августе стукнуло аж 11 лет, но она остаётся всё ещё весьма актуальной: https://queue.acm.org/detail.cfm?id=2349257. Очень рекомендую, если есть лишние 5 минут за кофе.