xorriso: Model

 
 2 Session model
 ***************
 
 Unlike other filesystems, *ISO 9660* (aka *ECMA-119*) is not intended
 for read-write operation but rather for being generated in a single
 sweep and being written to media as a *session*.
 The data content of the session is called filesystem *image*.
 
    The written image in its session can then be mounted by the operating
 system for being used read-only.  GNU/Linux is able to mount ISO images
 from block devices, which may represent optical media, other media or
 via a loop device even from regular disk files.  FreeBSD mounts ISO
 images from devices that represent arbitrary media or from regular disk
 files.
 
    This session usage model has been extended on CD media by the concept
 of *multi-session* , which adds information to the CD and gives the
 mount programs of the operating systems the addresses of the entry
 points of each session.  The mount programs recognize block devices
 which represent CD media and will by default mount the image in the last
 session.
 This session usually contains an updated directory tree for the whole
 medium which governs the data contents in all recorded sessions.  So in
 the view of the mount program all sessions of a particular medium
 together form a single filesystem image.
 Adding a session to an existing ISO image is in this text referred as
 *growing*.
 The multi-session model of the MMC standard does not apply to all media
 types.  But program growisofs by Andy Polyakov showed how to extend this
 functionality to overwriteable media or disk files which carry valid ISO
 9660 filesystems.
 
    'xorriso' provides growing as well as an own method named *modifying*
 which produces a completely new ISO image from the old one and the
 modifications.  See paragraph Creating, Growing, Modifying, Blind
 Growing below.
 
    'xorriso' adopts the concept of multi-session by loading an image
 directory tree if present, by offering to manipulate it by several
 actions, and by writing the new image to the target medium.  The first
 session of a 'xorriso' run begins by the definition of the input drive
 with the ISO image or by the definition of an output drive.  The session
 ends by command -commit which triggers writing.  A -commit is done
 automatically when the program ends regularly.
 
    After -commit a new session begins with the freshly written one as
 input.  A new input drive can only be chosen as long as the loaded ISO
 image was not altered.  Pending alteration can be revoked by command
 -rollback.
 
    Writing a session to the target is supposed to be very expensive in
 terms of time and of consumed space on appendable or write-once media.
 Therefore all intended manipulations of a particular ISO image should be
 done in a single session.  But in principle it is possible to store
 intermediate states and to continue with image manipulations.