How do I implement a virtualization app like virtualbox? - virtual-machine

There are many tutorials on how to create a virtual machine using platforms like vmware, virtualbox, hyper-v, etc.
But how do these apps actually work?
And how would one go about implementing software that can create virtual machines?

Related

Running single application on a virtual environment

I don't know whether this is possible but would like to give it a go and see if someone knows something about it.
I work with applications that fix phones and sometime it happens that driver of one application can conflict with another.
I was wondering if is possible to create multiple virtual machines (lightweight) that can host a single software and just drivers related to it so I can isolate the environment from other software.
Let's say I want to create one virtual machine that when I turn on, it will only open a samsung app,it will have it's own drivers, dedicated small space and device connection ability.
I want to do this with multiple software.
I heard of virtual machines like virtual box but thought they are too heavy for running a single app.
How about docker or something similar? can they work for this purpose?
NOTE: I want to run software that run on win 7 only.
Thanks
Docker runs only on Linux; you will need sort of "full virtualization" software to run it on Windows!
I know of several VM software for Windows, but all of them are rather heavy for running a single app. Also, I think you need separate Windows license for each "guest" ("child") Windows installation.
http://www.zdnet.com/article/the-best-and-cheapest-ways-to-get-windows-and-linux-for-virtual-machines/

Using virtual machines for OS compatibility testing of software

I need to test a software across different operating systems for compatibility. Is using a virtual machine with different OSs installed a good way to test for compatibility? Is there a repository somewhere where I can use pre-built virtual machines for this?
This question is probably better suited for https://sqa.stackexchange.com/
But yes, using VMs is a good way to scale tests out to multiple platforms and configurations. Unfortunately you won't find a library of images you can just grab and use as you will need licenses for any commercial operating systems and applications installed on the image.

How to use USB over Remote Connection to a Virtual Machine

I'm trying to do mobile application development (BlackBerry, Android) on a virtual machine. My idea is that no matter what desktop I'm on I can open a remote connection to the virtual machine and have my mobile development environment ready. The problem is that I would like to deploy code to the mobile device as if it were physically connected to the virtual machine. Ideally the devices will be plugged in to the client machine that is creating the remote connection.
I'm currently using VMWare workstation to manage my virtual machines, I've done a bit of research to see what the best solution for connecting my usb devices over the network is.
There are a multitude of pricey USB over network solutions that may or may not work for what I'm trying, but I would like to avoid those. I would be interested in a free open source solution where both the usb host and usb client are windows machines. This is close to what I am looking for http://usbip.sourceforge.net/, but you can't host a device from Windows.
It appears that I may be able to do this with a Hyper-V VM and RemoteFX through Microsoft RDC, but I would like this to work on my existing VMWare VM.
The quickest solution I've found is a network usb hub that would allow me to connect the devices over the network, but this would force me to be attached to the hub which is a problem if more people come on my project.
Ideally I'm looking for an existing software solution to my problem. Any suggestions?
Also can anyone confirm this would work in Hyper-V using RemoteFX?
I would consider porting your VM over to VirtualBox from Sun (now Oracle) they have remote USB support out-of-the-box, and are very stable.
I've ported machines the other way (for work) and it's not difficult.

One click virtual machine demo?

I want to give a demo for my customers use virtual machine, but I don't want the customer to install the virtual machine software, can I make a demo which bundle the virtual machine software and my virtual machine, then just a click to run the virtual machine. It will be cool. is there any tool can do that?
I'm not aware of a virtual machine that doesn't need to be installed. If using Windows, the Microsoft Virtual PC is a relatively compact, free, quick-to-install option for a VM.
One other option would be to install an OS and your demo onto a USB flash drive. As long as the computer used can boot from USB (which is pretty common in newer computers), then you can have complete control over the OS in this fashion.
EDIT: Sun VirtualBox is free VM software. You do have to install it, but I've found that it works well, plus it's free.
You could try using Portable VirtualBox as per this forum thread. I have not tried it myself but it seems like some people have had luck with it.

What's your choice for testing your program in a virtual machine?

When testing our software on several different systems (98-XP-Vista-Seven-Linux-etc), I think that the best choice is to use virtualized systems.
What's your choice: VMware, Virtual Box or MS Virtual PC/Server? and why?
We use VMWare here at work. Really any VM software that supports snapshots (or some way of saving the state of the machine) will work well. Snapshots make it easier for testing installs and rolling back. It can also help if you program goes and modifies files for returning back to a known-good state.
Virtual Box is the way to go. It has snapshots and is platform independent (Good for Mac users who want to test on other OS's). And it is free.
If it's available, Hyper-V on Windows Server 2008 is a powerful and full-featured entry including snapshot trees and all the niceties you'd expect with a quality UI.
If you're planning on using the VM on your local dev machine so you can (e.g.) bring it home on your laptop to work from there, then the more client-oriented virtualization software is probably the way to go.
If you're planning on using the virtualization in a primarily professional environment, a number of Hyper V machines in a computer lab that you can remote into is a powerful paradigm that we've been using at my office for a few months now.
My own preference is to use a local VM (Virtual PC is the easiest one for me) as my development environment because I can bring my work laptop home and use the VM there also (I don't VPN into the office). I then use the lab's Hyper-V machines for tests, deployments, etc because they have a better story for taking and restoring snapshots.
Go VMware. My reason is simple: before VMware released VMWare player and VMware server (the virtualisation platform formerly known as VMware GSX), the market for VM hosts was limited and expensive.
When VMware released these for free, all the other manufacturers (yes, I'm looking at Microsoft here) had to follow suit, so if it wasn't for the beneficence of VMware, we'd still be looking at having to buy our VM host software.
So, support VMware for being the good guys.
Oh, and their enterprise products are the business, they work well with Linux, have some excellent memory-saving tricks (here's the tech details), multiple snapshots and snapshots off a base image, and have features such as VMotion (load spreading) that other products don't support nearly as well (if at all).
Microsoft's VirtualPC. It free and simple.
One bit of functionality that is nice is the differenced VHDD that makes it easy (and space wise cheep) to keep backing up/reverting the image
VMWare, that's what we use here. We have both the full blown ESX for virtual servers and the VMWare workstations for development / testing. ESX resource management is very good, and easy to configure.
I've used VMWare (when the company would pay for it), VMWare Server (when the company would not), VirtualBox (because it's free, decent, and supports snapshots), Parallels on the Mac (which I bought), and Xen.
All work fine.
My current workhorse is VirtualBox, largely because it's free, supports snapshots, and runs on the various host platforms I have to use.
VMWare works pretty well, but for high cpu server apps we have found that Microsoft's Hyper-V works better because it has better cpu reservation abilities.
The key is that the system has snapshots, so you can easily roll back to several states (most do) and we have found that both VMWare and Hyper-V have excellent API's allowing us to kick off our automated tests when a new build completes.
Microsoft Virtual PC for Microsoft OS's, Virtual Box for *nix.
Virtual PC seem to be slightly faster and more stable, but it does not support linux.
We might have used VMWare if it was free,but our company would not spend the money.
Virtual box is great. It does have some stability issues if you run it inside Mac OS X. if you need a single solution to run multiple OS's this would be the one.
Linux/OpenSolaris on top of Virtual Box on top of Linux.