Off-topic: D-Bus in the kernel

Alban Crequy 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
  socket
- 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.

-- 
Alban


More information about the dbus mailing list