Off-topic: D-Bus in the kernel
alban.crequy at collabora.co.uk
Fri Sep 17 09:37:38 PDT 2010
Le Fri, 17 Sep 2010 18:13:22 +0200,
Thiago Macieira <thiago at kde.org> a écrit :
> Em Sexta-feira 17 Setembro 2010, às 17:21:32, Alban Crequy escreveu:
> > - The bus driver (who replies to D-Bus method calls to
> > org.freedesktop.DBus): I don't see the value to put this in the
> > kernel but I'm happy to be proven wrong. kdbus needs to know which
> > connection own which unique name and well-known name. In the
> > prototype, kdbus spies the "NameAcquired" and "NameLost" signals
> > for that purpose.
> spies? Did you mean "sends" ?
I meant that in the current prototype, the kernel does not generate any
D-Bus message and does not implement the bus driver
org.freedesktop.DBus. It just forwards messages from/to dbus-daemon and
read the content of some of the messages. It works as follow:
- application1 sends the message Hello() on the AF_DBUS socket
- kdbus delivers the message Hello() only to dbus-daemon because the
destination field is "org.freedesktop.DBus"
- dbus-daemon decides to name the connection ":1.1"
- dbus-daemon sends the signal "NameAcquired" with ":1.1" on the AF_DBUS
- kdbus parses the "NameAcquired" signal and gets to know that
dbus-daemon decided to name the connection ":1.1". It stores that
unique name in the socket structure. And it delivers the signal
containing ":1.1" without modification to application1.
So I could test a full GNOME session (and also N900) with AF_DBUS
without implementing the bus driver in the kernel.
More information about the dbus