Re: ISO9660/cdrom progress

"Ingo Weinhold" <bonefish-CFLBMwTPW48UNGrzBIF7/[email protected]>
Newsgroups gmane.os.openbeos.storage
Message-ID <40111228664-BeMail@graete>
Tyler Dauwalder <tyler-cyCl/[email protected]> wrote:
> 
> > [...]
> > > + Any volume on a CD can potentially reference data in any other
> > > volume
> > > on the same CD, regardless of session boundaries, due to the use 
> > > of
> > > absolute addresses (that last bit I haven't verified, but I do 
> > > know
> > > that files that aren't changed inbetween inherited sessions 
> > > aren't
> > > rewritten, based on session sizes).
> > 
> > I'm not so sure about the absolute addresses. They usually use the 
> > term
> > `logical block number' (I haven't checked all structures, but I 
> > believe
> > they do) and, as introduced in 6.2.2, they identify the blocks in 
> > the
> > volumes space, i.e. on the volume (numbering starting with 0).
> 
> Looking at the root directory record, the location of the directory's 
> extent (an LBN) is always specified with an absolute block number. 
> One 
> could debate that the sequence # of 1, which is also always 
> specified, 
> refers to the volume space of the first session, which begins at zero 
> (even for the first data session immediately following an audio 
> session 
> on an "Enhanced Audio CD", interestingly). And while that's true, 
> addresses outside the first volume's volume space are still specified 
> this way. Further, every volume on the CD is always given the 
> sequence 
> # of 1.

Ouch!

> I guess my point is that I don't feel the volume sequence numbers 
> ever 
> have any real relevance anywhere, in practice at least (despite what 
> the standard says). You certainly can't use them to bounds check LBN 
> addresses against a volume space, nor to identify a volume's position 
> in a sequence.

I see. :-(

> > I disagree. Unless you indeed have an sample CD which violates the
> > standard, but works on Windows (and other OSs). Which volumes 
> > belong 
> > to
> > a volume set is clearly defined by the standard -- those having the
> > same volumes set ID -- and recognizing that requires nothing more 
> > than
> > reading the primary volume descriptors. In practice, this may turn 
> > out
> > to be a bit difficult to do with our current disk=5Fscanner 
> > architecture.
> >
> > Regarding which volume reuses data from which former ones, you're
> > right. Potentially this could be all in the volume set, but 
> > actually I
> > don't find that information of much interest, anyway. Interesting 
> > are
> > the volume groups IMHO.
> 
> I think there are two ways to look at the problem of handling 
> mutli-volume CDs, and I believe this is where we are failing to agree 
> (because I think we both mostly understand what's going on wrt the 
> standard).
> 
> I believe you are looking at the problem as "Here is the standard, 
> how 
> can we support a reasonably generic method of conveying volume set 
> information". 

Exactly. Mainly because until now, I naively thought the CD burner 
applications follow the standard. :-)

> I, OTOH, have been approaching it as "There is no standard followed 
> by 
> current burners (or Nero, at least; I guess others should be checked 
> too :-)

Oh, yes, please do that. :-) I can't, for I don't use Windows for 
religious reasons. ;-)

> that conveys to us automatically, without the user consciously 
> planning ahead and using appropriate volume set ids (which have no 
> meaning on Windows, and likely elsewhere), which volumes are in a 
> set. 
> Due to the nature of Windows (wherein only the last volume on the 
> disc 
> is ever displayed), most multi-volume CDs in existence will likely be 
> a 
> single set of volumes, all with identical volume names, all with an 
> empty volume set id. Thus, how can we display to the user the 
> intended 
> set of volumes, since no provision has been made and/or followed to 
> automatically convey that information to us."
>
> My concern is that muli-volume CDs with no volume set information 
> (which I believe will describe most multi-volume CDs already made 
> under 
> Windows) will have all of their volumes displayed to the user by 
> default, thus presenting a potentially large array of identically 
> named 
> volumes and making the user long for the ignorant bliss of Windows. 
> 
> So, to address what I believe your main concern has been: yes, I 
> agree 
> that standard volume sets can and should be handled by the 
> disk=5Fscanner, and I like the SupersededBy() interface proposed below. 
> Do we want to address my secondary concern anywhere, and if so where=3F 
> I 
> think it's worth considering.

IMO users should be punished for using Windows applications, that don't 
follow standards. ;-)
I couldn't resist. :-P

Empty volume set ID, you say. Well, AFAIR the standard doesn't disallow 
the empty string as a volume set identifier. So actually the volumes on 
such an ill-formatted CD would naturally belong to the same volume set. 
The sequence numbers would be wrong, but that can be dealt with 
gracefully.

What concerns me more, is the CD-absolute addressing. Our ISO9660 FS 
would need to recognize the CD as an ill-formatted one and use absolute 
addresses in this case, while for standard conformant ones the correct 
addressing would be used. I think, that should be feasible at least.

[...]
> > Let me see, if we actually agree, but just think of different 
> > levels:
> > 
> > * The organization level is defined explicitely by the standard: 
> > There
> > are volume sets, which consist of volume sequences, which are
> > factorized by creation time into sequences of volume groups. Each
> > volume group can reuse any data of the former ones. No trees here.
> 
> Yes, though I see no evidence of volume sequences being implemented 
> as 
> the standard dicatates.
>
> > * A second structural level is implied by the reusage of files from
> > other volumes in a volume. Since files from any volume from the 
> > volume
> > set can be referred, 
> 
> Yes, though I see no evidence of any sort of restriction on where 
> files 
> can be referred from. It looks to me like any volume can refer to 
> anywhere on the disc it pleases (not according to the standard, but 
> according to actual CDs and their root directory records). 

Sadly. Maybe one should notify the application creators of these 
standard deviations.

> > For the DiskDevice API I could imagine to add two methods, 
> > BPartition 
> > *
> > Supersedes() and BPartition *SupersededBy() to BPartition. Relating
> > this to the terminology of the standard, this reflects the list of
> > volume groups. The Tracker would simply present the tail of the 
> > list 
> > as
> > default and the others as options (e.g. an entry in the mount menu
> > could have a submenu listing all options).
> 
> This I like.
> 
> > Regarding the extended=5Fpartition=5Finfo structure I think it could be
> > extended by two fields specifying the session and partition index 
> > of
> > the superseded partition (-1 for `normal' partitions). I would try 
> > to
> > avoid adding too many specifics of this particular standard. A time
> > field wouldn't harm, but we would also need another field with the
> > volume set identifier, which doesn't fit very well, I feel.
> > 
> > The interface for the disk=5Fscanner modules would need to be 
> > adjusted 
> > in
> > any case. I will think about this.
> 
> I, too, am thinking about this, but this reply has taken me long 
> enough 
> to get sent off already, so it can wait till next time.

:-)
No hurry. I haven't thought much about the matter yet. I first want to 
get the userland GUI add-ons done, with partitioning support, before 
actively reconsidering the registrar->kernel migration and the required
/useful changes.

CU, Ingo
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.