Today's rant is about HAL (hardware abstraction layer). Something that probably burns under the fingernails of many people.
In my understanding an abstraction layer is added to make the overlying layer transparently support different underlying layers. So in my understanding the purpose of using HAL in X is to make X speak with HAL and HAL translates whatever X wants to the underlying platform (Linux, *BSD, Solaris, Darwin and so forth).
However this is not what HAL does. HAL really just works on Linux. And to make HAL support FreeBSD was a FreeBSD project (wasn't that a gsoc, or something the gnome guys did?). The thing is HAL works a little bit, now. But this is like an alpha stage, something just at the beginning of development nothing to rely on.
E.g. HAL does strange things in the cam layer of my system that cause an instant panic. So as soon as I start HAL with a USB storage device attached or if I attach a USB storage device while HAL is running, my system instantly panics.
On a Linux system (someone demonstrated this to me, yesterday) when you plug in a keyboard with a German keyboard layout, HAL will recognize that and X will actually automatically use German keyboard settings. I've seen instructions go around that hardcode <insert language/country of choice here> into the HAL XML configuration. Well, this is not the way things are supposed to be working.
Since providing an abstraction layer is not what the HAL people do or appear to be trying to do, what is it that they want to achieve?
And why does the Xorg project use an obsolete layer? They could just directly assume everything was Linux and it would just be as FreeBSD compatible as using HAL makes it.
In my understanding an abstraction layer is added to make the overlying layer transparently support different underlying layers. So in my understanding the purpose of using HAL in X is to make X speak with HAL and HAL translates whatever X wants to the underlying platform (Linux, *BSD, Solaris, Darwin and so forth).
However this is not what HAL does. HAL really just works on Linux. And to make HAL support FreeBSD was a FreeBSD project (wasn't that a gsoc, or something the gnome guys did?). The thing is HAL works a little bit, now. But this is like an alpha stage, something just at the beginning of development nothing to rely on.
E.g. HAL does strange things in the cam layer of my system that cause an instant panic. So as soon as I start HAL with a USB storage device attached or if I attach a USB storage device while HAL is running, my system instantly panics.
On a Linux system (someone demonstrated this to me, yesterday) when you plug in a keyboard with a German keyboard layout, HAL will recognize that and X will actually automatically use German keyboard settings. I've seen instructions go around that hardcode <insert language/country of choice here> into the HAL XML configuration. Well, this is not the way things are supposed to be working.
Since providing an abstraction layer is not what the HAL people do or appear to be trying to do, what is it that they want to achieve?
And why does the Xorg project use an obsolete layer? They could just directly assume everything was Linux and it would just be as FreeBSD compatible as using HAL makes it.