Microsoft has announced the public release of the exFAT file system specification, claiming it supports 'the eventual inclusion of a Linux kernel with exFAT support' - years after introducing the format specifically to exclude open source operating systems.
Microsoft introduced the exFAT file system, designed as a successor to the File Allocation Table (FAT) filesystem family, with Windows Embedded CE 6.0 in 2006, though it wouldn't see wider adoption until third-party companies signed agreements to use the filesystem in 2012. Microsoft claimed that the development of exFAT was focused on the removal of limitations in the FAT32 file system, including adding support for files larger than 4GB and improving storage efficiency for files smaller than 64KB; its critics, however, pointed to the closed nature of the specification and Microsoft's charging a licence fee - a flat fee for selected consumer devices including digital cameras, or a tiered royalty system for smartphones, desktops, and networked devices - as evidence it had a more revenue-focused aim in mind.
While exFAT support is included in Microsoft's own Windows and Apple's rival macOS, support in open-source operating systems is a thorny issue. With the standard being proprietary and protected by Microsoft-owned patents, the majority of Linux distributions ship without default support for exFAT; a userspace exFAT driver exists, as does a kernel implementation originally released by mistake by Samsung and since made officially available under the GNU General Public Licence, but neither offer protection against any patent infringement claims Microsoft may make on their distributors or users.
Now, though, Microsoft has had a change of heart: The company has confirmed it is making the official specification available to the public, and further that it supports the addition of an exFAT driver in the Linux kernel - so long as said kernel adheres to the Open Invention Network's requirements for defensive patent protection.
'Microsoft ♥ Linux – we say that a lot, and we mean it! Today we’re pleased to announce that Microsoft is supporting the addition of Microsoft’s exFAT technology to the Linux kernel,' Microsoft's John Gossman announced late last night in a blog post. 'exFAT is the Microsoft-developed file system that’s used in Windows and in many types of storage devices like SD Cards and USB flash drives. It’s why hundreds of millions of storage devices that are formatted using exFAT “just work” when you plug them into your laptop, camera, and car.
'It’s important to us that the Linux community can make use of exFAT included in the Linux kernel with confidence. To this end, we will be making Microsoft’s technical specification for exFAT publicly available to facilitate development of conformant, interoperable implementations. We also support the eventual inclusion of a Linux kernel with exFAT support in a future revision of the Open Invention Network’s Linux System Definition, where, once accepted, the code will benefit from the defensive patent commitments of OIN’s 3040+ members and licensees.'
The technical specification is available now, though Microsoft has no apparent plans to develop a Linux kernel driver of its own; neither has the company confirmed whether Samsung's GPL-licensed exFAT driver will be considered for OIN defensive patent coverage.
January 24 2020 | 12:00