The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Представлена реализация шины D-Bus, работающая на уровне Linux-ядра

16.09.2010 16:39

Разработчики из компании Collabora представили проект kdbus, в рамках которого создан экспериментальный прототип шины для межпроцессного обмена сообщениями D-Bus, работающий на уровне Linux-ядра. Встраивание D-Bus в ядро позволило существенно повысить производительность за счет уменьшения числа копирования областей памяти и минимизации числа переключения контекста между ядром и процессом-демоном, работающим на прикладном уровне.

В kdbus для отправки сообщений реализован новый тип сокетов AF_DBUS, который напоминает Unix-сокеты и позволяет доставлять сообщения приложению-получателю напрямую, без задействования процесса-посредника (dbus-daemon). Изменения внутренней структуры организации обмена сообщениями не заметно для конечных приложений, так как они используют функции библиотеки libdbus, внешний API которой остался неизменен. Текущая реализация kdbus пока полностью не избавилась от необходимости запуска dbus-daemon, который используется для аутентификации и активации D-Bus, драйвер org.freedesktop.DBus также пока реализован только через dbus-daemon.

Измерение производительности утилитой dbus-ping-pong показало, что kdbus оказался быстрее реализации D-Bus на уровне пользователя в 1.8 раз для платформы i386 (тестовое окружение было запущено под управлением KVM) и в 3 раза для платформы ARM (использовался смартфон Nokia N900). При использовании другого тестового набора прирост производительности был на уровне 26%.

  1. Главная ссылка к новости (http://alban.apinc.org/blog/20...)
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/27984-dbus
Ключевые слова: dbus, message, ipc, kernel, linux
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (120) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, svn (??), 17:26, 16/09/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Если доделать дбас чтобы общение между процессами было без посредника, будет ещё лучше. И в ядро лезть не надо. ;)
     
     
  • 2.8, xxx (??), 17:50, 16/09/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Например, как это сделать?
     
     
  • 3.16, Аноним (-), 18:01, 16/09/2010 [^] [^^] [^^^] [ответить]  
  • +7 +/
    >Например, как это сделать?

    Надо libastral подключить при компиляции.

     
     
  • 4.33, max (??), 19:40, 16/09/2010 [^] [^^] [^^^] [ответить]  
  • +/
    $-))) +1024
     
  • 3.90, anonymous (??), 15:40, 17/09/2010 [^] [^^] [^^^] [ответить]  
  • +/
    >Например, как это сделать?

    Уже сделали. Local Domain Sockets называется.


     
     
  • 4.144, Аноним123321 (ok), 21:05, 19/09/2010 [^] [^^] [^^^] [ответить]  
  • +/
    1 Desktop-демон -- работая под Desktop-user-UID -- не сможет создать unix-сокет... большой текст свёрнут, показать
     
     
  • 5.145, Аноним123321 (ok), 21:11, 19/09/2010 [^] [^^] [^^^] [ответить]  
  • +/
    некоторые особо КРИВОРУКИЕ программаммисты вообще используют ОБЫЧНЫЕ сокеты в своих Desktop-демонах (не unix-сокеты и не DBus)

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

    хотя DBus не создаёт таких ограничений (на каждый рабочий стол создаётся своя [не-системная] DBus-сессия)

     
  • 2.41, Аноним (-), 21:12, 16/09/2010 [^] [^^] [^^^] [ответить]  
  • +/
    SHM?
     

  • 1.9, Аноним (-), 17:52, 16/09/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Безопасность не сильно пострадает?
     
     
  • 2.32, аноним (?), 19:35, 16/09/2010 [^] [^^] [^^^] [ответить]  
  • +1 +/
    модуль в блэклист и все дела.
    серверам он не особо то нужен.
     

  • 1.10, Одмин (?), 17:53, 16/09/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    блииин, это самый кривой протокол какой только можно придумать. И его в ядро засунуть хотят :(.
     
     
  • 2.14, Dcow (ok), 18:00, 16/09/2010 [^] [^^] [^^^] [ответить]  
  • +/
    работа на уровне ядра уже равно "запихнуть" в ядро?
     
  • 2.15, devl547 (?), 18:00, 16/09/2010 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Этот "кривой протокол" юзает куча софта.
     
     
  • 3.24, Одмин (?), 18:19, 16/09/2010 [^] [^^] [^^^] [ответить]  
  • +/
    >Этот "кривой протокол" юзает куча софта.

    А винды-то сколько человек юзает...

     
     
  • 4.30, аноним (?), 19:32, 16/09/2010 [^] [^^] [^^^] [ответить]  
  • +/
    а сколько из них знают что такое com-объект...
     
     
  • 5.34, pavlinux (ok), 19:53, 16/09/2010 [^] [^^] [^^^] [ответить]  
  • +7 +/
    Я знаю, я знаю.... это command.com на диске Ц:\
     
     
  • 6.48, аноним (?), 21:32, 16/09/2010 [^] [^^] [^^^] [ответить]  
  • +/
    com-формат больше не поддерживается. :D
     
     
  • 7.63, pavlinux (ok), 00:37, 17/09/2010 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >com-формат больше не поддерживается. :D

    Ваабще?!

     
     
  • 8.71, аноним (?), 03:03, 17/09/2010 [^] [^^] [^^^] [ответить]  
  • +/
    попробуй потом расскажешь ... текст свёрнут, показать
     
  • 2.20, аноним (?), 18:10, 16/09/2010 [^] [^^] [^^^] [ответить]  
  • +6 +/
    чем крив?
    конструктивнее, тролли! конструктивнее.
     
     
  • 3.23, Одмин (?), 18:18, 16/09/2010 [^] [^^] [^^^] [ответить]  
  • –5 +/
    кто юзал эти либы в C-проектах тот поймёт
     
     
  • 4.26, аноним (?), 18:21, 16/09/2010 [^] [^^] [^^^] [ответить]  
  • +6 +/
    я юзал.
    и поверьте, писать com-объект в С++ (даже не С) - гораздо (в периоде) геморней.
     
     
     
     
    Часть нити удалена модератором

  • 7.50, аноним (?), 22:01, 16/09/2010 [^] [^^] [^^^] [ответить]  
  • +2 +/
    не только. молодой человек привёл пример дкома, который просто напросто является COM + DCE/RPC http://ru.wikipedia.org/wiki/Component_Object_Model#DCOM
    и видимо он не знает для каких платформ rpc является родной, откуда пришёл маршалинг, stab-функции, пул-потоков,...
    а если он узнает откуда взялись GUID'ы и по какому алгоритму (и чьему) работает guidgen он видимо впадёт в ступор.
    а если выживет, то его явно должна добить возможность реализации данной функциональности под виндами самому (http://www.rsdn.ru/article/files/libs/RPCLib.xml), ибо кому-то кажется, что com слижком медленный и не безопасный.
    для интересующихся рекомендую посмотреть в конце статьи ссылки на литературы. есть очень знакомые фамилии.
     
  • 4.42, Аноним (-), 21:13, 16/09/2010 [^] [^^] [^^^] [ответить]  
  • +/
    на сайте с доками специально написано, что надо юзать не напрямую, а через биндинги для glib
     
  • 3.91, anonymous (??), 15:41, 17/09/2010 [^] [^^] [^^^] [ответить]  
  • –2 +/
    >чем крив?

    Реалиазцией. Это очевидно.


     
     
  • 4.129, аноним (?), 05:01, 18/09/2010 [^] [^^] [^^^] [ответить]  
  • +/
    бред.
    реализацией он хорош.
    пока сеть с шифрованием не до-делана.
     
  • 2.29, User294 (ok), 19:12, 16/09/2010 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Эээ а вы не хотите раскритиковав предложить на замену что-то лучше? Кривой или нет, но работает и юзается кучей софта. А то что нет предела совершенству - уже давно знает любой дятел.
     
     
  • 3.47, аноним (?), 21:28, 16/09/2010 [^] [^^] [^^^] [ответить]  
  • –4 +/
    >Эээ а вы не хотите раскритиковав предложить на замену что-то лучше?

    Какая еще замена Dbus? Это концепция сама по себе идиотична, ей не нужна замена, ее просто не должно быть.

    >Кривой или нет, но работает и юзается кучей софта.

    Windows юзается кучей софта. И именно что кучей, жирной и дымящейся. Сосбтвенно, кроме DE которым положено состоять из костылей более чем наполовину, нигде эта гадость не используется.

     
     
  • 4.52, аноним (?), 22:13, 16/09/2010 [^] [^^] [^^^] [ответить]  
  • +1 +/
    а её кто-то резко решил в сервера добавлять? (системд правда тут уже вспоминали, но на серверах мне гораздо больше нравится sys5r4 - дубово, надёжно, понятно)

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

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

     
     
  • 5.62, аноним (?), 00:00, 17/09/2010 [^] [^^] [^^^] [ответить]  
  • –3 +/
    >странное, безаппеляционное мнение. свобода - это не когда все делают, что тебе
    >нужно. это когда ты можешь делать, что тебе нужно.
    >т.е. не хочешь - не пользуйся. это же не com какой-то.

    Это ничем от com не отличается. И когда на него всё больше софта завязано от него также не откажешься.

     
     
  • 6.66, szh (ok), 01:32, 17/09/2010 [^] [^^] [^^^] [ответить]  
  • +/
    3 поста подряд никакой конкретной критики, только вой "какой плохой". Ненужное мнение а не комментарии, завязывай.
     
  • 6.67, аноним (?), 01:55, 17/09/2010 [^] [^^] [^^^] [ответить]  
  • +/
    >Это ничем от com не отличается.

    бред.

     
  • 4.101, User294 (ok), 17:45, 17/09/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Например какой-нибудь иной универсальный интерфейс IPC, более-менее общепризнанн... большой текст свёрнут, показать
     
  • 4.139, Knuckles (ok), 15:51, 18/09/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Вот и опеннет постигла судьба башорга - прогрессивная школота захватила ресурс.
    >Это концепция сама по себе идиотична

    Обмен сообщениями между программами идиотичен? Ну-ну. Что еще сморозишь?

     
  • 2.74, Coder (?), 09:30, 17/09/2010 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А ты сам какой прямой протокол специфицровал и реализовал?
    Может COM?
     

  • 1.31, Кракен (?), 19:34, 16/09/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Отлично. Еще один плюсик для systemd.
     
  • 1.36, segoon (ok), 19:59, 16/09/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Этот демон нужен исключительно ради авторизации, зачем повышать скорость? Тут важнее безопасность.

    Для скорости надо юзать UNIX-сокеты/пайпы, если не хватает - отображения в память.

     
     
  • 2.39, segoon (ok), 20:07, 16/09/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Ошибся - не только для авторизации, ещё для уведомления системы/пользователя о каком-то событии.  Но всё равно я не вижу смысла в повышении скорости.
     
     
  • 3.40, Аноним (-), 21:10, 16/09/2010 [^] [^^] [^^^] [ответить]  
  • –1 +/
    а теперь давай еще одну поправку, и чтоб правильно
     
     
  • 4.45, hawl (?), 21:25, 16/09/2010 [^] [^^] [^^^] [ответить]  
  • +/
    лучше пусть молчит
     

  • 1.38, pavlinux (ok), 20:07, 16/09/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Даёшь ядро с торрент-клиентом и видео-плеером!!!!
     
     
  • 2.53, аноним (?), 22:16, 16/09/2010 [^] [^^] [^^^] [ответить]  
  • +1 +/
    и с рецептом прошивки оного во все mp3-плейеры, включая айфоны, утюги, самовары.

    смех-смехом, но и этому может быть отличное применение.

     
     
  • 3.64, pavlinux (ok), 00:38, 17/09/2010 [^] [^^] [^^^] [ответить]  
  • +/
    >и с рецептом прошивки оного во все mp3-плейеры, включая айфоны, утюги, самовары.
    >
    >
    >смех-смехом, но и этому может быть отличное применение.

    http://home.comcast.net/~fbui/

     
  • 2.72, KERNEL_PANIC (ok), 09:11, 17/09/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Ага, ага, и переписанного на питоне
     
  • 2.102, User294 (ok), 17:48, 17/09/2010 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >Даёшь ядро с торрент-клиентом и видео-плеером!!!!

    Ну, как минимум HTTP сервер в ядро запихивали, IIRC...

     
     
  • 3.130, аноним (?), 05:02, 18/09/2010 [^] [^^] [^^^] [ответить]  
  • +/
    и отлично работал кстати.
    вот только статика без пыхпыхов и мускулей мало уже кому нужна.
     

  • 1.44, аноним (?), 21:24, 16/09/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Это кривой костыль. Межпроцессное взаимодействие всегда делалось через пайпы, unix domain sockets, и shared memory. Зачем тут нужен левый демон, совершенно не понятно - у меня удалены все dbus'овские бинаники, и даже тот софт который требует это гoвнецо при сборке, работает замечательно. Минус линуксу indeed, ядро становится убунтой.
     
     
  • 2.55, аноним (?), 22:26, 16/09/2010 [^] [^^] [^^^] [ответить]  
  • +2 +/
    вот так сможешь?
    >Сервисы делают доступной ещё одну функцию — запуск необходимых приложений в случае поступления сообщений для них. Для этого должна быть включена автоактивация, а в конфигурации D-BUS за этим сервисом должно быть закреплено одно приложение. Тогда D-BUS сможет его запустить при появлении сообщения.
    >После закрытия приложения ассоциированные сервисы также разрегистрируются, а D-BUS посылает сигнал о том, что сервис закрыт. Другие приложения могут получать такие сигналы и соответствующим образом реагировать.

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

     
     
  • 3.60, аноним (?), 23:58, 16/09/2010 [^] [^^] [^^^] [ответить]  
  • –4 +/
    > вот так сможешь?

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

    > хотя, самое главное - не хочешь, не юзай
    > вот выкинуть в виндах com с реестром не получится

    Ровно также как и выкинуть в Gnome/KDE dbus не получится. Скоро оно будет в ядре. А насчет реестра - gconf из гнома тоже не особо выкинешь.

     
     
  • 4.69, аноним (?), 02:31, 17/09/2010 [^] [^^] [^^^] [ответить]  
  • +/
    >А ты сможешь левой ногой за правым ухом почесать? Для всякой фичи должно быть применение, а то что ты написал - бред.

    да вы батенька просто профан.
    >А насчет реестра - gconf из гнома тоже не особо выкинешь.

    как страшно жить.
    ядро линуха не стартанёт без fstab (реестр монтируемых фс, включая рут)
    сеть в дебиане не стартанёт без /etc/network/interfaces (реестр интерфейсов)
    и тд, и тп.
    включая бедные текстовые файлы с xml внутри для gconf.
    а если /etc удалить - О-О-О!!!!

    назвать gconf реестром (вернее, сравнить gconf с виндовым реестром, как с технологией; т.к. само слово "реестр" ничего не значит. им может быть простой текстовой файл) может только полностью и окончательно упоротый вантузятник.

     
  • 4.70, аноним (?), 02:38, 17/09/2010 [^] [^^] [^^^] [ответить]  
  • +1 +/
    не поверишь но и у гнома, и у кед всегда были подобные альтернативы.
    http://ru.wikipedia.org/wiki/D-Bus
    >В графической среде KDE для этого не так давно использовался DCOP
    >Раньше GNOME использовал Bonobo, основанный на CORBA, но из-за зависимости от GObject, Bonobo не использовался в других рабочих средах, а низкое быстродействие CORBA сказывалось на скорости всей среды.

    представляешь, из ГНОМа нельзя было выбросить  CORBA!!! а ты знаешь что такое CORBA?
    виндусячий реестр - это так, детская игрушка, планарный файл.
    какое несчастье для тупого тролля!

     
  • 2.103, User294 (ok), 17:52, 17/09/2010 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >Это кривой костыль. Межпроцессное взаимодействие всегда делалось через пайпы, unix domain sockets,
    >и shared memory.

    Ну и как мне стандартным методом узнать допустим заряд батарейки от демона заведующего этим в моем телефоне? Это надо точно знать какой сокет и т.п. + никто не удосужился выработать для этого стандартный протокол мля. В итоге - поди туда не знаю куда, найди то не знаю что а потом поработай с ним по протоколу который никто не знает. В D-Bus как минимум часть аспектов таких проблем пытаются адресовать.

     
     
  • 3.104, anonymous (??), 18:58, 17/09/2010 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >Ну и как мне стандартным методом узнать допустим заряд батарейки от демона заведующего этим в моем телефоне? Это надо точно знать какой сокет и т.п. + никто не удосужился выработать для этого стандартный протокол мля

    Можно подумать, в dbus не нужно указывать интерфейс, имя свойства, тип данных и прочая.

     
     
  • 4.116, аноним (?), 20:39, 17/09/2010 [^] [^^] [^^^] [ответить]  
  • +1 +/
    вы наверное в браузере исключительно ip-адреса набираете.
     
  • 3.138, ы (?), 14:58, 18/09/2010 [^] [^^] [^^^] [ответить]  
  • +/
    >Ну и как мне стандартным методом узнать допустим заряд батарейки от демона заведующего этим в моем телефоне?

    $ cat /proc/acpi/battery/BAT0/state

     
     
  • 4.141, аноним (?), 20:58, 18/09/2010 [^] [^^] [^^^] [ответить]  
  • +/
    а если так, чтобы он сам прислал уведомление, когда заряд <10%?
    при чём заранее не известному количеству программ.
    и это только с аккумулятором. а там ещё и связь - wifi, gps, gsm, 3g,..
    не опрашивать же в цикле в каждой такой проге? так ресурсов не напасёшься
     

  • 1.49, Аноним (-), 21:35, 16/09/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ждём новых дыр.

    "Отправив специальным образом оформленное уведомление через DBUS приложение может получить полный доступ к памяти".

     
     
  • 2.56, аноним (?), 22:27, 16/09/2010 [^] [^^] [^^^] [ответить]  
  • +2 +/
    подпись - толпа анонимного андеграунда.
     

  • 1.57, Me (??), 22:51, 16/09/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Проясните, а зачем нужен Dbus когда есть System V message queues/Posix message queues?
     
     
  • 2.58, vasily_pupkin (?), 23:12, 16/09/2010 [^] [^^] [^^^] [ответить]  
  • +/
    А разве для queues не нужен такой же отдельный менеджер как dbus? :]
     
     
  • 3.76, Me (??), 11:05, 17/09/2010 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Им ядро выступает.
     
  • 2.59, Алекс (??), 23:15, 16/09/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Более высокий уровень абстракции
     
  • 2.61, аноним (?), 23:59, 16/09/2010 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >Проясните, а зачем нужен Dbus когда есть System V message queues/Posix message
    >queues?

    Ну вот захотели чтобы обязательно демон висел и память жрал.

     
     
  • 3.146, Аноним123321 (ok), 21:17, 19/09/2010 [^] [^^] [^^^] [ответить]  
  • +/
    если память не используется например DBus-демон загружен но не используется --... большой текст свёрнут, показать
     
  • 2.68, Аноним (-), 02:11, 17/09/2010 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Проясните, а зачем нужен Dbus когда есть System V message queues/Posix message queues?

    D-Bus фиксирует формат сообщений, а системные message queues — нет, поэтому обменятья сообщением между двумя заранее неизвестными программами через message queues невозможно, поскольку они не знают в каком формате друг у друга передаются и принимаются сообщения.

     
     
  • 3.73, Unk (??), 09:23, 17/09/2010 [^] [^^] [^^^] [ответить]  
  • –2 +/
    >D-Bus фиксирует формат сообщений, а системные message queues — нет, поэтому обменятья
    > сообщением между двумя заранее неизвестными программами через message queues невозможно,
    > поскольку они не знают в каком формате друг у друга передаются и принимаются сообщения.

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

     
     
  • 4.78, аноним (?), 11:40, 17/09/2010 [^] [^^] [^^^] [ответить]  
  • +2 +/
    вах. теперь видимо я должен отказаться от шифрования данных и отправки их по tcp.
    и срочно, срочно нужно выкинуть из ядра поддержку сокетов AF_UNIX!
    да что там! выкинуть нафиг всю сеть, все ipc и прочий хлам.
    иначе помойка в головах троллей опустеет и они умрут с голода.
     
  • 3.79, anonymous (??), 12:44, 17/09/2010 [^] [^^] [^^^] [ответить]  
  • –2 +/
    >D-Bus фиксирует формат сообщений

    Кто мешает сделать либу, которая будет этим заниматься?

     
     
  • 4.82, Crazy Alex (??), 13:20, 17/09/2010 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Ну вот и сделали. Называется D-Bus.
     
     
  • 5.87, anonymous (??), 15:30, 17/09/2010 [^] [^^] [^^^] [ответить]  
  • –2 +/
    >Ну вот и сделали. Называется D-Bus.

    А демон зачем? Для густоты мыслей?


     
     
  • 6.93, аноним (?), 16:08, 17/09/2010 [^] [^^] [^^^] [ответить]  
  • +1 +/
    http://dbus.freedesktop.org/doc/dbus-daemon.1.html
    >dbus-daemon is the D-Bus message bus daemon. See http://www.freedesktop.org/software/dbus/ for more information about the big picture.
    >D-Bus is first a library that provides one-to-one communication between any two applications;
    >dbus-daemon is an application that uses this library to implement a message bus daemon. Multiple programs connect to the message bus daemon and can exchange messages with one another.
    >Для густоты мыслей?

    именно.

    ещё раз. большей концентрации - D-Bus is first a library that provides one-to-one communication between any two applications;

     
     
  • 7.97, anonymous (??), 17:19, 17/09/2010 [^] [^^] [^^^] [ответить]  
  • –2 +/
    >ещё раз. большей концентрации - D-Bus is first a library that provides one-to-one communication between any two applications;

    Создаётся обычный сокет, инфа тупо пересылается. Одно приложение передаёт, другой получает. Задача решена?


     
     
  • 8.99, аноним (?), 17:31, 17/09/2010 [^] [^^] [^^^] [ответить]  
  • +2 +/
    а нахрена тогда апачи всякие придумали или там к примеру постфиксы, довекоты е... текст свёрнут, показать
     
     
  • 9.105, anonymous (??), 19:06, 17/09/2010 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Да, в теме про dbus они явно лишние И что Посмотрел, ничего нового не увидел ... текст свёрнут, показать
     
     
  • 10.107, аноним (?), 19:32, 17/09/2010 [^] [^^] [^^^] [ответить]  
  • +2 +/
    печально ну так и не задавайте уже писал - http www opennet ru openforum vsl... большой текст свёрнут, показать
     
     
  • 11.113, anonymous (??), 20:15, 17/09/2010 [^] [^^] [^^^] [ответить]  
  • –1 +/
    отсюда и сабж - поместить в ядро поддержку нового типа сокета AF_DBUS и демон, п... текст свёрнут, показать
     
     
  • 12.126, аноним (?), 23:31, 17/09/2010 [^] [^^] [^^^] [ответить]  
  • +1 +/
    этот что-ли ответ уже был - нет, не решена приложений много и все клиенты ... текст свёрнут, показать
     
  • 4.84, szh (ok), 14:41, 17/09/2010 [^] [^^] [^^^] [ответить]  
  • +/
    >>D-Bus фиксирует формат сообщений
    > Кто мешает сделать либу, которая будет этим заниматься?

    libdbus

    DBUS - это не только формат сообщений, просвящайся http://dbus.freedesktop.org/doc/dbus-tutorial.html , http://ru.wikipedia.org/wiki/D-Bus

     
     
  • 5.88, anonymous (??), 15:34, 17/09/2010 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >DBUS - это не только формат сообщений

    Но и нужный демон, который уменьшает потребление памяти и увеличивает стабильность. Прям на сервер сам так и просится.


     
     
  • 6.94, аноним (?), 16:42, 17/09/2010 [^] [^^] [^^^] [ответить]  
  • +1 +/
    ещё раз http www rsdn ru article files libs RPCLib xml либо поддержка на уров... большой текст свёрнут, показать
     
     
  • 7.106, anonymous (??), 19:18, 17/09/2010 [^] [^^] [^^^] [ответить]  
  • –3 +/
    >ирония не уместна. ибо глупа.

    Что же тут сказать. Ну просто убийственные аргументы и тупое обобщение. Таким образом наплодиться ещё 9000 демонов оправдать под предлогом "да с таким же успехом можно mmap выкинуть".

     
     
  • 8.108, аноним (?), 19:39, 17/09/2010 [^] [^^] [^^^] [ответить]  
  • +/
    я думал вы несколько умнее по-крайней мере знаете понятия ааналогия и моделиров... текст свёрнут, показать
     
  • 8.147, Аноним123321 (ok), 21:36, 19/09/2010 [^] [^^] [^^^] [ответить]  
  • +/
    ты идиот если эти 9000 демонов используются -- значит они нужны а если ты реши... большой текст свёрнут, показать
     

     ....большая нить свёрнута, показать (24)

  • 1.75, KERNEL_PANIC (ok), 09:40, 17/09/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Фитча дельная. Ждем  по-дефолту в Fedora 24.
     
  • 1.77, anonymous (??), 11:20, 17/09/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    А смысл в этом дбус? Есть unix domain socket, простой, удобный, быстрый.
     
     
  • 2.80, anonymous (??), 12:48, 17/09/2010 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Да и воообще, если кто-то захочет урпавлять софтиной под dbus через cron, то того ожидает сюрприз.
     
     
  • 3.83, Crazy Alex (??), 13:21, 17/09/2010 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >Да и воообще, если кто-то захочет урпавлять софтиной под dbus через cron,
    >то того ожидает сюрприз.

    И что ж за сюрприз? И что значит "управлять через cron"?

     
     
  • 4.151, Аноним123321 (ok), 23:10, 19/09/2010 [^] [^^] [^^^] [ответить]  
  • +/
    > И что ж за сюрприз?

    сюрприз наверно заключается в том что ...
                    "ВСЁ РАБОТАЕТ! о боги! я думал оно не будет работать а оно работает!!!"

    :-)

     
  • 2.85, szh (ok), 14:47, 17/09/2010 [^] [^^] [^^^] [ответить]  
  • +1 +/
    потребности приложений не ограничиваются проблемой "как два байта переслать при участии в пересылке не более 2 процессов".
     
     
  • 3.89, anonymous (??), 15:38, 17/09/2010 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >потребности приложений не ограничиваются проблемой "как два байта переслать при участии в
    >пересылке не более 2 процессов".

    Вот честно, не знал, что UDS такой убогий.


     
     
  • 4.95, аноним (?), 17:04, 17/09/2010 [^] [^^] [^^^] [ответить]  
  • +/
    он не убогий. он вполне себе ничего.
    просто UDS - это IPC. а D-Bus - это message bus system, a simple way for applications to talk to one another. In addition to interprocess communication. http://www.freedesktop.org/wiki/Software/dbus#Documentation
    кстати, на платформах *nix он использует именно UDS:
    int _dbus_connect_unix_socket ( const char * path,
    dbus_bool_t abstract,
    DBusError * error
    )
    Creates a socket and connects it to the UNIX domain socket at the given path.
    http://dbus.freedesktop.org/doc/dbus/api/html/group__DBusSysdepsUnix.html#g4c
    ps:
    ваши сентенции логичны примерно как это утверждение  - "нарена http (и тем более web-сервера), если есть tcp/ip?"
     
     
  • 5.96, anonymous (??), 17:11, 17/09/2010 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >ваши сентенции логичны примерно как это утверждение  - "нарена http (и тем более web-сервера), если есть tcp/ip?"

    Честно, я не где не видел, чтобы поднималось два сервера. Один для tcp, а другой для http.

     
     
  • 6.100, аноним (?), 17:36, 17/09/2010 [^] [^^] [^^^] [ответить]  
  • +/
    потому что tcp уже есть в одном, но ОЧЕНЬ важном сервере под названием ядро.
    и к тому же - apache, dovecot, postfix, inetd, - всё это сплошь tcp сервера. все они сплошь сидят на портах tcp. ибо портов в http нет.
     
     
  • 7.110, anonymous (??), 19:49, 17/09/2010 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >потому что tcp уже есть в одном, но ОЧЕНЬ важном сервере под
    >названием ядро.

    С каких это пор ядро стало сервером?


    >и к тому же - apache, dovecot, postfix, inetd, - всё это сплошь tcp сервера. все они сплошь сидят на портах tcp. ибо портов в http нет.

    Зачем они вообще нужны. У нас же ядро tcp-сервер!


     
     
  • 8.111, аноним (?), 19:57, 17/09/2010 [^] [^^] [^^^] [ответить]  
  • +/
    а что такое сервер вы вообще знаете определение ... текст свёрнут, показать
     
     
  • 9.115, anonymous (??), 20:19, 17/09/2010 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Я знаю, что межпроцессорное взаимодействие реализуется несколькими строчками на ... текст свёрнут, показать
     
     
  • 10.118, аноним (?), 20:52, 17/09/2010 [^] [^^] [^^^] [ответить]  
  • +/
    d-bus - не ipc ipc в d-bus дополнительная возможность но я уже это писал у ва... текст свёрнут, показать
     
  • 10.119, аноним (?), 20:53, 17/09/2010 [^] [^^] [^^^] [ответить]  
  • +/
    так что такое сервер ... текст свёрнут, показать
     
     
  • 11.121, anonymous (??), 21:19, 17/09/2010 [^] [^^] [^^^] [ответить]  
  • –1 +/
    сервер - программа, находящаяся в режиме готовности и выполняющая запросы других... текст свёрнут, показать
     
     
  • 12.127, аноним (?), 23:37, 17/09/2010 [^] [^^] [^^^] [ответить]  
  • +1 +/
    не верно http ru wikipedia org wiki D0 A1 D0 B5 D1 80 D0 B2 D0 B5 D1 80_ D0... текст свёрнут, показать
     
     
  • 13.152, Аноним123321 (ok), 23:15, 19/09/2010 [^] [^^] [^^^] [ответить]  
  • +/
    да без смысленно объяснять онже сказал что для него главный критерий сервер и... текст свёрнут, показать
     
  • 2.148, Аноним123321 (ok), 21:41, 19/09/2010 [^] [^^] [^^^] [ответить]  
  • +/
    >А смысл в этом дбус? Есть unix domain socket, простой, удобный, быстрый.
    >

    а по твоему DBus работает через волшебство :-D ?

    СЮРПРИЗ(!!): DBus как раз и использует unix domain socket :-)

    с таким же успехом можно сказать:
    "зачем делать сайты на Django/Pylons, если можно просто использовать Python"

     

     ....большая нить свёрнута, показать (17)

  • 1.81, Вова (?), 12:53, 17/09/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    меня вообще бесит, когда треш остаётся в таблице процессов после запуска невинной с виду гуйни, никогда не приветствовал этой ерунды. В момент запуска дбас кде писало  на сплашскрине "настраиваю оборудование", или что-то в этом роде, одна из ряда гыгышек, по которым стало ясно, что с сверинтеллектуальными десктопа пора завязывать.
     
     
  • 2.153, Аноним123321 (ok), 23:22, 19/09/2010 [^] [^^] [^^^] [ответить]  
  • +/
    когда трэшь остаётся -- это фигово :-( .. например программа ("родитель") может "забыть" доубить "мёртвый" дочерний процесс, и при выходе "родителя" останется трэш (ввиде "зомби")

    [разумеется это не может не бесить! в этом случае нада срочно писать Bug_Report!! С-Р-О-Ч-Н-О]

    ...однако как это касается темы DBus -- я не понимаю %) %) ... ведь DBus это же не трэш

     

  • 1.92, anonymous (??), 15:49, 17/09/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Почему dbus не нужен.

    Недостатки: посредник в виде демона, привязка к сессии пользователя, из-за чего тупо сделать dbus-send -//- из-под другого пользователя не представляется возможным.

    UDS от этого недостатка свободен. Если уж так влом парсить мессагу, то ни кто не мешает сделать либу, которая будет формировать и парсить сама.

    Зачем тащить весь этот хлам, непонятно.

     
     
  • 2.98, аноним (?), 17:21, 17/09/2010 [^] [^^] [^^^] [ответить]  
  • +1 +/
    uds мягко говоря (очень мягко) уровнем (или 2-мя) ниже. если сравнить их по аналогии с OSI, то d-bus - это пользовательский уровень, а UDS - канальный.
    >Зачем тащить весь этот хлам, непонятно.

    это от невежества. что-то типа: "почему юникс не нужен. недостатки: посредник между программами и ядром в виде X, привязка к сессии пользователя, из-за чего тупо сделать rm -rf / из-под другого пользователя не представляется возможным.
    вин95 от этого недостатка свободен. зачем тащить весь этот хлам, непонятно."
    >Если уж так влом парсить мессагу, то ни кто не мешает сделать либу, которая будет формировать и парсить сама.

    ктаая либа есть. про неё уже говорили - D-Bus is first a library that provides one-to-one communication between any two applications; dbus-daemon is an application that uses this library to implement a message bus daemon. Multiple programs connect to the message bus daemon and can exchange messages with one another.
    http://dbus.freedesktop.org/doc/dbus-daemon.1.html
    пример - есть протокол http, есть демон http. первый из них может существовать и без второго.
    что не говорит о том, что второй не_нужен.

     
     
  • 3.109, anonymous (??), 19:43, 17/09/2010 [^] [^^] [^^^] [ответить]  
  • –2 +/
    >uds мягко говоря (очень мягко) уровнем (или 2-мя) ниже. если сравнить их по аналогии с OSI, то d-bus - это пользовательский уровень, а UDS - канальный.
    > "почему юникс не нужен. недостатки: посредник между программами и ядром в виде X, привязка к сессии пользователя, из-за чего тупо сделать rm -rf / из-под другого пользователя не представляется возможным.

    вин95 от этого недостатка свободен. зачем тащить весь этот хлам, непонятно."


    Ну и опять глупые аналогии. Конкретики, похоже, не дождусь.


    >пример - есть протокол http, есть демон http. первый из них может существовать и без второго.

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

     
     
  • 4.128, аноним (?), 04:36, 18/09/2010 [^] [^^] [^^^] [ответить]  
  • +2 +/
    попробуй представить, троляря, что сервер из твоего примера написал Ганс из Германии, а клиента - Педро из Бразилии. Представил? а теперь представь что они абсолютно не знают о разработках друг друга. сервер пишет в юникс сокет бинарник, а клиент xml. чо получится?
    вопрос - по какому протоколу они общаются?
    далее - представь что таких серверов много и клиентов много. и все хотят общаться друг с другом и по очереди, и со всеми сразу, и по другим гендерным признакам. представил? способен вообще представить такое? и чтоб все знали куда долбится? и чтобы интроспекция (для подобных умников - http://ru.wikipedia.org/wiki/%D0%98%D0%BD%D1%82 была?  и чтобы очередь соблюдалась? и протокол все понимали? и ошибки отрабатывались?
    вот для этого умные люди придумали сервера и протоколы прикладного уровня. те которые часто бывают оформлены в виде демонов.
    а теперь представь, что апач назвали d-bas, работает он через твои долбанные юникс сокеты (да и все остальные тоже), протокол общения имеет четкий вид, но не http, а через low-level message-passing protocols such as UDP. вот тогда ты смутно поймёшь какую херню ты тут нёс.
    но это врядли. тебе и так супер доходчиво пытались объясняли.
     
     
  • 5.131, Вова (?), 08:57, 18/09/2010 [^] [^^] [^^^] [ответить]  
  • –1 +/
    1. Вы надеетесь, что имея чёткий формат клиент-серверного взаимодействия в лице дбас, вы сможете любым клиентом общаться с любым сервером - это фикция,миф. Любой клиент имеет некоторое представление о сервере, с которым собирается работать - равно и сервер.

    2. Что за ситуация, где "таких клиентов много и серверов много" на одной локальной машине?? что это за бред??

     
     
  • 6.132, аноним (?), 10:19, 18/09/2010 [^] [^^] [^^^] [ответить]  
  • +2 +/
    1. не с любым, а с тем, который знает этот же протокол же протоколу, принципу. более того - уже общаюсь.
    более того, имею опыт работы и с другими альтернативами. и они тоже работают.
    вот их список - http://en.wikipedia.org/wiki/D-bus#See_also например
    RPC - Remote procedure call, CORBA Common Object Request Broker Architecture, GNOME Bonobo deprecated GNOME cross language Object Model, KDE DCOP deprecated KDE interprocess and software componentry communication system, DCOM Distributed COM, extension making COM able to work in networks....
    вы считаете всех изобретателей этих "велосипедов" идиотами? и "зачем они нужны, если есть UDS"?
    2. ну во-первых это не ограничивается только локальной машиной (в d-bus правда это ещё не доделано),
    второе - у вас вызывает шок работа >2 приложений (клиентов) на одной машине, которые бы хотели получать уведомления в онлайн? хм. вы вообще с компьютерами работаете? пример - сеть wifi.  пропажу её (или даже изменение некоторых сосотояний) хотели вы видеть одновременно нетвокмэнеджер, пиджин, skype.  и всё это только клиенты.
    ещё раз повторю аналогию - d-bus построен поверх uds точно также, как апач поверх tcp/ip.
    при чём аналоги в гноме и кедах были всегда (см. список и ссылку выше).
    при этом uds не единственный использующийся механизм для построения шины сообщений.
    впрочем, всё это я уже говорил - http://www.opennet.dev/openforum/vsluhforumID3/70688.html#99
    как и то, что утверждать, что uds это эамена d-bus, это всё равно что утверждать что tcp/ip замена apache.
    и кидаться такими утверждениями может только полный профан, который не понимает даже о чём вообще идёт речь.
     
     
  • 7.133, Вова (?), 10:30, 18/09/2010 [^] [^^] [^^^] [ответить]  
  • –2 +/
    1. Ответ, в котором используются уважительные обращения вида "профан", "работаете ли вы с компьютерами" априори неверен,  но всё-таки дам вам некоторый ликбез по "изменению состояния вай-фай и нетворк-менеджер + пиджин + скайп"

    Какой бы не был статус вай-фай, пиджину и скайпу нужно только одно: доходит ли пакет до адресата. Всё.  Ни роутинг, ни количество интерфейсов, ни тип подключения, это - не их дело.
    Далее,  нетворк-менеджер, это что такое вообще? Рискну предположить, что это некий демон, имеющий "удобный гуи-клиент" для облегчения конфигурации сети в системе. Так вот, внимание, присядьте, товарищ специалист по актив-икс/ком/корбе... Ему в линукс/бсд/любом юниксе никакой d-bus по определению не нужен. Даже если бы и была возможность работы по д-бас всех пользовательских конфигурационных надстроек над ядром, это не было бы лучшей идеей для контроля сети попросту ввиду избыточности лишнего звена.

    "Поработайте с компьютерами"?

     
     
  • 8.134, аноним (?), 11:16, 18/09/2010 [^] [^^] [^^^] [ответить]  
  • +1 +/
    какое бы обращение я не выбрал - это не изменит технологию тем более что оно ве... текст свёрнут, показать
     
     
  • 9.135, Вова (?), 12:19, 18/09/2010 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Вижу, вы согласны с несостоятельностью вашего примера уровень идиота и высоком... текст свёрнут, показать
     
     
  • 10.137, аноним (?), 14:33, 18/09/2010 [^] [^^] [^^^] [ответить]  
  • +1 +/
    так и не понять разницу между компонентной моделью разработки, и шиной сообщени... текст свёрнут, показать
     
     
  • 11.140, Вова (?), 16:53, 18/09/2010 [^] [^^] [^^^] [ответить]  
  • –2 +/
    1 Смешной пример про пиджина, скайп и нетворк менеджер а, узнающих параметры... текст свёрнут, показать
     
     
  • 12.142, szh (ok), 02:48, 19/09/2010 [^] [^^] [^^^] [ответить]  
  • +/
    ты сам придумал глупость и сам ее опровергнул ... текст свёрнут, показать
     
     
  • 13.143, Вова (?), 10:53, 19/09/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Это пример был рассказан выше анонимом , под которым я не дописывался ни разу ... текст свёрнут, показать
     
  • 9.136, Вова (?), 12:24, 18/09/2010 [^] [^^] [^^^] [ответить]  
  • –2 +/
    и да, я не знаю, что вы имеете в виду под нетворк менеджер ом Опыт программиро... текст свёрнут, показать
     
     
  • 10.150, Аноним123321 (ok), 22:11, 19/09/2010 [^] [^^] [^^^] [ответить]  
  • +/
    вобщемто если работаешь программистом -- то нада не только программульки писать,... текст свёрнут, показать
     
  • 2.149, Аноним123321 (ok), 22:02, 19/09/2010 [^] [^^] [^^^] [ответить]  
  • +/
    >Почему dbus не нужен.
    >
    >Недостатки:
    > посредник в виде демона

    вы так говорите будтобы этот посредник загружается КАЖДЫЙ_РАЗ для КАЖДОГО DBus-соеденения :-D

    а то что ядро загружено -- это вас не смущщает? оно ведь [точно такой же] посредник

    > привязка к сессии пользователя, из-за чего тупо сделать dbus-send -//- из-под другого пользователя не представляется возможным.

    извините, но в МНОГОПОЛЬЗОВАТЕЛЬСКОЙ операционной системе -- мне НЕХОТЕЛОСЬ-БЫ чтобы другие пользователи чтото посылали моей сессии [или если-бы недавали-бы мне загружать мои desktop-сервисы: типа "извените но номер socket-порта уже занят другим пользователем"]

    (для всего остального есть СИСТЕМНАЯ сессия DBus .. короче читайте руководства по Dbus)

    если же лично-ВАМ не нравиться многопользовательская парадигма [или вы её немного не понимаете?] -- запускайте всё внури только одного пользователя :-)

    > UDS от этого недостатка свободен.

    правда? :O

    хотите сказать что если один пользователь сделал unix-сокет внутри "$HOME/.local/share/my-desktop-service.socket" -- то другой пользователь  может подключиться в этому сокету? (даже если права "$HOME" выставлены как 700 ?)

    кстате, ничего страшного что -- DBus работает как раз работает через UDS??? :-D :-D :-D

    > Если уж так влом парсить мессагу, то ни кто не мешает сделать либу, которая будет формировать и парсить сама.

    либа называется libdbus :-) .. уже создали

    > Зачем тащить весь этот хлам, непонятно.

    а зачем тащщить ТВОЮ либу которая будет "парсить сама". твоя либа лучше чем libdbus? чем же, интересно? :-)

    а еслибы ты был хорошим/опытным программистом [или вообще -- программистом. я к сожелению незнаю являешьсяли ты им %)] -- то тебе было бы понятно "Зачем тащить весь этот хлам".

    ...было бы понятно что функционал обычных UDS -- довольно ХОРОШИЙ.. но нехватает ещё пару унифицированных элементов, которые как раз предоставляет DBus [который в свою очередь работает через ТВОЙ_ЛЮБИМЫЙ(!) UDS]

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру