Въведение
D-BUS позволява на програмата да го регистрира, за да предоставя услуги на други програми. В същото време той предоставя и клиентска програма, за да открие кои услуги са налични. Програмата може също да бъде регистрирана, за да изчака събитията на Hernel, като например хардуера на хардуера.
D-bus е внедрен в демон. Потребителите могат да изпълняват няколко D-BUS обекта, като всеки обект се нарича КАНАЛ. Обикновено има привилегирован канал, наречен системен канал, и всеки потребител има частен обект. Потребителите се нуждаят от частни лица, защото System Channel ще има достъп до достъп.
D-Bus се влияе от системата DCOP и замества DCOP в KDE 4; той е интегриран в системите Qt 4, Gnome, Windows и Maemo. GNOME също го използва, за да замени постепенно по-голямата част от ранния механизъм Bonobo.
Системен канал Основната функция е да достави съобщението на HAL до процесите, които се интересуват от тези съобщения. Функцията на частните лица е да осигуряват неограничена комуникация между програмите.
Работен режим
Всички приложения, използващи D-Bus, съдържат някои обекти, които обикновено се нанасят на GOBJECT, QOBJECT, C ++ обекти или обекти на Python (може да не са необходими). Обектът е екземпляр вместо тип. Когато се получи съобщение чрез D-BUS връзка, съобщението се изпраща до обект вместо до цялото приложение.
За да се позволи на съобщението да посочи обект за приемане, е необходимо също така да се предостави препратка към обекта. На любимия ви език за програмиране може да се нарече указател или препратка. Гореописаната така наречена справка обаче обикновено се реализира като адрес на паметта, свързан с приложението, така че не може да се предава между приложения.
За да реши този проблем, D-bus въвежда име за всеки обект. Тези имена изглеждат като път на файлова система, като например обект, може да се нарича "/ ORG / KDE / KSPREAD / Sheets / 3 / Cells / 4/5". Насърчава се лесно за четене име на пътя, но също така ви позволява да използвате, като например "/ COM / MyCompany / C5YO817Y0C1Y1C5B" и т.н., стига да може да се използва за вашето приложение.
Пътят на обектаnamespace започва с всички имена на домейни на разработчика (като / org / kde), за да се избегне намеса между различните кодови модули на системата.
Архитектура
D-BUS е система за предаване на съобщения, чиято цел е да комуникира между приложенията. Това е трислойна архитектурна комуникационна система (IPC), включваща:
Библиотека с функции libdbus, използвана за контакти за повикване на два приложения и интерактивни съобщения. Базирано на libdbus съобщение, автобусният демон може да бъде свързан към множество приложения и може да насочва съобщения от едно приложение към 0 или повече други програми. Серия от библиотеки Wrapper, базирани на специфична рамка на приложение. D-Bus е проектиран за две конкретни обстоятелства:
комуникацията на две настолни приложения в една и съща настолна сесия позволява на настолните сесии като цяло да решат проблема с жизнения цикъл на процеса. Сесията на работния плот и комуникациите на операционната система, където операционната система обикновено е включена в ядрото и системния демон.