In my usage of Ubuntu, I have noticed a baffling array of different Linux kernel packages. Some of them are listed below:
linux-genericlinux-headers-genericlinux-headers-generic-paelinux-headers-x.x.xx-xxlinux-headers-x.x.xx-xx-genericlinux-image-genericlinux-image-generic-paelinux-image-x.x.xx-xx-genericlinux-image-x.x.xx-xx-generic-paelinux-image-extra-x.x.xx-xx-genericlinux-image-extra-x.x.xx-xx-generic-pae
My question is, why are there so many different kernel packages, often for the same version number (e.g., 3.5.0-24), and what are the differences between them?
Edit to deduplicate: This question is not asking about the differences between generic, server, and virtual kernel packages; instead, it is asking about what all of those packages (as well as the ones in the list) are.