Archipel is a solution to manage and supervise virtual machines. No matter if you have a few locally on your computer or thousands through data centers, Archipel is a central solution to manage them all. You can use all libvirt-supported virtualization engines like KVM, Xen, OpenVZ, or VMWare. You can perform all basic virtualization commands and many other things like live migration, VMCasts, packages, etc. Archipel uses XMPP for all communication. There is no Web service or custom protocol. You just need at least one XMPP server, like eJabberd, to start playing with it. This allows Archipel to work completely in real time. You never have to refresh the user interface. You'll be notified as soon as something happens. You can even use your favorite chat clients to command your infrastructure. You can open a chat conversation with your virtual machine and say things like "How are you today?" or "Hey, please reboot."
imvirt is a Perl script that tries to detect if it is called from within a virtualization container. This is detected by looking for well-known boot messages, directories, and reading DMI (Desktop Management Interface) data. The following containers are detected: Virtual PC/Virtual Server, VirtualBox, VMware, QEMU/KVM, Xen (para and non-para virtualized), OpenVZ/Virtuozzo, UML, and any HVM providing CPUID 0x40000000 detection.