Relationship between udev, hal, Dbus and DeviceKit?

Lennart Poettering mzqohf at 0pointer.de
Sun Apr 25 19:04:08 PDT 2010


On Sun, 25.04.10 19:49, Noe Misael (tzicatl at gmail.com) wrote:

> Hi.
> 
> I'm trying to understand how modern linux systems handle hardware devices. I
> have a general idea about how kernel drivers works and also have a general
> idea about how udev is a layer between the kernel and user-space.
> 
> But when looking at HAL and Dbus, DeviceKit, Network Manager I started to
> get confused.
> 
> Can anyone be so kind to explain me how are these software components
> interacting with each other?

Ignore devicekit. I doesn't exist, it never really came to be.

Ignore HAL, too, as it is obsolete and only used by legacy code.

udev provides low-level access to the linux device tree. Allows programs
to enumerate devices and their properties and get notifications when
devices come and go.

dbus is a framework to allow programs to communicate with each other,
securely, reliably, and with a high-level object-oriented programming
interface.

udisks (formerly known as DeviceKit-disks) is a daemon that sits on top
of libudev and other kernel interfaces and provides a high-level
interface to storage devices and is accessible via dbus to applications.

upower (formerly known as DeviceKit-power) is a daemon that sits on top
of libudev and other kernel interfaces and provides a high-level
interface to power management and is accessible via dbus to apps.

NetworkManager is a daemon that sits on top of libudev and other kernel
interfaces (and a couple of other daemons) and provides a high-level
interface to network configuration and setup and is accessible via dbus
to apps.

(hal was a lot of this all mingled in one big daemon, and eventually
proved to suck in its design)

Of course, NM should probably be renamed to "unetwork", and dbus to
"ubus". And PulseAudio to "usound", and X11 to "udisplay", and then
undescribable happiness would come down to all people of this world.

Lennart

-- 
Lennart Poettering                        Red Hat, Inc.
lennart [at] poettering [dot] net
http://0pointer.net/lennart/           GnuPG 0x1A015CC4


More information about the dbus mailing list