* Roger Binns <[EMAIL PROTECTED]> [2006-06-05 00:05]:
I don't know if anyone has tracked how well Spotlight (Mac) or
Beagle (Linux) work with SQLite files.
They cause no problems. The semantics of the filesystem API on
*nix systems differ from those of Windows; in short, a file and
its name are separate entities on *nix and locking is advisory.
Having authored fileservers in the past I am fully aware of
all the semantic differences. My point is that the world
is no longer as simple today as it used to be. For example
every operating system that has users sitting in front of it
supports FAT/FAT32 since that is the default filesystem for
USB memory sticks. FAT requires a directory entry for a file
(there isn't the layer of indirection like an inode as you were
discussing). If an operating system is maintaining the FAT
filesystem in a stable state (eg because they allow for users
ripping the memory stick out at any point) then the filesystem
driver may choose to enforce FAT semantics even if the operating
system by default has different semantics.
There are several elements that combine to produce the final
behaviour. It is no longer just Windows that you have to
worry about for broadest compatibility and interoperability.
- API semantics (eg Win32, libc, Core Foundation, stdio)
- Kernel syscall semantics (eg NTapi, Linux, Mac etc)
- Filesystem semantics (NTFS, ext3, HPFS+, FAT, NFS, SMB)
- Tag-along programs (Indexing, Beagle, Spotlight, Virus, Backup,
Policy checkers)
Roger