Como os sistemas de arquivos reconhecem “arquivos” de bytes / bits?

0

Não sei se off-topic, mas acredito que o trabalho de um sistema de arquivos reconheça blocos de bits / bytes e chame esses "arquivos" apenas para torná-lo mais conveniente para acessar melhor os dados e compactados como uma unidade, ao contrário de um oceano de estados sem o fim. Mas como, mais ou menos, isso é feito? O sistema de arquivos (qualquer em questão) mapeia ou mantém uma referência do offset entre dados start / data end, usa um identificador para um endereço marcado ou algo assim, etc.? Eu tenho conhecimento de programação, mas esse conceito de baixo amor me intrigou com certeza. Eu sei que a maioria dos sistemas de arquivos são escritos em HLL (como C, C ++, D, etc.), mas como exatamente, no nível mais baixo, eles rastreiam perfeitamente tudo do setor / bloco 1 do arquivo "A" até o último intervalo?

    
por Bud Sportle 02.02.2014 / 23:50

2 respostas

0

discos rígidos são organizados em clusters de 512 ou 4k bytes de dados. Cada um desses clusters é referido como um bloco.

No nível mais baixo, um SO vai emitir comandos como ler do bloco 4 ou escrever no bloco 11. A especificação SATA define exatamente como esses comandos funcionam e quais comandos devem estar disponíveis. Esses comandos de baixo nível são resumidos em comandos de alto nível com os quais os sistemas de arquivos fazem interface.

Um sistema de arquivos fornece um mapeamento de arquivos para blocos de disco. Um sistema de arquivos muito básico (como o MS-DOS FS) iniciaria com uma tabela de partição (no bloco 0, o "superbloco") que permite definir discos lógicos na parte superior de um disco físico. Cada disco lógico então iniciaria com uma única entrada que define um diretório. Cada uma dessas entradas de diretório conteria uma lista de arquivos e quais pontos de bloqueio para esses arquivos.

Para cada um dos arquivos, o primeiro bloco seria uma estrutura de metadados que define o que é o arquivo (arquivo, diretório, link ou outra coisa), o tamanho, as permissões de acesso e lista de blocos onde os dados do arquivo residem.

    
por 05.02.2014 / 22:48
0

Sistemas de arquivos não reconhecem arquivos . Em vez disso, eles definem o que é um

Comece com um disco vazio e peça ao sistema de arquivos para criar um arquivo lá. Será:

  1. Decida se o nome do arquivo e / ou a sintaxe do caminho estão corretos
  2. Determine o local dentro da estrutura de diretórios onde seu arquivo será logicamente localizado
  3. Decida se outro arquivo com o mesmo nome já está presente nesse local e, em caso afirmativo, se deve substituí-lo, anexá-lo ou retornar um erro.
  4. Crie uma ou mais entradas nos metadados do sistema de arquivos, indicando que o arquivo está presente no diretório pai desejado
  5. Aloca espaço em disco para os bytes que compõem o arquivo
  6. Escreva o byte do arquivo no espaço em disco alocado
  7. Altere os metadados para indicar os locais de todos os blocos do arquivo e diga onde está o EOF (se for um arquivo seqüencial).

Nada disso requer que o sistema de arquivos "reconheça" qualquer coisa, exceto as mesmas estruturas de dados que ele criou em primeiro lugar.

    
por 06.02.2014 / 02:08