Arquivos de dispositivos são essencialmente uma tabela no kernel. Um array C.
Mais exatamente, uma estrutura em árvore de dois níveis de arrays C: o nível superior para os números principais e o inferior para os menores.
Os drivers (e o núcleo do kernel) podem registrar os manipuladores de driver para eles. Um driver usa sempre um número maior. Por exemplo, o software raid ("md") usa o bloco principal 9.
Você pode obter a lista dos dispositivos de bloco e char atualmente registrados nos arquivos /proc/devices
.
A resposta final está no código fonte do kernel, existem "(un) register_block_device" ou chamadas similares do núcleo do kernel. Encontre-os, grep
para eles, e assim você pode obter uma lista completa.