Linux and Microsoft's exFAT Filesystem: A Story So Far Till Now

The intimacy between Microsoft and Open source Linux is no longer hidden. Though participation may seem like more from the side of Linux and other open source projects, Microsoft has also shown its involvement by sharing the patents related to the exFAT file system. Obviously, it is a big relief for the Linux community to use exFAT-formatted flash drives and SD cards on Linux desktop.

Additionally, in the most recent kernel development, Linux 5.7 pulled the revised exFAT driver code from staging to the mainline kernel. As some of you may know, the Linux kernel 5.4 already has an exFAT driver code. Right? So what does the new code bring? In this article, we’ll see the beginning of Linux support for Microsoft-developed exFAT filesystem and how the new driver code improves the Linux support even more.

The story so far!

Back in 2006, Microsoft developed a proprietary and patented file system for Windows — exFAT. Earlier, Microsoft had a FAT and FAT32, but it was limited to sizes up to 4GB. On the other hand, exFAT (Extended File Allocation Table) has near inexhaustible limits for both file size and partition size.

SD card
SD cards

As a result, the exFAT format gained large adoption throughout the electronic industry for flash drivers and SD cards in different devices, including cameras, smartphones, and laptops. So, it’s obvious that people using Windows also welcomed default exFAT formatted cards.

Also read: FAT32 vs. NTFS vs. exFAT

But here comes the main issue for Linux users. Prior to Kernel 5.4, Linux didn’t have native support for exFAT. As a result, it was a big pain mounting the exFAT file system to the Linux-based operating system.

I know you may argue that there are additional libraries that add support for exFAT like fuse-exfat. Experienced Linux users can use it to configure exFAT devices, but what about the new users? They may find it hard to deal with exFAT storage media. This also forces most beginners to switch from Linux to Windows.

No native support for Linux
No native support for Linux

I’m not going to be harsh, but it also troubled me a lot.

Microsoft Reveals exFAT Specification

On the one hand, open source enthusiasts were working hard to bring exFAT support through third-party packages, on the other hand, Microsoft was falling in love with Linux and showing it through various gifts like Windows subsystem for Linux (WSL).

Years later, in 2019, Microsoft announced big news by revealing the technical specifications for its exFAT file system. This means kernel developers can now add patches for exFAT support without worrying about any legal action.

So, do you think Microsoft should be applauded for such a step? Or, is it a part of Embrace, Extend and Extinguish?

As expected, the stable Linux Kernel 5.4 was released with exFAT file system support under GPLv2 license. Big news? Yes, it was, but exFAT driver code was not as effective because it was based on the old snapshot of the exFAT.

Anyway, it was a huge relief thanks to Samsung as it played a major role since the beginning of the development of the exFAT driver code.

Revised exFAT Code To The Mainline Linux Kernel 5.7

Later on, after surpassing the first milestone, Samsung engineers developed a new, reliable, and improved exFAT driver code. The new code replicates the drivers that Samsung uses in its millions of Android products.

The latest exFAT driver enables access to Windows disk encrypted data. You can also use the Linux encryption tool Cryptsetup to mount the devices.

Overall, the new ex-FAT driver is an improvised version of the old one with additional functionality. Consequently, Samsung pushed the code for kernel 5.7 during the development cycle of kernel 5.6.

Hence, after kernel 5.6 was released last week, a pull request containing a new 7.2k line of driver code was sent and later merged to the mainline kernel 5.7 by Linus Torvalds.

Following the current development cycle, we can expect Linux 5.7 release candidate-1 to come out this weekend and stable release in June.

So, in future, can we expect Linux’s ext4 support for Windows for reading, writing, and other operations? What do you think? Don’t hesitate to share your opinion in the comment below.

Keep following Fossbytes for all the latest news and updates about the Linux and Open source world.