Sistemas Operacionais Sistema de Arquivos FAT Edeyson Andrade Gomes www.edeyson.com.br
FAT A FAT é o sistema de arquivos usado pelo MS-DOS e outros sistemas operacionais baseados em Windows para organizar e gerenciar arquivos. A sigla FAT significa File Allocation Table ou Tabela de Alocação de Arquivos. 2
FAT Dividida em quatro regiões: Região reservada (ou setor de boot) Região da Tabela de Arquivos (FAT) Região de Diretório Raiz (Não existe na FAT32) Região de arquivos e diretórios 3
FAT Usava alocação de arquivos com tabela de índices blocos não contíguos. 1ª versão da FAT FAT12, alocava 12 bits, máximo de blocos/cluster (4.096 = 2 12 ). O sistema FAT exige que cada cluster do disco seja usado somente para um único arquivo. 4
FAT 16/32 FAT 16 Consegue trabalhar no máximo com 2 16 = 65536 clusters, mas são usados apenas 65525 clusters. Por que? Como marcar um bloco como Ruim? Como identificar Fim de Arquivo? FAT usa onze (11) FLAGS Limite do tamanho da partição: 65525 * 32KB = 2GB, podendo chegar a 4GB (no caso no NT). 32 KB é o tamanho do maior Cluster da FAT 16 FAT Não é possível ter clusters de diferentes tamanhos 5
FAT 16/32 FAT 32 : 2 28 = 256M clusters no máximo Tamanho Máximo do Cluster = 32 KB Tamanho Total Máximo = 256 M * 32 KB = 8 TB Limite do tamanho da partição: 2TB Numero máximo de setores 2 32 = 4G, como cada setor tem 512 bytes o Limite do tamanho da partição = 4G * 512 bytes = 2TB No XP, a FAT32 dá suporte a clusters de 512, 1024, 2048, 4096, 8192, 16K, 32K, 64K, (128K, 256K para o tamanho do setor > 512 bytes). 65526 < Número de clusters por partição < 4177918 4177918 * 64KB = 254 GB 6
FAT 16/32 Uma das maiores vantagens da FAT32 é a utilização de tamanhos menores de clusters. Os tamanhos dos clusters dependem do tamanho do disco Suporte a nomes longos de arquivos FAT 12 e 16 usam nomes de 11 caracteres 8 para nome do arquivo 3 para extensão 7
FAT32 na memória principal FAT32 não fica toda na memória principal. Apenas uma parte suficiente para dar suporte ao início do sistema. Utiliza tabela com múltiplos níveis. 8
FAT32 na memória principal Tamanho da FAT32 na memória: Depende do tamanho do disco e do bloco. Exemplo um disco com 40 GB e blocos de 4KB. Numero de Blocos = 40GB / 4KB = 10M Blocos. Tamanho da tabela na memória: 10 M * 4 bytes = 40MB 9
ESTRUTURA DO SISTEMA DE ARQUIVOS 10
ESTRUTURA DO SISTEMA DE ARQUIVOS O primeiro setor é sempre a ID do Volume que vem seguida pelos setores da Região Reservada. Em seguida, encontra-se uma cópia da Tabela de Alocação de Arquivos (FAT) e outra cópia de backup. Por último encontram-se os clusters reservados para dados e diretórios e um espaço não utilizado. 11
ESTRUTURA DO SISTEMA DE ARQUIVOS O cluster 0 é reservado para a identificação da tabela BPB e o cluster 1 para definir o formato do EOC (o valor de cluster que representa o fim do arquivo). Logo, o primeiro cluster para dados é o cluster 2. 12
ESTRUTURA DO SISTEMA DE ARQUIVOS Utilizando essa informação, é possível determinar a seguinte fórmula para acesso a um cluster: END. LBA = Primeiro_Cluster + [(Nº cluster 2) * setores_por_cluster] LBA - Endereço Lógico do Bloco 13
ESTRUTURA DO SISTEMA DE ARQUIVOS BPB (BIOS Parameter Block) Apresenta informações sobre a estrutura do volume FAT32. Fica localizada na primeiro setor do volume, na área de região reservada. 14
BPB 15
ESTRUTURA DO SISTEMA DE ARQUIVOS Setor FAT32 FSInfo Em um volume FAT32, a FAT pode ter uma estrutura de dados maior do que a FAT16 e FAT12 Isso implicou na necessidade de criar um meio de armazenar a quantidade de clusters livres. Este valor era computado antes de uma chamada de uma API para reconhecimento do espaço livre em disco Esta informação é armazenada na área reservada em um setor determinado FS_Info. Sua localização é indicada no campo BPB_FSInfo da BPB. 16
ESTRUTURA DO SISTEMA DE ARQUIVOS Setor de Backup de BOOT O campo BPB_BkBootSec só está contido em BPBs dos volumes FAT32 e é responsável por armazenar uma cópia de informação sobre o setor de BOOT incluindo o BPB, reduzindo assim a possibilidade do sistema não ser iniciado por causa de uma falha na leitura do setor 0 (setor de BOOT). 17
Tabelas de Blocos FAT32 É uma lista de entradas que mapeiam cada cluster em uma partição. Cada entrada contém uma das seguintes informações: O endereço do próximo cluster. Um caracter especial que indica o final do arquivo (EOF). Um caracter especial para identificar um cluster danificado. Um caracter especial para identificar um cluster reservado. Zero, que notifica que o cluster está livre 18
Tabelas de Blocos O sistema de arquivo FAT32 utiliza 28 bits dos 32 possíveis para cada entrada na tabela de blocos. O número de clusters alocados para um arquivo deve corresponder ao tamanho do arquivo informado pela Tabela de Diretórios da seguinte forma. Nº_de_clusters = ((Tam_Arquivo - 1) / QTD_bytes_por_cluster) + 1 Os bits 7-31 informam o setor que contem o próximo cluster enquanto os primeiros 7 bits informam qual dos 128 inteiros contidos nesse setor é o que contém o número do próximo cluster do seu arquivo?? 19
Tabelas de Blocos 20
Tabela de Blocos 21
Limites Cluster/Arquivos As tabelas a seguir mostram os diversos valores de clusters da FAT e da FAT32 22
Limites A partição FAT32 tem uma limitação de tamanho de arquivo: 4 GB (embora isso pareça muito, arquivos de vídeo podem facilmente superar este tamanho). 23
Estrutura de Diretórios Um diretório é um arquivo composto por uma lista de estruturas O diretório registra informações - tais como nome, posição, tamanho e tipo - para todos os arquivos naquela partição Árvore Raic- C: 24
Diretório Raiz No FAT 32 o diretório raiz tem tamanho variável e fica localizado no setor de dados. A localização do primeiro cluster do diretório raiz é armazenado no campo da BPB RootClass 25
Estrutura de uma Entrada de Diretório 26
Entradas Longas de Diretório 27 Uma entrada de Diretório Longo é definida como uma entrada de diretório comum porém com um atributo especial. Uma máscara determina se uma entrada é um componente de nome longo, e é definida da seguinte forma: ATTR_LONG_NAME_MASK ATTR_READ_ONLY ATTR_HIDDEN ATTR_SYSTEM ATTR_VOLUME_ID ATTR_DIRECTORY ATTR_ARCHIVE
Entradas Longas de Diretório Quando uma entrada longa é encontrada ela é tratada como um conjunto de entradas de diretórios que são associadas com a entrada de diretórios que precede o conjunto. Essa implementação é conseqüência do fato de sistemas de arquivos FAT16 e FAT12 não tratarem nomes longos. 28
Entradas Longas de Diretório 29
Entradas Longas de Diretório Se uma entrada de diretório longo for encontrada sem associação a uma entrada curta ela não existirá legalmente. Cada entrada de um conjunto é numerada, e a última entrada é indicada pelo campo LDIR_Ord com o valor 0x40. Se um entrada de diretório não estiver associada a uma entrada curta ou em seu campo LDIR_Ord contiver os valores 0xE5 ou 0x00 (que representam uma última entrada em um cluster e uma entrada livre, respectivamente) ela será denominada órfã. 30
Entradas Longas de Diretório Todos os 11 caracteres contidos no nome da entrada curta são utilizados no cálculo do checksum, que é criado no momento da criação dos diretórios com nomes longos. Esse checksum é guardado em cada entrada de nomes longos. Se algum cehcksum contido em uma entrada de nomes longo não corresponder ao checksum contido no alias (nome em uma entrada curta associado a um conjunto de entradas longas) da entrada curta, então a entrada longa será tratada como órfã, 31 SEQUÊNCIA DE DIRETÓRIOS COM NOMES LONGOS ASSOCIADOS A UMA ENTRADA COM NOME CURTO
Entradas Longas de Diretório 32 SEQUÊNCIA DE DIRETÓRIOS COM NOMES LONGOS ASSOCIADOS A UMA ENTRADA COM NOME CURTO
Nome Longo Com Entradas De Diretórios Longas Um nome longo consiste em mais caracteres que uma única entrada longa pode suportar. Cada entrada longa é capaz de armazenar até 13 caracteres. Se um determinado nome longo não for múltiplo de 13 então os campos que sobram são preenchidos por 0(NULL) no primeiro campo e por FFFF nos campos seguintes. 33
Nome Longo Com Entradas De Diretórios Longas DEMOSNTRANDO O ARMAZENAMENTO DO NOME LONGO 34
Atributos Os atributos que um arquivo pode receber no FAT32 são: Somente Leitura Oculto Sistema ID do Volume Diretório Arquivo 35
ACL ACL (Acess Control Lists) Esta lista é utilizada como um método adicional para prover permissões para usuários a determinados arquivos e pastas Cada entrada de uma lista ACL contém: Qual(is) usuários(s) tem acesso aquela entrada Se a entrada é responsável por negar ou permitir o acesso. 36
ACL ACL (Acess Control Lists) Quais direitos serão permitidos ou negados. Se esta entrada será herdada de uma pasta para o seu conteúdo. Alguns direitos que podem ser atribuídos a uma arquivo 37 Leitura, escrita, execução, apagar, leitura de atributos, mudar permissões.
ACL - HERANÇA O ACL permite 4 tipos de herança para arquivos e sub-pastas de uma determinada pasta: Herança para todos os arquivos Herança para todas as pastas, Herança limitada apenas aos arquivos da pasta Herança somente para sub-pastas e arquivos dentro da pasta mas não a ela. O sistema tem que possuir um registro de quais Entradas da ACL são herdadas e quais não são. 38
Recursos O sistema FAT 32 permite posicionar o diretório raiz de uma partição em qualquer lugar da mesma. No FAT 32 é possível mudar o tamanho da partição sem que haja perda dos dados. Isso não é possível nos sistemas FAT anteriores. (PtMagic). Não possue proteção de arquivos O FAT32 suporta unidades de até 2 terabytes 39
Recursos O FAT32 usa o espaço de maneira mais eficiente. Pode alterar o local da pasta raiz usando a cópia de backup da BPB, e não a cópia padrão. Além disso, o registro de inicialização em unidades FAT32 é expandido para incluir uma cópia de backup das estruturas de dados críticos. 40
Particionamento É determinado através da relação entre os comandos FDISK e FORMAT, apesar de que é possível determinar o tamanho do cluster do FAT32 também por programas de terceiros, como o Partition Magic. 41
Desfragmentação A FAT não possui nenhum mecanismo que impeça, ou pelo menos diminua a fragmentação, daí a necessidade de rodar o defrag ou outro programa desfragmentador periodicamente. A função deles é mover os arquivos, de forma que eles fiquem gravados em clusters seqüenciais. Processo demorado, que deve ser repetido regularmente. Manipulação de apontadores da lista encadeada. 42
Swap É possível determinar em qual partição estará a área de SWAP A área de SWAP é definida no momento da instalação, de acordo com a quantidade de memória do computador, porém pode ser redefinida pelo usuário. 43
Segurança O sistema FAT32 não implementa segurança alguma para acesso a dados em um volume por diferentes usuários. 44
Desempenho Comparação do Sistema de Arquivo FAT32 X FAT16 X NTFS Transferência de arquivos o FAT32 igual aos demais. Leitura e escrita o FAT32 é mais eficiente 45
Desempenho 46
Confiabilidade Recursos do FAT32 que permitem maior confiabilidade no sistema: Permite a alteração do local da pasta raiz. O sistema FAT32 faz uma cópia de backup das estruturas de dados críticas, que são armazenadas no registro de inicialização. 47