Giter Club home page Giter Club logo

hal's Introduction

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.

hal's People

Contributors

ppenna avatar joaovicentesouto avatar theldus avatar cosciad avatar joaofel-u avatar antoinesaget avatar joseguilhermecr avatar nicolasvanz avatar thiagohn avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.