All right,<div><br></div><div>Thanks a lot, that clarifies everything!!</div><div><br></div><div>I read that Ubuntu 10.04 will ship without HAL. I was not completely shure why udev+dbus was better. Now I see.</div><div><br>

</div><div><br></div><div>Regards.</div><div><br></div><div>---Noe Nieto</div><div><br></div><div><br><br><div class="gmail_quote">2010/4/25 Lennart Poettering <span dir="ltr">&lt;<a href="mailto:mzqohf@0pointer.de">mzqohf@0pointer.de</a>&gt;</span><br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div><div></div><div class="h5">On Sun, 25.04.10 19:49, Noe Misael (<a href="mailto:tzicatl@gmail.com">tzicatl@gmail.com</a>) wrote:<br>


<br>
&gt; Hi.<br>
&gt;<br>
&gt; I&#39;m trying to understand how modern linux systems handle hardware devices. I<br>
&gt; have a general idea about how kernel drivers works and also have a general<br>
&gt; idea about how udev is a layer between the kernel and user-space.<br>
&gt;<br>
&gt; But when looking at HAL and Dbus, DeviceKit, Network Manager I started to<br>
&gt; get confused.<br>
&gt;<br>
&gt; Can anyone be so kind to explain me how are these software components<br>
&gt; interacting with each other?<br>
<br>
</div></div>Ignore devicekit. I doesn&#39;t exist, it never really came to be.<br>
<br>
Ignore HAL, too, as it is obsolete and only used by legacy code.<br>
<br>
udev provides low-level access to the linux device tree. Allows programs<br>
to enumerate devices and their properties and get notifications when<br>
devices come and go.<br>
<br>
dbus is a framework to allow programs to communicate with each other,<br>
securely, reliably, and with a high-level object-oriented programming<br>
interface.<br>
<br>
udisks (formerly known as DeviceKit-disks) is a daemon that sits on top<br>
of libudev and other kernel interfaces and provides a high-level<br>
interface to storage devices and is accessible via dbus to applications.<br>
<br>
upower (formerly known as DeviceKit-power) is a daemon that sits on top<br>
of libudev and other kernel interfaces and provides a high-level<br>
interface to power management and is accessible via dbus to apps.<br>
<br>
NetworkManager is a daemon that sits on top of libudev and other kernel<br>
interfaces (and a couple of other daemons) and provides a high-level<br>
interface to network configuration and setup and is accessible via dbus<br>
to apps.<br>
<br>
(hal was a lot of this all mingled in one big daemon, and eventually<br>
proved to suck in its design)<br>
<br>
Of course, NM should probably be renamed to &quot;unetwork&quot;, and dbus to<br>
&quot;ubus&quot;. And PulseAudio to &quot;usound&quot;, and X11 to &quot;udisplay&quot;, and then<br>
undescribable happiness would come down to all people of this world.<br>
<br>
Lennart<br>
<font color="#888888"><br>
--<br>
Lennart Poettering                        Red Hat, Inc.<br>
lennart [at] poettering [dot] net<br>
<a href="http://0pointer.net/lennart/" target="_blank">http://0pointer.net/lennart/</a>           GnuPG 0x1A015CC4<br>
</font></blockquote></div><br></div>