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

    • Audacity 3.7.8 by Razvan Serea Audacity is a free, open source digital audio editor and recording application. Edit your sounds using cut, copy, and paste features (with unlimited undo functionality), mix tracks, or apply effects to your recordings. The program also has a built-in amplitude-envelope editor, a customizable spectrogram mode, and a frequency-analysis window for audio-analysis applications. Built-in effects include bass boost, wah wah, and noise removal, and the program also supports VST plug-in effects. You can use Audacity to: Record live audio. Record computer playback on any Windows Vista or later machine. Convert tapes and records into digital recordings or CDs. Edit WAV, AIFF, FLAC, MP2, MP3 or Ogg Vorbis sound files. AC3, M4A/M4R (AAC), WMA and other formats supported using optional libraries. Cut, copy, splice or mix sounds together. Numerous effects including change the speed or pitch of a recording. Write your own plug-in effects with Nyquist. And more! See the complete list of features. Audacity 3.7.8 changelog: #10688 Fixed an exception thrown when pasting into a newly-created track (Thanks, David Bailes (@DavidBailes)!) #10870, #10884, #10775, #10629 Fixed tone generation, waveform-scale setting, SetClip Name parameter, and clip-boundary command names for scripting and macros (Thank you, David Bailes (@DavidBailes)!) #11106 Fixed the loading of presets for the Distortion effect (A million thanks, David Bailes (@DavidBailes)!) #10947 Fixed paste into an empty audio track not preserving the source sample rate (Thanks, Juan Gabriel Colonna (@juancolonna)!) #10776 Allowed AltGr modifier in label and clip name editing (Thanks, Davide Peressoni (@DPDmancul)!) #9938 Added options to choose where silence is truncated (start/middle/end) (Thanks, Noah Rosenfield (@nosenfield)!) #9935 Added Podcast 2.0 chapters JSON export for label tracks (Thanks, Noah Rosenfield (@nosenfield)!) #10103 Improve UI on HiDPI displays on Linux/wxGTK (Thanks, Ivan A. Melnikov (@iv-m)!) #10099 Fixed MixerBoard Mute and Solo button display (Thanks, Ivan A. Melnikov (@iv-m)!) #10681 Fixed multichannel FLAC import #10999 Fixed envelope being broken after joining clips Download: Audacity 64-bit | Standalone ~20.0 MB (Open Source) Download: Audacity 32-bit | Standalone Download: Audacity ARM64 | Standalone View: Audacity Home Page | Screenshot Get alerted to all of our Software updates on Twitter at @NeowinSoftware
    • There really isn't anything magical about the low latency profile, other OS's do this as well. All they're doing is using your CPUs boost clock options in a more smarter way.
    • So we shouldn't have the option because of people using their laptops on battery? OK? LOL
    • If you hear that fans for a limited time the CPU spikes to open a app I don't think the problem is with the software. There shouldn't be enough time spent at the higher clocks to produce enough heat to peak the fans. Maybe it's time to crack those dell laptops open and clean them out?
    • ActivePresenter 10.5.1 by Razvan Serea ActivePresenter is a screen recording, video editing, and eLearning authoring tool with a range variety of powerful features, helping you to capture screen and edit captured videos in a matter of minutes. Create professional screencasts that contain stunning annotations and effects, high-resolution graphics, videos, and voiceovers. You can capture any application on your computer, customize it easily by adding background music, closed caption, zoom-n-pan, etc., and finally export it to popular outputs (video, document) that can run on any device or platform. ActivePresenter allows you to generate the presentations in many different output forms such as image, videos (MP4, MKV, and AVI), HTML SlideShows, HTML5 simulations, and documents. More importantly, ActivePresenter free version provides full access to all video editing features, and you can edit and export videos without time limit, watermarks, or ads. ActivePresenter Free Edition features: Advanced recording features: Full Motion Recording, Smart Capture Video editing: Cut, Crop, Join, Change Volume, Speed Up, Slow Down, Blur Multiple Audio/Video Layers Rich annotations: Shapes, Image, Zoom-n-Pan, Closed Caption, Cursor Path, Audio/Video Overlays Automatic Smart Annotation Export to: MP4, FLV, AVI, WMV, WebM, MKV No Watermark and No Time Limit Clean & Safe: No adware, No Annoying Ads ActivePresenter 10.5.1 fixes: [Import PowerPoint]: Only the first slide is imported from some Canva-generated PowerPoint presentations. [Import PowerPoint]: Some Chinese theme fonts are resolved incorrectly. Embedded YouTube videos cannot generate preview thumbnails in the editor or play in HTML5 preview. [macOS]: Resources could be inserted into the current slide unintentionally when clicking or dragging in the Resources pane. [Publish uPresenter]: "Failed to process the presentation" error sometimes appears when publishing projects to uPresenter. [SCORM]: User responses are not reported to the LMS for Mouse Click and Key Stroke interactions. Custom hotkeys are reset or incorrectly remapped after updating from version 10.1.2 or earlier. Download: ActivePresenter 10.5.1 | 176.0 MB (Free, paid upgrade available) Download: ActivePresenter 10.5.1 for macOS | 227.0 MB Links: ActivePresenter Website | Demos | Tutorials | Screenshot Get alerted to all of our Software updates on Twitter at @NeowinSoftware
  • Recent Achievements

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

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

    Love Neowin? Tell a friend!