[arch-general] [OT] What is wrong with DBus anyway?

Pierre Chapuis catwell at archlinux.us
Thu Dec 3 15:32:46 EST 2009


Le Thu, 3 Dec 2009 17:05:18 -0200,
Denis A. Altoé Falqueto <denisfalqueto at gmail.com> a écrit :

> In fact, DBus is implemented over Unix sockets. FIFOs and sockets
> don't define the format that will be used over them, they are just
> channels of communication. DBus is a wire protocol, as they say in the
> home page. It defines the format the methods and parameters should be
> converted to make the communication viable, as well as an event system
> so that applications can register interest in some activity.

I do not know how D-Bus works on the technical level, but as far as I
understand D-Bus means many things and people mix them up. Here is what
I understand.

There is indeed a D-Bus protocol [1], and I don't see why anybody would
be against that, because a protocol is a written document and not a
piece of software: it doesn't enforce an implementation.

Then, there is a library, libdbus, that implements that protocol. Note
that it is not the only one, D-Bus's home page states that the
implementations of D-Bus for Java, C# and Ruby do not rely on it. I
don't think that's what everybody is targeting either.

Finally, there is the D-Bus message bus daemon. The one you see in top,
here:

    3188 dbus 20 0 10664 1028 724 S 0 0.1 0:00.51 dbus-daemon

Actually, there are multiple instances of the daemon running at the
same time. Basically, what they do is route the D-Bus messages between
the applications. This is what most people target, because it is an
extra process running on their system.

That being said, I am in favor of simplicity, I am even often called a
minimalist, but I kind of like the idea of having a unified way to
communicate between Unix applications. I even appreciate the fact that
it relies on a daemon and not on an in-kernel thing but I am also
fascinated by Minix3, so I have a bias towards putting everything in
user space ;)

I like D-Bus because it can actually simplify the applications that
rely on it and avoid reiventing the wheel. But I do agree that
applications that *don't* need to communicate with other applications
have no reason to be linked against it!

[1] http://dbus.freedesktop.org/doc/dbus-specification.html

-- 
catwell


More information about the arch-general mailing list