Korean developer Park Ju Hyung, specializing in porting Android firmware for various devices, has released a new edition of the driver for the exFAT file system — , which is a branch of the 'sdFAT' driver. by Samsung. Currently, there is an exFAT driver from Samsung in the Linux kernel staging branch, but it is based on the codebase (1.2.9). Currently, Samsung is using a completely different version of the 'sdFAT' driver (2.2.0), from which the development by Park Ju Hyung originated.
In addition to transitioning to the current codebase, the proposed exfat-linux driver differs by removing Samsung-specific modifications, such as the inclusion of code for working with FAT12/16/32 (these file systems are supported in Linux by separate drivers) and an integrated defragmenter. The removal of these components has made the driver portable and adapted it for the standard Linux kernel, rather than just for the kernels used in Samsung Android firmware.
The developer has also simplified the installation of the driver. Ubuntu users can install it from , while for other distributions it is sufficient to download the code and run 'make && make install'. The driver can also be built together with the Linux kernel, for instance when preparing firmware for Android.
In the future, there are plans to keep the driver up to date by incorporating changes from the main Samsung codebase and porting it for new kernel releases. Currently, the driver has been verified when built with kernels ranging from 3.4 to 5.3-rc on x86 (i386), x86_64 (amd64), ARM32 (AArch32), and ARM64 (AArch64) platforms. The author of the new driver version has proposed to kernel developers to consider including the new driver in the staging branch as the basis for the standard exFAT driver of the kernel, instead of the recently added outdated variant.
The performance tests showed an increase in write operation speeds when using the new driver. When placing the partition in the ramdisk: 2173 MB/s versus 1961 MB/s for sequential input/output, 2222 MB/s versus 2160 MB/s for random access, and when placing the partition in NVMe: 1832 MB/s versus 1678 MB/s and 1885 MB/s versus 1827 MB/s. The reading speeds increased in the sequential reading test in ramdisk (7042 MB/s versus 6849 MB/s) and random reading in NVMe (26 MB/s versus 24 MB/s).


Source: opennet.ru
