Virtual File Systems—possibly the killer app
The second afternoon talk was presented by Steve Huntley. He talked about his work creating VFS's in Tcl. (I strongly suspect he has more experience applying TclVFS than anyone else in the world!) I was very interested in hearing about his work and can imagine a number of possibilities I could apply it to in my own work.
"Virtual filesystems are the killer app for Tcl total world domination." :-)
Heirarchial filesystems are a universally applicable abstraction. Databases can be made to look like a set of files.
The past
- File transport: FTP, HTTP (every file transport can look like every other; even Windows Explorer does it)
- File archiving: (.tar, .zip, metakit vfs for starkits)
Drawbacks of previous implementations
- Emphasis on read functions (as opposed to write)
- Incomplete implementations ("good enough")
Challenges of the present
- A VFS should be flexive (one should be able to serve as info source of another)
- Should be graftable as a branch of another VFS
- Should be scalable
- Should be as complete a metaphor as possible
A template virtual filesystem: Only function is to be a complete metaphor (with read/write, all file info services, complete error handling, and adequate performance). Could also be called a service-providing virtual filesystem.
Types of VFS already developed on the template:
- Collating VFS (multiple locations appear as one; sometimes referred to as a union filesystem)
- SSH VFS (turns remote SSH server into file server)
- Quota VFS (imposes quotas on file attributes)
- Chroot VFS (makes all but a specified subdirectory invisible to the interpreter)
- Versioning VFS (preserves all file edits commited)
- Delta VFS (designed to work with versioning VFS, generates deltas of file edits to save on disk space)
They can all be combined/stacked/chained. Analogous to Unix pipes and streams but maps to hierarchial data.
Future
Could be used as a metaphor for handly any tree data (LDAP, XML, etc.). New transport paradigms all the time (P2P, BitTorrent, RSS, etc.) Arbitrary meta data has potential.
Abstraction of data collections. Source configuration (SCM) and content management (CMS), and Package Management.
Could make Tcl virtual filesystems visible to the operating system and thus to all programs. We have the technology (FUSE on Linux and WebDrive on Windows).
Available at filtr.sourceforge.net under the Tcl license. New version, not yet committed, should be there within a week or so.
—Michael A. Cleverly
Thursday, October 12, 2006 at 14:07
Tue, 12 Mar 2019, 22:23