Nanokernel is said to be a hardware abstraction layer. Adeos is a nanokernel.The purpose of Adeos is to provide a flexible environment for sharing hardware resources among multiple operating systems, or among multiple instances of a single OS. To this end, Adeos enables multiple prioritized domains to exist simultaneously on the same hardware. For instance, we have successfully inserted the Adeos nanokernel beneath the Linux kernel, opening a full range of new possibilities, notably in the fields of SMP clustering, patchless kernel debugging and real-time systems for GNU/Linux.
The only difference that I can see between a HAL and Adeos is that Adeos supports multiple domains on the top of it as its clients. It decides whom to provide the interrupt first by organizing and forming a pipeline. And the HAL supports only one OS on the top of it, and simply offers it the interrupts.
Is that the only difference between a HAL and Adeos?
EDIT:
Client domains can even request Adeos to completely disable interrupts from a particular hardware source (example PIC).
Is this possible with a pure HAL too?