Sistema de arquivos NTFS

Introdução

O NTFS (New Technology File System) é um sistema de arquivos que surgiu com o lançamento do Windows NT. Sua confiabilidade e desempenho fizeram com que fosse adotado nos sistemas operacionais posteriores da Microsoft, como Windows XP, Windows Vista, Windows 7 e Windows Server 2008. Mas, quais são as principais características do NTFS? No que esse sistema de arquivos se diferencia? De fato, o que é NTFS? As respostas para estas e outras questões você confere a seguir.


Antes, o que é um sistema de arquivos?

Não é possível gravar dados em um HD ou em qualquer outro dispositivo de armazenamento de forma a manter as informações acessíveis e organizadas sem um sistema de arquivos (file system) - essencialmente, um tipo de estrutura que indica como os arquivos devem ser gravados e lidos pelo sistema operacional do computador.

É o sistema de arquivos que determina como as informações podem ser guardadas, acessadas, copiadas, alteradas, nomeadas e até apagadas. Ou seja, resumindo, toda e qualquer manipulação de dados em um dispositivo de armazenamento necessita de um sistema de arquivos para que estas ações sejam possíveis. Sem um sistema de arquivos, os dados armazenados seriam apenas um conjunto de bits sem utilidade.

Há vários sistemas de arquivos disponíveis, para os mais diversos sistemas operacionais e para as mais variadas finalidades.


Como o NTFS surgiu?

O NTFS é um sistema de arquivos amplamente utilizado nos sistemas operacionais da Microsoft. Sua primeira aparição foi no Windows NT, sistema operacional para uso em servidores cuja primeira versão foi lançada em 1993. No entanto, a história do NTFS começa muito antes disso.

Até aquela época, a Microsoft não possuía nenhum sistema operacional capaz de fazer frente ao Unix e suas variações em aplicações de servidores. Seus principais produtos eram o MS-DOS e a linha Windows 3.x, essencialmente, sistemas operacionais para uso doméstico ou em escritório. Era preciso criar algo novo, capaz de disputar mercado com as soluções baseadas em Unix. Foi aí que surgiu o Windows NT.

De nada adianta um sistema operacional novo se o seu sistema de arquivos for limitado. Na época, a Microsoft tinha em mãos o sistema de arquivos FAT. Este funcionava razoavelmente bem em aplicações domésticas, mas não serviria aos propósitos do novo projeto por uma série de restrições, entre elas, baixa tolerância a falhas, inviabilidade de uso de permissões de arquivos e limitações para o trabalho com grande volume de dados.

Para superar esses e outros problemas, a Microsoft decidiu utilizar o NTFS. Porém, ao contrário do que muita gente pensa, a empresa não desenvolveu esse sistema de arquivos sozinha. Ela utilizou como base o HPFS (High Performance File System), sistema de arquivos que tinha a IBM por trás.

No início da década de 1980, ambas as companhias fecharam um acordo para o desenvolvimento do OS/2, um sistema operacional até então moderno, que se destacaria por sua capacidade gráfica (naquela época, era muito comum o uso de sistemas operacionais baseados em linha de comando).

O problema é que, logo, Microsoft e IBM passaram a divergir em relação a diversos pontos. Como consequência, desfizeram a parceria. A IBM continuou tocando o projeto do OS/2, enquanto que a Microsoft foi cuidar de seus interesses, mais precisamente, do projeto que resultou no Windows NT. No entanto, a companhia não abandonou a parceria de mãos vazias: levou vários conceitos do HPFS - o sistema de arquivos do OS/2 - relacionados à segurança, confiabilidade e desempenho para posteriormente implementá-los no NTFS.

Sabe-se também que o NTFS tem alguma relação com o Files-11, sistema de arquivos do sistema operacional VMS, que passou às mãos da Compaq em 1998, empresa que posteriormente foi adquirida pela HP. Quando os trabalhos no VMS estavam em andamento, parte de sua equipe se transferiu para Microsoft, com destaque para o engenheiro de software Dave Cutler, um dos nomes por trás do NTFS e do próprio Windows NT.


Principais características do NTFS

Os conceitos aplicados ao NTFS fizeram com que o Windows NT e versões posteriores do sistema fossem bem recebidos pelo mercado. Uma dessas características 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.

Outra característica marcante do NTFS é o seu esquema de permissões de acesso. O Unix sempre foi considerado um sistema operacional seguro por trabalhar com o princípio de que todos os arquivos precisam ter variados níveis de permissões de uso para os usuários. O NTFS também é capaz de permitir que o usuário defina quem pode e como acessar pastas ou arquivos.

O NTFS também é bastante eficiente no trabalho com arquivos grandes e unidades de discos volumosos, especialmente quando comparado ao sistema de arquivos FAT. Você vai entender o porquê no tópico a seguir.


Lidando com arquivos

Em um disco rígido, a área de armazenamento é dividida em trilhas. Cada trilha é subdividida em setores (saiba mais neste artigo sobre HDs), cada um com 512 bytes, geralmente. FAT e NTFS trabalham com conjuntos de setores, onde cada um é conhecido com cluster (ou unidade de alocação). O FAT16, por exemplo, pode ter, comumente, clusters de 2 KB, 4 KB, 8 KB, 16 KB e 32 KB.

Aqui há um possível problema: cada arquivo gravado utiliza tantos clusters quanto forem necessários para cobrir o seu tamanho. Se, por exemplo, tivermos um arquivo com 50 KB, é possível guardá-lo em dois clusters de 32 KB cada. Você deve ter percebido então que, neste caso, um cluster ficou com espaço sobrando. Esta área pode ser destinada a outro arquivo, correto? Errado! Acontece que cada cluster só pode ser utilizado por um único arquivo. Se sobrar espaço, este permanecerá vazio. Esse é um dos problemas do sistema FAT.

Há ainda outra limitação: o FAT16 trabalha com discos ou partições com até 2 GB. Essa situação só melhora com o FAT32, que pode trabalhar com até 2 TB (terabytes).

O NTFS, por sua vez, não pode contar com esse tipo de limitação. Por isso, utiliza 64 bits para endereços de dados, contra 16 do FAT16 e 32 do FAT32. Essa característica, aliada ao tamanho dos clusters, determina o volume máximo de dados com que cada partição NTFS pode trabalhar. Com o uso de clusters de 64 KB, esse limite pode chegar a 256 TB. Por padrão, o tamanho dos clusters é definido automaticamente com base na capacidade de armazenamento do dispositivo durante o processo de instalação do sistema operacional ou de formatação de uma partição - indo de 512 bytes a 64 KB -, podendo também ser definido pelo usuário com procedimentos específicos.

Tolerância a falhas

Para a preservação dos dados, o NTFS utiliza um esquema de journaling, isto é, o arquivo de log mencionado anteriormente. De maneira resumida, seu funcionamento ocorre da seguinte forma: o log registra toda as ações que acontecem no sistema operacional em relação aos arquivos. Quando um documento é criado, um espaço em disco é alocado para ele, suas permissões são definidas e assim por diante. A questão é que se, por exemplo, o computador ficar repentinamente sem energia, o espaço definido para o arquivo pode ser alocado, mas não utilizado. Quando o sistema operacional é reativado, consulta o arquivo de log para saber quais procedimentos não foram executados por completo e executa a ação correspondente para corrigir o problema.

Para manter a integridade do sistema, basicamente, três passos são executados: verificação do log para checar quais clusters devem ser corrigidos; nova execução das transações marcadas como completas no final do log; reversão de procedimentos que não puderam ser concluídos.

Perceba que, com isso, o NTFS pode não conseguir recuperar os últimos dados gravados antes da interrupção, mas garante o pleno funcionamento do sistema operacional eliminando erros que podem comprometer o desempenho ou causar problemas ainda maiores.

Permissões

O NTFS possibilita o uso de permissões no sistema operacional, ou seja, é possível definir como usuários - ou grupos de usuários - podem acessar determinados arquivos ou determinadas pastas. Por exemplo, você pode permitir ao usuário Arthur Dent ter controle total da pasta Infowester, mas só permitir ao usuário Marvin ler e executar o referido conteúdo, sem poder alterá-lo.

Permissões de arquivos e pastas
Permissões de arquivos e pastas

Cada conta de usuário criada no sistema (ou grupo) recebe um código único chamado Security Identifier (SID). Assim, se um usuário for eliminado e, posteriormente, outro for criado com o mesmo nome, será necessário reaplicar as permissões, pois o SID deste será diferente, apesar da denominação igual.

Master File Table (MFT)

FAT é a sigla para File Allocation Table e recebe este nome porque trabalha com uma tabela que, basicamente, indica onde estão os dados de cada arquivo. O NTFS, porém, utiliza uma estrutura chamada Master File Table (MFT), que tem praticamente a mesma finalidade do FAT, mas funciona de maneira diferente.

O MFT é uma tabela que registra atributos de cada arquivo armazenado. Esses atributos consistem em uma série de informações, entre elas: nome, data da última modificação, permissões (conceito explicado no tópico anterior) e, principalmente, localização na unidade de armazenamento.

Como necessita guardar várias informações de praticamente todos os arquivos no disco, o NTFS reserva um espaço para o MFT - Zona MFT -, geralmente de 12,5% do tamanho da partição. Cada arquivo pode necessitar de pelo menos 1 KB para o registro de seus atributos no MFT, daí a necessidade de um espaço considerável para este.


Outros recursos do NTFS

O NTFS é dotado de vários recursos de natureza complementar ou definitiva que enriquecem suas características de segurança, desempenho e confiabilidade. A seguir, algumas delas.

Encrypting File System (EFS)

Este é um recurso que surgiu com o Windows 2000 e, tal como o nome sugere, é um reforço de segurança, pois permite a proteção de dados por criptografia com o uso do esquema de chaves públicas (saiba mais sobre isso clicando no link anterior). A principal vantagem é que o dono dos arquivos protegidos pode determinar quais usuários podem acessá-los. Esse conteúdo é criptografado quando o usuário o fecha, mas passa a estar imediatamente pronto para uso quando aberto.

Note que o EFS não está plenamente disponível em todas as versões do Windows compatíveis com NTFS, como o Windows 7 Home Basic, por exemplo. Além disso, vale frisar também que não é possível utilizar criptografia em conteúdo compactado (tópico a seguir).

Compressão de dados Outro

Outro recurso interessante do NTFS é a sua capacidade de lidar com compressão de dados para economizar espaço em disco. Essa compactação consiste, basicamente, em aproveitar estruturas repetidas de arquivos para reduzir seu tamanho.

O FAT também conta com essa capacidade, mas de maneira limitada, uma vez que é necessário compactar a partição como um todo. No NTFS, é possível a compressão somente de pastas ou de determinados arquivos.

Para compactar uma pasta no Windows 7, por exemplo, basta clicar nela com o botão direito do mouse e selecionar Propriedades. Na janela que surgir, basca clicar no botão Avançados da aba Geral e marcar a opção Compactar o conteúdo para economizar espaço em disco.

Compactação de arquivos e pastas
Compactação de arquivos e pastas

É claro que também é possível comprimir uma partição inteira: clique com o botão direito do mouse na unidade, selecione Propriedades e, na aba Geral, marque a opção Compactar este disco para economizar espaço.

Vale frisar que o usuário não precisa se preocupar em descompactar os arquivos quando precisar trabalhar com eles. Ao acessá-los, o próprio sistema operacional se encarrega disso. Além disso, é recomendável utilizar esse recurso com moderação e apenas em caso de necessidade para evitar possíveis problemas de desempenho.

Quotas de disco

Assim como o EFS, esta é uma funcionalidade mais recente e que não está disponível em todas as versões do Windows compatíveis com NTFS. Sua função, basicamente, é a de permitir ao administrador do sistema definir quanto espaço em disco cada usuário pode utilizar. Dessa forma, pode-se evitar problemas de desempenho ou o esgotamento dos recursos de armazenamento de um servidor, por exemplo.


Versões do NTFS

Você já sabe que O NTFS não é, necessariamente, um sistema de arquivos novo e que, apesar disso, é utilizado com sucesso pela Microsoft até os dias de hoje. Então, nada mais natural ele sofrer atualizações para se adaptar às necessidades das versões mais atuais do Windows.

A versão mais conhecida do Windows NT, o Windows NT 4, fazia uso do NTFS 1.2. Aparentemente, houve versões antes desta: a 1.0, que foi utilizada no Windows NT 3.1, e a 1.1, aplicado ao Windows NT 3.5. O NTFS 1.2 passou a ser chamado de NTFS 4 em alusão à existência do número em questão no nome "Windows NT 4", embora esta versão do NTFS também tenha sido utilizada no Windows NT 3.51.

O Windows NT ficou um bom tempo no mercado, mas depois foi substituído pelo Windows 2000, que trouxe também o NTFS 5, versão dotada de vários novos recursos, entre eles: Reparse Points, onde arquivos e pastas dentro do sistema de arquivos podem ter ações associadas a eles, de forma que operações particulares a estes arquivos possam ser executadas; quotas de discos; encriptação (EFS); suporte a dados esparsos, onde é possível armazenar de forma eficiente arquivos grandes mas que possuem estruturas vazias.

Revisões do NTFS 5 foram lançadas para os sistemas operacionais Windows XP e Serve 2003. O NTFS 6 e suas variações surgiram para as versões Vista, 7 e Server 2008 do Windows.

Novas versões podem surgir com o lançamento de outras edições do Windows.


Finalizando

Até quando o NTFS será utilizado? Para o lançamento do Windows Vista, a Microsoft estava trabalhando em um novo sistema de arquivos chamado WinFS, cuja principal característica seria sua capacidade de trabalhar como um banco de dados relacional, permitindo ao usuário localizar facilmente os arquivos que procura.

Uma série de problemas fez com que o WinFS não fosse implementado no Windows Vista, permitindo ao NTFS manter o seu "reinado". Há, inclusive, rumores de que o projeto WinFS tenha sido cancelado.

A Microsoft continua trabalhando no desenvolvimento de novas versões de seus sistemas operacionais, mas pelo menos até a publicação deste artigo, não havia nenhuma informação sobre um novo sistema de arquivos, indicando que o NTFS terá ainda uma longa vida pela frente.

Escrito por - Publicado em 17_04_2011 - Atualizado em 17_04_2011