Xen is a hypervisor that supports x86, x86_64, Itanium, and ARM architectures, and can run Linux, Windows, Solaris, and BSDs as guests on their supported CPU architectures. Xen can do full virtualization on systems that support virtualization extensions, but can also work as a hypervisor on machines that do not have the virtualization extensions: For example, Atom and ARM (that are some interesting low power processors) and older CPUs. Also if you want to run a Xen host, you need to have a supported kernel.
KVM is a hypervisor that is in the mainline Linux kernel. Your host OS has to be Linux, obviously, but it supports Linux, Windows, Solaris, and BSD guests. It runs on x86 and x86-64 systems with hardware supporting virtualization extensions. This means that KVM is not an option on older CPUs made before the virtualization extensions were developed, and it rules out newer CPUs (like Intel’s Atom CPUs) that do not include virtualization extensions. For the most part, that is not a problem for data centers that tend to replace hardware every few years anyway , but it means that KVM is not an option on some of the niche systems like the SM10000 that are trying to utilize Atom CPUs in the data center.
Xen is running on quite a lot of servers, from low-cost Virtual Private Server providers like Linode to big boys like Amazon with EC2. Xen has been around a bit longer, also it has had more time to mature than KVM. You’ll find some features in Xen that haven’t yet appeared in KVM, though the KVM project has a lengthy to do list but KVM is going to become more prominent in the future. Also, RedHat and Canonical have begun supporting KVM. Also, KVM is not mature project but KVM performance is improving day by day and it is growing in the kernel Linux because KVM is part of the main Linux kernel.
A difficult decision:
Xen and KVM consume little overhead and power. It is hard to choose a winner because it depends of the environment and each one. KVM is rapidly improving through Xen has better management tools than KVM and Xen migrations are more robust.