CD-R最新文件管理系统简介 陈玉玲 1997-01-01   ●一、什么是CD-R   目前市场上销售的光盘按其性能一般可以分为三类:只读式光盘(CD-ROM),一次性可记录光盘(CD-R)和可擦重写式光盘(MO)。它们的外形尺寸很相似,只读式光盘是最为常见的一种,但因为这种光盘只能读不能写,所以给使用者带来很大的局限。而可擦重写式光盘技术复杂。价格为普通用户所不能接受。一次性写入光盘正好处于二者之间,由于具有容量大,可写入的特点,为用户对大批量的数据进行长期保存提供了方便。   CD-R(CD-Recordable),中文意思是可记录光盘。这是一种大容量可一次性记录数据的光盘存贮媒体。另外与CD-R光盘相对应的CD-R驱动器和普通的CD-ROM驱动器相比,增加了一些新的特征,它能够将信息写入一次可记录光盘(即CD-R盘)。这种CD-R光盘既可以在你的CD-R驱动器上读出,也可以在CD-ROM驱动器上读出,它的容量大约有650MB,其使用寿命和普通的光盘几乎一样长。和其它常用的存贮媒体相比,如硬盘、可擦重写光盘等,CD-R光盘每兆字节的平均费用是非常低的,而且和其他光盘一样经久耐用。   另外,如果使用特定的软件,如"xlhPremastering"xlh或"xlhFormatting"xlh,你就可以将动态图像数据和声音数据记录到一张CD-R光盘上。用这种方式,你就能够很容易地建立一张CD-R盘并把它用来作为母盘,进行大量光盘的复制,比如,作为压制普通VCD的母盘。如果使用索尼的CDRFS系统软件,你的CD-R驱动器就可以成为能进行数据备份和存档的大容量存贮设备。   ●什么是CDRFS   CDRFS(CD-R File System)是一种新的文件系统,这个系统是索尼公司特地为CD-R光盘配套开发的。采用这个系统,可以使CD-R光盘的使用和软盘的使用一样方便。到目前为止所使用的CD-ROM光盘,其格式与ISO-9660标准有关或者是它的扩展。这个标准是在1985年制定的,并在以后进行了一些扩展。按照这个标准,光盘处理文件的方式与一般软盘,硬盘处理文件的方式类似,需要配合操作系统来进行文件的操作控制。但不同的操作系统各有不同的存取,返回方法,很难找到专为光盘产品而设计的操作系统,也就是说,操作系统不认识光盘的文件结构,所以在操作系统和光盘之间需要有一种软接口,来将ISO-9660标准的光盘格式视为另一个逻辑磁盘代号,目录或磁盘驱动器。   CDRFS系统就是一种这样的软接口,在CDRFS系统设计中使用了一种新的数据记录技术。称为"xlh数据包记录"xlh(Packet Recording)。装入CDRFS系统后,用户就可以在计算机上方便地使用CD-R光盘,其使用特性主要有以下几类: #3  象使用硬盘或软盘一样使用CD-R光盘   采用CDRFS系统,你就可以象使用硬盘或软盘一样方便地使用CD-R光盘,可以在上面复制,编辑,甚至删除文件。对于一张空白的CD-R光盘,CDRFS系统还提供专门的格式化功能。下面以装有CDRFS系统的Windows95环境为例,说明CD-R光盘的使用方法。   (1) 将一张空白CD-R光盘放入CD-R驱动器。   (2) 对话框显示此盘未经格式化,并建议进行格式化。     (3)按屏幕提示对CD-R光盘进行专门的格式化,格式化后,这张CD-R光盘就能被CDRFS系统接受并使用。   (4)采用Windows95中拖放文件图标的方法,可以很容易地将文件复制到新的CD-R光盘上,其操作方式与在硬盘上操作是一样的。   (5)你可以编辑CD-R光盘上已有的文件,并将编辑结果重新存盘或另存。这也和在硬盘上操作一样。   (6)你还可以删除已有的文件,方法很简单,将CD-R光盘上的文件的图标拖放到回收站上即可。 #3  将CD-R用作可重写的存贮媒体   CD-R本来是一种一次性录入式的光盘,这就意味着你永远也不可能真正地从CD-R光盘上删掉任何信息,但是,采用CDRFS系统,可以使CD-R光盘看起来象可擦重写光盘一样。这一点是怎么做到的呢?下面用一个简单的文件操作实例来说明(见图1):   (1)写入一个文件A到CD-R光盘上,假定A由A'和A"xlh组成。   (2)希望修改A的一部分A"xlh。   (3)修改A"xlh后新的存盘部分作为B。   (4)CDRFS将新的文件作为A'+B。   (5)用户看到的只是一个文件A。    在以上操作中,CDRFS系统隐含了以下的几点:   *既然CD-R光盘是一次性写入的,那么A"xlh仍然在盘上,但已经被隐藏起来,用户看不见。   *用户看见的只是新文件(A'+B)   *原来的文件(A'+A"xlh)可以被恢复,方法是使用CDRFS系统中的"xlh历史"xlh(History)功能。(Macintosh机上的CDRFS系统不支持这种"xlh历史"xlh功能)。 #3  与普通的CD-ROM驱动器兼容   CDRFS光盘可以在CD-R驱动器或普通的CD-ROM驱动器上读出,为了使CDRFS光盘能在普通的CD-ROM驱动器上读出则必须对光盘使用"xlh冻结"xlh(Freeze)操作。   "xlh冻结"xlh操作是使用CD-R驱动器在CDRFS光盘上增加一张目录表。CD-ROM驱动器需要通过这张表找到盘上的文件定位,但CD-R驱动器不需要读这张目录表,因此,无论是否对CDRFS光盘进行"xlh冻结"xlh操作,CD-R驱动器总可以读出你的CDRFS光盘。当"xlh冻结"xlh一张CDRFS光盘后,你仍然可以通过CD-R驱动器在这张光盘上添加,删除或编辑文件和目录,但这样你必须再"xlh冻结"xlh一次光盘才能使它可以继续在CD-ROM驱动器上被读出。另外能读出CDRFS光盘的CD-ROM驱动器必须是具有读"xlh多会话区数据记录包"xlh技术的。 #3  恢复被删除的数据   因为CD-R是一次性写入设备,所以永远也不可能在CD-R光盘上真正删除数据,每次存入的数据都将在盘上永久保存。如果删除一个文件,也许不会再看见它,但它仍然隐藏在盘上。只有一个途经可以恢复这些被删掉的文件,就是使用"xlh历史"xlh(History)功能。   每次你"xlh冻结"xlh盘并取出,或添加,删除,编辑达到一个特定的数据量时,CDRFS都会在内存中存入一个记有盘上目录的简短的描述—"xlhSnapshot"xlh,这被称为盘的"xlh历史"xlh。选择"xlh历史"xlh功能,就可以通过"xlhSnapshot"xlh将隐藏在盘上的过去的数据恢复。   ●CDRFS的内部技术   CDRFS系统涉及一些光盘的技术,CD-R格式,以及操作系统方面的知识。CDRFS光盘的格式主要就是指盘上面数据流的排列,这种排列按CDRFS系统的规格要求,涉及到格式化CD-R光盘,以及"xlh冻结"xlhCD-R光盘等一系列特定的操作。一张未格式化的CD-R光盘的上面是没有任何数据的,因此CD-ROM驱动器不可能读出这张盘,空白的CD-R光盘经格式化后应该有图2的格式:   CDRFS系统在光盘上建立一个数据会话区(session),这样CD-ROM驱动器就可以识别这张光盘。用户如果选择"xlh嵌入驱动程序"xlh选项(Embed Driver),CDRFS系统还能将安装程序和CD-R的驱动程序作为只读文件放入第一数据会话区中作为ISO-9660标准的映像文件。如果你将这样一张CDRFS光盘放入一个计算机系统,而这个计算机系统正好没有安装正确的驱动程序,那么这张CDRFS光盘上的安装程序可以自动将驱动程序安装到所用的计算机系统中。   每个会话区的开始位置有一个区域叫PVD(Primary Volume Descriptor)这个区域用来管理文件信息。CDRFS系统将一个唯一的标志号放在PVD中用来识别一张CDRFS光盘。所有有关文件和目录的信息都被放在SVD(Secondary Volume Descriptor)中用来进行文件和目录的查找。同样的SVD被写入第一会话区的未尾和第二会话区的开始,这是因为CD-ROM驱动器只能读有"xlh引入"xlh(LI:Lead IN)和"xlh引出"xlh(LO:Lead Out)标志区的第一会话区。但CD-R要使用第二会话区的SVD为下一次数据的写入作好准备。   当文件和目录被改变时,通常数据被放入第二会话区,但有时数据是在高速缓存里,在这些信息被全部写盘之前,CDRFS有时使用高速缓存区临时存放信息(见图3)。     当用户选同步高速缓存选项或从驱动器中将盘取出时,CDRFS将所有放在内存中的数据写入盘上,并在后面写入一个SVD(见图4)。   最后一个编号的SVD总是写在最后位置。这样,当盘重新插入驱动器后,CDRFS系统总是找出PVD和SVD。如果SVD3是最后一个SVD,CDRFS系统将根据SVD3中的信息找出所有数据。SVDI和SVD2 被用来寻找过去的存盘映像或盘的"xlh历史"xlh。   放有文件内容的第二会话区通常不能在CD-ROM驱动器上读出,因为它没有"xlh引入"xlh(LI)和"xlh引出"xlh(LO)标志区,如果你希望能在CD-ROM驱动器上使用,则必须在使用之前给盘加上"xlh引入"xlh和"xlh引出"xlh标志区,这个操作就是"xlh冻结"xlh(Freezing)盘。"xlh冻结"xlh后,第二会话区就有了必要的"xlh引入"xlh和"xlh引出"xlh标志区,这样该盘就可以在CD-ROM驱动器中使用(见图5)。   正如前面所提到的,"xlh冻结"xlh操作使CDRFS光盘可以在CD-ROM驱动器上读出,在加入"xlh引入"xlh和"xlh引出"xlh标志区的同时还加一个SVD作为第三会话区开始以便下一次数据写入。这样CD-ROM驱动器能读出第二会话区以前的所有数据而同时CD-R驱动器能在第三会话区中添加,修改更多的文件。另外,这种"xlh冻结"xlh操作要耗费13.5MB的存贮空间(见图6)。   当你"xlh冻结"xlh一张CDRFS光盘时,你还可以选择"xlh写保护"xlh(Write Protect)模式,如果这种模式被采用,CDRFS就不建立下一个会话区的SVD,而这张盘就成为一张只读盘,因为CDRFS系统必须找到下一个SVD才能写入数据。当盘的容量被占满时,CDRFS将自动为该盘选择"xlh写保护"xlh模式。   既然CD-R是一次性写入技术,那么CDRFS是如何使它看起来象可重写的呢?这里主要涉及到两个操作,一个是删除文件,另一个是修改文件。下面以图示说明在这两个操作中,CDRFS系统的文件结构。   当一个文件被删除时,CDRFS将添加一些文件信息,及通过新的FCB和SVD来重新定位文件指向。图7和图8清楚地反映了文件删除前和删除后存盘的映像:   图7的SVD指向FCB(File Control Block文件控制块),而FCB指向文件A和文件B。   图8中新的SVD指向新的FCB,新的FCB只指向文件A,文件B被删掉。   当对文件进行修改并存盘时,也用到类似的方法。图9和图10清楚地反映了对文件B进行修改前和修改后的存盘映像。   图9的SVD指向FCB,FCB指向文件A和文件B。    图10表明文件B已被修改,新的SVD指向新的FCB,新的FCB指向文件A和文件B以及文件B修改后的增加部分。   因为CDRFS软件能自动集成到操作系统中,所以用户只需知道一般的操作系统指令或应用软件指令就可以了。   总体上来看,CDRFS系统由三部分构成,其主要部分是文件系统驱动程序(File System Driver),第二部分是低水平设备驱动程序(Low level Device Driver),这是用来处理不同的CD-R驱动器,第三部分是应用软件(Utility Software)。文件系统驱动程序和设备驱动程序被装入操作系统并作为操作系统的一部分运行,应用软件提供一些特定功能专用于CD-R设备,例如CDRFS光盘的"xlh格式化"xlh,"xlh历史编辑器"xlh等。图11表示了各个CDRFS系统模块和操作系统的相互关系。   ●CDRFS的背景及兼容性   大部分CD格式以ISO-9660以为标准,但ISO-9660标准是1985年制定的,主要以CD-ROM作为参考对象,并没有考虑到CD-R的写盘操作,不适用于现有的CD-R的应用。为此,索尼公司开发了CDRFS,并享有所有权,但将其免费提供给计算机制造商,CD-R驱动器制造商,各级分销商等。用户可以通过互联网络从索尼公司的站点中下载CDRFS系统的试用版。网络地址是:http://www.sony.co.jp/productspark/consumer。在索尼公司广泛的许可下,许多销售商都可以提供CDRFS系统,CDRFS系统的驱动程序是嵌入在每张格式化过的CDRFS光盘里的。   由于CDRFS采用"xlh数据包记录"xlh技术向CD-R光盘写入数据,这就要求有一些"xlh联接区域"xlh来将各个"xlh数据包"xlh联接起来,这种"xlh联接区域"xlh占用了一定的存贮空间,使盘的总容量下降至大约520MB。另外,这种"xlh联接区域"xlh还使得读盘速度下降至正常速度的80%左右。但CDRFS极大地利用了数据流和高速缓存技术以提高工作速度,因此用户在读盘时感觉不到和正常状态有什么不同。写盘的速度和软盘相比要快许多,在Windows的多任务环境下,你甚至可以采用后台方式写盘。   目前,市场上的CD-ROM驱动器中,有些与CDRFS系统不兼容,这主要因为CDRFS系统采用了新的写盘技术"xlh数据包记录"xlh,老一些的CD-ROM驱动器不支持这种技术。表列出了经索尼公司测试,被认为与CDRFS系统兼容的各种品牌的CD-ROM驱动器。