If I stick to one of the standard, well-supported VM disk images (like a raw image, or VDI, VMDK, ...), are Linux VMs typically easy to move between VM environments? E.g., between (say) VirtualBox and KVM, or VMWare and Xen? I'm talking here of fully virtualized environments, not paravirtualization requiring support within the guest OS.
It seems to me that the kernels in most Linux distributions these days are configured to...keep an open mind and detect things at boot time, so you don't have the issue that you sometimes have moving a Windows VM from one virtualization system to another (I'm thinking particularly of HAL issues that Windows has, like ACPI vs. non-ACPI; I've also just had Windows VMs generally acting strangely when moved from VMWare to VirtualBox, for instance).
I'm looking for a general answer, but if it helps, specifically I'm mostly going to be doing this with Ubuntu 8.04 LTS and 10.04 LTS guests. But that could change.
I was moving Linux VMs from VMWare to xen to openvz to kvm and back and had no issues that couldn't be resolved by massaging /etc/modules a bit, nothing that you really can't get out of with a bit of googling.
Windows is a diffrent story. I've managed to move Win2003 server VM from VMWare to xen but not without open heart surgery (mounting the image in linux and manually editing boot loader config). I have also managed to move from xen to kvm without any trouble, but thats to be expected since they are both running under qemu.
Linux is able to load modules (drivers) for it's hardware platform on demand. As long as your kernel is able to find modules for you hardware, it does not even matter on what platform you start your VM, save for a couple of caveats:
I'm not pro but I often use the same VMDK from a VMware virtual machine into a VirtualBox one, so I suppose that there is some standards between the virtual disk. I never tried Xen or other solution.