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