É um tópico enorme e parece que você está começando na parte inferior. Você precisa entender o que é um sistema de arquivos antes de projetar um.
Para o Kernel, um arquivo ou diretório é apenas um inode ligado a um superbloco . O inode armazena informações de localização de dados, bem como atributos sobre propriedade, permissões, etc. Isso escopeta os dados. Paralelamente a tudo isso, existe uma estrutura em árvore de dentries . Estes dão nomes de arquivos (hardlinks) e posições para inodes . Juntos, os links e os nós fornecem o sistema de arquivos que se transforma de um caminho para os mais comuns.
É um desdobramento brutalmente rápido, mas esses são os elementos que você deve projetar. Você pode ver a partir de exemplos reais (A fonte do Linux Kernel é notoriamente gratuita), mas existem alguns documentos bastante decentes por aí:
- Andries Brouwer: O sistema de arquivos virtuais Linux . Completo mas completo.
- Anatomia do sistema de arquivos Linux . Não como links relacionados completos, mas bons.
- TLDP: Sistemas de arquivos virtuais Nível muito alto, mas explica o que esses elementos realmente fazem .
Na prática, se você precisasse escrever um sistema de arquivos, você provavelmente mudaria para algo como fuse-python
e escreva um em uma tarde. Não tão eficiente quanto os sistemas de arquivos adequados, mas rápido para escrever em muitas tarefas.