
File systems
Why manufacturers buying FAT/exFAT instead of using free ext2,3,4 or similar ?
The brouhaha between Microsoft and Linux software vendor TomTom at the start of 2009 now seems - to Redmond at least - like a distant thunderclap. So much so that the firm spun out a program to licence the Extended File Allocation Table (exFAT) format yesterday. Microsoft said it had created a “flexible licensing program” for …
Windows has had Installable File System for ages http://www.microsoft.com/whdc/devtools/ifskit/default.mspx
An Ext2 driver is avalible from:- http://uranus.chrysocome.net/linux/ext2ifs.htm
To my knowledge Microsoft has never activley prevented 3rd parties from devloping and distributing IFS plugins, why would it provide the infrastructure in Windows, the DDK and supporting websites if it did not want people to use what is one of Windows killer features?
Does talking that talk give you some kind of thrill, to imagine a world of conspiracy, becuase the real world is so boring?
...pretty obvious, but because Windows doesn't understand ext2,3,4 !! Neither does OS-X or most other Unix OS's as standard.
Unfortunately, FAT is the only file system that is universally accessible by pretty much anything. It's rubbish - yes. But until a new universal standard is defined that all manufacturers will stick to, it's the only format that makes sense for widespread use.
Also, for an embedded system (like a camera), FAT is relatively easy to implement.
Jim 59 Posted Friday 11th December 2009 13:12 GMT --- WTF? Why manufacturers buying FAT/exFAT instead of using free ext2,3,4 or similar?
First of all, isn't ext2,3,4 proprietary to Linux because of the licensing? (i.e. licensing restrictions will not offer it to work efficiently under Windows, MacOSX, AIX, Solaris, OS-9, etc. systems?)
Vendors, who want to compile ext* capability into the kenel of their operating systems, will not be able to do so (without a FUSE type engine, only if it is available), leaving them with poorer performance over FAT, which can be licensed. This would especially be the case with video from these cards.)
If someone buys a flash card, plugs it into a camera, takes pictures - those pictures would be useless inside of other devices like picture frames, unless they are using the identical format on both sides. This drives the need for *FAT* or NTFS, again.
Since Microsoft owns most of the desktop market, these are the primary choices.
The closest thing to a universal file system, outside of FAT, is the old BSD UFS, which is universally available on under all OS's, with the exception of Windows - but I am uncertain of the compatibility.
ZFS offered some promise, being Open Source, available under Solaris, OpenSolaris, with a FUSE type of implementation under Linux, less restrictive licensing for commercial product vendors, and MacOSX support. Microsoft would be the last hold-out, in a ZFS world.
Now, with MacOSX support for ZFS shelved, the door for Microsoft is more widely opened.
I don't think UFS is quite as universal as that is it? Hasn't it diverged a bit between the various unix implementations?
On the other hand, I don't think ext2fs is that restricted by licensing either, the source files in the NetBSD implementation are all licensed under a 4 clause BSD licence, so would be perfectly okay to use in non GPL friendly things.
However, for smaller discs (less of an issue now) and simpler devices the complexity of the FS compared to the simplicity of FAT may be a hindrance.
You have to distinguish between a file system format, and an implementation of the format. The Linux implementations of ext2, 3, 4 are GPL'ed, but the format itself is completely open and anyone is free to write their own implementations under any license they want. For example, there are non-GPL'ed implementations of ext2 available for Windows, Macs, and some BSDs, as well as small read-only implementations in things like bootloaders.
exFAT is very different in that various features of the format are protected by patents (in non-free countries), and by missing documentation. MS's aim is that you cannot implement exFAT without licensing their code.
All their "standards" are not about interoperability, they are all about controlling the underlying software technology and so effectively taxing everyone who uses it. Its no wonder open source software evolved as a way to bypass these control freak companies who try this control and tax tactic.
>>Why manufacturers buying FAT/exFAT instead of using free ext2,3,4 or similar ?
Perhaps because windows doesn't have pre-installed drivers for ext2/3/4...
Why reinvent the wheel when for $300k you can have something that is automagically compatible with the vast majority of consumer electronic devices?
It's got no problems with SDHC cards and I'm betting that if these new devices support older SDHC then they'll support FAT on SDXC as well.
But yes, I too join the calls for another file system. A free one with no royalty agreements, then we can all get along. Doesn't have to be extX or anything else currently linux-associated, just available for all.
Otherwise MS are once again inserting themselves into the user's life, right in between their digital camera and whatever computer-like device they want to be able to use to read it. I don't want that, thanks all the same.
With the extra resiliance benefits of ZFS even for a single volume, it makes sense to cut the apron strings from Microsoft.
For the licencing money being asked for, a driver to insert in to Windows should be a drop in the ocean to develop.
No real reason why not to do that. After all, if the industry are going to ever cut the apron strings, they're going to have to put Microsoft on the back foot some time.
ZFS is WAAAAAY too heavy for use in low powered consumer electronics. It would be serious overkill and given the hasty and sloppy code we have come to expect from the worlds many no-name OEMs the complexity of implementation would almost guarantee serious bugs, and you don't want serious bugs in your filesystem! A different format would be good but it shouldn't be this.
Of course MS would never permit this so we're stuck with it but, thinking more obliquely, How about a $300,000 fundraiser for kernel.org ???
Roger Heathcote.
> First of all, isn't ext2,3,4 proprietary to Linux because of the licensing? (i.e. licensing restrictions will not offer it to work efficiently under Windows, MacOSX, AIX, Solaris, OS-9, etc. systems?)
Not at all, there are any number of Windows ports of Linux applications, Apache, Open Office etc. There's even an app out allready that provides native Windows support for ext2 .. http://www.fs-driver.org/
I was hoping somebody would confirm whether ext2/3/4 is truely open - I wasn't sure.
Now that you have, my solution to the problem is build into the firmware a tiny (standard) FAT partition that holds the ext2/3/4 drivers for Windows, and installs them if necessary, then have the main storage as an ext partition bypassing MS's tax. Kind of like those memory sticks that recognise as USB Mass Media and a CD-ROM device.
And does MacOS *really* not support ext? This post seems to imply they do:
http://www.insanelymac.com/forum/index.php?showtopic=34227
Also, what happens to Linux with this? Say Fedora wants to support exFAT, who's going to pay? Is this considered a patent? (i.e. I'm in Europe, shove it up your arse?)
Too many questions, beer time.
AFAIK Apple do not officially support ext 2/3 natively at all. It is supported by FUSE (via MacFUSE) and there may be some other kernel extensions in the wild. OS X users are basically stuck with HFS+ of FAT32. exFAT remains unsupported on Macs and most other *NIXs.
Unrelated to your post AC, ZFS is dead in the water, as are many other Sun technologies, *until* Oracle's buy-out is completed, and when it is , can anyone see Oracle dropping *their* new filesystem (BtrFS)? I'm not suggesting that the technologies *aren't* being actively developed, just that the short and longer term futures are somewhat uncertain for some.
I was going to comment that this figure sounded a bit short sighted given how fast storage needs grow but then I had a look and found that MS specifies that exFAT supports volumes up to 64ZB with 512TB recommended maximum (http://support.microsoft.com/kb/955704).
Where did MS pull the figure of 256TB from?
My XP has integrated EXT2. You'd not notice if an SD card/USB was FAT, FAT32 or EXT2 on it.
But it's not installed by default. About 95% of users have a flavour of Windows. A flat $300K is small beer to have your consumer device work automagically,
Actually EXT2 is fairly rubbish compared to FAT except has security descriptors. It's easily corrupted, hence EXt3, EXT4. NTFS is still superior to EXTn FX, but has about a 20Mbyte overhead and was not designed for Removable storage. Used to be if you formatted or Mounted a MO archiving optional disk with NTFS you had to shut down to be able to eject it!
MS would like to force everyone to license exFAT including Linux no doubt.
Getting Sandisk and others to use patented MS technology even if it is meaningless does preclude Linux and perhaps Apple from using "devices" licensed for use with Windows only.
It is going to be a while before a 512TB phob is going to available. But, Microsoft will claim a patent on the process just to eliminate use with Linux and Apple.
The only solution is to refuse to buy products from those vendors that license proprietary MS technology used primarily to preclude competitors.
Because any journaled FS is out because the number of write operations is limited. ext2 would be a much better choice than FAT, but MS is pushing hard... the compatibility with windows PC is actually NOT a problem *at all* (with emphasis on _NOT AT ALL_). Virtually all flash-based systems come with their very own (generally crappy) software/drivers bundle, and Joe Bloggs just plugs its camera to its laptop using the provided usb cord. He probably doesn't even know that he could change the SD card.
Admittedly, for small storage devices (namely, USB sticks), said software/drivers bundles are usually stored on the stick itself, so it would need to be accessible from a windows computer on first connection, hence the need for an additional mini CD-ROM... or a small FAT partition somewhere. Everyone has licenses for FAT (and they probably shouldn't even need them in the first place), so it would be very easy.
Whew, 64ZB. That's more acceptable. I was beginning to worry about my available drive space... Now if I could just convince the companies to start pumping out the 20TB drives already and stop holding me by the curlies with their 2TB drives I could do something! You'd think that with close to 30TB of drive space I wouldn't have these issues... but live and learn...
The US could join the (patent) free world sometime.
Not really much else to say on the FS front.
FAT isn't a particularly pleasant format, but you don't need super performance from most removable storage anyway and it's already widely available so may as well stick with it from that perspective. Just a shame about the licensing farce.
"Since when has a flash drive cared what file system is being used on it?"
http://www.tomshardware.com/news/windows-solid-state-drives-ssd,7717.html
I suppose people might quibble and say that trim isn't technically part of any particular file system, but it for sure has to be implemented in the file system/operating system/flash combination. Also, on a general point, there are some file systems which are more flash-friendly than others. File systems which can perform roll-up optimisations and avoid lots of tiny writes will perform better. File systems that don't automatically de-frag are more flash-friendly, file system which work in the units of flash pages. There are umpteen ways where flash can benefit from "flash aware" file and I/O systems.
Dan 55 posts, "Windows, Linux, and Mac all support UDF out of the box, right back to Windows 98. Not sure why device manufacturers are reluctant to use it, unless they're scared of being the first one."
Out of everything that I have read in this blog, this makes the most sense.
Is there a reason not to use UDF with flash or other portable media, that is not optical???
The single most important feature of any new "universal" format for removable media is not that it should store infeasibly large volumes of data, but that it should support a universal encryption standard.
The present farce of needing to execute decryption software from e.g. a USB device is madness and poses integrity risks (remember Conficker) that are just as worrying as the confidentiality risks that encryption is intended to protect against.
Since the US patent system refuses to recognise the rest of the world patents, maybe it is time for the rest of the world to stand up to the USA and tell them to kiss their confederate butts and refuse to accept any US patents. The world's politicians are just too happy to bend over backwards for the US. Maybe a show of balls and a collective extended major finger is needed at this stage.
Lets not care about what the US or MS want, lets just use FAT or extFAT, maybe reverse engineer it and make the necessary 20% modification/improvement to avoid law suits. MS owes it to the world to use FAT and exFAT for free. They have ripped off just about all of "their" ideas from others.
we are talking flash memory here for use in a lot of embedded application ( camera's , pictureframes etc ... )
there is multiple problems
- computing power is limited ... all these device run off batteries. the simpler the system is to implement in code the better
- no long filenames required.
- wear leveling : fat is very simple to accomodate wear-leveling wise. ntfs not so. extx and journaling : very hard ...
Fat is simple: find an empty spot , drop data , update pointer. if next block is unavailable : throw remainder in another empty blok and change link pointer. forget framentation. flash memory is 'transient' in this kind of devices anyway.
FAt is ideal to map on flash. Flash by definition uses a 'paging' mechanism. whenever you write to flash you have to perform a sector erase first. So even changing 1 byte in a sector requires a full sector read to buffer, sector erase and rewrite. poof there is your wear-leveling ...
in FAT you can specifiy the sector size. by using the exact same 'logical' sector size as the physical flash sector size you solve the bulk of the wear-leveling problem.
a sector is either empty or in use. The kind of devices they are targeting for exFAT do not perform bit or byte level accesses. They do bulk access. You find an empty sector and start writing. at the end of the sector you place the sector where the next block is written . And so on. when you are done you update a lookup table. In practice the real wear leveling needs only to be done for the actual File allocation table. that is the only element that sees byte level edits. In flash they do that by cycling the location of the table. The previous table is marked as 'old' and they simply write a complete new one. there are tally counters that keep track of which sectors have been accesses how many times. the flash controller uses that to decide where it will throw the next block.
Simply put : FAt may be a POS filesystem but it is very simple to implement and fits the way flash memory works in the first place. And no , flash was not developed with FAt in mind ...
It seems there are some pretty significant limitations with the ext2/3/4 file systems under other OS's.
For example:
- ext2 is only available under windows, here are the current limitations:
http://www.fs-driver.org/faq.html
- Other OS like Solaris only have read-only visibility to the ext2:
http://blogs.sun.com/pradhap/entry/mount_ntfs_ext2_ext3_in
- not a lot of visibility of ext3 or ext4
Considering how old ext2 is compared to the other ext file system revisions and the move to modern file systems which leverage flash for what what they do best and avoid the limitations of flash, I don't see ext2 getting much development under alternative operating systems other than Linux.
...is the expression used in India for the kind of deal that I *very* srongly suspect has happened here.
The sdcard association has *standardised* on this format for their future cards: http://www.sdcard.org/developers/tech/sdxc. A format that they *know* requires money to be paid even by a consumer (since the terms prohibit a FOSS system from using it). In a day and age when awareness of FOSS has never been higher, so don't tell me they didn't realise this.
I refuse to believe this has happened without MS bribing people at sdcard.org. Either that, or gross incompetence/negligence at sdcard. No other explanation.
Sitaram
When MS started to make moves on patenting FAT it was under the assumption they'd never charge for it. Now they are and given MS's past record, who is surprised?
Let's get it straight about the seriousness of this. Having to licence FAT (or exFAT - whatever) is like a tax on the right to own paper. It's a direct violation of the right to free expression. The American colonies went to war 250 years ago over a similar British tax. No government, and certainly no corporation - for which the general public have *no* *representation* has the right to implement it directly nor indirectly.
It is *not* worth it to pay a company for my right to take photos or copy data. I don't owe Microsoft for this, neither do you. All that's happened is that they hijacked a form of media and now they want us to pay for their offence.
Over this, one has to declare independence. Here's a grenade to start it off with.
First comment of the week for me, that was. Nicely overstated and ludicrous. Well done!
Your comparison of the proprietary FAT file format to the "right to own paper" is superb.
Yes, you're right, nothing short of a war is justified over this.
First they came for GIF, and I did not speak out, because GIF was a dreadful file format.
etc.