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