Ubuntu provides an alternative kernel package - linux-image-virtual, that is supposed to be optimized for use in virtual machines. What are actual optimizations and how much faster/smaller/better is it compared to the generic kernel when running on the guest OS? Also, are these optimizations equally effective for all leading virtual machines, or does QEMU/VirtualBox/VMWare/YourFavouriteVM gain any special advantages in performance?


2 Answers 2


The difference between the Virtual and Server kernels is that the Virtual kernel is intended to be utilized inside a virtual machine. The virtual kernel only includes the necessary drivers to run inside popular virtualization technologies such as KVM, Xen, and VMWare. The server kernel in contrast contains the necessary drivers to work with a wide range of hardware, and should be installed directly on host systems. Other than that, all other options are identical between the server and the virtual kernel.


The difference is that the virtual kernel only bundles drivers needed for the common virtual hardware devices instead of all the modules for real-world hardware.

So it is considerably smaller in terms of disk space. I'm not aware of any tuning for performance or any functional difference that way, I think it's just for smaller images.


  • 1
    In addition to this, I'd like to point out that Ksplice works for both generic and virtual kernel, which means you can make use of the rebootless kernel patching for free on AWS/Linode and various VPS (Xen/KVM).
    – Terry Wang
    Feb 17, 2013 at 23:22

But unfortunately no kernel modules (ip_tables) are loaded with linux-virtual kernel so no csf firewall "out of the box".


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .