Microsoft has announced that it will publish the technical implementation details of the exFAT standard and allow support to be integrated into the Linux kernel at a future date. This is a major change for Microsoft, which once weaponized its FAT patents. While Samsung has published a GPL driver for exFAT back in 2013, patent encumbrances have prevented the driver from being distributed as part of Linux.
That can now change, if the driver is included in future versions of the Linux kernel. But as Phoronix noted, discussion on the mailing list has been critical of the pre-existing driver code, which was tagged for inclusion in the kernel following the Microsoft announcement. Christoph Hellwig, a longtime Linux developer, called it “a pile of crap,” saying:
It basically is a reimplementation of fs/fat/ not up to kernel standards with a few indirections thrown in to also support exfat. So no amount of work on this codebase is really going to bring us forward. Instead someone how can spend a couple days on this and actually has file systems to test it just needs to bring the low-level format bits over to our well tested fs/fat codebase instead of duplicating it.
Greg Kroah-Hartman, who maintains the Linux -stable branch, defended the decision to take the code into staging, despite its current condition, writing: “I know the code is horrible, but I will gladly take horrible code into staging. If it bothers you, just please ignore it.”
Stephen J. Vaughan-Nichols writes that the move could be read as a partial answer to a request made by Bradley Kuhn when Microsoft joined the Open Invention Network (OIN)’s patent non-aggression pact last year. After noting that Microsoft had specifically shaken down Linux product vendors for licensing fees related to exFAT in the past, he called on Microsoft to “submit to upstream the exfat code themselves under GPLv2-or-later.” Microsoft has not taken this step. Instead, it is publishing the specification and supports the work to create a Linux driver that will add exFAT support to the kernel at a future time. While Microsoft is supporting this effort, it expects the actual code submission to be performed by others.
As for why Microsoft is taking this step, at this specific point in time, the company may have provided the answer last year, at an Open Source Summit in Europe. SJVN quotes Stephen Walli, the principle program management for Azure, as saying:
Open source changed everything. Customers have changed. Fifteen years ago, a CIO would have said, ‘we have no open source, they would have been wrong, but that’s what they thought.’ Now, CIOs know open source’s essential … Microsoft has always been a company by, of, and for developers. At this point in history, developers love open source.
Opposition to the move or concerns about whether Microsoft intends something surreptitiously skulduggerous seem muted in most of the OSS community. Microsoft has been attempting to prove its open-source bona fides for years, even going so far as to integrate a Bash shell and Linux kernel into Windows 10. In the past, there have been bitter standardization fights between Microsoft and members of the open-source community, including the fight between Office Open XML proponents (Microsoft) and the OpenDocument Format (ODF) over a decade ago.
Today, there’s no sign of such disputes. Since Satya Nadella took over at Microsoft, the company has been markedly more friendly towards open source products. Whether that reflects Microsoft’s willingness to acknowledge the objective popularity of open-source software or a new front in a crafty, long-term war to sabotage those products is likely in the eye of the beholder.