Generic is the name of one of the kernel images supplied with Ubuntu, and is optimised for the i686, and installed by default in the LiveCD and alternate CD. (
http://hafizimtiaz.blogspot.com/2008...kernel-to.html)
The difference in the headers is that the -generic is preconfigured with the specific files for the i686 architecture, particularly the asm (assembly) files. Note that the kernel-headers are used to compile programs that need to know about the kernel's public interface, not to compile the kernel itself, so the kernel-headers packages have all these things set up by default.
I believe that the kernel-headers package contains just the vanilla kernel headers, since the -generic package depends on kernel-headers (see
http://packages.ubuntu.com/intrepid-...6.27-7-generic), and the -generic one adds in extra files as needed.
Compiling your own kernel package:
http://tuxicity.wordpress.com/2007/0...-architecture/
I'm not sure what a .cmd file is, but looking at the files, they seem to be something to do with the kernel's make/dependency system.