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

    • foobar2000 2.25.10 by Razvan Serea foobar2000 is an advanced freeware audio player for the Windows platform. It features the simplest, most minimalistic interface you'll ever see in this kind of program. Other features include full unicode support, ReplayGain support and native support for several popular audio formats. foobar2000 features: Supported audio formats: MP3, MP4, AAC, CD Audio, WMA, Vorbis, FLAC, WavPack, WAV, AIFF, Musepack, Speex, AU, SND... and more with additional components. Gapless playback. Full unicode support. Easily customizable user interface layout. Advanced tagging capabilities. Support for ripping Audio CDs as well as transcoding all supported audio formats using the Converter component. Full ReplayGain support. Customizable keyboard shortcuts. Open component architecture allowing third-party developers to extend functionality of the player foobar2000 2.25.10 changelog: Improved implementation of built-in UPnP Media Renderer, implemented gapless playback compatible with popular UPnP control apps. Enabled discovery of OpenHome UPnP devices as output devices. Enabled TLS v1.3 encryption for HTTPS connections. Fixed Ogg/Opus files with single chapter not showing correct track numbers. Fixed Direct2D visualizations getting stuck after GPU driver reinitialization. Updated 7-Zip library to 26.01. Updated UnRAR library to 7.2.6. Download: foobar2000 64-bit | 7.3 MB (Freeware) Download: foobar2000 32-bit | 6.4 MB Links: Home Page | foobar2000 for Mac | Screenshot Get alerted to all of our Software updates on Twitter at @NeowinSoftware
    • Pick up Babbel Language Learning lifetime subscription at 47% off with code by Steven Parker Learn all 14 languages and access more than 10,000 hours of high-quality language education online. Today's highlighted deal comes via our Apps + Software section of the Neowin Deals store, where you can pick up a lifetime subscription to Babbel Language Learning at 47% off. Note: Available to U.S. customers & NEW users only. Learn Spanish, French, Italian, German, and many more languages with Babbel, the #1 top-grossing language-learning app in the world. Developed by over 100 expert linguists, Babbel is helping millions of people speak a new language quickly and with confidence. After just one month, you will be able to speak confidently about practical topics, such as transportation, dining, shopping, directions, making friends and socializing and much more! Get lifetime access to learn all 14 languages Practice with 10-15 minute bite-sized lessons that fit conveniently into your schedule Cover a wide range of useful real-life topics, from travel to family, business, food & more Use speech recognition technology to keep your pronunciation on point Learn at a variety of skill levels, from beginner to advanced Get personalized review sessions to reinforce what you learn so it really sticks Study whenever & wherever you want and your progress will be synchronized across your devices Use offline mode to access courses, lessons & review items when not on Wi-Fi—just download them beforehand Languages Available: Spanish (Spain), German, Italian, French, Portuguese, Swedish, Turkish, Dutch, Polish, Indonesian, Norwegian, Danish, Russian, Spanish (Latin America) Good to know Length of access: lifetime Valid for New Users in the USA Only Redemption deadline: redeem your code within 30 days of purchase Please note redemption is required via Web Browser. Access to the mobile app will be available after redemption has been completed via web browser Max number of devices: Unlimited Access options: desktop & mobile Number of languages: 14 (all current languages) Updates included Babbel Language Learning: Lifetime Subscription (All Languages) normally costs $299, but you can pick it up for just $159 for a limited time - that represents a saving of $140. For a full description, specs, and license info, click the link below. Deal Price $159.00 with code LEARN (was $299) NOTE: For NEW users in the US only. Support queries If you have queries or need support for any of the Neowin Deals, please use the contact form here. Neowin Deals are managed and sold by StackCommerce who represent Neowin on an affiliate basis. Why we post these deals We post these because we earn commission on each sale so as not to rely solely on advertising, which many of our readers block. It all helps toward paying staff reporters, servers and hosting costs. So for those that keep moaning and complaining, be thankful we're still online for you to even do that. Other ways to support Neowin Whitelist Neowin by not blocking our ads Create a free member account to see fewer ads Make a donation to support our day to day running costs Subscribe to Neowin - for $14 a year, or $28 a year for an ad-free experience Disclosure: Neowin benefits from revenue of each sale made through our branded deals site powered by StackCommerce.
    • AltSendme 0.4.2 is out.
    • Simple answer is yes, you will still get the Windows updates and as long as browser is up to date, you will be good. Only thing secure boot does is protect you against boot level threats and make it harder to install other OS's. I've been looking into this pretty thoroughly lately myself as wifes computer has secure boot disabled plus my other, older computers that run Linux, don't have secure boot enabled. Have seen all kinds of questions about this on the Linux Mint and MX Linux forums. Just don't suddenly enable secure boot now.
    • How many other companies will follow Ford's lead? Or, have they already gotten lazy and become enslaved to AI--and now can't figure out how to get out of that mess.
  • Recent Achievements

    • Week One Done
      flexorcist earned a badge
      Week One Done
    • One Month Later
      Woland13 earned a badge
      One Month Later
    • Week One Done
      Woland13 earned a badge
      Week One Done
    • One Year In
      bernmeister earned a badge
      One Year In
    • Week One Done
      Scoobystu earned a badge
      Week One Done
  • Popular Contributors

    1. 1
      +primortal
      494
    2. 2
      +Edouard
      225
    3. 3
      PsYcHoKiLLa
      148
    4. 4
      Steven P.
      75
    5. 5
      FloatingFatMan
      71
  • Tell a friend

    Love Neowin? Tell a friend!