On 4/8/21 11:38 AM, Antonio Carlini via cctalk wrote:
But (afaict) a sector that has never been written is
just that:
unwritten. How does it convey any information (other than "I'm still
blank")?
Let me try...
Because you can't rewrite or update tables without copying them, a WORM
file system that can be updated dynamically has to resort to lists of
previous versions of the tables. So to find the most recent copy of any
list, you read through the list until one of two things happens: You
hit an unwritten sector, which means that the last thing read
successfully is what you're after, or the preallocated list area is
completely full, in which case the list continues in another
preallocated area or is at the absolute end, depending on the
implementation.
In the WORM file system that I'm currently working in, the
implementation is a mixture of both. There are fixed preallocated
areas for directory information, but there are also lists of file data
areas written that can overflow to other preallocated areas.
Overflow of the directory is handled with a tree structure, so it's
pretty much the same thing as a linked list in a practical sense.
I assume that it was done that way so that a bad (error) sector wouldn't
upset the whole apple cart.
By the way, does anyone know the structure of an ".ITI" file?
--Chuck