ISO 9660 文件和目录描述符图形化说明

ISO 9660 文件和目录描述符图形化说明

概述

本文档通过图形化方式展示ISO 9660标准中关于文件和目录描述符的详细结构和内容。文件和目录描述符是ISO 9660文件系统中用于描述文件、目录及其属性的核心数据结构,包括目录记录、路径表记录和扩展属性记录三大类型。

1. 文件和目录描述符体系概览

ISO 9660文件系统通过三种主要的描述符类型来组织和管理文件及目录:

描述符类型

长度

主要用途

目录记录

可变长度

描述文件和目录的基本信息和位置

路径表记录

可变长度

快速定位目录层次结构

扩展属性记录

至少一个逻辑块

提供详细的权限控制和元数据信息

三者关系

•目录记录和路径表记录都可以关联到扩展属性记录

•目录记录用于详细描述每个文件或目录

•路径表记录提供快速的目录导航机制

•扩展属性记录提供可选的高级功能(权限、详细时间戳等)

2. 目录记录(Directory Record)

目录记录是可变长度的数据结构,用于描述文件或目录的基本信息。

2.1 目录记录字段结构

字节位置

字段名称

内容

说明

BP 1

目录记录长度(LEN_DR)

数值

8位数字,指定目录记录的字节长度

BP 2

扩展属性记录长度

数值

8位数字,0表示无扩展属性

BP 3-10

区段位置

数值

32位数字,第一个逻辑块的逻辑块号

BP 11-18

数据长度

数值

32位数字,文件节的数据长度(不包括扩展属性)

BP 19-25

记录日期和时间

数值

7字节格式

BP 26

文件标志

8位

8位标志字段

BP 27

文件单元大小

数值

8位数字

BP 28

交错间隙大小

数值

8位数字

BP 29-32

卷序列号

数值

16位数字

BP 33

文件标识符长度(LEN_FI)

数值

8位数字

BP 34至(33+LEN_FI)

文件标识符

d字符/d1字符

文件或目录的标识符

BP (34+LEN_FI)

填充字段

(00)字节

仅当LEN_FI为偶数时存在

BP (LEN_DR-LEN_SU+1)至LEN_DR

系统用途

LEN_SU字节

可选字段,保留供系统使用

2.2 目录记录日期时间格式(7字节)

目录记录使用紧凑的7字节日期时间格式,与卷描述符中的17字节格式不同:

相对字节位置

内容

范围

说明

RBP 1

年份

自1900年以来的年数

数值(例如:125表示2025年)

RBP 2

月份

1-12

数值

RBP 3

日期

1-31

数值

RBP 4

小时

0-23

数值

RBP 5

分钟

0-59

数值

RBP 6

0-59

数值

RBP 7

GMT偏移

-48至+52

15分钟间隔

特殊说明: 如果所有七个数字均为零,则表示未指定日期和时间。

2.3 文件标志(BP 26)详解

文件标志是8位标志字段,从最低有效位开始编号为0到7:

名称

值=0

值=1

0

存在性

应告知用户文件存在

无需告知用户文件存在

1

目录

不是目录

是目录

2

关联文件

不是关联文件

是关联文件

3

记录

未指定记录格式

有记录格式(由扩展属性指定)

4

保护

无所有者/组标识,任何用户可读可执行

有所有者/组标识,有权限限制

5-6

保留

应设置为0

保留用于未来标准化

7

多区

最终目录记录

非最终目录记录

重要约束:

•如果目录记录标识一个目录,则位2、3、7应设置为零

•如果文件节未关联扩展属性记录,则位3、4应设置为零

2.4 文件标识符字段

文件标识符字段的解释取决于文件标志字段的目录位(位1)的设置:

当位1=0(文件):

•用于指定文件的标识符

•字符应为d字符或d1字符、分隔符1和分隔符2

•按照7.5规定记录

当位1=1(目录):

•用于指定目录的标识符

•字符应为d字符或d1字符,或者仅包含一个(00)字节,或者仅包含一个(01)字节

•按照7.6规定记录

2.5 目录记录的顺序

目录记录应根据文件标识符字段的相对值按以下标准降序排列:

1.按文件名相对值升序排列

•较短的文件名视为右侧填充(20)字节

•比较对应字节位置的字符代码值

2.按文件扩展名相对值升序排列

•较短的扩展名视为右侧填充(20)字节

•比较对应字节位置的字符代码值

3.按文件版本号相对值降序排列

•较短的版本号视为左侧填充(30)字节

•比较对应字节位置的字符代码值

4.按文件标志字段的关联文件位的值降序排列

5.按文件节的顺序

2.6 文件属性的一致性

同一文件的每个目录记录的以下字段应包含相同的值:

•文件标志字段的存在位

•文件标志字段的目录位

•文件标志字段的关联文件位

•文件标志字段的记录位

•文件标志字段的保留位

•文件标识符字段的长度

•文件标识符字段

•填充字段

3. 路径表记录(Path Table Record)

路径表记录是可变长度的数据结构,用于快速定位目录层次结构。

3.1 路径表记录字段结构

字节位置

字段名称

内容

说明

BP 1

目录标识符长度(LEN_DI)

数值

8位数字

BP 2

扩展属性记录长度

数值

8位数字,0表示无扩展属性

BP 3-6

区段位置

数值

32位数字,目录所在第一个逻辑块号

BP 7-8

父目录编号

数值

16位数字,路径表中父目录的记录编号

BP 9至(8+LEN_DI)

目录标识符

d字符/d1字符/(00)字节

目录的标识符

BP (9+LEN_DI)

填充字段

(00)字节

仅当LEN_DI为奇数时存在

3.2 字段详解

3.2.1 目录标识符长度(BP 1)

•8位数字,指定路径表记录中目录标识符字段的字节长度

•按照7.1.1规定记录

3.2.2 区段位置(BP 3-6)

•32位数字,指定分配给目录所在区段的第一个逻辑块的逻辑块号

•按照7.3规定记录

3.2.3 父目录编号(BP 7-8)

•16位数字,指定路径表中该目录父目录的记录编号

•按照7.2规定记录

3.2.4 目录标识符[BP 9至(8+LEN_DI)]

•指定目录的标识符

•字符应为d字符、d1字符或仅一个(00)字节

•按照7.6规定记录

3.2.5 填充字段[BP (9+LEN_DI)]

•仅当"目录标识符长度"字段中的数字为奇数时,路径表记录中才应包含此字段

•如果存在,则此字段应设置为(00)

3.3 路径表类型

路径表分为两种类型,在卷描述符中有不同的位置记录:

•L型路径表(Little-Endian): 多字节数值以最低有效字节在前的方式记录

•M型路径表(Big-Endian): 多字节数值以最高有效字节在前的方式记录

每种类型都有必需位置和可选位置,可选位置的值为0表示不记录。

4. 扩展属性记录(Extended Attribute Record)

扩展属性记录是可选的数据结构,提供详细的权限控制和元数据信息。如果存在,则至少占用一个逻辑块。

4.1 扩展属性记录字段结构

字节位置

字段名称

内容

说明

BP 1-4

所有者标识

数值

16位数字,0表示未指定

BP 5-8

组标识

数值

16位数字,0表示未指定

BP 9-10

权限

16位

16位标志字段

BP 11-27

文件创建日期和时间

数字,数值

17字节格式

BP 28-44

文件修改日期和时间

数字,数值

17字节格式

BP 45-61

文件失效日期和时间

数字,数值

17字节格式

BP 62-78

文件生效日期和时间

数字,数值

17字节格式

BP 79

记录格式

数值

8位数字

BP 80

记录属性

数值

8位数字

BP 81-84

记录长度

数值

16位数字

BP 85-116

系统标识符

a字符/a1字符

32字节

BP 117-180

系统用途

未指定

64字节

BP 181

扩展属性记录版本

数值

8位数字,值为1

BP 182

转义序列长度(LEN_ESC)

数值

8位数字

BP 183-246

保留用于未来标准化

(00)字节

64字节

BP 247-250

应用程序使用长度(LEN_AU)

数值

16位数字

BP 251至(250+LEN_AU)

应用程序使用

LEN_AU字节

可变长度

BP (251+LEN_AU)至(250+LEN_ESC+LEN_AU)

转义序列

LEN_ESC字节

可变长度,可选

4.2 所有者和组标识

4.2.1 所有者标识(BP 1-4)

•16位数字,标识文件所有者

•所有者必须是"组标识"字段所标识的组的成员

•如果为0,则表示未为文件指定所有者标识,此时"组标识"字段也应为零

•按照7.2.3规定记录

4.2.2 组标识(BP 5-8)

•16位数字,指定文件所有者所属组的标识

•值从1到某个约定的数字,表示该组属于"系统"用户类别

•如果为0,则表示未为文件指定组标识,此时"所有者标识"字段也应为零

•按照7.2.3规定记录

4.3 权限(BP 9-10)详解

权限字段是16位标志字段,位从0到15编号,从记录在第10个字节位置的字节的最低有效位开始。

权限位分组

系统类用户组(位0-3):

•位0: 0=所有者可读,1=不可读

•位1: 设置为1

•位2: 0=所有者可执行,1=不可执行

•位3: 设置为1

所有者(位4-7):

•位4: 0=所有者可读,1=不可读

•位5: 设置为1

•位6: 0=所有者可执行,1=不可执行

•位7: 设置为1

组成员(位8-11):

•位8: 0=组内任何用户可读,1=仅所有者可读

•位9: 设置为1

•位10: 0=组内任何用户可执行,1=仅所有者可执行

•位11: 设置为1

所有用户(位12-15):

•位12: 0=任何用户可读,1=非组成员不可读

•位13: 设置为1

•位14: 0=任何用户可执行,1=非组成员不可执行

•位15: 设置为1

特殊说明:

•交换过程中可以忽略位0到3

•如果所有者要求,交换过程中可以忽略位4到7

4.4 日期时间字段

扩展属性记录包含四个日期时间字段,均采用17字节格式(与卷描述符相同):

1.文件创建日期和时间(BP 11-27): 指定文件信息的创建日期和时间

2.文件修改日期和时间(BP 28-44): 指定文件信息的最后修改日期和时间

3.文件失效日期和时间(BP 45-61): 指定文件中信息被视为失效的日期和时间,未指定则不失效

4.文件生效日期和时间(BP 62-78): 指定文件中信息可使用的日期和时间,未指定则立即可用

所有日期时间字段均按照8.4.26.1规定记录。

4.5 记录格式(BP 79)

记录格式字段是8位数字,用于指定文件中信息的格式:

数值

含义

0

未指定文件中记录的信息结构

1

文件中的信息是一系列固定长度的记录

2

文件中的信息是一系列可变长度的记录,RCW按7.2.1记录

3

文件中的信息是一系列可变长度的记录,RCW按7.2.2记录

4-127

保留用于未来标准化

128-255

保留供系统使用

按照7.1.1规定记录。

4.6 记录属性(BP 80)

记录属性字段是8位数字,用于指定文件中的记录在字符成像设备上显示时的特定处理方式:

数值

含义

0

每个记录前面应有一个换行符,后面应有一个回车符

1

记录的第一个字节应按照ISO 1539中规定的垂直间距进行解释

2

记录包含必要的控制信息

3-255

保留用于未来标准化

特殊说明: 如果"记录格式"字段包含零,则在交换过程中应忽略"记录属性"字段。

按照7.1.1规定记录。

4.7 记录长度(BP 81-84)

记录长度字段是16位数字,其含义取决于"记录格式"字段:

•记录格式=0: 记录长度应为零

•记录格式=1: 记录长度指定文件中每条记录的字节长度

•记录格式=2或3: 记录长度指定文件中记录的最大字节长度

按照7.2.3规定记录。

4.8 系统标识符(BP 85-116)

系统标识符字段指定能够识别并处理系统内容的系统的标识符。该系统能够处理扩展属性记录和关联的目录记录中的"系统使用"字段。

字符应为a字符或a1字符。

4.9 转义序列[BP (251+LEN_AU)至(250+LEN_ESC+LEN_AU)]

转义序列字段是可选字段。如果存在,则此字段应包含转义序列,用于指定用于解释文件内容的编码字符集。

格式要求:

•转义序列应符合ISO 2022标准

•每个转义序列中应省略转义字符(ESCAPE)

•第一个或唯一的转义序列应从字段的第一个字节开始

•每个后续的转义序列应从字段中紧随前一个转义序列最后一个字节之后的字节开始

•最后一个转义序列之后的任何未使用位置应设置为(00)

4.10 文件属性的一致性

与文件的文件节关联的扩展属性记录的以下字段应包含相同的值:

•记录格式字段

•记录属性字段

•记录长度字段(如果记录是固定长度记录)

5. 数据格式对比

5.1 日期时间格式对比

ISO 9660标准中使用两种不同的日期时间格式:

格式

长度

使用位置

精度

7字节格式

7字节

目录记录

秒级

17字节格式

17字节

卷描述符、扩展属性记录

百分之一秒级

7字节格式特点:

•紧凑,节省空间

•年份使用自1900年以来的年数(单字节)

•适用于目录记录中的快速时间戳

17字节格式特点:

•详细,精度高

•年份使用4位数字(1-9999)

•包含百分之一秒精度

•适用于需要精确时间记录的场景

5.2 字符类型

ISO 9660标准中定义了多种字符类型:

•a字符: 字母字符,用于系统标识符等

•d字符: 目录字符,用于文件标识符等

•a1字符: 补充卷描述符中的字母字符,可通过转义序列自定义

•d1字符: 补充卷描述符中的目录字符,可通过转义序列自定义

•分隔符1和分隔符2: 用于文件标识符中的特殊分隔符

6. 数值记录格式参考

文档中引用的数值记录格式:

•7.1.1: 8位数字记录格式

•7.1.2: 数字字符记录格式

•7.2: 16位数字记录格式

•7.2.1: 16位数字记录格式(LSB first)

•7.2.2: 16位数字记录格式(MSB first)

•7.2.3: 16位数字记录格式(both-byte order)

•7.3: 32位数字记录格式

•7.3.1: 32位数字记录格式(LSB first)

•7.3.2: 32位数字记录格式(MSB first)

•7.3.3: 32位数字记录格式(both-byte order)

•7.5: 文件标识符记录格式

•7.6: 目录标识符记录格式

总结

ISO 9660文件和目录描述符体系通过三种核心数据结构,完整地描述了文件系统中的文件和目录:

1.目录记录提供了文件和目录的基本信息,包括位置、大小、时间戳和标识符,是文件系统的基础数据结构。

2.路径表记录提供了快速的目录导航机制,通过记录目录的父子关系,实现高效的目录层次遍历。

3.扩展属性记录提供了高级功能,包括详细的权限控制、多个时间戳、记录格式定义和字符集转义序列,满足复杂应用场景的需求。

这种设计确保了文件系统的完整性、灵活性和可扩展性,同时支持基本的文件管理和高级的权限控制功能。

附图说明

本文档配套提供了以下图形化展示:

1.file_directory_overview.png: 文件和目录描述符关系总览图

2.directory_record_structure.png: 目录记录详细结构图

3.file_flags_structure.png: 文件标志位详细图

4.directory_datetime_format.png: 目录记录日期时间格式图

5.path_table_record_structure.png: 路径表记录结构图

6.extended_attribute_record.png: 扩展属性记录结构图

7.permission_bits_structure.png: 权限位详细图

8.record_format_types.png: 记录格式类型图

这些图表以可视化方式展示了ISO 9660标准中文件和目录描述符的复杂结构,便于理解和参考。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值