Sistemas de Arquivos NTFS, FAT16, FAT32, EXT2 e EXT3

Os sistemas de arquivos é a parte do SO responsável pelo gerenciamento dos arquivos (estrutura, identificação, acesso, utilização, proteção e implementação). Ou seja, é um conjunto de tipos abstratos de dados que são implementados para o armazenamento, a organização hierarquica, a manipulação, navegação, acesso e recuperação de dados.

Entenda que um arquivo é um recipiente no qual os dados são armazenados, tendo ele um significado para o sistema ou usuário, e estes podem ser programas executáveis, texto, figura, etc. Todos os arquivos possuem um nome o qual o usuário faz referência a ele. Além do nome, cada arquivo possui uma série de outros atributos que são mantidos pelo sistema operacional como tipo de conteúdo, tamanho, data e hora do último acesso, data e hora da última alteração, lista de usuários que podem acessar o arquivo, etc.

A forma como os dados são dispostos dentro de um arquivo determina sua estrutura interna. Cada tipo de arquivo possui uma estrutura interna apropriada para a sua finalidade. Por exemplo, arquivos de texto são organizados em linha ou parágrafos.

Discos Rígidos

Os discos rígidos são compostos por vários discos internos, onde cada um deles é dividido em círculos concêntricos chamados de cilindros ou trilhas, e nestas trilhas temos uma certa quantidade de setores. Cada setor possui, normalmente, 512 bytes de informações. Para descobrir a capacidade total de um HD, basta multiplicar o tamanho do setor pela quantidade total de setores que ele tem.

Vale lembrar que 1 KB é representado por 1024 bytes, e não 1000 bytes como muitos pensam.

FAT16

O significado da palavra FAT é Tabela de Alocação de Arquivos (File Allocation Table) que seria um mapa de utilização do disco. Graças a isto, o SO saberá onde determinado arquivo está.

Normalmente é reconhecido por todos os Sistemas Operacionais, também é utilizado em cartões de memória de estado sólido, e não trabalham com setores, mas sim com unidades de clusters que são conjuntos de setores.

Uma característica marcante é a capacidade de nomear os arquivos somente com 8 caracteres + extensão. Caso seja excedido o valor de caracteres, os caracteres excedidos (do nome do ficheiro) desaparecerão e no lugar deles aparecerá ~1 ou ~2 (se já existir um outro arquivo com os 8 primeiros caracteres iguais).

Existe um inconveniente que quando ficheiros são apagados e novos ficheiros são escritos no suporte, as suas partes tendem a dispersar-se, fragmentando-se por todo o espaço disponível, tornando a leitura e a escrita um processo lento. Para isso, precisamos desfragmentar o disco para um melhor desempenho na sua função de leitura e gravação.

Outro problema é que o FAT16 não reconhece mais que 2GB por ser de 16 bits, utilizando clusters com no máximo 32 KB. Caso haja um disco com mais de 2GB, serão necessário particioná-lo em pedaços máximos de 2GB.

FAT32

Já neste, suporta partições de até 2 TB, tamanho de arquivos de 4 GB e o nome dos arquivos passou de 8 para 256 caracteres e superou o antigo limite de 3 caracteres para a extensão, embora este padrão ainda seja largamente utilizado.

Com o FAT32, o desperdício em disco foi sensivelmente reduzido. O FAT16, seu antecessor, utilizava clusters de até 64 KB enquanto o FAT32 pode utilizar clusters de 4 KB. Se um arquivo ocupa 4 KB de espaço, tanto no FAT16 como no FAT32 a ocupação será de 1 cluster, porém, no caso do FAT16 os 60 KB restantes serão alocados, apesar de ficarem fisicamente vazios.

Tem a desvantagem de ser 6% mais lenta que FAT16 e a incompatibilidade com SO antigos.

Não possui recursos de segurança como o NTFS. Utiliza uma cópia backup da tabela de alocação como sistema de segurança para corrupções de arquivos. Este procedimento é ineficiente, pois uma queda de energia durante uma operação que modifique os metadados pode tornar a partição inacessível ou corromper severamente diversos arquivos.

NTFS

O NTFS (New Technology File System) é um sistema de arquivos que surgiu com o lançamento do Windows NT, e passou a ser bem aceito e utilizado nas outras versões do Windows posteriormente.

Uma dessas vantagens diz respeito ao quesito “recuperação”: em caso de falhas, como o desligamento repentino do computador, o NTFS é capaz de reverter os dados à condição anterior ao incidente. Isso é possível, em parte, porque, durante o processo de boot, o sistema operacional consulta um arquivo de log que registra todas as operações efetuadas e entra em ação ao identificar nele os pontos problemáticos. Ainda neste aspecto, o NTFS também suporta redundância de dados, isto é, replicação, como o que é feito por sistemas RAID, por exemplo.

Algumas características são:

  • Neste modelo, temos o tamanho limite do arquivo de acordo com o tamanho do volume;
  • Os nomes dos arquivos podem ter 255 caracteres;
  • Tem suporte a criptografia, indexação e compactação;
  • Seus clusters podem chegar a 512 bytes;
  • É mais seguro que o FAT;
  • Permite política de segurança e gerenciamento;
  • Menos fragmentação;
  • Melhor desempenho;
  • Recuperação de erros mais fácil;
  • Caso seja usado em mídias, podem se corromper mais facilmente;
  • É um pouco mais lenta que o FAT32 devido as diretivas de segurança que o FAT32 não tem e precisam ser acessados durante leitura e gravação de dados;
  • Utiliza a tabela MFT (Master File Table) para registrar a utilização de cada cluster de um disco;

EXT2

Ext2 foi projetado e implementado para corrigir as deficiências do Ext e prover um sistema que respeitasse a semântica UNIX. A influência do UNIX pode ser vista, por exemplo, na utilização de grupos de blocos, que são análogos aos grupos de cilindros utilizados pelo FFS. O bloco, que consiste num conjunto de setores (cada setor tem 512 bytes), é a menor unidade de alocação para o Ext2. O tamanho pode ser de 1024, 2048 ou 4096 bytes e é definido na formatação.

Quando é realizada uma operação de escrita em um arquivo, o Ext2 tenta, sempre que possível, alocar blocos de dados no mesmo grupo que contém o nó-i. Esse comportamento reduz o movimento da(s) cabeça(s) de leitura-gravação da unidade de disco.

Em um sistema de arquivos ocorrem dois tipos de fragmentação: (i) a fragmentação interna (ou de espaço) é causada pelo fato do tamanho do arquivo geralmente não ser múltiplo do tamanho do bloco (portanto o último bloco terá um espaço não utilizado) — a consequência é a perda de espaço; (ii) a fragmentação externa (ou de arquivo) decorre da impossibilidade do sistema determinar, a priori, qual o tamanho do arquivo (p.ex., arquivos de texto e de logs são muito modificados, e o seu tamanho pode aumentar ou diminuir) — assim um arquivo pode alocar blocos não contíguos, prejudicando o desempenho.

Para diminuir o impacto do primeiro tipo, existem duas estratégias básicas. A primeira, mais simples, é determinar, na formatação, o menor tamanho de bloco possível. O Ext2 permite tamanhos de blocos de 1024, 2048 e 4096 bytes. Um tamanho de bloco pequeno, como 1024 bytes, diminui a fragmentação e perda de espaço, mas em contrapartida gera um impacto negativo no desempenho, pois acarreta o gerenciamento de uma maior quantidade de blocos. O tamanho de bloco padrão para volumes grandes é de 4096 bytes.

A segunda estratégia é alocar a parte final de um arquivo, menor que o tamanho de um bloco, juntamente com pedaços de outros arquivos. O Reiserfs chama esse método de tail packing; o UFS usa fragmentos, que são submúltiplos do tamanho do bloco. Apesar do Ext2 possuir, no superbloco, a previsão para uso de fragmentos, esse método não foi implementado.

Para diminuir o impacto da fragmentação externa, o Ext2 pré-aloca (reserva) até oito blocos quando um arquivo é aberto para gravação. Esses blocos reservados, quando possível, são adjacentes ao último bloco utilizado pelo arquivo. [CARD, TS’O e TWEEDIE, 1994]

EXT3

O Ext3 (Third Extended file system) é um sistema de arquivos desenvolvido por Stephen C. Tweedie para o Linux, que acrescenta alguns recursos ao Ext2, dos quais o mais visível é o journaling, que consiste em um registro (log ou journal) de transações cuja finalidade é recuperar o sistema em caso de desligamento não programado.

Há três níveis de journaling disponíveis na implementação do Ext3:

  • Journal: os metadados e os dados (conteúdo) dos arquivos são escritos no journal antes de serem de fato escritos no sistema de arquivos principal. Isso aumenta a confiabilidade do sistema com uma perda de desempenho, devido a necessidade de todos os dados serem escritos no disco duas vezes.
  • Writeback: os metadados são escritos no journal mas não o conteúdo dos arquivos. Essa opção permite um melhor desempenho em relação ao modo journal, porém introduz o risco de escrita fora de ordem onde, por exemplo, arquivos que são apensados durante um crash podem ter adicionados a eles trechos de lixo na próxima montagem.
  • Ordered: é como o writeback, mas força que a escrita do conteúdo dos arquivos seja feita após a marcação de seus metadados como escritos no journal. Esse é considerado um meio-termo aceitável entre confiabilidade e performance, sendo, portanto, o nível padrão.

Embora o seu desempenho (velocidade) seja menos atrativo que o de outros sistemas de arquivos (como ReiserFS e XFS), ele tem a importante vantagem de permitir que seja feita a atualização direta a partir de um sistema com ext2, sem a necessidade de realizar um backup e restaurar posteriormente os dados, bem como o menor consumo de processamento.

Enquanto em alguns contextos a falta de funções de sistemas de arquivos “modernos”, como alocação dinâmica de inodes e estruturas de dados em árvore, poderia ser considerada uma desvantagem, em termos de “recuperabilidade” isso dá ao ext3 uma significante vantagem sobre sistemas de arquivos que possuem-nas. Os metadados do sistema de arquivos estão todos em locais fixos e bem conhecidos, e há certa redundância inerente à estrutura de dados, que permite que sistemas ext2 e ext3 sejam recuperáveis no caso de uma corrupção de dados significante, em que sistemas de arquivos em árvore não seriam recuperáveis.

Fontes da compilação de textos:
– http://pt.wikipedia.org/wiki/FAT_(sistema_de_ficheiros)
– http://pt.wikipedia.org/wiki/FAT16
– http://pt.wikipedia.org/wiki/FAT32
– http://pt.wikipedia.org/wiki/NTFS
– http://pt.wikipedia.org/wiki/Ext2
– http://pt.wikipedia.org/wiki/Ext3
– HandBook de TI
– http://www.clubedohardware.com.br/artigos/Sistema-de-arquivos/313/1
– http://www.infowester.com/ntfs.php

Sou bacharel em Sistemas de Informação pela Estácio de Sá (Alagoas), especialista em Gestão Estratégica da Tecnologia da Informação pela Univ. Gama Filho (UGF) e pós-graduando em Gestão da Segurança da Informação pela Univ. do Sul de Santa Catarina (UNISUL). Certificações que possuo: EC-Council CEH, CompTIA (Security+, CySA+ e Pentest+), EXIN (EHF e ISO 27001), MCSO, MCRM, ITIL v3. Tenho interesse por todas as áreas da informática, mas em especial em Gestão e Governança de TI, Segurança da Informação e Ethical Hacking.

19 Responses to “Sistemas de Arquivos NTFS, FAT16, FAT32, EXT2 e EXT3”

  1. Paulo Sérgio disse:

    Boa noite amigo, se possível me tira uma dúvida, tenho vários HDs externos e gostaria de saber qual a melhor formatação para gravação, pois trabalho com torrentes e os discos ficam ligados 24 horas gravando dados todo o tempo, e depois enviando dados direto. Minha dúvida é essa, podes me ajudar ?

    • Diego Macêdo disse:

      Oi Paulo. O sistema de arquivos terá pouca influência na velocidade de escrita por si só. O que pode influenciar são as características dos seus HD’s quanto a velocidade de rotação (RPM), cache e o tipo (HD, híbrido, SSD). Outra coisa que pode influenciar é o seu computador (hardware e SO), a porta que os seus HD’s estão conectados (USB 2.0, 3.0, etc.), e lógico a velocidade da sua internet.

      Dá uma olhada neste artigo para ver os resultados de uma pesquisa sobre os sistemas de arquivos: https://people.cs.clemson.edu/~jzwang/pub/fbench.pdf

  2. kelvyn disse:

    Boa tarde e parabéns;
    So uma pergunta: O tamanho máximo de caracteres em NTFS não seria 255?

  3. CARLOS REIS disse:

    bom dia!
    tenho um storage iomega px4-300d queria saber se consigo retirar os hds e abri-los em qual quer plataforma windows, mac, linux. etc..??

  4. Débora Moia disse:

    Faltou falar também da Ext4.

  5. O que faço com um “flash drive” ou (cartão de memória) protegido contra a escrita?

  6. Álvaro disse:

    Olá! A criptografia do sistema pode melhorar minha segurança caso meu pc fosse invadido na internet? ou a criptografia de sistema só funciona para o usuário local? Gostaria de uma dica de como posso melhorar minha segurança além dos firewal e anti vírus.

  7. ferreira disse:

    olá gostaria de saber se é possível formatar um HD retirado desses receptores de tv net,sky claro etc…
    e qual é o tipo de sistema desse tipo de HD.
    tentei formatar mas ele da erro.

  8. Daniel disse:

    Ajudou bastante para entender porque o LINK2SD ( UNIX ) não consegue acertar no android a transferencia de apps da memoria interna para o SD CARD. Torna-se necessário particionar o SD CARD em Fat32 e, pelo seu post, escolhi a outra partição em EXT2. Abs!

  9. Parabéns pela maneira simples e inteligível do texto. EXCELENTE!!!

  10. Marcelo Kapingala disse:

    Gostei do site, e vou toma- lo agora como mais uma fonte de pesquisas…

  11. Daniele disse:

    O tamanho máximo do cluster do sistema de arquivos FAT 16 é de 32KB ou 64 KB?

    • Diego Macêdo disse:

      É 32KB. Segundo o site Hardware.com.br “A principal limitação é que, como o nome sugere, o FAT16 usa endereços de 16 bits para endereçar os clusters dentro da partição, permitindo um máximo de 65536 clusters, que não podem ser maiores que 32 KB. Isso resulta num limite de 2 GB para as partições criadas.”

  12. Douglas disse:

    Parabéns, texto muito bom! Só faltou exFAT.

Deixe um comentário para Diego Macêdo Cancelar resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *