Document Multi-Extent feature.
This commit is contained in:
parent
ccc7b0b58f
commit
68bd636bd8
58
doc/devel/cookbook/Multi-Extent.txt
Normal file
58
doc/devel/cookbook/Multi-Extent.txt
Normal file
@ -0,0 +1,58 @@
|
||||
===============================================================================
|
||||
ISO-9660 Level 3 Cookbook
|
||||
===============================================================================
|
||||
|
||||
Creation date: 2008-Aug-17
|
||||
Author: Vreixo Formoso
|
||||
_______________________________________________________________________________
|
||||
|
||||
Contents:
|
||||
---------
|
||||
|
||||
1. References
|
||||
2. General
|
||||
3. OS Support
|
||||
4. Implementation
|
||||
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
1. References:
|
||||
|
||||
ECMA-119 "Volume and File Structure of CDROM for Information Interchange"
|
||||
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
2. General
|
||||
|
||||
In ECMA-119 standard, the size of a file section cannot be bigger than 4GB - 1,
|
||||
because the Data Length field of the Directory Record is just 32 bits (9.1.4).
|
||||
|
||||
However, "each file shall consist of one or more File Sections" (6.5.1), and
|
||||
that way we can store files greater than 4GB in a ECMA-119 image. Such image,
|
||||
with multiple File Sections, is only supported at Level 3 (10.3), as Level 2
|
||||
(10.2) states that "each file shall consist of only one File Section".
|
||||
|
||||
On disc, each file section is stored in a Extent (6.4.2), i.e. a set of
|
||||
contiguous Logical Blocks.
|
||||
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
3. OS Support
|
||||
|
||||
Wikipedia states that "Microsoft Windows XP supports this, while Mac OS X
|
||||
(as of 10.4.8) does not handle this case properly. In the case of Mac OS X,
|
||||
the driver appears not to support file fragmentation at all (i.e. it only
|
||||
supports ISO 9660 Level 2 but not Level 3). Linux supports multiple extents.
|
||||
FreeBSD only shows and reads the last extent of a multi-extent file."
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
4. Implementation
|
||||
|
||||
Each File Section will have its own Directory Record (6.5.1). So, for files
|
||||
greater than 4 GB, we need to store several directory records, that will have
|
||||
the same File Identifier, and stored in the order of the File Sections they
|
||||
refer (9.3).
|
||||
|
||||
All but the last Directory Record must have the Multi-Extent flag set (9.1.6)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user