É um sistema de arquivos apenas o layout das pastas?

57

Eu tenho usado o Windows desde a infância, e quando ouço a frase "sistema de arquivos do Windows" eu penso em diretórios (pastas) dentro de diretórios, uma pasta chamada SYSTEM, uma pasta chamada PROGRAM FILES etc. É isso que o sistema é? Apenas o layout das pastas?

E então eu comecei recentemente a usar o Linux, e meu livro de referência diz que no sistema de arquivos linux tudo começa na raiz e se ramifica a partir daí. Como isso é realmente diferente do Windows? Quero dizer, parece que o sistema Linux e o sistema Windows são apenas duas formas de configurar uma árvore de diretórios. Isso é o que significa sistema de arquivos?

    
por P_Q 07.12.2011 / 16:26

4 respostas

131

Apenas o layout das pastas?

Parece bom demais para ser verdade ...

Vamos pegar o sistema de arquivos FAT32 como exemplo. Eu posso instalar o Windows XP nele, mas também posso usá-lo em um cartão de memória. Em um cartão de memória, você não tem essas pastas que você resume.

Então ... Não confunda o layout de diretório de uma família de sistemas operacionais com um sistema de arquivos.

É isso que um sistema de arquivos significa?

Não ... Refere-se aos bits e bytes subjacentes que fazem sua estrutura de diretórios funcionar.

Os bits e bytes subjacentes? Mostre-me FAT32!

Vamos ver o que FAT32 se parece com ele:

  • Alguns setores de cabeçalho no começo, como ID do volume e setores reservados
  • Duas tabelas de alocação de arquivos, permitindo-nos descobrir onde estão nossos arquivos.
  • Clusters contendo todos os nossos dados de diretório e arquivo.
  • Algum espaço não utilizado muito pequeno que não podemos usar.

UmatabelaFATconsisteemmuitasentradasqueseparecemcomisso,permitindodeterminarondeodiretórioouarquivoestáarmazenadonoespaçodocluster,bemcomoalgunsatributosetamanho.

Umaentradadediretórioapontariaparaumalistadeentradasdediretório/arquivo...

No espaço dos clusters, podemos agora percorrer nossos clusters para encontrar os dados de que precisamos. Um cluster contém essencialmente dados e informações onde os próximos fragmentos são

Osoutrossistemasdearquivossãodiferentes?Mostre-meoNTFS!

Voumostrarumaimagemparaquevocêpossanotarasdiferenças,orestoéliçãodecasaparaoleitor:Maisinformaçõespodemserencontradasem este arquivo de blog ou o Google.

A ideia principal é que o NTFS é uma grande melhoria em relação ao FAT32, que é mais robusto / eficiente. Ter uma idéia melhor de (des) espaço usado usando um bitmap para ajudar ainda mais na fragmentação. E assim por diante...

- link

E os sistemas de arquivos no Linux? Mostre-me ext2 / 3!

A idéia é que o ext2 / ext3 use super blocks e inodes; isso permite soft e hardlinks, diretórios que são arquivos, arquivos com vários nomes e assim por diante. A essência principal está se abstraindo para permitir que o sistema de arquivos seja capaz de fazer mais coisas meta-ish ...

- link

    
por 07.12.2011 / 17:18
14

A grande diferença entre o Linux e o Windows, pelo menos no que diz respeito aos seus sistemas de arquivos e diretórios, é que no Linux "tudo é um arquivo", e tudo descende de uma única raiz. Isso também se aplica a quase todos os sistemas operacionais derivados do Unix, como BSD, OS X, Solaris, etc., mas vou apenas dizer "Linux" para ser genérico (se não inteiramente preciso).

Mas o que isso significa na prática?

O Windows permite várias raízes nomeadas para seus sistemas de arquivos. Você entende isso como letras de unidade: C: D: E: e assim por diante. Cada um tem uma raiz ( \ ) e uma árvore que desce dele. As versões recentes do Windows permitem coisas como pontos de montagem de volume, em que um volume (o que você consideraria uma partição) pode ser montado em uma pasta vazia existente. Portanto, em vez de D: \ representar a raiz de, digamos, sua unidade ótica (CD / DVD / BR), você poderia montá-la em C:\Optical . Isso é mais parecido com o que o Linux faz. Há também um namespace subjacente, de raiz única, para tudo no Windows semelhante ao que o Linux usa e é gerenciado pelo Objeto Manager , mas a maioria dos usuários raramente o vê referenciado, uma vez que é principalmente para o uso do kernel.

O Linux tem uma única raiz: / . Tudo descende dele e não precisa necessariamente representar seu disco rígido. Discos rígidos, unidades ópticas, cartões de memória, compartilhamentos de rede, impressoras, scanners, CPUs, RAM, processos ... tudo é representado em algum lugar dentro desse namespace único e pode ser acessado por qualquer processo com APIs de gerenciamento de arquivos padrão, presumindo que você tenha um nível de acesso suficientemente alto. Só porque você pode ler ou escrever, isso não significa que é um arquivo no seu disco rígido no Linux. Por exemplo, os dispositivos são normalmente montados em /dev , portanto, acessar coisas lá muitas vezes significa que você está falando com um dispositivo - talvez seja a placa de som, um scanner, uma câmera etc. Esses são conhecidos como arquivos de dispositivos . O Procfs é um "sistema de arquivos" especial que é normalmente montado em /proc e tem um "diretório" para cada processo em execução, com arquivos em cada diretório relacionados a coisas como a linha de comando usada para invocar esse processo, mapas de memória, arquivos abertos, etc. Sysfs é outro sistema de arquivos especial (montado em /sys ) usado para expor uma grande quantidade de informações sobre os objetos do kernel em execução e também pode ser usado para ajustar o kernel em execução simplesmente escrevendo em um arquivo específico.

    
por 07.12.2011 / 17:06
3

O sistema de arquivos não é apenas sobre como uma árvore de diretórios é configurada, mas também como essa informação é codificada na mídia também. Existem vários sistemas de arquivos para Linux: ext3, xfs, raiserfs, etc.

    
por 07.12.2011 / 16:48
3

Você pode pensar em sistemas de arquivos como formatos diferentes para armazenar arquivos e pastas, um tanto análogo a como o MS Word e PDF são formatos diferentes para armazenar documentos, ou MP3 e WAV são formatos diferentes para armazenar áudio.

Dados alguns arquivos e pastas, o sistema de arquivos é o formato e o código que os armazena em disco para que possam ser lidos novamente.

E, assim como nem todos os players de vídeo podem reproduzir todos os formatos de vídeo, nem todos os sistemas operacionais podem ler todos os sistemas de arquivos. Por exemplo. se você armazenar um arquivo do Linux em um pendrive formatado com ext3, o Windows não poderá ler o arquivo, pois não sabe como lidar com o sistema de arquivos ext3.

Sistemas de arquivos comuns incluem

  • FAT e NTFS (Windows, o NTFS é padrão em versões mais recentes do Windows)
  • ext3 e ext4 (Linux)
  • HFS plus (OS X)
  • ISO 9660 e UDF (CD, DVD e Blu-Ray)

Veja a Wikipedia para uma comparação de sistemas de arquivos .

    
por 07.12.2011 / 17:33