A Hardware Abstraction Layer (HAL) is the lowest-level software abstraction in an operating system. Its role is to provide a uniform view of the underlying architecture so as kernel portability is achieved. This repository hosts the HAL source tree of the Nanvix Microkernel. This HAL is designed as flexible and generic as possible, so that it may be easily integrated into other kernels as well as extended to new platforms. Currently, this HAL supports the multiple platforms, including the ones based on the Kalray-MPPA 256 and OpTiMSoC lightweight manycore processors.
1. Clone This Repository
export WORKDIR=$HOME # Change this at your will
cd $WORKDIR # Go to working directory
git clone --recursive https://github.com/nanvix/hal.git # Clone the source tree
2. Get the Development Toolchain
Install build dependencies.
cd $WORKDIR/hal # Enter the source tree
sudo bash tools/dev/setup-prerequisites.sh # Get essential tools for building
Export the name of the desired target:
export TARGET=qemu-x86 # QEMU x86
export TARGET=qemu-openrisc # QEMU OpenRISC
export TARGET=optimsoc # OpTiMSoC
Build the toolchain itself:
bash tools/dev/setup-toolchain.sh
Build simulators:
sudo bash tools/dev/setup-qemu.sh
Add simulators to your path:
export PATH=$PATH:$WORKDIR/hal/tools/dev/toolchain/qemu/bin
3. Build the HAL
make distclean # Ensure a clean working directory.
make all # Build the HAL.
4. Run Regression Tests (optional)
make run-ccluster # Compute Cluster
make run-iocluster # IO Cluster
Nanvix is a free operating system that is distributed under the MIT License. It was created by Pedro Henrique Penna, but it is now maintained by many others. If you are interested in contacting any of the contributors, take a look in the complete list of contributors of Nanvix.