fio is an I/O tool meant to be used both for benchmark and stress/hardware verification. It has support for 13 different types of I/O engines (sync, mmap, libaio, posixaio, SG v3, splice, null, network, syslet, guasi, solarisaio, and more), I/O priorities (for newer Linux kernels), rate I/O, forked or threaded jobs, and much more. It can work on block devices as well as files. fio accepts job descriptions in a simple-to-understand text format. Several example job files are included. fio displays all sorts of I/O performance information, including complete IO latencies and percentiles. Fio is in wide use in many places, for both benchmarking, QA, and verification purposes. It supports Linux, FreeBSD, NetBSD, OS X, OpenSolaris, AIX, HP-UX, and Windows.
libferris is a virtual filesystem that exposes hierarchical data of all kinds through a common C++ interface. Access to data is performed using C++ IOStreams and metadata is available as key-value pairs through the Extended Attributes (EA) interface. Rich support for filesystem indexing is included to provide timely search results for well into millions of files. Ferris uses a plugin API to handle a large range of data sources, metadata, and index and search strategies. Filesystems include file:// with monitoring, XML (mount an XML file as a filesystem), relational databases, ISAM databases (Berkeley db, tdb, gdbm, eet et al), xmldb, LDAP, Applications (Evolution, Firefox, Emacs), HTTP, FTP, sockets, and RDF (from XML, binary, soprano). EA generators include image, audio, and animation decoders.
hfsutils is a comprehensive software package being developed to permit manipulation of HFS volumes from UNIX and other systems. HFS is the ``Hierarchical File System,'' the native volume format used on modern Macintosh computers. The software reads and writes HFS (but not HFS+) volumes with several command-line programs and optionally an X interface. The software can also be used as a C library.
muser lists processes which have a given directory (or cwd if not specified) as a parent of their current working directory (thus making it impossible to unmount that directory if it is a mount point). This script has overlapping functionality with the fuser program from the psmisc package, but has the advantage that it works on SMB mounts. Additionally, it provides a color, formatted listing of process IDs, executable names, current working directories, and the command lines used to run the programs. It works with varying-sized /proc/*/cwd fields.
Virtualfs provides a set of plugins and let you define new ones. Each plugin may intercept and enhance file system operation. Various plugins are already done, including remote device access for Xterminals (to access the floppy, CD, and sound cards with standard applications), auto-mounter (browse and automount your SMB shares), access control lists, etc.
The Extended Universal Resource Locator library provides a complete virtualization of file-like objects. How data is stored is completely transparent to the client, since the library is meant to replace java.io.File. It provides implementations for handling local files, Jar/Zip archives, and XML documents. (Implementations for CVS and FTP are available seperately.) Other storage providers can be written and plugged in. It also provides a merged filesystem implementation that allows multiple hierarchies to appear as one and to override each other in a controlled way. Other features include notification of changes to files, and support for attaching (dynamically updatable) actions to file objects.