64-bit VirtualBox host running a single 32-bit guest, good idea?
Linux - Virtualization and CloudThis forum is for the discussion of all topics relating to Linux Virtualization and Linux Cloud platforms. Xen, KVM, OpenVZ, VirtualBox, VMware, Linux-VServer and all other Linux Virtualization platforms are welcome. OpenStack, CloudStack, ownCloud, Cloud Foundry, Eucalyptus, Nimbus, OpenNebula and all other Linux Cloud platforms are welcome. Note that questions relating solely to non-Linux OS's should be asked in the General forum.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
64-bit VirtualBox host running a single 32-bit guest, good idea?
Hi,
I need to host a Windows 2003 (32-bit) guest VirtualBox image.
My machine is a top of the range Intel i7 920.
Ignoring all RAM benefits/limitations, should I install Ubuntu Server AMD64 or x86 for the host OS (along with the AMD64 or x86 versions of VirtualBox)?
Or is it bad to run 32-bit guests in 64-bit hosts?
Ok thanks. Just wanted to make sure the 64-bit host doesn't have a lot of overhead when trying to perform 32-bit emulation since it was really designed for 64-bit emulation.
This "emulation" word may stand in the way of your understanding what virtualization means. The CPU is not being emulated, nor is the operating system. In fact, I'm not sure if anything is actually emulated. Instead, what happens is that the virtualizer stands between the Guest OS and the hardware. This is because the Guest can't, under almost any circumstance, be allowed direct access to the hardware or filesystems for fear of leaving it in an invalid state for the Host. For instance, it should be obvious that you can't have two filesystem managers managing one filesystem at the same time. So, essentially the Host OS just runs as normal, and whenever it accesses hardware or filesystems or probably a number of other things, a request is made to the Host OS.
This is over simplified and doesn't address 32-bits vs 64-bits, but hopefully it gives you some insight into what is happening.
Hmm makes sense.
But what VirtualBox running on Mac OS (Mac host with Ubuntu x86 guest for example) it must be doing some emulation there for the x86 instruction set to run the linux guest right?
Hmm makes sense.
But what VirtualBox running on Mac OS (Mac host with Ubuntu x86 guest for example) it must be doing some emulation there for the x86 instruction set to run the linux guest right?
I don't think so. Macs are Intel-based these days. I doubt you can run an X86 guest on a PowerPC Mac.
I run Windows Server 2003 32-bit as a Guest in VirtualBox on my 64-bit Windows Vista OS. I have a Core i7 CPU and 6GB of RAM.
Mostly what is emulated by VM software is the physical devices and memory management functions. With hardware virtual features such as in the Core i7 those functions are done in hardware through the use of nested page tables and hardware interception of I/O addresses.
For an X86 processor emulating an X86 processor the CPU usually executes the instructions and the virtual software intercepts some of the resulting accesses and operations. When a CPU is emulating a completely different CPU then it (usually) has to interpret the instructions and execute them. That is usually much slower.
On a multi-core CPU even a single-core emulated CPU may actually run faster than the real hardware. That's because the hard disk access and actual hardware I/O is done outside the virtual machine and may actually be handled by some of the other CPU cores in parallel.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.