Ubuntu Kernel Team has a dedicated web site that links to various reports on kernel packages and versions on Ubuntu. From there, see package versions to quickly view what kernels are currently maintained on available Ubuntu releases.
List of kernel flavours prepackaged for Ubuntu:
What have been listed here excludes some meta and transitional packages that are not found in the package versions, but otherwise found in the Ubuntu Packages Search. Each description has been adapted from the Ubuntu packages or alternatively description from the
apt-cache show <package> command.
So, how do I choose?
Admittedly, there is no definite guide for choosing which kernels to use case by case.
End-users usually do not need to choose a different Linux kernel, for example, when installing Ubuntu Desktop in a virtual machine--it will just work. If the provided download images do not fulfill the needs, and instead user had to decide which kernels to use, then most likely the user needs to ask whomever that provides the service to run Ubuntu. They should have the answer.
What is the difference in the first place?
In one word: Optimization.
End-users usually do not go as far to find out what things are optimized for each and every kernels prepackaged for Ubuntu. There is no easy way to know what is the difference in the first place, unless the documentation was done properly. There is one place to find out: Changelog.
The changelogs are specific to each package and the currently supported releases. For example, the changelog for
linux in bionic has noted more changes related to optimization for various platforms in general, whilst the changelog for
linux-kvm in bionic has noted more changes related to the containers (OS-level virtualization).
TL;DR End-users do not need to choose and instead use whichever kernels included in the Ubuntu images. Else, look for someone with the knowledge--the service provider or whomever that is.
linux-kvmwith prepackaged on launchpad and meta package for 16.04 and newer.