Risner, on Jun 11 2010, 05:12 AM, said:
Albert, I missed your question or I would have answered them.
A couple comments, current ESXi is installed to flash via booting the ISO and selected the flash as the install disk. So the /bin/dd method is deprecated.
VMware somewhere announced that ESX is going away in the future and all paid & free ESX will be ESXi. Current ESXi 4 is both paid and free, you unlock features by paying the license fee and entering the license (one prime example is jumbo frames on NAS.)
File /etc/vmware/ft-vmk-version has the version:
product-version = 4.0.0
ft-version = 193498
Compiling apps to run on ESXi can be done, but there are a LOT of libs you can't use (ncurses for example is problematic.) You also need to link it statically. I've got rsync and a few other apps built to run native on the ESXi systems.
# find / -name \*vmware-vmx\* -print
So no vmware-vmx executable.
Each vm does have a proc running:
# ls -l /bin/vmx
-rwsr-xr-x 1 root root 8690492 Sep 17 2009 /bin/vmx
It appears to fork off or is ran multiple times (I've never checked which) because
each VM seems to have multiple processes of this binary.
UI is web based, in a round about way I believe (again never checked) since the .Net app (Windows only) used to manage I believe does all it's work over an https connection to the server.
Just to add to this good post.
1. ESX and ESXi 4.0 are not based on Linux which is a popular misconception. The hypervisor is it's own OS. It is true there are 2 different layers of Linux capabilities inside ESX(i).
- ESX - the console operating system is based on Redhat Linux - but from ESX 4 is not used to boot the system. It is in essence a privileged guest OS that resides inside its own VMDK. Similar to Dom0 in Xen
- ESXi - the command line system is based on BusyBox so utilities would need to be compiled for that environment
- ESX & ESXi - the driver level (via the DDK) uses a Linux emulation API to aid in driver porting. The open source code can be obtained from VMware, but it is pretty hard to get a decent environment to build unless you are part of the paid VMware Partner programme.
2. The vmware-vmx equivalent is the vmx process mentioned in the previous post. However it will not have all the hooks you have found for the latest hosted products. ESX tends to run one version behind the core virtual platform inside the hosted products. So:
- VMware Workstation 7.x, Player 3.x & Fusion 3.x are related - Include newer HPET code and EFI BIOS for booting Darwin.
- VMware Workstation 6.5, Player 2.5 and Fusion 2.5 are related to ESX(i) 4 - and does not contain the EFI BIOS capabilities only the darwin.iso method for booting Darwin.
3. The front-end for ESXi free & paid edition can ignore the parameters and fire up a Mac OS X guest, the addition of vCenter server stops this. So you have to control the ESX host via a direct connection. The front end code is a mix of Windows C# and C++ code talking through a SOAP API to the hostd process running on the ESX(i) box. That means to add a seamless experience to the product means patching in many different areas.
4. As the virtual hardware lags behind Workstation 7 et al., my latest darwin.iso patches the kernel in memory before launching it. Primarily the LAPIC version is too low for the 10.6 kernel, so a patch (done with Meklort from Chameleon team) removes the panic to NOPs. Also issues with FSB reporting using the VMware boot-132 code, which Chameleon fixes. (Code available if you want it as per APSL. Was waiting to get to a final version before releasing it.)
A pretty big challenge! Not to say it isn't worth trying.
Risner, on Jun 11 2010, 04:19 AM, said:
I guess the only way to properly do this is to dedicate a system to just Snow Leopard VM's. I've read about running Workstation in a VM, but I don't remember if that was "it works" or "it can't work." I know you can run ESXi in an ESXi VM, can you run Workstation in an ESXi VM? If so, it might be worth buying a Workstation license per Snow Leopard to do this.
Kills the idea of running Workstation inside an ESXi, since I only have Intel CPU's. ;-)
You can run Workstation inside ESXi 4 with Intel CPUs but it won't give you what you want. You are limited to 32-bit nested guests with no access to VT-x, which is essential for the built-in Mac OS X virtualization.
(Funny this, I was the first one to post how to do this on VMware forums with the help of Jim Matteson, one of the VMware engineers!)