Why are there so many "linux-" kernel packages on my machine, and what do they all do?

view story

http://askubuntu.com – In my usage of Ubuntu, I have noticed a baffling array of different Linux kernel packages. Some of them are listed below: linux-generic linux-headers-generic linux-headers-generic-pae linux-headers-x.x.xx-xx linux-headers-x.x.xx-xx-generic linux-image-generic linux-image-generic-pae linux-image-x.x.xx-xx-generic linux-image-x.x.xx-xx-generic-pae linux-image-extra-x.x.xx-xx-generic linux-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? (HowTos)