New Linux patch could circumvent Microsoft's FAT patents


Recommended Posts

Microsoft's recent lawsuit against TomTom, alleging infringement of filesystem patents, has left many questions unanswered about the legal implications of distributing open source implementations of Microsoft's FAT filesystem. A new Linux kernel patch that was published last week offers a workaround that might make it possible to continue including FAT in Linux without using methods that are covered by Microsoft's patents.

The patent dispute erupted in February when Microsoft sued portable navigation device maker TomTom. Microsoft claimed that TomTom's Linux-based GPS products infringe on several of its patents, including two that cover specific characteristics of FAT, a filesystem devised by Microsoft that is widely used on removable storage devices such as USB thumb drives and memory cards. The dispute escalated when TomTom retaliated with a counter-suit, but it was eventually settled in March when TomTom agreed to remove the relevant functionality.

The outcome of the lawsuit created ambiguity around the legal status of the Linux FAT implementation. Microsoft contends that the suit was a largely isolated incident and that there are no plans to pursue litigation against individual Linux users. For commercial Linux adopters, however, the situation is murkier. Linux is widely used on mobile and embedded devices, and many of these need to be able to read FAT-formatted removable media.

The Linux Foundation says that the best solution at this point is for vendors to ditch FAT and come up with a new vendor-neutral format that can be used without having to pay licensing fees. Although that might be a viable long-term solution, there is still a clear need to support FAT in Linux today. To facilitate this, developers are evaluating technical workarounds while the Open Invention Network is seeking prior art for the purpose of invalidating the patents.

The specific patents in question describe techniques for implementing a "common name space for long and short filenames." It is a hack for preserving backwards compatibility with the filename munging scheme that was used in MS-DOS when filenames could not exceed 11 characters and were displayed in the so-called "8.3" format.

Andrew Tridgell, one of the lead developers behind the Samba project, published a patch last week that will alter the behavior of the Linux FAT implementation so that it will not generate both short and long filenames. In situations where the total filename fits within the 11-character limit, the filesystem will generate only a short name. When the filename exceeds that length, it will only generate a long name and will populate the short name value with 11 invalid characters so that it is ignored by the operating system.

"The claims of both of the VFAT patents involve the creation (or storing) of both a long filename and a short filename for a file. [The] patch only creates/stores either a short filename or a long filename for a file, but never both," he explained in a message to the Linux kernel mailing list. "The 11 bytes created by vfatbuilddummy83buffer() to pad the field for short filenames cannot be used to access the file, and contain bytes which are invalid in FAT and VFAT filenames, and therefore are not filenames as that term is and has been used in the technical community."

The short name field is populated with garbage data instead of simply being nulled out because there are bugs in Windows XP that would cause the system to crash when certain values are stored in the short name. The garbage string is generated with random bytes in a manner that is intended to minimize the risk of triggering that bug.

This is Tridgell's second patch to address the patent issue. His first, which was published in May, completely disabled the creation of files with long filenames. The new patch is a more practical approach and one that will have less detrimental impact on end users. The Linux kernel community was not particularly happy with the first approach, but the new patch is said to have a better chance of being accepted in the mainline kernel. It's unclear, however, if it would be enabled by default in the event that it is accepted.

The Linux Foundation arranged for the patch to undergo extensive review by patent lawyers. They are confident that the patch will effectively evade the common namespace method described by Microsoft's patents. It will also function properly in virtually all cases. The only situation in which it will be problematic is when the data on the filesystem is accessed from old versions of DOS or Windows that still require the 8.3 filenames. Tridgell believes that such a scenario is rare enough that it will not impact a significant number of users. Those who require compatibility with those older versions of DOS or Windows can use the Linux "msdos" filesystem, which enforces 8.3 names and doesn't use Microsoft's patented dual-naming convention.

The Linux Foundation still firmly believes that the patents are invalid. The workaround was implemented in order to help commercial Linux adopters avoid the risk of a confrontation with Microsoft. Tridgell points out that patent litigation can be costly and that victims can be faced with International Trade Commission actions even in cases where the patent claims have no legal merit.

By implementing a workaround, the Linux community is avoiding the risk entirely and making it possible to have real-world interoperability without having to pay licensing fees to Microsoft.

souricon.gif News source: Ars Technica

"The claims of both of the VFAT patents involve the creation (or storing) of both a long filename and a short filename for a file. [The] patch only creates/stores either a short filename or a long filename for a file, but never both,"
Niiiice workaround.
The short name field is populated with garbage data instead of simply being nulled out because there are bugs in Windows XP that would cause the system to crash when certain values are stored in the short name. The garbage string is generated with random bytes in a manner that is intended to minimize the risk of triggering that bug.
:pinch: Ouch.
FAT is more or less useless anyway on modern hard drives.

NTFS has more patents than you can shake a stick at and as you've seen Microsoft will (as is now proven) sue companies who are using their rather oblivious patents in their products - that's out of the picture if you want to make a device that runs on Linux but needs to also be accessible from Windows.

Obviously you could write a Linux filesystem supporting driver for Windows but you'd have to install that on every station you want to let a customer use your product on - naturally the other alternative is to write your own software that uses your own proprietary protocol to communicate the device but that goes against the ideals again (not to mention has nasty portability issues and once again requires your software to run on all the stations).

Edited by daPhoenix
NTFS has more patents than you can shake a stick at and as you've seen Microsoft will (as is now proven) sue companies who are using their rather oblivious patents in their products

You can license NTFS support for your infidel Linux device:

http://www.ntfs-3g.org/commercial.html

You can license NTFS support for your infidel Linux device:

http://www.ntfs-3g.org/commercial.html

Licensing NTFS-3G is a complete bomb (not to mention completely unnecessary as it's "free") - Microsoft has not yet revealed their NTFS patents but once they do, the NTFS-3G project is in a world of hurt.

Implementing any Microsoft controlled project in any other OS is a major mistake.

The short name field is populated with garbage data instead of simply being nulled out because there are bugs in Windows XP that would cause the system to crash when certain values are stored in the short name. The garbage string is generated with random bytes in a manner that is intended to minimize the risk of triggering that bug.

Wonder how common is this bug.

Wonder how common is this bug.

Probably non-existent for anything that works within Windows to create files, as the Windows API will only allow creation of legal filenames. ;)

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • Win11Debloat 06.11.2026 by Razvan Serea Win11Debloat is a lightweight, easy to use PowerShell script that allows you to quickly declutter and customize your Windows experience. It can remove pre-installed bloatware apps, disable telemetry, remove intrusive interface elements and much more. The script also includes many features that system administrators and power users will enjoy. Such as a powerful command-line interface, support for Windows Audit mode and the option to make changes to other Windows users. All changes made by Win11Debloat can be easily reversed, and most removed apps can be restored via the Microsoft Store. A full guide on how to undo the changes is available here. Win11Debloat features: Below is an overview of the key features and functionality offered by Win11Debloat. Please refer to the wiki for more information about the default settings preset. Remove a wide variety of preinstalled apps. Click here for more info. Disable telemetry, diagnostic data, activity history, app-launch tracking & targeted ads. Disable tips, tricks, suggestions & ads across Windows. Disable Windows location services & app location access. Disable Find My Device location tracking. Disable 'Windows Spotlight' and tips & tricks on the lock screen. Disable 'Windows Spotlight' desktop background option. Disable ads, suggestions and the MSN news feed in Microsoft Edge. Hide Microsoft 365 ads on the Settings 'Home' page, or hide the 'Home' page entirely. Disable & remove Microsoft Copilot. Disable Windows Recall. Disable Click to Do, AI text & image analysis tool. Prevent AI service (WSAIFabricSvc) from starting automatically. Disable AI Features in Edge. Disable AI Features in Paint. Disable AI Features in Notepad. Disable the Drag Tray for sharing & moving files. Restore the old Windows 10 style context menu. Turn off Enhance Pointer Precision, also known as mouse acceleration. Disable the Sticky Keys keyboard shortcut. Disable Storage Sense automatic disk cleanup. Disable fast start-up to ensure a full shutdown. ...and more. Once you’ve downloaded the Win11Debloat file (Get.ps1), just follow these quick steps: Locate the Get.ps1 script file. Right-click the file and select Run with PowerShell from the context menu. If prompted by User Account Control (UAC), select Yes to grant the script the necessary administrative permissions. Win11Debloat 06.11.2026 fixes: Fix lock screen spotlight option being disabled when disabling the start recommended section by @Raphire in #619 Fix log message formatting by @Raphire Note The -RemoveCommApps and -RemoveW11Outlook command-line parameters for uninstalling a few specific apps have been removed with this release. If you previously relied on these parameters, please see this wiki page for alternative methods of removing these apps. Download: Win11Debloat 06.11.2026 | Open Source View: Win11Debloat Home Page | Screenshots 1| 2 Get alerted to all of our Software updates on Twitter at @NeowinSoftware
    • Yes for me, I installed 'old calculator' (Windows 7 calculator) in its place since it is more useful to me. I think paint is the only one I left installed
    • eh I'll wait for the June 2026 MVS ISO downloads which should be coming out next Tuesday June 16 and possibly contain build 8655 instead of 8653
  • Recent Achievements

    • Rookie
      restore went up a rank
      Rookie
    • Very Popular
      AndrewSteel earned a badge
      Very Popular
    • Veteran
      Taliseian went up a rank
      Veteran
    • One Month Later
      Clizby earned a badge
      One Month Later
    • One Month Later
      Timaximus earned a badge
      One Month Later
  • Popular Contributors

    1. 1
      +primortal
      509
    2. 2
      +Edouard
      162
    3. 3
      PsYcHoKiLLa
      155
    4. 4
      ATLien_0
      82
    5. 5
      Steven P.
      79
  • Tell a friend

    Love Neowin? Tell a friend!