From mboxrd@z Thu Jan 1 00:00:00 1970 From: Leonardo Taccari Subject: Re: virtualization Android OS + XEN. Date: Wed, 6 Aug 2014 13:58:32 +0200 Message-ID: <53e2184d.c65cc20a.28f3.6641@mx.google.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: anshul makkar Cc: xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org Hello Anshul, On Wed, Aug 06, 2014 at 11:19:28AM +0200, anshul makkar wrote: > [...] > I am working on a project Virtualdroid where I aim to achieve isolation for > each VM. > [...] > Please can you share your thoughts on above. I am target Cortex A9 without > hardware virtualization support and Cortex A15 with HW virtualization > support. The Xen ARM project (that requires ARM hardware virtualization extensions) is pretty stable and very active... A feature that is missing, compared to Xen x86, is the guest VM save/restore/migration[0] but reading your email probably you will not need it. An interesting page about other features not available or WIP is this: http://wiki.xenproject.org/wiki/Xen_ARM_TODO ...but I suggest you to also search that on xen-devel@ ML as well. A good introduction to Xen ARM is ``Xen ARM with Virtualization Extensions whitepaper'': http://wiki.xen.org/wiki/Xen_ARM_with_Virtualization_Extensions_whitepaper I've investigated and used a bit Xen ARM on Debian GNU/Linux armhf testing system both for Dom0 and DomU on a cubieboard2. Every steps needed are documented here (probably you can adapt them easily): http://wiki.xen.org/wiki/Xen_ARMv7_with_Virtualization_Extensions/Allwinner ...this link is also very helpful: http://openmirage.org/wiki/xen-on-cubieboard2 In very few words for the GNU/Linux case (but probably you can apply them also for Android): * You need a modified version of u-boot in order to start the CPU in non-secure mode (Xen runs in HYP mode): https://github.com/jwrdegoede/u-boot-sunxi * Initial Xen ARM support was added in Linux 3.7[1], and better support is available on more recent versions. * u-boot, Linux kernel and Xen hypervisors are easily cross-compilable, in the Debian GNU/Linux case you will find Emdebian project useful: http://emdebian.org/crosstools.html The interesting package that includes everything needed for cross-compilation is ``gcc-4.7-arm-linux-gnueabihf''. * For compiling the Xen toolstack (xl, libxl, ...) I've used debootstrap to generate an armhf chroot and then I've compiled it thanks to QEMU user mode emulation (dynamic binary translation). Interesting package for Debian GNU/Linux is ``qemu-user-static''. After you have succesfully generated a chroot then copy ``qemu-arm-static''in the chroot's /usr/bin and then simply by chroot(8)-ing into it you can install the gcc packages and use it like you are in an armhf system without any problems. I've done that on my university laboratory that has old Intel Core Duo and compiling Xen toolstack on them is pretty fast. If you would like to know more about ARM hardware virtualization extensions ``Hardware-Supported Virtualization on ARM'' by P. Varanasi and G. Heiser IMHO is a well written paper: http://apsys11.ucsd.edu/papers/apsys11-varanasi.pdf HTH! Have fun! :) Ciao, L. [0]: http://lists.xen.org/archives/html/xen-devel/2014-04/msg02057.html Here you can find patches (not applied AFAIK) regarding guest VM save/restore/migration [1]: http://kernelnewbies.org/Linux_3.7#head-7e55c4d19ada23abf473d08e4384cbe7a7d7772d