Genericamente, associa-se o nome FAT a um sistema de armazenamento de ficheiros concebido no final dos anos setenta do século vinte e utilizado desde 1981 até ao presente. Ao longo deste período de tempo, existiram três variantes do sistema de armazenamento de ficheiros FAT: FAT 12, FAT 16 e FAT 32. Este artigo é dedicado ao sistema de armazenamento de ficheiros FAT 16.
Introdução
16-bit File Allocation Table (with 16-bit sector entries) de seu nome completo, o sistema de armazenamento de ficheiros FAT 16 foi introduzida em finais de 1984 com os sistemas operativos MS-DOS 3.0 da Microsoft e PC DOS 3.0 da IBM. O FAT 16 foi sofrendo algumas alterações ao longo do tempo, com o intuito de poder tirar partido de discos com capacidades cada vezes maiores.
Distinguia-se da sua antecessora, a FAT 12, por usar palavras com 16 bits em ambas as cópias da sua FAT. A versão inicial mantinha a limitação de 32 Mega Bytes como a maior partição que era possível criar; esta limitação viria a se ultrapassada anos mais tarde e, aquilo que hoje conhecemos como FAT 16, permite criar partições com o tamanho máximo de 2 Giga Bytes.
Anatomia de uma partição formatada como FAT 16
O sistema de armazenamento de ficheiros FAT 16 é constituído por quatro secções: Boot Sector, File Allocation Tables (FAT), Directoria da Root e Área de Dados.
Figura 1. Anatomia de uma partição FAT 16
Boot Sector
É o primeiro sector de uma partição formatada como FAT 16. Basicamente, contém um conjunto de parâmetros que especificam as características da partição e um pequeno programa (bootstarp code) responsável pelo carregamento e arranque do sistema operativo (no caso de se tratar de uma partição com sistema operativo, ou pela exibição no ecrã de uma mensagem indicando que a partição não contém sistema operativo).
Estrutura típica do Boot Sector
Pode considerar-se que o Boot Sector é constituído por cinco secções independentes: uma instrução de salto, que ocupa os três primeiros bytes; um conjunto de oito bytes, designados OEM ID, que, normalmente, identificam o sistema operativo que formatou a partição; uma tabela com as características da partição, situada ao longo dos próximos 51 bytes, designada BIOS Parameter Block, normalmente abreviada para BPB; o programa responsável pelo início do carregamento do sistema operativo, ou pela exibição de uma mensagem no monitor informando que a partição não tem sistema operativo, conhecido, em inglês, por bootstrap code; finalmente, uma “assinatura” composta por dois bytes com os valores hexadecimal 0x55 e 0xAA.
Endereço | Descrição | Dimensão | |
Decimal | Hexa | ||
0 | 0x000 | Instrução de salto | 3 bytes |
3 | 0x003 | OEM ID | 8 bytes |
11 | 0x00B | BIOS Parameter Block (BPB) | 51 bytes |
62 | 0x03E | Código inicial (bootstrap code) | 448 bytes |
510 | 0x1FE | Assinatura | 2 bytes |
Tabela 1. Composição do Boot Sector
A instrução de salto destina-se a transferir o controlo, de um modo geral, para o código inicial, e é habitual ser uma das instruções de salto da família Intel 86, muitas vezes um JMP SHORT 0x3E (a que correspondem os bytes 0xEB e 0x3C), seguida por uma instrução NOP (0x90) para perfazer os três bytes requeridos.
O OEM ID é um simples conjunto de oito caracteres que identifica o sistema operativo que formatou a partição. Por exemplo, uma partição formatada pelo Windows XP tem como OEM ID MSDOS5.0, uma partição formatada em Linux tem como OEM ID mkfs.fat.
O BPB é uma tabela com diversa informação sobre as características da partição, como por exemplo, o número de bytes de cada sector, o número de sectores por pista, o número de cabeças do dispositivo, etc… Ao longo do tempo, diversas versões do MS-DOS foram introduzindo pequenas alterações no BPB, de forma a poderem contemplar partições com maiores dimensões, acabando por dar origem ao que ficou conhecido o Extended BIOS Parameter Block (EBPB).
O código inicial, em inglês bootstrap code, é um pequeno programa responsável pelo carregamento para memória e passagem de controlo para o sistema operativo. No caso da partição não conter sistema operativo, responsabiliza-se por enviar mensagens elucidativas para o monitor e bloqueia a máquina.
Finalmente, a assinatura é sempre constituída pelos valores 0x55 e 0xAA.
BIOS Parameter Block (BPB)
As tabelas que se seguem apresentam a composição típica do BPB e os novos campos acrescentados pelo EBPB. Os endereços indicados têm como base o início do Boot Sector.
Endereço | Descrição | Dimensão | |
Decimal | Hexa | ||
11 | 0x0B | Número de bytes por sector | 2 bytes |
13 | 0x0D | Número de sectores por cluster | 1 byte |
14 | 0x0E | Número de sectores reservados | 2 bytes |
16 | 0x10 | Número de cópias da FAT | 1 byte |
17 | 0x11 | Número máximo de entradas na directoria da Root | 2 bytes |
19 | 0x13 | Número de sectores da partição | 2 bytes |
21 | 0x15 | Media Descriptor Byte | 1 byte |
22 | 0x16 | Número de sectores de cada cópia da FAT | 2 bytes |
24 | 0x18 | Número de sectores por pista | 2 bytes |
26 | 0x1A | Número de cabeças do dispositivo | 2 bytes |
28 | 0x1C | Número de sectores escondidos da partição | 4 bytes |
32 | 0x20 | Número grande de sectores da partição | 4 bytes |
Tabela 2. Composição do BIOS Parameter Block (BPB).
Endereço | Descrição | Dimensão | |
Decimal | Hexa | ||
36 | 0x24 | Nome lógico da partição (Drive Name) | 1 byte |
37 | 0x25 | Reservado | 1 byte |
38 | 0x26 | Extended Boot Signature | 1 byte |
39 | 0x27 | Número de série da partição | 4 bytes |
43 | 0x2B | Nome da partição | 11 bytes |
54 | 0x36 | Nome da FAT | 8 bytes |
Tabela 3. Composição do Extended BIOS Parameter Block (EBPB).
Antes de apresentar uma descrição mais detalhada de cada um destes campos, é de toda a conveniência referir que os valores utilizam a notação Little Endian, ou seja, o primeiro valor que aparece corresponde ao valor de menor peso.
Número de bytes por sector
Indica o número de bytes que cada sector da partição tem. Normalmente são 512 bytes, embora nada impeça um valor diferente.
Número de sectores por cluster
Indica o número de sectores que compõe cada cluster. Como se verá posteriormente, o número de clusters de uma partição é limitado pelo tamanho das suas FATs. Um subterfúgio usado para conseguir formatar partições de maior dimensão consiste em aumentar este valor.
Número de sectores reservados
Indica o número de sectores que se encontram entre o início da partição e o primeiro sector da primeira cópia da FAT. Este valor é, no mínimo, 1 (o próprio Boot Sector), mas é frequente encontrar o valor 2 (o que significa que depois do Boot Sector vai estar um sector que nunca será usado).
Número de cópias da FAT
Especifica quantas cópias da FAT existem. É muito pouco provável que este valor seja diferente de 2. Seja como for, terá de ser, pelo menos 1!
Número máximo de entradas na directoria da Root
Este campo indica quantos ficheiros e directorias (as directorias, que não a da Root, na verdade não passam de simples ficheiros) podem existir na directoria da Root da partição.
Ao contrário das restantes directorias, que podem conter um número de ficheiros limitado apenas pela capacidade da partição, a directoria da Root está limitada por este valor. Ao tenta colocar mais um ficheiro do que o permitido na directoria da Root, mesmo que exista espaço disponível, o sistema operativo não o permite e informa-o por intermédio de uma mensagem de erro.
Número de sectores da partição e número grande de sectores da partição
Para partições com menos 65.535 sectores (32 Mega Bytes para partições com 512 bytes por sector), este campo indica o número de sectores que a partição tem. Se a partição tiver um número de sectores superior, o campo tem o valor 0 e o número de sectores da partição está no campo “Número grande de sectores da partição”.
Media Descriptor Byte
Identifica o tipo de dispositivo, isto é, indica se o dispositivo é uma disquete ou um disco rígido. As pen e cartões de memória são identificadas como discos rígidos.
Este byte é interpretado bit a bit, tendo os quatro bits de maior peso sempre o valor ‘1’ e os cinco bits de menor peso o significado que a Tabela 4. Significado dos bits do Media Descriptor Byte. apresenta:
bit | Significado | |
Com o valor ‘1’ | Com o valor ‘0’ | |
0 | Dispositivo com 2 lados | Dispositivo sem 2 lados |
1 | Tem 8 sectores por pista | Não tem 8 sectores por pista |
2 | Dispositivo é removível | Dispositivo não é removível |
Tabela 4. Significado dos bits do Media Descriptor Byte.
A Tabela 5. Possíveis valores do Media Descriptor Byte. apresenta os diversos valores que este campo pode ter:
MDB | Dispositivo |
0xF0 | Disquete de 3,5” de alta densidade (1,44MB e 2,88 MB) |
0xF9 | Disquete de 3,5” (720 KB) e 5,25” de alta densidade (1,2 MB) |
0xFD | Disquete de 5,25” (360 KB) |
0xFF | Disquete de 5,25” (320 KB) |
0xFC | Disquete de 5,25” (180 KB) |
0xFE | Disquete de 5,25” (160 KB) |
0xF8 | Disco rígido |
Tabela 5. Possíveis valores do Media Descriptor Byte.
Número de sectores de cada cópia da FAT
Como seria de esperar, este campo indica o número de sectores destinado a cada uma das cópias da FAT, ou seja, a dimensão de cada cópia da FAT.
O valor deste campo, juntamente com o valor dos campos “Número de cópias da FAT” e “Número de sectores reservados” permite determinar o sector onde começa a directoria da Root.
Número de sectores por pista, número de cabeças do dispositivo
Os valores destes dois campos correspondem aos respectivos valores físicos do dispositivo.
Nome lógico da partição (Drive Name)
O valor deste campo é 0x00 para as disquetes, 0x80 para os discos rígidos.
Reservado
Inicialmente, este campo era usado para guardar o número do cilindro do dispositivo onde se encontrava o Boot Sector. Posteriormente, o Windows NT passou a usar este campo para guardar dois sinalizadores (flags) que indicavam que deveria ser executada uma análise do disco, em inglês scan disk (bit de menor peso), ou uma análise de superfície, em inglês surface analysis (segundo bit de menor peso), logo após o arranque do sistema operativo.
Exteded Boot Signature
Quando este campo tem o valor 0x29 indica que os três campos que seguem existem.
Número de série da partição
O valor guardado neste campo é um número aleatório que uma vez combinado com o valor do campo “Nome da partição” permite determinar se se trata de uma partição existente num dispositivo removível (disquete) e se o dispositivo correcto está introduzido no leitor (drive).
Nome da partição
Este campo contém uma cópia do nome atribuído à partição durante o processo de formatação, ou posteriormente alterado, com o comando adequado do sistema operativo.
Nome da FAT
Este campo contém o nome “FAT16 “; os últimos três caracteres são o carácter espaço, de forma a preencher um total de exactamente oito bytes.
File Allocation Table (FAT)
A FAT, palavra formada pelas três iniciais das palavras inglesas File Allocation Table, não é mais do que uma simples e unidimensional tabela onde, cada um dos seus elementos é um número de 16 b bits que representa um cluster da partição. O valor de cada elemento da FAT tem o significado que se indica na Tabela 6. Possíveis valores dos elementos da FAT e respectivo significado..
Valor | Significado |
0x0000 | Cluster livre |
0x001 e 0x002 | Valores não utilizados e não permitidos |
0x0003 a 0xFFEF | O cluster faz parte de um ficheiro; o valor é o endereço do cluster seguinte |
0xFFF0 a 0xFFF6 | Cluster reservado |
0xFFF7 | Cluster danificado |
0xFFF8 a 0xFFFF | Último cluster de um ficheiro |
Tabela 5. Possíveis valores dos elementos da FAT e respectivo significado.
O sistema de armazenamento de ficheiros FAT 16 utiliza duas cópias da FAT, iniciando-se a primeira cópia no sector que segue ao último sector reservado e iniciando-se a segunda cópia no sector que segue ao último sector ocupado pela primeira cópia.
Por definição, o valor da FAT para o primeiro cluster (cluster 0) é 0xFFxx, onde xx é o valor do Media Descriptor Byte do BPB. O valor do segundo cluster (cluster 1) é um final de ficheiro (0xFFFF); no entanto, os dois bits de maior peso podem ser utilizados para indicar que a partição pode estar corrompida por não ter sido correctamente desmontada (bit de maior peso a ‘0’), ou que houve um erro de leitura / escrita da última vez que a partição foi montada (segundo bit de maior peso a ‘0’). O primeiro cluster de dados é o cluster 2.
Directoria da Root
A directoria da Root é a directoria de topo, ou seja, é a directoria que contém todas as demais directorias e ficheiros. Ao contrário de todas as restantes directorias que venham a ser criadas, a directoria da Root é criada automaticamente pelo sistema operativo e não pode ser destruída (excepto por uma operação de formatação, o que irá destruir todos os dados existentes).
No sistema de armazenamento de ficheiros FAT 16, a directoria da Root tem capacidade para albergar um número fixo de outras directorias e ficheiros, que passaremos a designar por entradas. O número de entradas que a directoria da Root pode conter encontra-se no campo “Número máximo de entradas da directoria da Root” do BIOS Parameter Block (BPB).
Cada entrada da directoria da Root é constituída por trinta e dois bytes, cujo significado se apresenta na Tabela 7. Composição da cada entrada da directoria da Root..
Endereço | Descrição | Dimensão | |
Decimal | Hexa | ||
0 | 0x00 | Nome da entrada | 8 bytes |
8 | 0x08 | Extensão da entrada | 3 bytes |
11 | 0x0B | Atributos da entrada | 1 byte |
12 | 0x0C | Reservado | 1 byte |
13 | 0x0D | Criação (milissegundos vezes 10) | 1 byte |
14 | 0x0E | Hora de criação | 2 bytes |
16 | 0x10 | Data de criação | 2 bytes |
18 | 0x12 | Data em que foi acedida pela última vez | 2 bytes |
20 | 0x14 | Reservado | 2 bytes |
22 | 0x16 | Hora em que foi gravada pela última vez | 2 bytes |
24 | 0x18 | Data em que foi gravada pela última vez | 2 bytes |
26 | 0x1A | Endereço do cluster inicial | 2 bytes |
28 | 0x1C | Dimensão (em bytes) | 4 bytes |
Tabela 7. Composição da cada entrada da directoria da Root.
Tal acontece com o BPB, também aqui, os valores usam a notação little endian, ou seja, o valor que surge primeiro é o de menor peso.
Nome da entrada
Este campo contém o nome do ficheiro ou directoria e pode conter um máximo de oito caracteres. Se o nome utilizar menos de oito caracteres, o sistema preenche automaticamente os restantes com o carácter espaço.
Quando um ficheiro ou directoria são apagados, o sistema operativo substitui o primeiro carácter do ‘Nome’ pelo carácter 0xE5 (e preenche a 0x0000 os elementos das duas FAT que a entrada utilizava).
Extensão da entrada
Três bytes destinados a guardarem a extensão do ficheiro ou directoria. Tal como se verifica com o “Nome”, também neste caso o sistema preenche com o carácter espaço, os bytes não utilizados.
Atributos da entrada
Este campo contém os atributos do ficheiro ou directoria. Cada bit deste valor representa um atributo. A Tabela 8. Significado de cada bit do campo Atributos da entrada. apresenta o significado de cada um dos seus bits..
Bit | Atributo | Significado |
7 | – | Reservado, normalmente ‘0’ |
6 | – | Reservado, normalmente ’0’ |
5 | (A)rquivo | Utilizado por programas capazes de realizar cópias de segurança (Backup e Restore) |
4 | (D)irectoria | É uma directoria (e não um ficheiro) |
3 | (V)olume | A entrada contém o nome da partição, não é ficheiro nem directoria |
2 | (S)istema | Trata-se de um ficheiro do sistema operativo |
1 | (H)idden | Ficheiro ou directoria escondido |
0 | (R)ead Only | Ficheiro ou directoria apenas pode ser lido, não pode ser alterado nem apagado |
Tabela 8.Significado de cada bit do campo Atributos da entrada.
Criação (milissegundos vezes 10)
Este byte guarda o número de milissegundos vezes dez, ou seja, centésimos de segundo) da hora em que o ficheiro ou directoria foi criado.
Hora de criação
Contém a hora, minuto e segundo em que o ficheiro ou directoria foi criado. O formato usado para guardar os valores é o que se ilustra na Tabela 9. Formato para valores do tipo hora..
Bits | Significado |
11 a 15 | Horas (0 a 23) |
5 a 10 | Minutos (0 a 59) |
0 a 4 | Segundos ÷ 2 (0 a 29) |
Tabela 9. Formato para valores do tipo hora.
Data de criação
Data de criação do ficheiro ou directoria. A REF _Ref415060793 \h Tabela 10. Formato para valores do tipo data. apresenta o formato usado para guardar os valores.
Bits | Significado |
9 a 15 | Ano (1980 + valor) |
5 a 8 | Mês (1 a 12) |
0 a 4 | Dia (1 a 31) |
Tabela 10. Formato para valores do tipo data.
Data em que foi acedido pela última vez
Regista a data em que o ficheiro foi acedido (lido ou escrito pela última vez. Se o último acesso foi uma escrita, então este valor é igual ao valor do campo “Data em que foi alterado pela última vez”. Os valores são guardados no formato que a Tabela 10. Formato para valores do tipo data. ilustra.
Hora em que foi alterado pela última vez
Regista a hora em que o ficheiro foi alterado pela última vez. Os valores são guardados no formato que se ilustra na Tabela 9. Formato para valores do tipo hora..
Data em que foi alterado pela última vez
Regista a data em que o ficheiro foi alterado pela última vez. Os valores são guardados no formato que se ilustra na Tabela 10. Formato para valores do tipo data..
Endereço do cluster inicial
Contém o valor do cluster onde se encontra o início do ficheiro ou directoria.
Dimensão (em bytes)
Simplesmente o número de bytes do ficheiro. Se a entrada não é um ficheiro (pode ser uma directoria ou o nome da partição), o valor é 0x00000000.
Área de Dados
A área de dados é todo o resto da partição, isto é, todos os clusters que vão desde o cluster número 2 (recorde-se que os dois primeiros clusters estão reservados e têm significados especiais) até ao último cluster da partição.
Exemplo Prático – analise de uma partição FAT 16
Para concluir este documento, vamos analisar um cartão Memory Stick com a capacidade de 16 MB contendo uma única partição formatada como FAT 16. A directoria da Root contem uma directoria e dois ficheiros, como se pode observar na Figura 2. Directoria da Root.
Figura 2. Directoria da Root do dispositivo.
A Figura 3. O Boot Sector do dispositivo. apresenta o sector inicial, o Boot Sector, deste dispositivo. Podem identificar-se, a partir do endereço 0x00 (realçado a azul claro) os três bytes que formam a instrução de salto; entre os endereços 0x0B e até 0x3D (realçado a amarelo) o BPB; a assinatura nos dois últimos bytes (realçados a azul claro).
Figura 3. O Boot Sector do dispositivo.
Podem agora extrair-se do BPB as informações que interessam para que se possa navegar pela partição. A Tabela 11. Alguns dos valores do BPB importantes para navegar pela partição. resume os valores mais importantes.
Endereço | Significado | Valor |
0x0B e 0x0C | Número de bytes por sector | 0x0200 = 512 |
0x0D | Número de sectores por cluster | 0x04 = 4 |
0x0E e 0x0F | Número de sectores reservados | 0x0001 = 1 |
0x10 | Número de cópias da FAT | 0x02 = 2 |
0x11 e 0x12 | Número de entradas da directoria da Root | 0x0200 = 512 |
0x16 e 0x17 | Número de sectores de cada cópia da FAT | 0x0020 = 32 |
Tabela 11. Alguns dos valores do BPB importantes para navegar pela partição.
Com base nestes valores pode determinar-se que:
- a primeira cópia da FAT encontra-se a partir do sector 1 (número de sectores reservados),
- a segunda cópia da FAT encontra-se a partir do sector 33 (sector inicial da primeira cópia da FAT + número de sectores de cada cópia da FAT),
- a directoria da Root tem início no sector 65 (sector inicial da segunda cópia da FAT + número de sectores de cada cópia da FAT),
- o primeiro cluster de dados (cluster 2) ocupa 4 sectores a partir do sector 97 (97, 98, 99 e 100).
A Figura 4. Os primeiros bytes da directoria da Root. apresenta os bytes iniciais da directoria da Root:
Figura 4. Os primeiros bytes da directoria da Root.
Pode ver-se (realçado a amarelo) o nome e extensão dos dois ficheiros e da directoria; repare-se que os caracteres não usados estão preenchidos com espaços (valor 0x20). Realçado a vermelho está o byte com os atributos; as duas primeiras entradas tem simplesmente o atributo “Arquivo”, a directoria, como não podia deixar de ser tem o atributo “Directoria”. A azul realça-se o cluster inicial de cada entrada; o ficheiro “LINKS.TXT” começa no cluster 3, o ficheiro “PORTASER.JAR” no cluster 4 e a directoria no cluster 2. Pode ainda ver-se que existiu uma quarta entrada, uma directoria, que foi apagada (o nome começa pelo carácter 0xE5) e que teria como nome um primeiro carácter que desconhecemos seguido pelos caracters ‘MAGENS’.
Para continuar a navegação, é necessário examinar uma das cópias da FAT. A Figura 5.
Os primeiros bytes da primeira cópia da FAT. apresenta os primeiros bytes da primeira cópia da FAT:
Figura 5. Os primeiros bytes da primeira cópia da FAT
Os dois primeiros clusters são reservados para o sistema e os seus índices na FAT tem os valores esperados: oxFFF8 para o cluster 0 (F8 é o Media Descriptor Byte – o cartão é considerado um disco rígido) e 0xFFFF para o cluster 1.
Com se viu acima, o ficheiro “LINKS.TXT” tem inicio no cluster 3 (realçado a verde); o valor da FAT para o cluster 3 é 0xFFFF o que significa que este ficheiro ocupa apenas um cluster. O Ficheiro “PORTASER.JAR” tem inicio no cluster 4; a entrada da FAT para o cluster 4 é 0x0005 o significa que o ficheiro continua no cluster 5; a entrada da FAT para o cluster 5 é 0x0006 o que significa que o ficheiro continua no cluster 6; continuando a seguir de cluster em cluster, verifica-se que o ficheiro termina no cluster 173, onde se encontra o valor 0xFFFF.
Definições
FAT – File Allocation Table
A palavra FAT tem origem nas iniciais das três palavras inglesas File Allocation Table, e que pode traduzir-se para português como Tabela de Distribuição de Ficheiros.
Como qualquer outra tabela, a FAT não é mais do que um conjunto de elementos organizados de acordo com uma determinada sequência. O acesso a cada um dos elementos faz-se recorrendo à sua posição na tabela, ou seja, ao seu índice. Cada elemento é um número inteiro positivo.
Para uma melhor compreensão, imagine-se que a tabela à esquerda é parte de uma FAT. A primeira coluna representa o índice de cada elemento da tabela (o exemplo apresenta os elementos com índice compreendido entre 2 e 10); a segunda coluna contém respectivo o valor.
Havendo um ficheiro que está gravado a partir do cluster 4, a FAT permite-nos concluir que esse ficheiro ocupa os clusters 4, 5, 6, 9 e 8 por esta mesma ordem. Os clusters 2, 3, 7 e 9 estão livres.
Índice | Valor |
2 | Livre |
3 | Livre |
4 | 5 |
5 | 6 |
6 | 9 |
7 | Livre |
8 | Fim |
9 | 8 |
10 | Livre |
FAT – Sistema de armazenamento de ficheiros
A sigla FAT é igualmente usada para designar um sistema de armazenamento de ficheiros concebido no final dos anos setenta do século vinte e utilizado desde 1981 até ao presente, nomeadamente em dispositivos como os cartões de memória. Ao longo do tempo foram desenvolvidos três tipos de sistema de armazenamento de ficheiros FAT, conhecidos por FAT 12, FAT 16 e FAT 32, essencialmente devido ao comprimento de palavra de cada elemento da respectiva FAT (12 bits, 16 bits e 32 bits).
Embora constituam sistemas de armazenamento de ficheiros relativamente simples e desprovidos de mecanismos de encriptação e segurança de dados, os sistemas do tipo FAT continuam a ser bastante utilizados, principalmente em pens e cartões de memória com os Memory Stick da Sony, cartões Secure Digital (SD) e cartões Compact Flash (CF).
Pista
Coroa circular concêntrica da superfície de um dispositivo de armazenamento digital.
Cada pista é dividida, logicamente, num determinado número de pedaços de igual dimensão designados por sectores.
Os dispositivos mais antigos dividiam todas as pistas do dispositivo no mesmo número de sectores, pelo que os sectores das pistas mais exteriores tinham maior área do que os sectores das pistas mais interiores. Os dispositivos actuais tendem a utilizar diferente número de sectores para diferentes pistas.
Sector
Imaginando um dispositivo de armazenamento digital como sendo um círculo, cada coroa circular concêntrica será uma pista do dispositivo; dividindo cada pista em diversas partes iguais, cada uma dessas partes ou gomos é um sector.
Um sector é o bloco mais elementar em que se pode dividir um dispositivo de armazenamento digital, como é o caso dos discos rígidos, disquetes, cartões de memória, etc… Cada sector contém, normalmente mas não obrigatoriamente, 512 bytes.
Cluster
Clusters são unidades lógicas constituídas por conjuntos de sectores.
Embora os sectores sejam as unidades elementares básicas dos dispositivos de armazenamento digital, os ficheiros são armazenados em clusters.
Uma vez que os ficheiros são armazenados em clusters, quanto maior for um cluster (quanto mais sectores tiver), maior será o espaço que um ficheiro muito pequeno (no limite, só com 1 byte) ocupa em disco. Por exemplo, com sectores de 512 bytes e clusters com 2 sectores, um ficheiro só com 1 byte ocupa 2 x 512 = 1024 (1 K) bytes na partição; mas numa partição onde cada cluster tenha 8 sectores, o mesmo ficheiro já ocupa 8 x 512 = 4096 (4 K) bytes na partição.
Numa comparação com a química, sectores correspondem a átomos e clusters a moléculas.
Partição
É uma subdivisão lógica de um dispositivo de armazenamento digital (disco rígido, disquete, cartão de memória, etc…), que passa a assumir o comportamento de uma unidade de armazenamento autónoma.
A informação sobre o número e localização da cada uma das partições existentes num dispositivo de armazenamento digital encontra-se numa tabela, parte do primeiro sector do dispositivo. Essa tabela tem capacidade para comportar informação sobre quatro partições, designadas partições primárias; uma destas quatro entradas é assinalada como partição activa e é a partição utilizada para tentar carregar o sistema operativo. Para ultrapassar a limitação das quatro partições por dispositivo, criou-se o conceito de partição estendida; uma partição estendida pode conter um número de sub partições limitado apenas pela dimensão do dispositivo.
Sistema de armazenamento de ficheiros
É um conjunto de regras que define um standard sobre a forma como os ficheiros são armazenados nas partições dos dispositivos de armazenamento digital. Os sistemas de armazenamento de ficheiros especificam a forma como os ficheiros são guardados e geridos e, controlam as áreas livres e ocupadas das partições dos dispositivos.
Existem diversos sistemas de armazenamento de ficheiros, como é o caso, por exemplo, das diversas variantes da FAT (FAT 12, FAT 16 e FAT 32) utilizadas pelo sistema operativo MS-DOS e versões do Windows anteriores ao Windows XP, NTFS utilizada pelo Windows XP e sucessores, EXT2, EXT3 e EXT4 utilizadas pelo Linux, YAFFS e VFAT utilizadas pelo Android.