Skip to content

mfkiwl/hal

 
 

Repository files navigation

Hardware Abstraction Layer (HAL) of Nanvix

Build Status Join us on Slack!

What Is This Project About?

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.

Building & Running

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

License & Maintainers

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.

About

Rich HAL for Manycores

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • C 75.6%
  • C++ 20.2%
  • Assembly 3.5%
  • Other 0.7%