分享

CD-ROM的逻辑格式(ISO9660)

 aaie_ 2012-08-20
12.2 CD-ROM的逻辑格式(ISO 9660)
12.2.1 ISO 9660的重要性
CD-ROM物理格式的标准化意味着所有CD-ROM生产厂家都应遵循这种标准化格式,这也就
意味着,CD-ROM上的信息可以在不同的信息处理系统之间交换,但只能在这个物理层上
实现交换。由于CD-ROM面对用户的是文件,如文本文件、图像文件、声音文件、执行文
件等等,这就需要一个文件系统来管理,这样就可使用户把CD-ROM当成一个文件集来看
待,而不是让用户从物理层上去看待CD-ROM盘。因此,仅有物理格式标准化还不够,还
需要有一个如何把文件和文件目录放到CD-ROM盘上的逻辑格式标准,也就是文件格式格
式。
由于CD-ROM标准(Yellow Book)没有制定文件标准,所以计算机厂家不得不开发自己的C
D-ROM逻辑格式。这些不统一的CD-ROM逻辑格式严重地影响了CD-ROM的推广应用。为了解
决这个问题,计算机工业界的代表聚集在美国内华达州的Del Webb’s High Sierra Ho
tel & Casino,起草了一个CD-ROM文件结构的提案,叫做High Sierra文件结构,并把这
个提案提交给了国际标准化组织(International Standards Organization,ISO),ISO
作了少量修改后命名为ISO 9660。通过许多软硬件公司的共同的艰苦努力,尤其是John
Einberger、Bill Zoellick等人作出的贡献,历时5年,终于在1988年正式公布了这个
标准,命名为“Information Processing��Volume and File Structure of CD-
ROM for Information Interchange”,可译为“信息处理:用于信息交换的CD-ROM的卷
和文件结构”。
IBM PC及其兼容机的文件结构叫做MS-DOS文件结构,而Apple Macintosh计算机的文件结
构叫做分层结构文件系统(Hierarchical File System,HFS)。由于这两种文件结构不相
同,因此MS-DOS文件不能在Macintosh计算机上运行,而HFS文件不能在IBM PC机上运行
。ISO 9660标准既不是MS-DOS的文件结构标准,也不是HFS的文件结构标准,而只是一个
描述计算机用的CD-ROM文件结构标准。因此,计算机要能够读ISO 9660文件结构的盘,
它的操作系统就必需要有支持软件,这个软件通常是在现有操作系统上进行扩展(Exten
sion)。Microsoft公司为读CD-ROM盘上的ISO 9660文件而开发的程序叫做MSCDEX(Micro
soft CD-ROM Extension),它需要和CD-ROM驱动器带的设备驱动程序相联合,MS-DOS操
作系统才能读CD-ROM盘上的ISO 9660 文件。MSCDEX.EXE程序的主要功能就是把ISO 966
0文件结构转变成MS-DOS能识别的文件结构。
在MS-DOS和MS-Windows环境下,IBM PC及IBM兼容机计算机必需安装MSCDEX.EXE和CD-RO
M驱动器带的设备驱动程序软件才能读CD-ROM盘上的文件。在MS-Windows 3.x环境下,设
备驱动程序要安装在CONFIG.SYS文件中,而MSCDEX.EXE文件要安装在AUTOEXEC.BAT文件
中。同样,其他的操作系统也需要开发类似于MSCDEX.EXE的软件,并且同样要与CD-ROM
驱动器带的设备驱动程序联合工作,这样才能读ISO 9660盘上的文件。
在Windows 95/98环境下不需要另外配置CONFIG.SYS和AUTOEXEC.BAT文件,它本身带有M
SCDEX.EXE和设备驱动程序,在安装过程中会自动安装,因此用户自己也就不需要另外安
装MSCDEX.EXE和CD-ROM设备驱动程序。
12.2.2 逻辑结构的设计概要
文件系统是在应用软件和控制器之间的软件,它是操作系统的一部分。文件系统实际上
是组织数据的一种方法,使应用程序访问CD-ROM时不需要关心物理地址或数据结构。一
个完整的CD-ROM文件系统有三个主要部分组成:
(1) 逻辑格式(logical format): 它是文件格式的同义词。逻辑格式是确定盘上的数据
应该如何组织,以及存放在什么地方。说得具体一点就是基本的识别信息放在何处,文
件目录应该如何构造,到何处去找盘上的目录,一个应用软件存放在几张光盘上等等。
由此也可以看到,逻辑格式与物理格式是不同的。
(2) 源软件(origination software): 它是把数据写到逻辑格式的软件,按逻辑格式把
要存到盘上的文件进行装配,所以源软件又称“写”软件。
(3) 目的软件(destination software): 它是把数据从逻辑格式读出来,并且把数据转
换成文件,因此目的软件又称为“读”软件。它在终端用户的机器上能够理解逻辑格式
,并且使用逻辑格式来访问盘上的文件。
在上述三部分中,逻辑格式是文件系统的核心。逻辑格式标准统一后,盘上的信息就有
可能在不同的信息处理系统之间进行交换。
定义CD-ROM的逻辑格式与定义磁盘的逻辑格式有差别,这是由于这两种存储器的特性不
同。定义CD-ROM逻辑格式首先要考虑CD-ROM本身的特性。对定义CD-ROM逻辑格式产生较
大影响的因素有:
CD-ROM是只读存储器,而磁盘是可读/写存储器,这就不需要添加、删除目录等功能。
CD-ROM的写入和读出是不对称的。
寻找数据的时间相对于20 ms左右的磁盘大得多,长到950 ms,平均也得几百毫秒。
存储容量大(650 MB/盘)。
这些因素关系到文件系统的性能。
CD-ROM的逻辑格式可归纳为两个部分:
(1) 定义一套结构用来提供整片CD-ROM盘所含的信息,称卷结构。单片CD-ROM称一卷。
一个应用软件可有大、中、小之分,一个应用软件也可能有多个文件组成。对于小的应
用软件,一卷可能容纳好几个文件,而一卷中的文件数目也可能相当惊人;对于中等大
小的应用软件,一卷可能只容纳一个;对于一个大的应用软件,如百科全书,可能有好
几卷才能容纳得下;把存放单个应用软件的多片CD-ROM称为一个卷集,这与出版的书很
相似。在卷集中,一个文件可能要跨越好几卷,或者相反,一卷中有好多文件。因此,
必须要有一套规则和数据结构来表达这些错综复杂的关系,以便使用户有足够多的信息
来了解盘上的内容。这些关系是属于卷一级的逻辑格式。
(2) 定义一套结构用来描述和配置放到盘上的文件,称为文件结构。文件结构的核心是
目录结构。这个结构是文件一级的逻辑格式,采用什么样的逻辑格式对文件系统的性能
有很大的影响。一般来说,目录结构采用分层目录结构,并且有显式说明和隐式说明之
分。为CD-ROM提议的目录结构大体有五类:
① 多文件显式分层结构(multiple-file explicit hierarchies)。它的特点是把子目录
当作文件来处理,打开一个有长路途的文件需要较多的寻找次数。
② 单文件显式分层结构(single-file explicit hierarchies)。它的特点是把整个目录
结构放在单个文件中,根目录和子目录都作为文件中的记录而不是作为文件来处理。
③ 散列路径名目录(hashed path name directories)。它的特点是把整个路径名和文件
名拼凑成一个地址放在目录中,这是隐式目录结构。
④ 索引路径名目录(indexed path name directories)。它的基本思想是把子目录的全
路径名转换成一个整数。这也是隐式目录结构。
⑤ 组合前面4种结构中的2种或2种以上的混合结构。
由于CD-ROM有它自己的固有特性,因此围绕CD-ROM定义的卷和文件结构也有它自己的特
性。这些特性充分体现在ISO 9660标准文件中。为便于理解它们的结构,下面采用由底
层到顶层的思路来介绍。
12.2.3 逻辑扇区和逻辑块
CD-ROM的一个物理扇区除了扇区头信息之外还有2336字节。在2336字节中,有288字节可
以用来作错误检测和校正用,剩下的2048字节作为用户数据域。2048字节(2 KB)的数据
域定义为一个逻辑扇区(logical sector)。每个逻辑扇区都有一个唯一的逻辑扇区号(l
ogical sector number,LSN)。CD-ROM的第一个逻辑扇区是从物理地址00∶02∶00开始
,逻辑扇区号为LSN0。
逻辑扇区的大小也允许自定义,但要等于2n,n是一个正整数。
每个逻辑扇区可以分成一个或多个逻辑块。这样做对于在盘上存放大量的小文件是很有
用的。在一个由2048字节组成的逻辑扇区中,一个逻辑块的大小可以是512、1024或204
8字节。但一个逻辑块的大小不超过逻辑扇区的大小。每个逻辑块有一个逻辑块号(logi
cal block number,LBN)。第一个逻辑块号(LBN 0)是第一个逻辑扇区(LSN 0)中的第一
块,依次为LBN1、2、3等等。在CD-ROM上,所有文件和其他重要的数据都按LBN寻址。
此外,还有一个记录的概念。一个记录由一系列连续字节组成,它作为信息单元。一个
记录的字节可多可少,少则几个,多则几十、几百个,视要表达的信息而定。记录有固
定字节长度和可变字节长度之分,分别称为固定长度记录和可变长度记录。
物理扇区、逻辑扇区、逻辑块之间的关系如图12-05所示。
图12-05 物理扇区与逻辑扇区、逻辑块的概念
 
12.2.4 文件
放到CD-ROM上的文件类型没有限制,可以是ASCII文本文件、索引结构文件、可执行文件
(如.COM文件,.EXE文件),压缩的或未压缩的图像文件、声音文件等,只要你想存的文
件都可以。
每个文件可分为一节或多个文件节(file section)。一个文件节放在由许多个逻辑块组
成的文件空间里。这些逻辑块是顺序编号的逻辑块,由它们组成的文件空间又称为文件
范围(extent)或文件域。一个大的文件可以分成多个文件节,存放在多片CD-ROM盘上的
文件域中;一个中等大小的文件也可以分成若干个文件节,存放在同一片CD-ROM盘上的
多个文件域中,这些文件域也不要求是连续的文件域; 小的文件可以不分域,存放在单
个文件域中。
文件的标识符(file identifier)可由三部分组成:文件名、文件扩展名和文件版本号组
成。但文件标识符必须要包含一个文件名,或者包含一个扩展名,其他可作为选择。文
件标识符中的字符通常采用ASCII字符,并且限定用其中的一部分:
数字0~9
大写英文字母A~Z
下划线(_)
文件名和文件扩展名之间用句点(.)
文件名或文件扩展名与文件版本号之间用分号(;)下面给出了一些合法文件标识符和不合
法文件标识符的例子。
************************************************
合法文件标识符:
FILE.DAT
FILE.DAT;1
DATA_FILE_FOR_INTERCHANG.DAT
FILENAME_WITHOUT_AN_EXTENSION
.NO_FILENAME_JUST_AN_EXTENSION
--------------------------------------------------------------------------
不合法文件标识符:
file.dat;不允许小写字母
ONLY.ONE.PERIOD.ALLOWED;只允许一个句点
NO-HYPHENS-OR--SIGNS;没有规定用连字符(-)和
THIS_FILENAME_IS_LONGER_THAN_31_CHARACTERS
;多于31个字符
************************************************
在MS-DOS环境下,文件名的长度不超过8个字符,文件扩展名的长度不超过3个字符;在
其他环境下,文件标识符的总长度限制为不超过31个字符。
12.2.5 目录
大多数支持磁盘的文件系统都时兴用分层目录结构,CD-ROM也采用这种目录结构,并且
限定目录层次的深度为8级。用这种目录结构可以组织大数量的文件。大多数磁盘文件系
统把子目录作为一种特殊的文件进行显式处理,一层一层地打开子目录文件,以找到最
终的文件。这样做的好处是为增加或删除目录提供了很大的灵活性。但CD-ROM是只读,
无需这种灵活性,而且采用这种方法来找一个带有长路径名的文件,一次一次打开子目
录文件势必要化费很长的时间。因此,CD-ROM没有采用这种显式分层目录结构,而是采
用隐式分层目录结构,但也把目录当作文件看待,并且把整个目录包含在1个或少数几个
文件中。包含目录的文件称为目录文件。
目录文件与普通的用户文件相类似,但对CD-ROM采用的目录文件结构作了具体的规定。
目录文件由一系列可变长度的目录记录组成。每个目录记录的格式如表12-03所示。由表
12-03可以看到,一个目录记录包含有许多记录域。这些域中记录有文件标识符,以字节
计算的文件长度、文件域中的第一个逻辑块号(LBN),以及打开和使用这个文件所需要的
其他信息。当一个文件放在多个文件域中时,需要设置多个目录记录,每个目录记录中
给出相应文件域的地址,并由文件标志记录域来指明该文件域是不是最后一个。目录文
件、目录记录、记录域等之间的关系如图12-06所示。
表12-03 目录记录的格式
字节位置
记录域的名称
1
目录记录长度(LEN_DR)
2
扩展属性记录(XAR)长度
3~10
文件域地址
11~18
数据长度
19~25
日期和时间
26
文件标志
27
文件单元大小
28
交叉间隔大小
29~32
卷顺序号
卷顺序号
33
文件标识符长度(LEN_FI)
34-(33+LEN_FI)
文件标识符
34+LEN_FI
填充域
(34+LEN_FI+1)-LEN_DR
系统使用(保留)
图12-06 目录文件结构
文件的附加信息可以记录在一个命名为扩展属性记录(extended attribute record,XA
R)的记录上,它放在文件的前面而不是放在目录记录上,这样做可以使目录记录变得较
小。附加信息包括文件作者、文件修改日期、访问文件的许可权等信息。凡是不常使用
的信息都放到扩展属性记录上。这也是CD-ROM目录结构的一个特点。
如果一个文件有多个文件域(如图12-06中的文件B),每个文件域都有XAR记录,在这些X
AR记录上的信息可能会不相同,文件系统应认为最后一个XAR记录上的信息是有效的。这
个特性在卷集制作过程中很有用。
由于每个目录记录的长度不确定,因此在一个逻辑扇区中的目录记录的个数也不确定,
但必须要保证目录记录数的数目为整数。当一个目录在这个逻辑扇区中放不下的时候,
应移到后面的一个逻辑扇区。这样可以保证读到计算机内存中的目录不会出现支离破碎
的现象。
12.2.6 路径表
前面已经谈到,由于CD-ROM寻找时间很长,若采用磁盘的方式来处理目录,要打开一个
目录嵌套层次很深的文件,势必要化费很长的寻找时间。为解决这个问题,在1985年,
J.D.Barnette、B.Zoellick和S.Stegner开发了一种名叫路径索引(path index)的一种隐
式分层目标结构,后来改名为路径表(path table)。这种结构的特点是利用索引值来访
问所有的目录,它的基本思想示于图12-07。
图12-07 目录结构与路径表
路径表由许多称为路径表记录组成,它对应于根目录和每个子目录,如图12-07中的ROO
T(根)、A、B,…,等路径表记录。每个路径表记录具有如表12-04的格式。路径表中包
含有每一个子目录所在的开始地址,即逻辑块号LBN,这样就可以通过路径表直接访问任
何一个子目录。因此,如果一张完整的路径表能保存在计算机的RAM中,那末一次寻找就
可以访问盘上的任何一个子目录。
表12-04 路径表记录
字节位置
记录域的名称
1
目录标识符的长度(LEN_DI)
2
扩展属性记录(XAR)的长度
3~6
存放目录的地址
7~8
父目录号
9~(8+LEN_DI)
9~(8+LEN_DI)
目标标识符(不超过31个字符)
(9+LEN_DI)
填充域
路径表只能保证访问目录的第一个物理扇区。如果有由成千个文件组成的大目录,那末
整个目录可能跨越盘上的好几个扇区。这么多的文件最好分散在各个子目录下,每个子
目录下分配约40个左右的文件。按每个目录记录的平均长度为50字节计算,差不多占据
单个物理扇区。如果在一个子目录下分配太多的文件数时,那末要找这个目录下的文件
时,需要顺序读和检查好几个物理扇区才能找到这个文件,这样就多化时间。
12.2.7 卷
CD-ROM盘上可以存放信息的区域称为卷空间(volume space)。卷空间分成两个区:从LS
N 0到LSN 16称为系统区,它的具体内容没有规定。从LSN 16开始到最后一个逻辑扇区称
为数据区,它用来记录卷描述符(volume descriptors)、文件目录、路径表、文件数据
等内容。
每卷数据区的开头(LSN 16)是卷描述符。卷描述符实际上是一种数据结构,或者说是一
种描述表。其中的内容用来说明整个CD-ROM盘的结构、提供许多非常重要的信息,如盘
上的逻辑组织、根目录地址、路径表的地址和大小、逻辑块的大小等等。卷描述符的结
构如表12-05所示,它是一个由2048字节组成的固定长度记录。
表12-05 卷描述符的格式
字节位置
录域的名称
1
卷描述符的类型
2~6
标准卷标识符(用CD001表示)
7
卷描述符的版本号
8~2048
(取决于卷描述符的类型)
卷描述符有五种类型:
主卷描述符(primary volume descriptor)
辅助卷描述符(supplementary volume descriptor)
卷分割描述符(volume partition descriptor)
引导记录(boot record)
卷描述符系列终止符(volume descriptor set terminator)
上述五种描述符的结构分别示于表12-06~表12-09。
表12-06 主卷和辅助卷描述符
字节位置
主卷描述符记录域的名称
辅助卷描述符记录域的名称
1
卷描述符的类型
同左
2~6
标准卷标识符(CD001)
同左
7
卷描述符版本号
同左
8
未使用(00)
卷标志
9~40
系统标识符
同左
41~72
卷标识符
同左
73~80
未使用(00)
同左
81~88
卷空间大小
同左
89~120
未使用(00)
换码顺序
换码顺序
121~124
卷系列大小
同左
125~128
卷顺序号
同左
129~132
逻辑块大小
同左
133~140
路径表大小
同左
141~144L
型路径表值位置*
同左
145~148L
型路径表任选值位置
同左
149~152M
型路径表值位置**
同左
153~156M
153~156M
型路径表任选值位置
同左
157~190
根目录的目录记录
同左
191~318
卷集标识符
同左
319~446
出版商标识符
同左
447~574
数据准备者标识符
同左
575~702
应用软件标识符(如CD-I)
同左
703~739
版权文件标识符
同左
740~776
文摘标识符
文摘标识符
同左
777~813
文献目录文件标识符
同左
814~830
卷创作日期和时间
同左
831~847
卷修改日期和时间
同左
848~864
卷到期日期和时间
同左
865~881
卷有效日期和时间
同左
882
文件结构版本号
同左
883
(保留)
同左
同左
884~1395
应用程序使用
同左
1396~2048
(保留)
同左
* L型: 最低有效字节在先,**最高有效字节在先
表12-07 卷分割描述符
字节位置
记录域的名称
1
卷描述符的类型
2~6
标准卷标识符(CD001)
7
卷描述符版本号
8
未使用(00)
9~40
系统标识符
41~72
卷分割标识符
卷分割标识符
73~80
卷分割位置
81~88
卷分块大小
89~2048
系统使用
表12-08 引导记录
字节位置
记录域的名称
1
卷描述符的类型
2~6
标准卷标识符(CD001)
7
卷描述符版本号
8~39
引导系统标识符
40~71
引导标识符
72~2048
引导系统使用
表12-09 卷描述符系列终止符
字节位置
记录域的名称
1
卷描述符的类型
2~6
标准卷标识符(CD001)
7
卷描述符版本号
8~2048
保留(00)
五种描述符的前四种可以任意组合,组成卷描述符系列。这四个描述符可以在描述符系
列中出现不只一次。描述符系列有两个限制:主卷描述符至少要出现一次,卷描述符系
列终止符只能出现一次,而且只能出现在最后。卷描述符系列记录在从LSN 16开始的连
续逻辑扇区上。
以上简要介绍了CD-ROM的卷和文件结构的基本概念,没有对它的细节作一一解释,这对
一般读者就已经足够了。对想进一步深入理解CD-ROM逻辑格式的读者,以及想编写自己
的CD-ROM文件系统的读者,请参看ISO 9660标准文件。
ISO 9660标准的出现,对CD-ROM的推广应用产生了很大的推动作用。理论上说,CD-ROM
上的文件应该在哪种型号的机器上都可以读出。然而,事实并不完全是这样。它们各自
包含有自己的文件系统,有自己的专用格式及应用软件,同一片CD-ROM上的文件不一定
都能在不同的信息系统中读出。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多