exFAT

Origem: Wikipédia, a enciclopédia livre.
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

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]

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[editar | editar código-fonte]

O 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[editar | editar código-fonte]

As 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[editar | editar código-fonte]

O 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 | editar código-fonte]

Notas

  1. 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.
  2. 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.
  3. Esse limite se aplica porque o tamanho máximo do diretório é de 256 MiB.
  4. 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.

Referências

  1. a b c d US 8321439 contem a especificação do Microsoft exFAT (revision 1.00)
  2. 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) 
  3. 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 
  4. a b c «exfat — Free exFAT file system implementation». Consultado em 14 de outubro de 2015 
  5. a b «GPL'ed sources for the Samsung exfat module as released by Samsung». Consultado em 20 de agosto de 2017 
  6. a b c «exFAT Specification». Microsoft. 28 de agosto de 2019 
  7. a b «Conservancy Helps Samsung Resolve GPL Compliance Matter Amicably». Software Freedom Conservancy (em inglês). Consultado em 19 de dezembro de 2019 
  8. «suporte ao exFAT no site da Sony». Consultado em 1 de janeiro de 2018 
  9. «Licensing exFAT». Consultado em 1 de março de 2017 
  10. a b «Description of the exFAT file system driver update package». Microsoft. Consultado em 26 de fevereiro de 2015 
  11. «Adding Hard Disk Drives». Microsoft TechNet. Consultado em 15 de setembro de 2009 
  12. a b «Mac OS X 10.6.5 Notes: exFAT Support, AirPrint, Flash Player Vulnerability Fixes». Consultado em 25 de novembro de 2013 
  13. a b «fsck_exfat(8) Mac OS X Manual Page». Consultado em 25 de novembro de 2013 
  14. Marius Oiaga (11 de dezembro de 2009). «Microsoft Licenses Windows 7's exFAT Flash File Format». Softpedia.com 
  15. «Microsoft technology licensing programs for OEMs and developers». Microsoft. Consultado em 22 de outubro de 2020 
  16. 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 
  17. John Gossman (28 de agosto de 2019). «exFAT in the Linux kernel? Yes!». Microsoft OpenSource Blog. Consultado em 28 de agosto de 2019 
  18. John Gossman (28 de agosto de 2019). «exFAT in the Linux kernel? Yes!». Microsoft. Consultado em 22 de outubro de 2020 


Ícone de esboço Este artigo sobre informática é um esboço. Você pode ajudar a Wikipédia expandindo-o.