A família Windows: Sistemas de arquivos Fábio Augusto Salve Dias Vinícius Geraldo Félix Histórico 1981 DOS 1.0 1983 DOS 2.0 1985 DOS 3.0 1986 Windows 1.0 1987 1990 1993 1995 Windows 2.0 Windows 3.0 Windows 3.1 Windows 95 NT 3.1 1986 1987 1990 1993 1995 Windows 1.0 Histórico Windows 2.0 Windows 3.0 Windows 3.1 NT 3.1 Windows 95 Interface NT 4.0 1996 1998 Windows 98 1999 Interface 2000 Windows ME 2001 2003 2006 Windows 2000 Arquitetura Windows XP Windows 2003 Windows Vista (RC1) Terminologia básica • Cluster: Menor fatia de disco que pode ser alocada. – Costuma variar de 512 bytes até 64Kb. – Quanto maior o cluster, mais disco pode ser endereçado e maior o desperdício potencial de disco. – Normalmente possui um endereço, correspondente ao seu deslocamento do inicio do disco. A FAT • Criada em 1977 por Bill Gates e Marc McDonald para o BASIC da Microsoft • Simples, foi utilizada como principal sistema de arquivos até a total adoção do NTFS no WinXP (2001). • Utilizada ainda em dispositivos menores, como disquetes, cartões de memória, etc. Os “inventores” Variantes • Existiram diversas variantes da FAT, cuja diferença primordial é a quantidade de bits utilizados para endereçar clusters – FAT12 – FAT16 – FAT32 (VFAT para o win95) Variantes FAT12 FAT16 FAT32 Quando 1977 BASIC Tamanho máximo: Arquivo/Partição 32Mib/ 32Mib 1988 – MSDOS 4.0 2Gib/ 2Gib (4Gib) 1996 – Windows 95 OSR2 4GiB/ 2Tib (32Gb) Vantagens e desvantagens • Simples, rápida e eficiente para dispositivos com pequena capacidade • Não possui segurança, pode ocorrer fragmentação dos arquivos, não possui funcionalidades adicionais e não oferece suporte a dispositivos de alta capacidade. Estrutura • Início do disco: • FAT: FAT e Long File Names Windows NT FileSystem (NTFS) • Introduzido em 1993 (NT 3.1) • Assim como o NT, criada do zero, sem preocupações com compatibilidade. • Introduz METADADOS aos arquivos – Cada arquivo é composto por atributos. Características Max file size 16 TiB with current implementation (16 EiB architecturally) 32 Max number of files 4,294,967,295 (2 -1) Max filename size 255 characters Max volume size 256 TiB with current implementation (16 EiB architecturally) Allowed characters in filenames Unicode (UTF-16), any character except '\0' (NULL) and '/' Funcionalidades • • • • • • • Segurança de arquivos Compressão Criptografia Múltiplas streams (fluxos) de dados Cotas Arquivos esparsos (...) fsutil Funcionalidades – arquivos esparsos. Funcionalidades – Cotas/Compressão/Criptografia Funcionalidades – Múltiplas streams Metadados dos arquivos • Conjunto padrão de atributos: Nome, permissões, etc. • Podemos adicionar novos metadados aos arquivos. • Dados: stream sem nome • ADS: Várias streams de dados podem existir – arquivo:stream Metadados do NTFS System File File Name MFT Record Master file table $Mft 0 Master file table mirror $MftMirr 1 Log file $LogFile 2 Volume $Volume 3 Attribute definitions $AttrDef 4 Root file name index . 5 Cluster bitmap $Bitmap 6 Boot sector $Boot 7 Bad cluster file $BadClus 8 Security file $Secure 9 Upcase table $Upcase 10 NTFS extension file $Extend 11 12–15 MFT • Master File Table: – Uma entrada por arquivo – Cada entrada contém os meta dados do arquivo – As primeiras 16 entradas são reservadas • MFT, Clusters danificados, livres, etc. • Trata os próprios meta dados do NTFS como arquivos, que podem estar em qualquer lugar. MFT - Localização MFT - Exemplo Armazenando • Cada arquivo possui uma entrada na MFT (1kb) • Os atributos que couberem, são colocados na MFT. Caso contrário, são colocados em clusters, e o ponteiro para este cluster é armazenado. • Os clusters de um arquivo são organizados como uma árvore B+. Armazenando – Entrada na MFT •Os diretórios são armazenados como arquivos, contendo ponteiros para uma árvore B+ que relaciona os arquivos contidos no diretório. •Arquivos e diretórios pequenos ficam na própria MFT (atributo imediato). Armazenando WinFS • Idealizada para ser o sistema de arquivos do Windows Vista • Devido a excessivo uso de recursos da máquina, foi retirado do Vista • Será lançado posteriormente como módulo (assim como a .NET framework) • Partes de sua tecnologia serão inseridos ao ADO.NET e SQL Server WinFS - Idéia • Camada entre NTFS e aplicações • “Interpretar” melhor as informações dos dados • Possibilitar consultas complexas, envolvendo dados de múltiplas aplicações WinFS - Arquitetura Referências • http://fabio.dias.googlepages.com