É relativamente fácil desenvolver drivers para linux. Em suma todos os dispositivos de um sistema POSIX são arquivos e você apenas escreve e lê nos mesmos com a função open.
Existem categorias de modulos(como os drivers são chamados):
dispositivos de bloco - São modulos usados para controlar memórias de massa, como hds, drivers de disquete, usb, etc
dispositivos de caracteres - Modulos que processam caracteres(bits), como pcis, mouse, teclado, etc…
Esse seu projeto não daria umas 50 linhas em c.
Possuo um livro que mostra como exemplo exatamente isso que você quer fazer.