De uma forma resumida, basicamente é isso que o Miguel disse. O Kernel é a base de abstração onde os programas trabalham e utilizam o Hardware sem sequer saber em que hardware trabalham.
O Kernel resumidamente é: os drivers, as bibliotecas e os controlos funcionais do sistema digital.
Como é uma coisa muito importante, em que se algo falha destabiliza por completo toda a instância digital, geralmente o Kernel Linux é empacotado de forma completamente independente, sem dependências para que ao se instalar uma nova versão esta não afeta anteriores. Com isto, se algo correr mal podemos arrancar versões anteriores.
É por este facto que à medida que recebemos mais atualizações vamos vendo a lista de kernels a aumentar. Na verdade só utilizamos sempre o mais recente, os outros ficam como forma de backup, de cópia de segurança do sistema (apenas!) para o caso de o Kernel não funcionar. Aliás, por ser só por causa disso que se fica com essa redundância, geralmente eu recomendo remover os kernels mais antigos e ficar apenas com os últimos dois (por exemplo). Há aqui um tópico sobre este assunto da remoção: