pmnis / xhyp Goto Github PK
View Code? Open in Web Editor NEWXhyp is a small hypervisor currently for ARM architecture only
Home Page: http://x-hyp.org/
Xhyp is a small hypervisor currently for ARM architecture only
Home Page: http://x-hyp.org/
__ __ _ ___ ______ _____ ____ _____ _____ \ \/ / | | | \ \ / / _ \ | ___| _ \| ____| ____| \ /_____| |_| |\ 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:
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 &
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;
}
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.