eu gostaria de saber as diferencas entre eles....
Putz, é complicado explicar o que cada um faz, até por isso eu te dei uma explicação bem simplista, não se preocupe com as outras versões, porque provavelmente se você precisar usar qualquer uma delas, você saberá o que ela significa.
Mas vamos lá, vou dar uma pincelada básica em que cada uma faz, embora eu não conheça todas, posso ajudar em algumas.
Recomendo fazer uma pesquisa no Google caso você tenha real interesse em alguma.
generic,
386 e
padrão (sem nome) - são a mesma coisa, o kernel que 99% dos usuários de desktop devem utilizar, bom desempenho e otimizado para aplicações comuns do dia-a-dia.
openvz - otimizado para servidores de virtualização OpenVZ.
rt - não sei o que signfica, talvez Real Time, se for isso é bom para usuários que lidam com aplicações como edição de áudio e vídeo por exemplo.
server - basicamente o mesmo kernel 386, porém com o quantum mais alto para melhorar o desempenho de aplicações que funcionam em segundo plano, ou como daemons.
virtual - não tenho certeza, talvez um kernel otimizado para clientes de máquinas virtuais.
xen - otimizado para trabalhar com máquinas virtuais XEN.
headers não é a mesma coisa que o kernel, são cabeçalhos utilizados para desenvolver aplicações ou drivers que lidam diretamente com o mesmo, e o header deve ser exatamente igual ao kernel em versão e otimizações, por isso para cada versão do kernel haverá uma igual de cabeçalho.
Espero ter ajudado, qualquer dúvida no Google é fácil encontrar essas informações.