Sun ushers in VirtualBox 2.1 with cool new features!
It only feels like last month Sun released VirtualBox 2.0 and they’ve just released 2.1 which brings a plethora of additional goodies… from the changelog:
- Support for hardware virtualization (VT-x and AMD-V) on Mac OS X hosts
- Support for 64-bit guests on 32-bit host operating systems (experimental; see user manual, chapter 1.6, 64-bit guests, page 16)
- Added support for Intel Nehalem virtualization enhancements (EPT and VPID; see user manual, chapter 1.2, Software vs. hardware virtualization (VT-x and AMD-V), page 10))
- Experimental 3D acceleration via OpenGL (see user manual, chapter 4.8, Hardware 3D acceleration (OpenGL), page 66)
- Experimental LsiLogic and BusLogic SCSI controllers (see user manual, chapter 5.1, Hard disk controllers: IDE, SATA (AHCI), SCSI, page 70)
- Full VMDK/VHD support including snapshots (see user manual, chapter 5.2, Disk image ?les (VDI, VMDK, VHD), page 72)
- New NAT engine with signi?cantly better performance, reliability and ICMP echo (ping) support (bugs #1046{.closed.ticket}, #2438{.closed.ticket}, #2223{.closed.ticket}, #1247{.closed.ticket})
- New Host Interface Networking implementations for Windows and Linux hosts with easier setup (replaces TUN/TAP on Linux and manual bridging on Windows)
Some key things to note here, those “cool” people that run OS X can now get hardware virtualisation. Even if you have a 32bit host operating system your able to run 64bit hosts so long as you enable hardware acceleration on the CPU (AMD-V or Intel-VT) as VirtualBox’s Hypervisor requires this to work. A couple of other major additions – tested personally, include the enhanced virtualisation on the new Nahalem processors (Extended Page Table & Virtual Processor Identifier – see below) and the starting block for OpenGL (and later DirectX) Acceleration in XP and Vista. Testing this on OpenGL gave some decent performance though its still got a bit of work to do.
The move to include 3D acceleration is an interesting one, considering VMWare recently acquired Tungsten Graphics – who is the company behind Mesa, TTM memory manager and Gallium3D.� Interesting times ahead – as always 🙂
What’s an Extendable Page Table & that VPID thing???
Virtualisation in the Intel world comes in two flavours, the Intel VT-x and Intel VT-i Architectures. The VT-x is for IA-32 processors, whilst the VT-i is for Itanium processors.
Intel took a slice of the Virtualisation pie offered by AMD’s Pacifier architecture in implementing a method of translating ordinary IA-32 page tables from the guest-physical addresses to the host-physical addresses used to access memory. This way, guest’s can handle their own page tables directly and page-faults associated with them directly and minimize the (sizable) overhead associated with translating. This is known as Extended Page Tables (EPT).
Virtual Processor Identifiers (VPIDs) on the other hand allows a hypervisor (or a VMM) to assign a non-zero VPID to each virtual processor with the initial processor (VPID = 0) assigned to the hypervisor itself. This way, the CPU can use the VPIDs to tag translations in the Translation Lookaside Buffer (TLB) which removes the performance penalties associated with flushing TLBs on VM Entry and exit.
Both these two bits of technology (along with NMI-window exiting)� come on the Nahelem processor‘s Virtualisation enhancements. If your interested in a more indepth explanation see the article Solving Virtualisation Challenges with VT-X and VT-I from the Intel Technology Journal.
Other Changes in 2.1
- VMM: signi?cant performance improvements for VT-x (real mode execution)
- VMM: support for hardware breakpoints (VT-x and AMD-V only; bug #477{.new.ticket})
- VMM: VGA performance improvements for VT-x and AMD-V
- VMM: Solaris and OpenSolaris guest performance improvements for AMD-V (Barcelona family CPUs only)
- VMM: ?xed guru meditation while running the Dr. Web virus scanner (software virtualization only; bug #1439{.closed.ticket})
- VMM: deactivate VT-x and AMD-V when the host machine goes into suspend mode; reactivate when the host machine resumes (Windows, Mac OS X & Linux hosts; bug #1660{.closed.ticket})
- VMM: ?xed guest hangs when restoring VT-x or AMD-V saved states/snapshots
- VMM: ?xed guru meditation when executing a one byte debug instruction (VT-x only; bug #2617{.closed.ticket})
- VMM: ?xed guru meditation for PAE guests on non-PAE hosts (VT-x)
- VMM: disallow mixing of software and hardware virtualization execution in general (bug #2404{.closed.ticket})
- VMM: ?xed black screen when booting OS/2 1.x (AMD-V only)
- GUI: pause running VMs when the host machine goes into suspend mode (Windows & Mac OS X hosts)
- GUI: resume previously paused VMs when the host machine resumes after suspend (Windows & Mac OS X hosts)
- GUI: save the state of running or paused VMs when the host machine’s battery reaches critical level (Windows hosts)
- GUI: properly restore the position of the selector window when running on the compiz window manager
- GUI: properly restore the VM in seamless mode (2.0 regression)
- GUI: warn user about non optimal memory settings
- GUI: structure operating system list according to family and version for improved usability
- GUI: prede?ned settings for QNX guests
- IDE: improved ATAPI passthrough support
- Networking: added support for up to 8 Ethernet adapters per VM
- Networking: ?xed issue where a VM could lose connectivity after a reboot
- iSCSI: allow snapshot/diff creation using local VDI ?le
- iSCSI: improved interoperability with iSCSI targets
- Graphics: ?xed handling of a guest video memory which is not a power of two (bug #2724{.closed.ticket})
- VBoxManage: ?xed bug which prevented setting up the serial port for direct device access.
- VBoxManage: added support for VMDK and VHD image creation
- VBoxManage: added support for image conversion (VDI/VMDK/VHD/RAW)
- Solaris hosts: added IPv6 support between host and guest when using host interface networking
- Mac OS X hosts: added ACPI host power status reporting
- API: redesigned storage model with better generalization
- API: allow attaching a hard disk to more than one VM at a time
- API: added methods to return network con?guration information of the host system
- Shared Folders: performance and stability ?xes for Windows guests (Microsoft Of?ce Applications)
Performance & Updates
Overall, on the two different machines that I’ve tried the new 2.1 release on, they’ve both “felt” snappier (QX6850 and a Core i7 965E – architecture summary) but unlike the 1.6 release – which was somewhat flakey for me, 2.x releases of VirtualBox are solid.
Dont take my word for it, download and try it out.
Gets me a VirtualBox 2.1
Grab your copy and try it out.
VirtualBox 2.1.0 for Windows hosts x86{.ext-link} | AMD64{.ext-link}
VirtualBox 2.1.0 for OS X hosts Intel Macs{.ext-link}
VirtualBox 2.1.0 for Solaris and OpenSolaris hosts x86{.ext-link} | AMD64{.ext-link}
**VirtualBox 2.1.0 Software Developer Kit (SDK)**All platforms
VirtualBox 2.1.0 User Manual (updated 2008-12-17)
Give it a shot, heck try OpenSolaris 2008.11 on there just for kicks!