The official Ubuntu apt sources offer multiple editions of the kernel like generic, lowlatency, aws, azure, etc. E.g.:
$ apt-cache show linux-image-5\* | grep Package:
...
Package: linux-image-5.4.0-1036-gcp
Package: linux-image-5.4.0-1037-aws
Package: linux-image-5.4.0-1037-oracle
Package: linux-image-5.4.0-1039-azure
Package: linux-image-5.4.0-37-generic
Package: linux-image-5.4.0-37-lowlatency
How do these editions differ?
- Is it merely a different configuration used during the compile of the kernel to tune specific parameters?
- Are different kernel modules enabled/embedded by default?
- Is the kernel source patched with different code?
- Are they regularly rebased on a common mainline or did they diverge long ago and are now only mostly similar to each other?
How could I understand these differences myself?
- Is there a public forum where the maintainers of these packages discuss why the
gcpedition should vary fromgeneric? - Is the source code, configuration and build process of each variant maintained publicly for comparison against a baseline?
I've struggled to find these answers myself but I likely haven't found the right place to look. From what I've seen so far, it appears we're just expected to run the azure variant of the kernel on Azure VMs , and run the aws variant on EC2, and not worry about why, or what the consequences might be of just using generic in all the cloud providers.
Update 1:
Another StackExchange question does a decent job of explaining generic vs lowlatency but doesn't cover any of the cloud provider variants of the kernel.