exFAT
exFAT (Extended File Allocation Table, em português "Tabela de Alocação de Arquivos (ficheiros) Estendida, também conhecido como FAT64) é um formato de sistema de arquivos (ficheiros) utilizado principalmente em discos de memória flash, introduzido pela Microsoft em 2006 com o Windows Embedded CE 6.0. O exFAT foi proprietário até 28 de agosto de 2019, quando a Microsoft publicou a especificação dele.[6] A Microsoft possui patentes em vários elementos do seu design.[1]
exFAT | |
---|---|
Desenvolvedor | Microsoft |
Nome completo | Extended File Allocation Table |
Lançamento | Novembro de 2006 (Windows Embedded CE 6.0) |
Identificador da partição | MBR/EBR: 0x07 (o mesmo do HPFS/NTFS) BDP/GPT: EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 |
Estruturas | |
Conteúdos de diretório | Tabela |
Alocação de arquivos | Bitmap, lista ligada |
Blocos ruins | Marcação de cluster |
Limites | |
Tamanho Máximo de arquivo | ca. 128 PiB (16 EiB–1 teórico)[nota 1] |
Número máximo de arquivos | Até 2,796,202 por diretório[1] |
Tamanho máximo do nome de arquivo | 255 caracteres UTF-16 |
Tamanho máximo do volume | ca. 128 PiB, 512 TiB (recomendado)[2] |
Caracteres permitidos em nomes | Unicode UTF-16 exceto U+0000 (NUL) até U+001F (US) / (barra) \ (barra inversa) : (dois-pontos) * (asterisco) ? (ponto de interrogação) " (aspas) < (menor que) > (maior que) e | (barra vertical) |
Recursos | |
Datas salvas | Criação, modificado, último acesso |
Faixa de datas | De 1980-01-01 até 2107-12-31 |
Resolução de datas | 10 ms |
Bifurcações | Não |
Atributos | Somente leitura, oculto, sistema, subdiretório, arquivo |
Permissões de sistema de arquivos | ACL (somente no Windows CE 6) |
Compressão transparente | Não |
Criptografia transparente | Não |
Armazenamento de caso único | Não |
Sistemas operativos suportados | Windows Embedded CE 6.0 Windows XP (incluindo x64) SP2 e depois (opcional[2]) Windows Server 2003 SP2 (opcional[2]) Windows Vista SP1 e depois Windows 7 Windows 8 Windows 10 Windows Server 2008 Windows Server 2008 R2 Linux (versão 5.4 ou superior.[3] Em versões anteriores, via FUSE[4] ou driver de kernel não mainline[5]) Mac OS X 10.6.5 e depois Alguns dispositivos Android OS como o Sony Xperia Z (executando a última versão do firmware) |
Portal das Tecnologias de informação |
O exFAT pode ser usado quando o sistema de arquivos NTFS não for uma solução viável (devido à sobrecarga de estrutura de dados), e o limite de tamanho do arquivo do sistema de arquivos FAT32 padrão (isto é, 4 GiB) ser inaceitável.
O exFAT foi adotado pela SD Card Association como o sistema de arquivos padrão para cartões SDXC maiores que 32 GiB.
Em 2013, a Samsung Electronics publicou sob a GPL um driver do Linux para o exFAT.[7] Em 28 de Agosto de 2019, a Microsoft publicou pela primeira vez a especificação do exFAT[6], e um novo driver foi incluído no núcleo Linux na versão 5.4.[3]
Visão geral
editarO exFAT foi introduzido pela primeira vez no final de 2006 como parte do Windows Embedded CE 6.0, um sistema operacional da família Windows para dispositivos embarcados. A maioria dos fabricantes que adquirem as licenças do exFAT são fabricantes de sistemas embarcados ou fabricantes de dispositivos que produzem mídia que será pré-formatada com o exFAT. A família inteira da File Allocation Table (FAT), incluído nesta o exFAT, é usada para sistemas embarcados porque é leve e é mais adequado para soluções com baixa memória e baixos requisitos de energia, e pode ser implementado no firmware.
exFAT permite arquivos individuais maiores que 4 GiB, facilitando a gravação contínua de vídeos em HD longos que pode exceder o limite de 4 GiB em menos de uma hora. As câmeras digitais atuais usando o FAT32 quebrarão os arquivos de vídeo em múltiplos segmentos de aproximadamente 2 ou 4 GiB. Com o aumento da capacidade e o aumento dos dados transferidos, a operação de escrita precisa ser feita de forma mais eficiente. Os cartões SDXC, rodando no padrão UHS-I têm uma velocidade de gravação mínima garantida de 10 MBps e o exFAT desempenha um fator na obtenção dessa velocidade através da redução da sobrecarga do sistema de arquivos na alocação de cluster. Isso é conseguido através da introdução de um bitmap de cluster e eliminação (ou redução) de gravações para a FAT. Um único bit no registro do diretório indica que o arquivo é contíguo, informando o driver exFAT para ignorar a FAT. Essa otimização é análoga a um extent em outros sistemas de arquivos, exceto que ele se aplica apenas a arquivos inteiros, em oposição a partes contíguas de arquivos.
O exFAT também é suportado em vários dispositivos de mídia, como televisores de tela plana modernos,[8] centros de mídia e players de mídia portáteis.
Alguns fabricantes de mídias em memória flash, incluindo pen drives USB, Compact Flash (CF) e unidades de estado sólido (SSD) fabricam algumas de suas mídias de alta capacidade já sendo pré-formatadas com o sistema de arquivos exFAT. Por exemplo, a Sandisk envia seus cartões CF de 256 GB como exFAT.
Recursos
editarAs especificações, recursos, e requisitos do sistema de arquivos exFAT incluem:
- Limite de tamanho de arquivo de 16 EiB - 1 byte (de outra forma limitado pelo tamanho máximo do volume de 128 PiB - 1 byte),[nota 1] aumentado de 4 GiB - 1 byte em um sistema de arquivos FAT32 padrão.[2] Portanto, para o usuário típico, interoperabilidade perfeita entre as plataformas Windows e OS X para arquivos com mais de 4 GiB.
- Escalabilidade para grandes tamanhos de disco: ca. 128 PiB[nota 2] máximo, 512 TiB máximo recomendado, aumentado do limite de 32 bits (2 TiB para um tamanho de setor de 512 bytes) de partições FAT32 padrão.
- Suporte para até 2.796.202 arquivos por diretório.[1][nota 3] A Microsoft documenta um limite de 65,534 arquivos por subdiretório para sua implementação FAT32, mas outros sistemas operacionais não têm limite especial para o número de arquivos em um diretório FAT32. As implementações FAT32 em outros sistemas operacionais permitem um número ilimitado de arquivos até o número de clusters disponíveis (ou seja, até 268,304,373 arquivos em volumes sem nomes de arquivos longos).[nota 4]
- Número máximo de arquivos no volume: ca. 232 - 11 (aumentado de 228 - 11[nota 4] no FAT32 padrão)
- Desempenho de alocação de espaço livre e de exclusão de arquivos melhorado devido à introdução de um mapa de bits de espaço livre.
- Granularidade de rótulos de tempo de 10 ms para tempos de criação e modificação (reduzido de 2 s do FAT, mas não tão finas como 0,1 ms do NTFS).[1]
- Granularidade de rótulo de tempo para o último tempo de acesso para segundos duplos (no FAT era apenas a data)
- Suporte opcional para rótulos de tempo UTC (a partir do Vista SP2).
- Suporte opcional para listas de controle de acesso (atualmente não suportado nas versões do Windows Desktop/Server).
- Suporte opcional para TexFAT, um padrão de sistema de arquivos transacional (função opcionalmente ativada no Windows CE, não suportada nas versões Windows Desktop/Server).
- Provisão para parâmetros definíveis pelo OEM para personalizar o sistema de arquivos para características específicas do dispositivo.[9]
- Armazenamento em disco do comprimento de dados válido do arquivo (VDL) através do uso de dois campos de comprimentos distintos que podem ser usados para pré-alocar um arquivo.
- Tamanho do cluster de até 32 MiB.[10]
- Integridade de metadados com soma de verificação
- Estruturas de metadados baseadas em modelos
- Remoção das entradas de diretórios físicas "." e ".." que aparecem nos subdiretórios
- exFAT não é limitado por nomes de arquivos curtos (formato 8.3)
- No Windows XP, a atualização KB955704 deve ser instalada; e no Windows Vista, o SP2 deve estar instalado.[10]
- O Windows Vista não é capaz de usar dispositivos exFAT para o ReadyBoost. Windows 7 remove essa limitação, habilitando caches ReadyBoost maiores que 4 GiB.
- A implementação padrão do exFAT não tem journaling e usa apenas uma única tabela de alocação de arquivos e um mapa de espaço livre. Os sistemas de arquivos FAT usavam tabelas alternadas, pois isso permitia a recuperação do sistema de arquivos se a mídia fosse ejetada durante uma gravação (o que ocorre com freqüência na prática com mídia removível). O componente opcional TexFAT adiciona suporte para tabelas e mapas de backup adicionais, mas pode não ser suportado.
Adoção
editarO exFAT é suportado no Windows XP e no Windows Server 2003 com a atualização KB955704,[2] Windows Embedded CE 6.0, Windows Vista com Service Pack 1, Windows Server 2008,[11] Windows 7, Windows 8, Windows Server 2008 R2 (exceto Windows Server 2008 Server Core), Windows 10, Mac OS X a partir de 10.6.5, Linux a partir da versão 5.4 e iPadOS.[12][13]
As empresas podem integrar o exFAT em um grupo específico de dispositivos de consumo, incluindo câmeras, filmadoras e molduras digitais para uma taxa fixa . Os telefones celulares, PCs e redes possuem um modelo de preço de volume diferente.[14]
A Microsoft entrou em acordos de licenciamento com BlackBerry, Panasonic, Sanyo, Sony, Canon, Aspen Avionics, Audiovox, Continental, Harman, LG Automotive e BMW.
Uma implementação baseada em FUSE chamada fuse-exfat ou exfat-fuse[4], com suporte à leitura/gravação está disponível para o FreeBSD e múltiplas distribuições Linux. A implementação no kernel também foi lançada, escrita pela Samsung. Foi inicialmente lançado no GitHub sem intenção, e mais tarde lançado oficialmente pela Samsung em conformidade com a GPLv2 em 2013.[5] (Este lançamento não torna o exFAT isento de royalties, pois o licenciamento da Samsung não remove os direitos de patente da Microsoft.[15]) Uma implementação chamada exFATFileSystem, com base no fuse-exfat, está disponível para o AmigaOS 4.1.
Soluções proprietárias de leitura/gravação licenciadas e derivadas da implementação do Microsoft exFAT criadas pela Paragon Software Group e pela Tuxera estão disponíveis para Android[16], Linux e outros sistemas operacionais.
XCFiles (criada pela Datalight) é uma implementação proprietária e completa, destinada a ser portável para sistemas de 32 bits. O Rtfs (criada pela EBS Embedded Software) é uma implementação completa para dispositivos incorporados.
Duas soluções experimentais, não oficiais estão disponíveis para o DOS. O driver carregável USBEXFAT requer a pilha USB da Panasonic para o DOS e só funciona com dispositivos de armazenamento USB; O executável de código aberto EXFAT é um leitor de sistema de arquivos exFAT e requer o extensor DOS HX para funcionar. Não existem drivers de DOS em modo real exFAT nativos, o que permitiria o uso ou a inicialização de volumes exFAT.
O Mac OS X Snow Leopard 10.6.5 e posterior podem criar, ler, escrever, verificar e reparar sistemas de arquivos exFAT.[12][13]
O Linux oferece suporte para exFAT via FUSE desde 2009.[4] Em 2013, a Samsung Electronics publicou um driver Linux para exFAT sob GPL.[7] Em 2019 a Microsoft anunciou que tornaria pública a especificação do exFAT para que a comunidade de desenvolvedores do Linux possa desenvolver implementações interoperáveis[17]. Em 28 de agosto de 2019, a Microsoft publicou a especificação do exFAT[6] e lançou a patente para os membros do OIN.[18] O núcleo Linux introduziu suporte nativo ao exFAT com a versão 5.4.[3]
Ver também
editar- ↑ a b Embora a Microsoft tenha publicado um valor diferente em KB955704, o tamanho do arquivo é registrado em bytes e é guardado como um número de 64 bits. O valor máximo teórico do tamanho de arquivo é de 16 EiB − 1 byte, o mesmo valor do NTFS. No entanto, como o verdadeiro valor máximo teórico do tamanho do volume sob a especificação corrente não pode exceder 128 PiB, um arquivo nunca pode alcançar aquele valor. Outro motivo para o limite é que o sistema de endereçamento corrente dos discos IDE/ATA é o LBA-48, e ele usa um endereço de bloco de 48 bits para endereçar o setor. Um setor de tamanho de 512 bytes é representado por 29, o que faz com que o tamanho máximo endereçável do sistema de arquivos seja de 29 × 248 = 257, que é igual a 128 PiB. Em outras palavras, o limite de 128 PiB da arquitetura é uma limitação de hardware. Essa situação não inclui o AF (setores de 4k) e o exFAT é limitado a 128 PiB, independente do tamanho de setor baseado na especificação.
- ↑ O valor máximo teórico do tamanho do volume é definido por 232 − 11 clusters possíveis com 225 − 1 bytes por cluster = ca. 128 PiB. O tamanho é também limitado atualmente pelo sistema de endereçamento do LBA48, com um tamanho de setor de 512 bytes, só 248 × 512 = 257 bytes = 128 PiB podem ser endereçados.
- ↑ Esse limite se aplica porque o tamanho máximo do diretório é de 256 MiB.
- ↑ a b 268,304,373 arquivos = 228 − 11 clusters reservados - 131,072, o número mínimo of clusters de 64 kiB ocupados para as 268,435,445 entradas de diretórios (32 bytes) sem VFAT LFNs, que são exigidos para 268,435,445 arquivos com tamanho entre 1 e 65,535 bytes. Com VFATs, o número 131,072 deve ser multiplicado por 21 (pior caso), que poderia resultar em 265,682,933 arquivos ao invés disso.
- ↑ a b c d US 8321439 contem a especificação do Microsoft exFAT (revision 1.00)
- ↑ a b c d e «KB955704». 27 de janeiro de 2009.
Descrição do pacote de atualização do driver de sistema de arquivos exFAT (para o Windows XP e o Windows Server 2003)
- ↑ a b c Abhishek Prakash (25 de novembro de 2019). «Linux Kernel 5.4 Release Features». itsfoss.com. Consultado em 22 de outubro de 2020
- ↑ a b c «exfat — Free exFAT file system implementation». Consultado em 14 de outubro de 2015
- ↑ a b «GPL'ed sources for the Samsung exfat module as released by Samsung». Consultado em 20 de agosto de 2017
- ↑ a b c «exFAT Specification». Microsoft. 28 de agosto de 2019
- ↑ a b «Conservancy Helps Samsung Resolve GPL Compliance Matter Amicably». Software Freedom Conservancy (em inglês). Consultado em 19 de dezembro de 2019
- ↑ «suporte ao exFAT no site da Sony». Consultado em 1 de janeiro de 2018
- ↑ «Licensing exFAT». Consultado em 1 de março de 2017
- ↑ a b «Description of the exFAT file system driver update package». Microsoft. Consultado em 26 de fevereiro de 2015
- ↑ «Adding Hard Disk Drives». Microsoft TechNet. Consultado em 15 de setembro de 2009
- ↑ a b «Mac OS X 10.6.5 Notes: exFAT Support, AirPrint, Flash Player Vulnerability Fixes». Consultado em 25 de novembro de 2013
- ↑ a b «fsck_exfat(8) Mac OS X Manual Page». Consultado em 25 de novembro de 2013
- ↑ Marius Oiaga (11 de dezembro de 2009). «Microsoft Licenses Windows 7's exFAT Flash File Format». Softpedia.com
- ↑ «Microsoft technology licensing programs for OEMs and developers». Microsoft. Consultado em 22 de outubro de 2020
- ↑ Clarke, Gavin (8 de agosto de 2012). «Sharp cuts exFAT deal with Microsoft for Android mobes». The Register. Consultado em 12 de agosto de 2012
- ↑ John Gossman (28 de agosto de 2019). «exFAT in the Linux kernel? Yes!». Microsoft OpenSource Blog. Consultado em 28 de agosto de 2019
- ↑ John Gossman (28 de agosto de 2019). «exFAT in the Linux kernel? Yes!». Microsoft. Consultado em 22 de outubro de 2020