There are different Linux kernels for different cloud environments. For example, Canonical offers the linux-azure, linux-kvm, linux-gcp, linux-gke, linux-gkeop, linux-oracle and linux-aws variants, all for the same Ubuntu release, for use with Microsoft Azure cloud, Kernel Virtual Machine KVM, Google Cloud Platform GCP, Google Container Engine GKE, GKE on premises, Oracle systems or Amazon Web Services AWS.
What constitutes the differences between these kernels for different clouds in kernel configuration or applied patches that mandate building different kernels for all of these virtual environments instead of offering just one VM kernel that contains the modules for all the virtual and paravirtualized hardware that these hypervisors are offering and leaving out support for hardware that is missing in any cloud ?
Disclaimer: I'm not asking for the kernels that constitute those cloud platforms and run the hypervisors but I'm asking only for the kernels that are supposed to run inside the VMs.
I'm seeking the big picture that allows an overall understanding of the topic irrespective of all the details of particular cloud environments/hypervisors or different Linux kernel releases or Linux distributions.
Please comment if you downvote such that I can understand the issue.