On Thu, Oct 6, 2011 at 8:39 PM, Michael Mol <mike...@gmail.com> wrote:
>
> On Oct 6, 2011 11:34 PM, "Dale" <rdalek1...@gmail.com> wrote:
>>
>> Grant Edwards wrote:
>>>
>>> On 2011-10-06, Jonas de Buhr<jonas.de.b...@gmx.net>  wrote:
>>>
>>>> don't get me started, the suppressed memories about HAL-config or
>>>> broken suse-10 usermount may come back ;)
>>>
>>> HAL... shudder.
>>>
>>
>> Let's not get started on hal.  Pardon me while I go pray to the porcelain
>> gods.  :/
>
> I'm really sorry, but I missed that show. I was in Ubuntu-land learning not
> to tweak system behaviors.  WTF was the deal with HAL? What was it supposed
> to do? Why didn't it work?

HAL was the Hardware Abstraction Layer. The idea was that it would be
an index of the computer's hardware, so high level parts of the stack
would know what hardware and capabilities were available, without the
need of communicate with the kernel directly. This had the (perceived)
advantage of bein "portable", so for example a program using HAL could
run in any OS. Even Windows was theoretically included.

But it ended being *HUGE*, because it needed to handle a lot of
different hardware and Operating System quirks, and the design was
rigid and not very scalable. Also, it turns out that a lot of
Operating Systems do not have the necessary developers to fill the
specifications required by HAL: if I remember correctly, Solaris and
the *BSD family of systems implemented only a fraction of what was
needed. So, as is usually the case with "portable" code, the software
using HAL had to use the minimum common denominator.

In the end, udev was making huge advances, and HAL could not keep up
simply because the other Operating Systems didn't have similar
capabilities, so the consumers of HAL (desktop systems, mostly)
started to use udev directly. That was when the shit hit the fan: if
the purpose of HAL was to mantain "portability", but the biggest and
most active developer community (Linux) refused to use it since it
didn't allowed them to use the full capabilities of the operating
system, then it had (literally) no reason to live. So the HAL
mantainers saw the error of their ways, and they deprecated it, saying
to the user space developers that, in Linux, they should use udev, and
in other Operating Systems whatever was equivalent, if any.

It was really fast, if I remember correctly: one day half the programs
in my computers used HAL, and the next every single one of them
stopped using it. In Gentoo in particular was pretty rough, since the
X.org version that used HAL had just become stable (which was kinda
difficult to transition to), and next thing you know, you again had to
transition, this time to a HAL-free X.org. A lot of users got really
angry in Gentoo because of that.

I remember it was a couple of days getting everything back to normal,
but it required taking down at least one production system, and
basically rebuilding everything on the desktop stack in a workstation
computer (since the desktop was the most heavy user of HAL). But I had
it worse with the glitz cairo USE flag, or the several expat problems
that always arise when you update that library. HAL was bad, but
(IMHO) not *that* bad.

In the end, everything is fine I believe. The desktops (all of them)
have made a lot of advances in Linux since they no longer had to use
the minimum common denominator, and it showed a lot of devs that the
mythical grail of "portability" is not that great at the end of the
day. That's one of the reasons the developer of systemd refuses to
make it portable to other Unixes: it allows him to use all the great
and specific features of Linux, and not to worry about other systems.
If other systems want something similar to systemd, they have the
liberty of programming themselves, of course.

This is how I remember it. If I made I mistake, someone please correct me.

Regards.
-- 
Canek Peláez Valdés
Posgrado en Ciencia e Ingeniería de la Computación
Universidad Nacional Autónoma de México

Reply via email to