Skip to content

Hardware layer

Fabien Bavent edited this page Aug 27, 2019 · 2 revisions

Hardware layer

The kernel core is a portable code which is designed to be run on numerous architectures. However the kernel must be aware of the hardware capabilities and mechanisms. For this reason some routines and settings are completely dependent of the hardware. The HAL (Hardware abstraction layer) is a layer that provide platform requirements to the kernel core. This way the core works the same way across every platform.

At this moment, I only support the i386 architecture. I start working on long mode and arm for raspberry pi 2 but it's still on going.

The HAL has a unique ABI which must be implemented. Amongst all routines required we identify several sub-component, MMU & CPU.

Also the Hal is in charge of initiating the environment before the kernel might start. Once the platform is ready, one cpu must call kernel_start while others should call kernel_ready. Once those functions returned cpu have just to wait for interrupt.

Clone this wiki locally