Construir um kernel é relativamente fácil (baixe a fonte, make menuconfig && make bzImage modules && make modules_install
, e copie a nova imagem do kernel para o lugar certo - ou algumas das outras maneiras de fazer isso de acordo com sua distribuição) , escrever código do kernel não é tão fácil e escrever um kernel , bem, discutir mr. Torvalds com isso;)
Existem muitos recursos na programação do kernel, apenas pesquise por "programação do kernel do Linux" (por exemplo, O Guia de Programação do Módulo Kernel do Linux parece um bom sucesso para você, mesmo que esteja na versão 2.6 que está começando a envelhecer agora.
Se você também está preocupado com a interface do usuário (G), vale a pena também mergulhar no site do LFS (além disso, ele contém as informações sobre a compilação do kernel;)) como o kernel não possui nenhuma interface do usuário , tudo o que é apenas aplicações em torno dele.