Open Source ExFAT File System Reaches 1.0 Status
Titus Andronicus writes "fuse-exfat, a GPLv3 implementation of the exFAT file system for Linux, FreeBSD, and OS X, has reached 1.0 status, according to an announcement from Andrew Nayenko, the primary developer. exFAT is a file system designed for sneaker-netting terabyte-scale files and groups of files on flash drives and memory cards between and among Windows, OS X, and consumer electronics devices. It was introduced by Microsoft in late 2006. Will fuse-exfat cut into Microsoft's juicy exFAT licensing revenue? Will Microsoft litigate fuse-exfat's developers and users into patent oblivion? Will there be a DKMS dynamic kernel module version of the software, similar to the ZFS on Linux project? All that remains to be seen. ReadWrite, The H, and Phoronix cover the story."
Microsoft will never allow one of its modern file system to have an "official" implementation on free operating systems. There will be the threat of litigation or looming incompatibility and data loss through lack of public documentation. That's why we shouldn't implement Microsoft's filesystems. Instead we should develop a simple and robust filesystem that's suitable for embedded systems and have it standardized. Right now there simply isn't an alternative to the FAT filesystems.
A file system is normally designed for one's own usages. A file system is entirely contained within your computer system (or in the event of a distributed file system, within computers under your control). What use then is "sneaker-netting" files between Windows, OSX, and Linux? Isn't this a network concept?
And over there we have the labyrinth guards. One always lies, one always tells the truth, and one stabs people who ask t
"The only way to win is not to play". If you use MS filesystem they're winning. Big operators like Google/Samsung/Sony (okay, maybe not sony) should be able to agree around some free and gratis FS for devices, and then use the courts if necessary to make sure it's easily available on Windows (I hear they have a store now).
Honestly, I'm not that concerned about FS interoperability. Mostly you just plug in your whole device or use wireless (even cameras have it nowadays), so things like being able to move memory cards to 'unknown' machines doesn't feel that important.
As far as I know it's part of OS X since Snow Leopard. But I could totally use the Linux support.
Am I allowed to use this implementation?
First they'll give enough time for it to get established to the point of being considered an essential for any functional desktop.
*Then* they'll start suing.
As the name clearly states, this is a FUSE implementation of exFAT, i.e. userspace. In which case DKMS is as useful as a fork for soup.
So not only we get the news two days after Phoronix [1], but the poster has no idea on what he's talking about.
[1] http://www.phoronix.com/scan.php?page=news_item&px=MTI3OTQ
Am I allowed to use this implementation?
Depends on what you want to use for: as a form of expression, you should be able to. Use the binary form to read/write, all depends on the MS patents and whether or not MS grants you a license.
Will Microsoft litigate fuse-exfat's developers and users into patent oblivion?
Regarding developers: the software is posted as source code with instructions on how to install them from source. Being source code, is a form of expression, protected by copyright. As such, can a commercial entity try to block the dissemination of the "speech" that the source code constitutes?
Mind you, any existing patents should not play any role into it: after all a patent is a public disclosure of methods/constructs that constitute the invention (the text of the patent is not copyrighted), so the source code should not be anything but an alternative form of expression of the same.
Regarding users: yes, using the compiled binaries would violate the temporary monopoly granted by any existing patents. However, I can't imagine any corporations starting to track which hobbyist home users:
1. downloaded the source code - should not be, per se, illegal - the copyleft license allows you to do it and the patent should not trump the copyright.
2. for each of them, ask for a discovery to see if that source code has been compiled - again, compilation should not be illegal, I'm obtaining a derivative form of expression and the GPL copyright license allows me to do it
3. use the binary - this is the only step that would violate the patent
Questions raise, answers kill. Raise questions to stay alive.
The fact that this isn't in the kernel and that device manufacturers can't ship it remains a serious problem for Linux.
What use then is "sneaker-netting" files between Windows, OSX, and Linux? Isn't this a network concept?
Not if the network is cost prohibitive. Good luck transferring 10-gigabyte files over cellular.
ext is open, you can implement it on Windows (in fact it's already been done).
So if I have a USB flash drive formatted in ext, how do I load the ext driver onto an Internet-disconnected PC running Windows so that I can use the flash drive with that computer?
You want to support SD cards larger than 32 GB?
No, not at least until you can prove it's absolutely necessary. Why can't a future device design just drop support for SD cards and use UDF or Ext formatted USB flash drives instead? As a widely respected first-century teacher might have put it: "If [SD support] causes you to stumble, cut it off."--Mark 9:43.
So flip the removable bit.
I thought removability was part of the USB device controller, not something stored in the file system, and there was no standard way to "flip the removable bit" that works across brands of flash drive. This answer confirms my suspicion. Or were you recommending that people investigate which USB flash drive brands support end-user control of the removable bit before buying the drive in the first place?
Or use FAT32 instead.
Windows won't format FAT32 bigger than 32 GB, and surpassing the 32 GB limit is SDXC's reason for existence. As I understand it, the only technical difference between SDHC and SDXC is the file system that a device is required to support.
I can think of two uses off the bat for kernel-level NTFS overwrite-existing-file support:
* Use an existing fixed-size pagefile.sys as a Linux swap file on a dual-boot machine. Just be sure the system isn't hibernated before trying this trick. I don't think I want to take the performance hit of doing this in user-space.
* File-blanker. OK, this can be done in userspace, but I can contrive of oddball situations where it might be better to do it in kernel space.
Knowledge is how to play a game, intelligence is how to win, wisdom is knowing what game to play.
* Reasonable file- and path-size limits that won't break common usage scenarios.
* Support for common meta-data that everyone expects to be there, like date-stamps.
* The speed that you would expect from a simple file system (#2 above).
Knowledge is how to play a game, intelligence is how to win, wisdom is knowing what game to play.
This reverse-engineered NTFS - even if it has no space in Linux, can it be used in ReactOS, which is not using NTFS due to avoiding violating MS patents there? Actually better - if they can produce a reverse engineered 64-bit equivalent of NTFS, name it something else and make it the native file system of ReactOS?
so when I need to use large files on multiple computers it's faster to carry an external hard drive arround than to try and use the network.
And that external hard drive can be formatted UDF, as long as you don't need to write to the drive from a Windows XP machine.
I guess I could carry a laptop arround and setup a network connection directly with the machine I wanted to use the file on but that is a lot bulikier and more hassle than just plugging in an external hard drive.
That or an external hard drive in a NAS enclosure, so that any computer that speaks FTP or SMB can read and write its files. Or an external hard drive in a USB enclosure that speaks MTP, so that any computer that speaks MTP (such as any Windows PC or any Mac with the MTP class driver) can read and write its files. The difference is that both NAS and MTP work on the level of files, unlike Mass Storage that works on the level of disk blocks, and the host OS need not be aware that the enclosure is using Ext behind the scenes.