UHS Deblocked Filesystem (DebFS) draft: DebFS uses a 'new' scheme for allocating data on the filesystem, which preculdes the normal blocked filesystem setup. It's commonly called Deblocked by filesystem developers, and as such, is named DebFS. Tracking data allocation in this filesystem is vaguely FAT-like, but doesnt use a fixed-length table. Thus, it'll be referred to as the FAL, or file allocation list. Since allocation tracking is foremost in any filesystem, the author will cover it first: FAL entries are as such: Size Name Description 32b chn_nxt Next entry in chain (pointer to within the FAL file) 32b chn_prv Prev entry in chain (pointer to within the FAL file) 40b blk_ptr Pointer to data block (within filesystem) 24b blk_siz Size of data block in bytes 128 bits (16 bytes) per FAL entry. This seems somewhat extreme, yet a single FAL entry can map as much as 16 megabytes of data. For most purposes, this will do quite well. Directory structure is as important as allocation tracking. In fact, its more important in one common filesystem (ISO9660 filesystems often have no need for real allocation tracking, since the filesystem wont be written to more than once). Inasmuch as the directory tracks everything, even itself and the file allocation list, its nearly the first thing to be referenced when opening the filesystem for use. The directory will be database-like, and will thus be discussed later, when the author learns something about basic database structure ;) Filesystem Semantics, however, can be covered. In this filesystem, everything is a file and is tracked in the directory and FAL as a file. The direcotry and FAL are special files, and will be hidden (dotfiles) and marked readonly so that they're not easily deleted (which could likely be a catastrophic event). Having these vital pieces of information referenced as files allows easy backup of filesystem information (a simple copy will save the directory and/or the allocation list) to other devices in case of accidental corruption. The thought of using two copies of the FAL a-la msdosfs was passed on at the notion of neither a utility nor the user having more than a 50% chance of choosing the correct copy to trust as the more accurate one. The author would sooner lose all his data than have it chewed to hell by some utility that thinks it has its head out of its arse. Filesystem SuperBlock The SuperBlock (a term ripped from the Linux (unix?) world) covers the first kilobyte of the filesystem (normally four sectors), and contains various pieces of information about the filesystem: Size Name Description 512B BOOTSECT The filesystem boot sector 8B DEB_MAGC The DebFS Magic number ("DebFS000" with the high bit set) 6B ROOT_DIR A pointer to the root directory in bytes 1B resrv reserved 6B FAL A pointer to the file allocation list root block (rest) resrv reserved The filesystem boot sector often contains a block of code used to load the filesystem driver from the filesystem. The Magic Number contains 8 characters, 5 of which are needed to the filesytem. The letters "DebFS" with the high bit indicate the filesystem type, and the three zeroes following indicate the filesystem revision level. Note that this differs from the filesystem driver version, and is likely to change far less often. Backward compatibility should be maintained, and when possible forward compatibility for at least read-only access should be maintained.