Se eu entendi corretamente, você deseja substituir o número do inode pelo endereço do bloco. Isso significa (1) um inode por bloco, o que desperdiça muito espaço (o inode não é tão grande), e (2) não é tão diferente de usar um número inode: um inode tem um tamanho fixo, então um bloco contém um número conhecido n
de inodes. Então, se você deduzir o número de inode por n
(que idealmente é uma potência de dois, então é apenas uma mudança), o quociente é o número do bloco do inode (mais o endereço do disco onde a tabela de inode é iniciada) e restante é o índice do inode dentro desse bloco.
Para entender a lógica por trás da tabela de inode, pense em quais dados são armazenados na tabela de inodes: são atributos como proprietário, grupo, permissões e registros de data e hora, e índices e índices indiretos dos blocos de dados. Você precisa armazená-los em algum lugar e não pode armazená-los juntos com os dados do arquivo.
Então, se você quer projetar seu próprio sistema de arquivos, a primeira pergunta que você deve responder é "como eu identifico os blocos de dados que pertencem a um arquivo?" e a segunda pergunta é "onde eu armazeno atributos como propriedade, permissões e timestamps?". E sim, você pode usar esquemas diferentes para isso do que inodes.
Editar
Quanto a
why not just use its address, like we do with main memory and objects therein?
Como escrevi, basicamente você tem o endereço do bloco - você só precisa dividir primeiro e adicionar um deslocamento. Se você adicionar o offset a cada inode em princípio, o "inode number" será muito maior, e você terá um valor constante nos bits altos que é repetido em cada número de inode. Isso, por sua vez, tornará cada entrada de diretório maior.
Não se esqueça que o sistema de arquivos unix foi inventado quando o tamanho do disco rígido era de cerca de 20 Mbytes ou mais. Você não quer perder espaço, então você embala tudo densamente e evita a redundância. Adicionar um offset toda vez que você acessar um inode é barato. Armazenar este offset como parte de toda referência do "número inode" é caro.
E o interessante é que, embora o esquema de inode tenha sido inventado para pequenos discos rígidos em termos atuais, ele se adapta bem e até mesmo em discos rígidos no intervalo de terabytes em "apenas funciona".