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

    • I agree, but that's the popular online opinion about them, so I followed it. I do think they have their point, no matter how combative they sound most of the time.
    • M$ can bring whatever the hell it wants, and then guess what's not installed in my Mac.
    • Windows 11's big performance boost is finally available for all by Taras Buria Over the last few months, Microsoft has been very busy fixing Windows 11 with features that users have been asking the company for a long time. An upgraded Start menu, the ability to change the taskbar position, new Windows Update features, and plenty more. However, not all changes are visible on the surface. Some exciting upgrades happened under the hood, and one of those upgrades is now available to all Windows 11 users. The so-called "Low Latency Profile" is a special performance mode that aims to make Windows 11 snappier and more responsive. It boosts the processor clock speed to its maximum for a brief moment when rendering user interface elements or launching apps. As such, apps launch faster, and things like the Start menu or quick settings appear on the screen faster, although some are sceptical about it. Microsoft is not sharing many details about the new profile. The official release notes do not even mention it, with Microsoft only saying that the update "accelerates app launch and core shell experiences such as Start menu, Search, and Action Center." Also, you may need to enable it manually, as new features are rolling out gradually. Here is how to do it: Download ViVeTool from GitHub and unpack wherever convenient. Navigate to the folder containing the ViveTool files with the CD command. For example, if you have placed ViveTool in C:\Vive, type CD C:\Vive. Type vivetool /enable /id:58989092 and press Enter. Restart your computer. After restarting your computer, launch Task Manager or any other hardware-monitoring software and check the processor clocks when opening the Start menu, Action Center, and more. Your processor should spike to its highest possible speed and then return to lower clocks. In addition to Low Latency Mode, the June 2026 Patch Tuesday update delivers additional features, such as multi-camera mode for apps (several apps can use a single camera stream), shared Bluetooth audio, improved Task Manager, and more.
    • I agree, especially with newer versions of MS Office supporting ODF documents, there isn't even a compatibility argument to be made. It should default to ODF on a clean install, with admin configurable options to make MS Office the default if that is desired.
    • Are they on crack at M$? Surely living on an alternative reality? A good dump of mine would run faster down the toilet if I did not flush it. But still looks better than this pile of slop. By the way, did they also comment on what's the next "functionality added"? Maybe you can improve it if you add even more stuff to this vomitware.
  • Recent Achievements

    • Week One Done
      FBSPL earned a badge
      Week One Done
    • One Year In
      Jim Dugan earned a badge
      One Year In
    • One Month Later
      Tommi118 earned a badge
      One Month Later
    • One Month Later
      sjbousquet earned a badge
      One Month Later
    • Week One Done
      sjbousquet earned a badge
      Week One Done
  • Popular Contributors

    1. 1
      +primortal
      488
    2. 2
      PsYcHoKiLLa
      196
    3. 3
      +Edouard
      155
    4. 4
      Steven P.
      84
    5. 5
      ATLien_0
      69
  • Tell a friend

    Love Neowin? Tell a friend!