O desenvolvedor coreano Park Ju Hyung, especializado em portabilidade de firmware Android para diversos dispositivos, uma nova versão do driver para o sistema de arquivos exFAT — , que é um ramo do driver "sdFAT", da empresa Samsung. Atualmente, o driver exFAT já está na ramificação staging do kernel Linux, mas ele é baseado em uma base de código (1.2.9). Atualmente, a Samsung utiliza em seus smartphones uma versão completamente diferente do driver "sdFAT" (2.2.0), do qual foi originada a implementação de Park Ju Hyung.
Além de migrar para uma base de código atual, o driver exfat-linux proposto se destaca pela remoção de modificações específicas da Samsung, como o código para suporte a FAT12/16/32 (esses sistemas de arquivos são suportados no Linux por drivers separados) e um desfragmentador incorporado. A remoção desses componentes possibilitou tornar o driver portátil e adaptá-lo para o kernel padrão do Linux, e não apenas para os núcleos utilizados nas ROMs Android da Samsung.
O desenvolvedor também trabalhou na simplificação da instalação do driver. Usuários do Ubuntu podem instalá-lo através de , e para as demais distribuições, basta baixar o código e executar "make && make install". O driver também pode ser compilado junto com o kernel Linux, por exemplo, ao preparar firmwares para Android.
No futuro, está previsto manter o driver atualizado, transferindo modificações da base de código principal da Samsung e portando-o para novas versões do kernel. Atualmente, o funcionamento do driver foi testado ao compilar com kernels variando de 3.4 a 5.3-rc em plataformas x86 (i386), x86_64 (amd64), ARM32 (AArch32) e ARM64 (AArch64). O autor da nova variante do driver propôs aos desenvolvedores do kernel considerar a inclusão do novo driver na ramificação staging como base para o driver exFAT padrão do kernel, em vez da versão obsoleta recentemente adicionada.
Os testes de desempenho realizados mostraram um aumento na velocidade das operações de gravação ao usar o novo driver. Ao alocar a partição em ramdisk: 2173 MB/s contra 1961 MB/s em operações sequenciais de entrada/saída, 2222 MB/s contra 2160 MB/s em acesso aleatório, e ao alocar a partição em NVMe: 1832 MB/s contra 1678 MB/s e 1885 MB/s contra 1827 MB/s. A velocidade das operações de leitura aumentou no teste de leitura sequencial em ramdisk (7042 MB/s contra 6849 MB/s) e leitura aleatória em NVMe (26 MB/s contra 24 MB/s).


Fonte: opennet.ru
