In a recent
post Gernot made a comparison between nanokernels and hardware
abstraction layers (HALs). This prompted a question on the
OKL4 developers mailing list: well, couldn’t you consider a microkernel a HAL?
.
I think the logical conclusion, both theoretical and practical, is a resounding, no.
Why? Well, a microkernel is, in theory (if not always in practise) minimal. That is, it should only include things in the kernel are those pieces of code that must run in privileged mode.
So, if a microkernel was to provide any hardware abstractions, it will only be providing the abstraction that have to be in the kernel. Which really falls short of a complete hardware abstraction layer.
Now, probably the more interesting question is should the
microkernel provide any hardware abstraction
, and if so what
hardware should it be abstracting
, and what is the right
abstraction
. After starting to write some answers to these
questions I reminded myself of the complexity involved in answering
them, so I will leave these questions hanging for another post.