Os módulos do kernel Linux são equivalentes em conceito aos drivers de dispositivos do Windows.
Para que um hardware funcione, você precisa de um driver para ele no Windows, e você precisa de um módulo de kernel de driver de dispositivo para ele no Linux.
Os drivers de dispositivo precisam acessar diretamente o hardware e, portanto, executar no modo kernel. Aplicações normais de usuário são executadas no modo de usuário. Um programa de modo de usuário tem as proteções da MMU da CPU e não pode interferir na operação de outro programa de modo de usuário ou qualquer coisa em execução no modo kernel. As coisas em execução no modo kernel não têm essa proteção, mas podem acessar o hardware diretamente. Então é por isso que eles são chamados de módulos do kernel.
Você pode criar seu próprio kernel Linux e incorporar módulos no kernel. Eles então deixam de ser módulos nesse ponto e fazem parte do kernel. Geralmente é vantajoso construir apenas um pequeno número de drivers necessários para inicializar e deixar que a detecção de hardware carregue o restante do necessário, embora você possa construir um kernel completamente "estático" que não precise carregar módulos, se quiser.