I'm getting new VMs built for development and staging environments, and was wondering whether there are compelling reasons for or against using the linux-virtual package on all of these images.
Do the -virtual kernels have different tuning? Do they have tools that make the suspend/wake-up better/safer?
Since 12.04, there is no difference between the Desktop
linux-generic
and Serverlinux-server
kernels; they have been merged. (Source; see here for why this was done.)The virtual kernel differs only in the number of included drivers. It only includes "the necessary drivers to run inside popular virtualization technologies such as KVM, Xen, and VMWare. ... Other than that, all other options are identical between the generic and the virtual kernels."
In practice, this means the
-virtual
kernel image is smaller, and may also take up somewhat less room in memory (fewer built-in modules/drivers). The savings are probably in the single-digit megabyte range, so it won't make a difference for most VMs.Server and Desktop kernel differences before 12.04:
Before 12.04, the differences were:
The Server Edition uses the Deadline I/O scheduler instead of the CFQ scheduler used by the Desktop Edition.
Preemption is turned off in the Server Edition.
The timer interrupt is 100 Hz in the Server Edition and 250 Hz in the Desktop Edition.