Giter Club home page Giter Club logo

xhyp's Introduction

     __  __     _   ___   ______      _____ ____  _____ _____ 
     \ \/ /    | | | \ \ / /  _ \    |  ___|  _ \| ____| ____|
      \  /_____| |_| |\ V /| |_) |   | |_  | |_) |  _| |  _|  
      /  \_____|  _  | | | |  __/    |  _| |  _ <| |___| |___ 
     /_/\_\    |_| |_| |_| |_|       |_|   |_| \_\_____|_____|
                                                              

This programm is in alpha stage.
It actually runs on a versatile board inside of qemu.

This file gives you informations about using the xhyp hypervisor

	0) configure xhyp
	1) configure xhyp with guest domains
	2) build xhyp core
	3) test xhyp

===============================================================================
	0) configure xhyp

First of all you need to configure xhyp.
use: 
# ./Build.sh menuconfig

The first time, you will need the ncurses developpement package
to be able to uild the menu itself.

===============================================================================
	1) configure xhyp with guest domains

Use the config.domains file in the domains directory
you will find informations on the structure of the file
on the xhyp web site: http://xhyp.org/

The configuration should be obvious.

Use defaults domains you will find on the web site at
	http://xhyp.org/download/

or build your own domain using informations at
	http://xhyp.org/support/documentation/


===============================================================================
	2) build xhyp core

You need to use the Build.sh script.
In this file is an include file depending on the architecture
you will find it in the directory arch/${ARCH}/${BOARD}

Actually there is only one architecture, arm, and one
board supported, versatile.

in this file, toolchain.inc you will probably need to change
the cross compiler prefix and the PATH to find it.

like:
PATH=$PATH:/root/armbin
export CROSS_COMPILE=${CROSS_COMPILE:-arm-none-linux-gnueabi-}

you may also need to change appropriate options for C flags and
assembler flags if you choose another cross compiler.

Then you hopefully just need to start building xhyp with:

# ./Build.sh


===============================================================================

	3) test xhyp

You can actually test xhyp inside a qemu box with:

#  qemu-system-arm -M versatilepb -kernel xhyp -nographic

Contact us for more informations at [email protected]

We expect to soon propose new architectures and boards for the xhyp
hypervisor.

===============================================================================

	4) Building a para virtualized OS

Once you ported your OS on x-hyp you can test it by first 
compute a binary to include in the x-hyp image.
For example for Linux:

        LINUX=${LINUX_BASE}/vmlinux
        ${CROSS_COMPILE}objcopy $LINUX -O  binary os/linux.bin

You must of course first initialize the LINUX and CROSS_COMPILE variables.

then add the configuration in the domains/config.domains file
For example for Linux:


xhyp's People

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

oznog

xhyp's Issues

Fishy use of DSTATE_RMASK

DSTATE_RMASK seems to be a mask but is sometime used as a boolean:

kernel/sched_posix.c: if (!(current->state && DSTATE_RMASK))

This test is probably wrong, should probably be binary and &

use of uninitialized value

introduced in 37e0a0c

the value of retval is returned not initialized when case 2
in kernel/hypercalls.c line 504

int hyp_cpuctrl(void)
{
        unsigned long cp;
        unsigned long retval;

        deb_printf(DEB_CALL, "BEGIN\n");
        cp = (int) _context->regs.regs[0];
        switch (cp) {
        case 0:
                retval = _get_c0();
                break;
        case 1:
                retval = _get_c1();
                break;
        case 2:
                break;
        }
        deb_printf(DEB_HYP, "END: 0x%08x\n", retval);
        return retval;
}

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.