Como posso projetar um sistema de arquivos Linux? [fechadas]

0

Em uma entrevista, me deparei com essa pergunta. Ele me perguntou "Projetar um sistema de arquivos linux". Ele pediu para dar o que todas as coisas que eu precisaria, estruturas de dados e tudo. Alguém pode me ajudar nisso, como eu posso lidar com esse tipo de problema? Apenas me dê links necessários que eu possa ler e consultar. Eu li na wikipedia, mas ainda não estou claro como lidar com essa questão perfeitamente. O que ele poderia estar esperando? Eu quero detalhes básicos que o sistema de arquivos Linux usa. Como posso pensar em sistema de arquivos se eu quiser criar um.

Obrigado antecipadamente.

    
por hellodear 14.01.2015 / 16:46

1 resposta

3

É 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í:

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.

    
por Oli 14.01.2015 / 17:22