GithubHelp home page GithubHelp logo

isabella232 / hypervisor-super Goto Github PK

View Code? Open in Web Editor NEW

This project forked from securesystemslab/hypervisor-super

0.0 0.0 0.0 254 KB

A Super Project to Simplify Building the Multicompiler

Shell 27.38% Makefile 12.33% CMake 40.81% Dockerfile 19.48%

hypervisor-super's Introduction

hypervisor-super

A super project to simplify building the Bareflank Hypervisor using the Secure Systems Lab Multicompiler. This project no longer requires a second "Native" version of the Multicompiler to correctly build Bareflank. As a result, the project configuration is greatly simplified. We only require the Bareflank Hypervisor be cloned into this repository, and make should take care of the rest.

Either the official Bareflank repository or our fork will work equally well now that we have support for custom build scripts from Bareflank.

Automated Installation Instructions

Invoke Setup Scripts

./setup

Build the Multicompiler

make multicompiler

Configure the Hypervisor

./configure_hypervisor.sh

Build the Bareflank Hypervisor and the Hyperkernel

CROSS_CXXFLAGS="<desired compile flags for the hypevisor>" make

Manual Installation Instructions

Checkout the Bareflank Hypervisor Source Code

git clone [email protected]:/securesystemslab/hypervisor.git hypervisor

or

git clone https://github.com/Bareflank/hypervisor.git hypervisor

Invoke Make

$ CROSS_CXXFLAGS="<desired compile flags for the hypevisor>" make

This should build Bareflank's Cross compiler using the Multicompiler source code and install any package dependencies. By default we use the Bareflank's setup_ubuntu_.sh so if your version of Linux is not ubuntu, please change the build_cross_compiler.sh script to reflect the change in OS. You may also want to check which packages and software the setup scripts will install on your system, and comment out the sections you find objectionable.

If you require no package dependencies, and want to build a local version of the cross compiler you may also substitute the following commands inplace of what is done in the build scripts:

cd hypervisor
CROSS_COMPILER=clang_38 ./tools/scripts/create_cross_compiler.sh`
touch .cross_compiler_created
cd ..

To build the hypervisor:

CROSS_CXXFLAGS="<desired compile flags for the hypevisor>" make

Note: the Makefile mirrors all CROSS_CXXFLAGS to CROSS_CCFLAGS and CROSS_LDFLAGS

To use the Multicompiler as the Bareflank 'Native' Compiler

Checkout the Multicompiler Super Project

git clone [email protected]:/ilovepi/multicompiler-automation.git multicompiler

Clone LLVM, Clang, Compiler-rt, Poolalloc, and SVF into the Multicompiler

project:

git clone -b cfar_38 [email protected]:/securesystemslab/multicompiler-priv.git multicompiler/llvm

git clone -b cfar_38 [email protected]:/securesystemslab/multicompiler-clang-priv.git multicompiler/llvm/tools/clang

git clone -b cfar_38 [email protected]:/securesystemslab/multicompiler-compiler-rt-priv.git multicompiler/llvm/projects/compiler-rt

git clone -b cfar_38 [email protected]:/securesystemslab/poolalloc multicopilerllvm/projects/poolalloc

git clone [email protected]:/rboggild/SVF multicompiler/llvm/projects/svf

Using Ansible

If you build on Ubuntu, you may use Ansible to automate installing and building the Multicompiler. There is a project that will build and install this project and all of its dependencies, including OS packages. If building on a remote system you will need to provide the correct credentials through Ansible, and may need to edit the inventory file to reflect not installing on the local host. This role was developed for use in a Jenkins job, as the branch name indicates. In the future these roles may be available on Ansible-Galaxy.

The project can installed by:

git clone -b jenkins https://github.com/ilovepi/vagrant-ansible-provisioning.git provision 

cd provision 

ansible-galaxy install -r requirements.yml ansible-playbook -i inventory playbook.yml --tags initialize 

NOTE: omit the --tags initialize to also immediately build the Multicompiler and Hypervisor

This will install the project to a folder named project, but that can be changed by providing the variable project_root the desired location to install in either the command line invocation, in playbook.yml, or in a vars file.

See http://docs.ansible.com/ansible/playbooks_roles.html for more detailed information.

hypervisor-super's People

Contributors

ilovepi avatar matt-dees 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.