Presentation is loading. Please wait.

Presentation is loading. Please wait.

D-Bus and Friends: Making Linux “Just Work” on the Desktop John (J5) Palmieri Desktop Engineer

Similar presentations


Presentation on theme: "D-Bus and Friends: Making Linux “Just Work” on the Desktop John (J5) Palmieri Desktop Engineer"— Presentation transcript:

1 D-Bus and Friends: Making Linux “Just Work” on the Desktop John (J5) Palmieri Desktop Engineer johnp@redhat.com

2 History of D-Bus ● Started in 2002 on freedesktop.org – Havoc Pennington, Alexander Larson, Anders Carlson ● Conceived as a common communication channel for the desktop – Buy in from both GNOME and KDE was a major goal

3 What is D-Bus? ● A local IPC mechanism ● Optimized for desktop communication – Session bus ● Enables system/session communication – System bus ● Peer to peer communication

4 Who uses D-Bus? ● Gnome – Fedora/Red Hat – Novell/SuSE – Debian – Nokia ● KDE – Limited support in Qt3 – Qt4 support being implemented (DCOP replacement?)

5 D-Bus and Friends Architecture in Fedora

6 Current Applications that use D-Bus in Fedora ● HAL ● NetworkManager ● desktop-printing (eggcups) ● cups-config-daemon ● gnome-volume-manager ● gfloppy

7 HAL

8 NetworkManager

9 desktop-printing & cups-config-daemon

10 gnome-volume-manager

11 Future D-Bus Applications ● oddjob – System administration tool by Nalin Dahyabhai ● Notification Bubbles ● Session Services – Augmenting gnome session ● System Services – Augmenting init

12 Future D-Bus Applications cont. ● Evolution integration – You’ve got mail – online/offline integration ● CORBA replacement in gnome-VFS ● XWindows – Static configuration files are so 90’s ● Package Installer – We’ve got MIME-types, why not use them?

13 More on Session Services ● Augments gnome-session ● Starts applications using D-Bus activation ● All desktop services are D-Bus aware or are provided by a D-Bus aware wrapper ● Dependency information makes sure services that are needed are loaded and in the right order ● Demo

14 Implications for System Services ● Take the Session Services idea and expand it to init ● Services started in parallel and with dependencies ● Some services are started when needed – cups-config-daemon is an ideal candidate – Dependency information applies to these services also ● Red Hat has an intern looking at this right now – He could use your help

15 The Pieces of D-Bus ● Bus’ – System and Session – Arbitrary ● Protocol – Header – Body ● Bindings – G-Lib, Qt, Python (and Twisted), Mono, Java?, Perl, Ruby, S- Lang, etc.

16 The Bus ● Bus’ run as daemons and route messages ● Connect to the bus – connection = dbus_bus_get (DBUS_BUS_SYSTEM, &error); ● Get a name on the bus – dbus_bus_request_name (connection, “org.foo.Bar”, 0, &error);

17 Protocol ● Unique Names vs Common Names – Unique Names (:1.02) – Common Name (org.foo.Bar) ● Header – Path, Interface, Member, Error Name, Reply Serial, Destination, Sender, Signature, (Details?) ● Body – The data

18 The Type System ● Basic Types – Byte, Boolean, (U)Int (16, 32, 64), Double, String ● Complex (recursive) Types – Array, Struct, Dict Entry, Varient ● Special Types – Object Path, Signature

19 Security ● ACL’s – Console user ● SELinux Integration – ImSep

20 Bindings ● Where users should be using D-Bus ● Main Bindings – Glib, Qt, Python, Mono ● Third Party Bindings – Ruby, Perl, S-Lang, C++, Java ● I maintain the Python Bindings and they are my favorite so lets write a quick server and client in Python ;-)

21 D-Bus 1.0 ● When – Soon – Sooner if you help out ● What’s Left to Do? – TODO – Write test cases, finalize the protocol, fix bugs – Finish bindings – Testing and Feedback (Qt4) – Documentation

22 For more info... ● D-Bus Website – http://dbus.freedesktop.org http://dbus.freedesktop.org ● Mailing List – dbus-list@lists.freedesktop.org dbus-list@lists.freedesktop.org ● Bugzilla – http://bugs.freedesktop.org http://bugs.freedesktop.org ● John (J5) Palmieri – johnp@redhat.com johnp@redhat.com


Download ppt "D-Bus and Friends: Making Linux “Just Work” on the Desktop John (J5) Palmieri Desktop Engineer"

Similar presentations


Ads by Google