Originally Posted By: mlord
I suppose a third way might be to create a kind of Rosetta Stone layer in the product, that emulates a block device with FAT filesystem on the outside, but cleverly translates this to some other filesystem/database on the inside of the device.

People in Sigmatel have occasionally suggested something like this (usually in the context of running something like UBI on bare NAND and pretending to USB that it's FAT), but, while theoretically possible, it's insanely hard (think about write caches on the PC end; you'd never know what order your clusters would arrive in) -- certainly, in the case of both Empeg and Iphone, harder than porting Samba, and probably harder even than writing a "good-enough" SMB server from scratch.

Peter