Here are some of the interesting observations I have made:
%s: %s detected by CPUIDI noticed the following strings around detecting certain guest hypervisors, is this a hint that VMware is going to support other virtual "hypervisors", specifically Microsoft and Xen?
%s: VMware detected
Microsoft Hyper-V
%s: Xen detected by hypercall
Xen detected but hypervisor unrecognized (Xen variant?)
vSphere to support Mac OSX?
Linux HostThere were some text that listed the various types of host, including Mac OSX.
Windows Host
Mac OS Host
Make sure that you have installed all available Mac OS X software updates.
@&!*@*@(msg.cdrom.darwindisconnect)Your Mac OS guest is using this CD-ROM device. The safest way to disconnect this virtual CD-ROM is by pressing %s, then ej
ecting the media from inside the guest%s. To continue anyway, press %s.%s
@&!*@*@(msg.Backdoor.OsNotMacOSXServer)The guest operating system is not Mac OS X Server.
@&!*@*@(msg.cpuid.darwinWithBTHV)Mac OS X is not supported with software virtualization. Change the execution mode to automatic.
@&!*@*@(msg.cpuid.darwinWithBT)Mac OS X is not supported with software virtualization. To run Mac OS X you need a host on which %s supports hardware virtuali
zation.
isolation.bios.IsGOS.Darwin
There were some text that listed various messages regarding Mac OSX
sbiosAs you can see, there is mention of EFI support which is required to boot Mac OSX. Does this mean future version of vSphere will support virtualizing Mac OSX?
vbios
bios440
efi32
efi64
nvram
lsibios
nbios
nxbios
nx3bios
e1000bios
vmibios
vmmmods
sas1068bios
pvscsibios
New guestOS types?
darwin10There was a section that I came across which listed all supported guestOS types, here you can see there have been a few more that were added between vSphere 4.0 and 4.1. One interesting thing that I am not sure if a lot of people have noticed, is the VirtualMachineGuestOsIdentifier in the vSphere API. This basically provides the guestos identifier that is supported in each release of VI/vSphere. Interesting enough, a darwin guestos support has been documented as of vSphere 4.0:
darwin10-64
darwin-64
mandrake-64
opensuse
opensuse-64
winServer2008Cluster-32
winServer2008Cluster-64
winServer2008Datacenter-32
winServer2008Datacenter-64
winServer2008DatacenterCore-32
winServer2008DatacenterCore-64
winServer2008Enterprise-32
winServer2008Enterprise-64
winServer2008EnterpriseCore-32
winServer2008EnterpriseCore-64
winServer2008SmallBusiness-32
winServer2008SmallBusiness-64
winServer2008SmallBusinessPremium-32
winServer2008SmallBusinessPremium-64
winServer2008Standard-32
winServer2008Standard-64
winServer2008StandardCore-32
winServer2008StandardCore-64
winServer2008Web-32
winServer2008Web-64
XenVMMXenVMM
Though we all know we can not run Mac OSX on ESX(i) ... at least not just yet from what the above is hinting at.
These were just a few of the interesting things I found while parsing through the strings output when looking at the ESX 4.1's vmware-vmx binary.
Here is a collection of over 1200+ documented and undocumented .vmx configuration parameters.
**** These are not documented by VMware, use at your own risk! ****
http://https://s3.amazonaws.com/virtuallyghetto-download/hidden_vmx_params.html
**** These are not documented by VMware, use at your own risk! ****
Some of these hidden .vmx entries have been shared by the VMware and the community, here are just a few:
- http://www.virtuallyghetto.com/2010/10/how-to-control-maximum-number-of-vmware.html
- snapshot.maxSnapshots = Control the maximum number of VMware snapshots
- http://www.vcritical.com/2009/05/vmware-esx-4-can-even-virtualize-itself/
- monitor_control.restrict_backdoor = Run virtual ESX(i) hosts on top of ESX or ESXi
- http://vinf.net/2009/06/07/vsphere-cannot-enable-ft-for-a-nested-vm/
- replay.allowBTOnly = Allow FT to be enabled on vVM running on vESX(i)
- replay.allowBT = Allow FT to be enabled on vVM running on vESX(i)
- http://kb.vmware.com/kb/1010184
- cpuid.coresPerSocket = Specify the number of cores per physical socket
- http://www.sanbarrow.com/vmx/vmx-advanced.html
I did a bunch of work to run Mac OS X on Workstation, Server and ESX(i). Currently running Snow Leopard on ESXi 4.1 using some undocumented tricks and a hacked boot loader. The settings do enable various emulation features for the virtual hardware; e.g SMC controller and adding ICH7M root to PCI.
ReplyDeleteOK as for the other hypervisor's being detected I think it is to stop nesting. The IDs you have found are returned by the vendor specific CPUID instructions which can identify the running hypervisor. See this KB article http://goo.gl/RRl9E for VMware version and http://goo.gl/H4lGT for Xen detection code.
ReplyDeleteThese strings have been in Workstation for some time as have most of the parameters you have noted as the code is shared.
The vmware-vmx file is also the core of talking to the hypervisor and also contains other things such as the virtual BIOS and option BIOSes for SCSI and so on.
Note that VMWare already supports virtualising OS X Server, but Apple's licensing means its restricted to when VMWare is itself running on Apple hardware. You can, perfectly legally, get a Mac Pro, install VMWare, and install any number of OS X Server images on top of it as long as you buy a licence for each one. This existing support is probably what your strings investigation is picking up on, so it probably doesn't mean much one way or the other about future support.
ReplyDelete