Linked by Eugenia Loli on Tue 30th Sep 2003 05:20 UTC
General Development In the dawn of the renovation of freedesktop.org's web site, David Zeuthen announced the release of HAL 0.1. HAL is an implementation of a hardware abstraction layer, as defined by Havoc Pennington's paper. It encompasses a shared library for use in applications, a daemon, a hotplug tool, command line tools and a set of stock device info files. Carlos Perelló Marín also announced the design of a similar concept, but it is expected the two projects to merge. More people are encouraged to join this innovative project. Elsewhere, Gnome's Seth Nickell is giving us a first taste of his effort to replace the Init system.
Permalink for comment
To read all comments associated with this story, please click here.
Design
by Rayiner Hashem on Tue 30th Sep 2003 14:51 UTC

First, let's get one thing out of the way. Stop using the word "modern" to push your own particular view of how things should be. Microkernels are not "modern." They are simply one way of organizing an OS.

Second, let the developers worry about speed concerns. There seems to be a misconception that more layers = slower speed. That's wholly false. More layers are only slower if they are in a speed-critical path. Remember, 10% of the code takes up 90% of execuation time. Stuff that isn't in the hot-path (like device detection!) doesn't need to be blindingly fast. Also, remember that most of the layers you see in Linux GUIs (kernel, X11, toolkit, etc) are still present in MacOS X or Windows or even BeOS. You just don't notice it because they are opaque, and not talked about seperately in the marketing literature. If you read the tech docs, you'll find them all in there. Take a Windows vs Linux example:

HAL -> Not explicit in Linux, but implicit in each subsystem.
Executive -> Kernel
Win32 Server (crss.exe) -> No equivilent in Linux.

=========== kernelspace/userspace transition =============

X Server -> No equivilent in Windows.
GDI client library (gdi32) -> xlib
Common controls (comdlg32, commctrl) -> Qt or GTK.

Libraries like this one, along with FontConfig and Cairo, don't layer on top of others. They sit off to the side, in that calls to other layers don't go "through" them.Its like the layer of graphics APIs in OS X. OpenGL doesn't go "through" Quickdraw anymore than Quickdraw goes "through" OpenGL.