A new version of the exFAT driver has been proposed for the Linux kernel

Korean developer Park Ju Hyung, who specializes in porting Android firmware for various devices, presented a new version of the driver for the exFAT file system - exfat-linux, which is an offshoot of the "sdFAT" driver, developed by by Samsung. Currently, the staging branch of the Linux kernel is already added Samsung's exFAT driver, but it's based on a codebase old driver branch (1.2.9). Currently, Samsung uses a completely different version of the "sdFAT" driver (2.2.0) in its smartphones, from which the development of Park Ju Hyung became an offshoot.

In addition to switching to the current codebase, the proposed exfat-linux driver is distinguished by the removal of Samsung-specific modifications, such as the presence of code for working with FAT12/16/32 (these FS are supported in Linux by separate drivers) and a built-in defragmenter. Removing these components made it possible to make the driver portable and adapt it for the standard Linux kernel, and not just for the kernels used in Samsung Android firmware.

The developer also carried out work to simplify the installation of the driver. Ubuntu users can install it from PPA repository, and for other distributions, just download the code and run "make && make install". The driver can also be built with the Linux kernel, for example when preparing firmware for Android.

Going forward, we plan to keep the driver up to date by porting changes from the main Samsung code base and porting it for new kernel releases. Currently, the driver has been tested when building with kernels 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 variant suggested that the kernel developers consider including the new driver in the staging branch as the basis for the regular exFAT kernel driver, instead of the recently added legacy variant.

Conducted performance tests showed an increase in the speed of write operations when using the new driver. Partition placed in ramdisk: 2173 MB/s vs 1961 MB/s sequential I/O, 2222 MB/s vs 2160 MB/s random access, and partition placed in NVMe: 1832 MB/s vs 1678 MB/s and 1885 MB/s vs 1827 MB/s. Read performance increased in ramdisk sequential read (7042 MB/s vs 6849 MB/s) and NVMe random read (26 MB/s vs 24 MB/s)

A new version of the exFAT driver has been proposed for the Linux kernelA new version of the exFAT driver has been proposed for the Linux kernel

Source: opennet.ru

Add a comment