可扩展文件系统的制作方法

文档序号:6603423阅读:221来源:国知局
专利名称:可扩展文件系统的制作方法
可扩展文件系统本申请是申请人于2005年11月17日提交的、申请号为“200510125054. 1”的发 明名称为“可扩展文件系统”的发明专利申请的分案申请。相关申请的交叉引用本申请要求于2004年12月17日提交的名为FILE SYSTEM FORMAT F0RP0RTABLE MEDIA (用于便携式介质的文件系统格式)的美国专利临时申请第60/637,407号的优先权, 美国专利临时申请第60/637,407号通过引用包含在此。
背景技术
一般而言,存在众多便携式计算设备,诸如数码照相机、数码摄像机、媒体播放器、 移动电话、移动计算设备、个人数字助理等,它们在诸如便携式存储介质等存储介质上维护 数据。更复杂的便携式计算设备和更大存储容量的便携式存储介质的持续发展对在存储 介质上使用的文件系统格式的灵活性提出更高的要求。在可以为增加的存储大小容量和/ 或存储媒体应用程序提供足够的灵活性这方面,目前的文件系统格式方法可能会变得不完
口 o

发明内容
提供了用于便携式存储介质的可扩展文件系统格式。该可扩展文件系统格式包括 可以被自定义地定义的一级和二级目录项类型的规范。一级和二级目录项类型可以被进一 步分为关键和良性目录项。根据本发明的一方面,提供了一种含有用于存储数据的计算机可执行组件的计算 机可读介质。该计算机可读组件可以包括用于为文件系统指定引导参数的引导参数组件。 该计算机可读组件还包括用于定义与文件系统相关联的文件分配表的文件分配表组件。另 外,该计算机可读组件包括用于指定文件系统根目录中的数据的一级目录项组件。此外,计 算机可读组件包括对应于一级目录项组件的至少一个二级目录项组件。二级目录项组件定 义了与一级目录项组件相关联的元数据。一级和二级目录项组件可以被进一步分为关键的 或良性的。根据本发明的另一方面,提供了含有用于存储数据的计算机可执行组件的计算机 可读介质。该计算机可读组件包括用于为文件系统指定引导参数的引导参数组件。该计算 机可读组件也包括用于定义与文件系统相关联的文件分配表的文件分配表组件。此外,该 计算机可读组件包括用于指定文件系统根目录中的数据的根目录组件。另外,该计算机可 读组件包括对应于根目录项组件的至少一个可扩展元数据组件。元数据组件定义了与根目 录项组件相关联的元数据。在说明性实施例中,文件系统不会为未识别的一级或根目录项安装卷。文件系统 可以忽略未识别的良性一级目录项、关键二级目录项和良性二级目录项。提供该概述来以简化的形式介绍了在下文的具体实施方式
中进一步描述的一组 概念。该概述不旨在标识所要求保护主题的关键特征,也不旨在用于协助确定所要求保护的主题的范围。


当结合附图,通过参考下文的详细描述,本发明的前述方面和众多伴随的优点将 更容易理解和更好地领会,附图中图1A-1C是示出根据本发明的各方面,包括实现可扩展文件系统格式的便携式计 算设备和存储设备的说明性环境的框图;图2是示出根据本发明的各方面,对应于可扩展文件系统格式的各种卷布局组件 的框图;图3是示出根据本发明的各方面,包括一级和二级目录项结构的可扩展文件系统 目录结构的框图;图4是示出根据本发明的各方面,用于实现可扩展文件系统格式中的引导进程块 的数据组件的框图;图5是示出根据本发明的各方面,用于实现可扩展文件系统格式中的目录项的数 据组件的框图;图6是示出根据本发明的各方面,用于实现可扩展文件系统格式中的文件名和扩 展名的数据组件的框图;图7是示出根据本发明的各方面,用于实现可扩展文件系统格式中的卷标识符的 数据组件的框图;图8是示出根据本发明的各方面,用于实现可扩展文件系统格式中的可扩展目录 项的数据组件的框图;图9是示出根据本发明的各方面,用于实现可扩展文件系统格式中的可扩展目录 项的数据组件的框图;图10是示出根据本发明的各方面,用于实现可扩展文件系统格式中的访问控制 列表的数据组件的框图;以及图11是示出根据本发明的各方面,可扩展文件系统格式的文件名创建例程的流 程图。
具体实施例方式一般而言,本发明涉及可扩展文件系统格式和与可扩展文件系统格式相关联的各 种进程。在一个说明性实施例中,可扩展文件系统格式对应于用于便携式存储介质的可扩 展文件系统格式和与便携式存储介质上的可扩展文件系统格式相关联的各种进程。尽管本 发明将关于便携式存储介质文件系统格式来描述,然而相关领域的技术人员可以理解,所 揭示的实施例在本质上是说明性的,且不应被解释为限制。另外,相关领域的技术人员可以 理解,说明性示例中使用的数据结构和数据布局可能需要关于性能、安全等的额外信息。图1A-1C是示出本发明的可扩展文件系统格式的各种操作环境100的框图。参考 图1A,在一个说明性实施例中,可扩展文件系统格式用来存储来自诸如移动计算设备102 等计算设备和诸如便携式存储介质104等存储介质的数据。在一个说明性实施例中,移动 计算设备102可以对应于各种计算设备中的任何一个,包括但不限于,便携式计算设备、移动电话、个人数字助理、音乐播放器、媒体播放器。便携式存储介质可以包括,但不限于,硬 盘驱动器、闪存介质、微驱动器以及其它存储介质。在一个说明性实施例中,便携式存储介 质104上的可扩展文件系统格式不必包括诸如操作环境等由移动计算设备102利用的任何 类型的可执行或可读软件组件。或者,便携式存储介质104上的可扩展文件系统格式可以 包括由移动设备102使用的可执行或可读软件组件。在一个说明性实施例中,移动计算设备102可以与其它计算设备通信,用于收集/ 交换将存储在便携式存储介质104上的数据。参考图1B,移动计算设备102可以与另一个 计算设备106和存储介质108直接通信。在一个说明性实施例中,直接通信可以对应于各 种有线或无线通信方法。在一个说明性实施例中,不要求其它存储介质108根据本发明的 可扩展文件系统格式来格式化。参考图1C,以类似的方式,移动计算设备102也可以通过网 络连接与另一个计算设备110和存储介质112通信。在一个说明性实施例中,网络连接可 以对应于局域网(LAN)和广域网(WAN)连接。现在参考图2,将描述可扩展文件系统格式的说明性实施例卷布局200。卷布局 200包括引导参数组件202,该组件包括关于分区的文件系统参数的描述各种信息。在一个 说明性实施例中,引导参数组件202可以包括用于从定义的分区进行程序引导的代码、该 定义的分区的基本文件系统参数以及各种检错信息。用于定义至少一部分引导参数的数据 结构将在下文关于图4描述。卷布局200也包括由OEM参数204指定的可扩展参数组件,该组件定义了结合文 件系统所使用的各种附加数据结构。在一个说明性实施例中,原始设备制造商(OEM)可以 指定能够在制造时定义的各种可扩展数据结构,诸如存储介质的性能参数。卷布局200还 可以包括定义文件和目录分配的文件分配表组件206。在一个说明性实施例中,文件分配表 组件206中的每一项对应于表示已分配的簇、未分配的簇或不可用的簇的32位项。卷布局 200还可包括对应于根据文件系统格式存储的数据的一系列文件数据组件208A-208X。用 于定义一部分文件数据组件208A-208X的各种数据结构将关于图3-10定义。现在转向图3,在一方面,文件数据组件208可以包括依照目录结构300的一个或 多个目录项。在一个说明性实施例中,目录结构300被组织成一级目录项302和二级目录 项304。一级和二级项中的每一目录项是类型化的。例如,在一个说明性实施例中,一级和 二级目录项的类型值可以对应于1-255的范围。一级目录项302对应于文件系统的根目录 中的项。二级目录项304跟随一级目录项并与一级目录项相关联。二级目录项扩展与相关 的一级目录项相关联的元数据。继续参考图3,在一个说明性实施例中,一级目录项302可以被进一步分类为关键 一级目录项306和良性一级目录项308。关键一级目录项306为每一目录项定义潜在不同 的格式。在一个说明性实施例中,如下所述,操作环境不会安装对应于具有未知关键一级目 录项的可扩展文件系统格式的卷。已知一级目录项306的示例可以包括分配位图、大写字 符表、卷标、加密密钥和正常目录项。良性一级目录项308也为每一目录项定义潜在不同的 格式,但是如果特定良性一级目录项不被理解时,可以被文件系统忽略。良性一级目录项 308可以与链接卷的另一簇相关联。另外,良性一级目录项308也可以与众多二级目录项 304相关联。以类似于一级目录项302的方式,二级目录项304也可以被进一步分为关键二级目录项310和良性二级目录项312。如上所述,关键二级目录项310和良性二级目录项312 与良性一级目录项相关联,且扩展与一级目录项相关联的元数据。关键二级目录项310和 良性二级目录项312都可以与链接卷的另一簇相关联。为了将对应的卷安装至可扩展文件系统格式,文件系统实现安装卷过程。在一个 说明性实施例中,安装卷过程试图查看卷的版本号。如果版本号不被理解(例如,该版本号 更高),那么不安装该卷。在正常目录枚举过程中,文件系统未知的任何关键一级目录项将 阻止安装卷。之后,诸如文件打开等各种用户启动的进程将使文件系统枚举二级目录项。如 果关键二级目录项310不被文件系统已知,那么将跳过整个目录项。另外,如果良性二级目 录项312不被文件系统已知,那么将忽略特定的未知良性二级目录项。现在参考图4,将描述示出用于实现引导参数组件202(图2)中的引导进程块的数 据组件400的框图。数据组件400包括用于为存储介质的文件系统格式指定名称的OEM命 名组件402。数据组件400也包括用于指定存储在文件系统中的数据的各种特征的数据大 小描述符组件404。例如,数据大小描述符组件404可以指定每一扇区的字节数、每一分配 单元的扇区数、FAT表偏移量以及对所有数据结构的扇区计数。数据组件包括用于指定文 件系统上多个现用FAT的现用FAT标记组件406。在一个说明性实施例中,文件系统可以支 持多个FAT,用于与某些操作系统环境一起使用。数据组件400还可以包括用于标识卷序号 和/或版本号的卷标识组件408。此外,数据组件400可以包括用于为文件系统指定文件系 统格式的文件系统类型。相关领域的技术人员可以理解,数据组件400可以包括用于实现 上文标识的组件402-410和其它组件的多个附加/替换行。现在转向图5,描述示出用于实现可扩展文件系统格式中的目录项的数据组件 500的框图。现在转向图6,将描述用于实现文件名和扩展名的数据组件500的框图。数据 组件500包括用于指定特定目录项是否在使用中的使用中组件502。在一个说明性实施例 中,如果该目录项在使用中,那么该数据组件的高位将被置为“ 1 ”。数据组件500还包括用 于指定目录项与正常目录项相关联的类型指定组件504。数据组件500还包括用于指定与 该正常目录项相关联的多个二级目录项的二级目录项组件506。数据组件500也包括用于 为目录项指定各个文件系统属性的文件属性组件508。此外,数据组件500包括用于指定 诸如创建时戳、修改时戳以及其它时间信息等各种时间信息的时间组件510。另外,数据组 件500还包括用于为最近创建的时戳指定时区的时区组件512。相关领域的技术人员可以 理解,数据组件500可以包括用于实现上文标识的组件502-512以及其它组件的多个附加 /替换行。现在转向图6,描述了用于实现文件名和扩展名的数据组件600的框图。数据组件 600包括用于指示特定目录项是否在使用中的使用中组件602。在一个说明性实施例中,如 果目录项在使用中,那么该数据组件的高位将被置为“ 1 ”。数据组件600还包括用于指定目 录项与文件系统名相关联的类型指定组件604。数据组件还包括文件名长度组件606和文 件名散列组件608。文件名散列组件608的使用将在下文描述。数据组件600也包括用于 指定文件名的文件名组件610。相关领域的技术人员可以理解,数据组件600可以包括用于 实现上文标识的组件602-610以及其它组件的多个附加/替换行。另外,文件名目录项可 以由二级目录项扩展。现在参考图7,提供了示出用于实现可扩展文件系统格式中的卷标识符的数据组件700的框图。数据组件700包括用于指定特定目录项是否在使用的使用中组件702。在 一个说明性实施例中,如果目录项在使用中,那么该数据组件的高位将被置为“ 1 ”。数据组 件700还包括用于指定目录项与卷标识符相关联的类型指定组件704。数据组件700还包 括用于指定与该卷标识符相关联的多个二级目录项的二级目录项组件706。数据组件700 也包括卷标识符708,诸如全局唯一标识符。相关领域的技术人员可以理解,数据组件700 可以包括用于实现上文标识的组件702-708以及其它组件的多个附加/替换行。另外,在 一个说明性实施例中,数据组件700对应于可以被不支持卷标识符的文件系统忽略的良性 目录项。现在参考图8和9,在一个说明性实施例中,诸如OEM等各方能够定义特定良性一 级目录项类型308和良性二级目录项类型312。如上所述,如果文件系统不能识别或理解特 定良性一级目录项类型308或者良性二级目录项312中的任一个,那么文件系统可以忽略 所定义的目录项类型。参考图8,将描述示出用于在可扩展文件系统格式中实现可扩展良性一级目录项 308的数据组件800的框图。数据组件800包括用于指示特定目录项是否在使用的使用中 组件802。在一个说明性实施例中,如果目录项在使用中,那么该数据组件的高位将被置为 “1”。数据组件800还包括用于指定目录项是良性一级目录项的类型指定组件804。数据组 件800还包括用于指定与卷标识符相关联的多个二级目录项的二级目录项组件806。数据 组件800也包括卷标识符808,诸如全局唯一标识符。数据组件800还可以包括附加信息 810,诸如验证信息和起始簇。相关领域的技术人员可以理解,数据组件800可以包括用于 实现上文标识的组件802-806以及其它组件的多个附加/替换行。参考图9,将描述示出用于在可扩展文件系统格式中实现良性二级目录项的数据 组件900的框图。数据组件900包括用于指定特定目录项是否在使用中的使用中组件902。 在一个说明性实施例中,如果目录项在使用中,那么该数据组件的高位将被置为“ 1 ”。数据 组件900还包括用于指定目录项是良性一级目录项的类型指定组件904。数据组件900还 包括用于指定与卷标识符相关联的多个二级目录项的二级目录项组件906。数据组件900 也包括卷标识符908,诸如全局唯一标识符。数据组件900还可以包括附加信息910,诸如 验证信息和起始簇。相关领域的技术人员可以理解,数据组件900可以包括用于实现上文 标识的组件902-906以及其它组件的多个附加/替换行。在一个说明性实施例中,良性一级目录项和/或二级目录项可以与访问控制列表 (ACL)信息相关联。图10是示出用于在可扩展文件系统格式中实现访问控制列表的数据组 件1000的框图。数据组件100包括用于指定特定目录项是否在使用中的使用中组件1002。 在一个说明性实施例中,如果目录项在使用中,那么该数据组件的高位将被置为“ 1 ”。数据 组件1000还包括用于指定目录项是ACL目录项的类型指定组件1004。数据组件100还包 括多个ACL字段1006,诸如ACL标记、指向ACL数据库的指针等。相关领域的技术人员可以 理解,数据组件1000可以包括用于实现上文标识的组件1002-1006以及其它组件的多个附 加/替换行。现在参考图11,将描述可扩展文件系统格式的文件名创建例程1100。在框1102 处,文件系统获得创建具有特定文件名的目录项的请求。在一个说明性实施例中,该特定文 件名可以对应于命名约定,诸如数码照相机图片命名约定。在框1104处,文件系统生成目标名散列。在框1106处,通过检查下一目录项散列值来开始迭代循环。用于存储目录项散 列值的说明性目录项类型在上文中关于数据组件600(图6)描述。在判定框1108处,进行测试来确定目标散列值是否匹配当前目录项散列值。如果 它们不匹配,那么例程1100返回至框1106 (直到检查完所有目录项)。如果在判定框1108 处,散列值匹配,那么文件系统获取可能匹配的目录项的完整文件名。用于存储目录项完整 文件名的说明性目录项类型在上文中关于数据组件600(图6)描述。在判定框1112处,进 行测试来确定目标文件名是否匹配可能匹配目录项的完整文件名。如果是,那么例程1100 通过报告冲突来终止,且要求文件系统选择新的文件名。如果完整文件名不匹配,那么例程 1100将返回到框1106来继续为文件系统中的所有目录项检查散列值。根据本发明的各方面,通过指定特定目录类型可以添加各种额外的功能。例如,可 以通过指定名称流目录项来支持名称流。另外,也可以通过使用特定加密算法和密钥交换 来支持盘上加密。此外,时区转化可以与目录项相关联,以自动地将当前时区与制造目录项 的时区转化。尽管示出和描述了说明性实施例,但是可以理解,可以在其中进行各种修改而不 背离本发明的精神和范围。
权利要求
在具有对应于多个目录项的计算机可读组件的计算机可读介质中,其中所述目录项的至少一个子集对应于数据名目录项,一种用于处理目录项的方法,包括获取一新目录项的目标文件名;生成所述目标文件名的标识符;对于所述多个目录项中的每个数据名目录项,将所述目标文件名的标识符与每个数据名目录项的文件名的标识符进行比较;以及在所述目标文件名的标识符与数据名目录项中的任意一个的文件名的标识符不匹配时,选择所述新目录项的所述目标文件名。
2.如权利要求1所述的方法,其特征在于,生成所述目标文件名的标识符包括生成所 述目标文件名的散列,并且将所述目标文件名的标识符与每个目录项的文件名进行比较包 括将所述目标文件名的散列与存储在所述数据名目录项中的文件名散列进行比较。
3.如权利要求1所述的方法,其特征在于,还包括确定所述目标文件名的标识符与数据名目录项中的至少一个文件名的标识符相匹配;获取匹配数据名目录项中的完整文件名;将所述目标文件名与所述匹配数据名目录项中的完整文件名进行比较;以及在所述目标文件名与所述匹配数据名目录项中的完整文件名不匹配时,选择数据的所 述目标文件。
4.如权利要求3所述的方法,其特征在于,还包括在所述目标文件名与所述匹配数据 名目录项中的完整文件名相匹配时,拒绝数据的所述目标文件名。
5.如权利要求3所述的方法,其特征在于,还包括在所述目标文件名与每个目录项的 完整文件名相匹配时,将所述目标文件名标识为与现有的目录项相匹配。
6.如权利要求1所述的方法,其特征在于,获取目标文件名包括获取文件创建请求。
7.如权利要求1所述的方法,其特征在于,获取目标文件名包括获取文件修改请求。
8.在具有对应于多个目录项的计算机可读组件的计算机可读介质中,其中所述目录项 的至少一个子集对应于包括完整文件名和文件名标识符的数据名目录项,一种用于处理目 录项的方法,包括获取一新目录项的目标文件名;生成所述目标文件名的标识符;对于所述多个目录项中的每个数据名目录项,将所述目标文件名的标识符与来自所述 数据名目录项的文件名标识符进行比较;以及在所述目标文件名的标识符与所述数据名目录项中的任意一个的文件名标识符不匹 配时,生成所述目标文件名的新数据名目录项。
9.如权利要求8所述的方法,其特征在于,生成所述目标文件名的标识符包括生成所 述目标文件名的散列,并且将所述目标文件名的标识符与每个目录项的文件名的标识符进 行比较包括将所述目标文件名的散列与存储在所述数据名目录项中的文件名散列进行比 较。
10.如权利要求8所述的方法,其特征在于,还包括确定所述目标文件名的标识符与所述数据名目录项中的至少一个文件名标识符相匹配;获取一个或多个匹配数据名目录项的完整文件名; 将所述目标文件名与所述匹配数据名目录项的完整文件名进行比较;以及 在所述目标文件名的标识符与所述数据名目录项中的任意一个的文件名标识符不匹 配时,生成所述目标文件名的新数据名目录项。
11.如权利要求10所述的方法,其特征在于,还包括在所述目标文件名与所述匹配数 据名目录项的完整文件名相匹配时,拒绝数据的所述目标文件名。
12.如权利要求10所述的方法,其特征在于,还包括在所述目标文件名与每个目录项 的完整文件名相匹配时,将所述目标文件名标识为与现有的目录项相匹配。
13.如权利要求9所述的方法,其特征在于,获取目标文件名包括获取文件创建请求。
14.如权利要求9所述的方法,其特征在于,在所述目标文件名的标识符与所述数据名 目录项中的任意一个的文件名标识符不匹配时,生成所述目标文件名的新数据名目录项包 括生成包括所述目标文件名和所述目标文件名的标识符的数据名目录项。
15.在具有对应于多个目录项的计算机可读组件的计算机可读介质中,其中所述目录 项的至少一个子集对应于数据名目录项,一种用于处理目录项的方法,包括获取一新目录项的目标文件名; 生成所述目标文件名的散列;对于所述多个目录项中的每个数据名目录项,将所述目标文件名的散列与每个数据名 目录项的文件名的散列进行比较;在所述目标文件名的标识符与数据名目录项中的任意一个的文件名的标识符匹配时, 选择所述新目录项的所述目标文件名;以及在所述目标文件名的标识符与所述数据名目录项中的任意一个的文件名标识符不匹 配时,生成所述目标文件名的新数据名目录项。
16.如权利要求15所述的方法,其特征在于,还包括确定所述目标文件名的标识符与所述数据名目录项中的至少一个文件名标识符相匹配;获取一个或多个匹配数据名目录项的完整文件名; 将所述匹配数据名目录项的完整文件名与所述目标文件名相比较;以及 在所述目标文件名的标识符与所述数据名目录项中的任意一个的文件名标识符不匹 配时,生成所述目标文件名的新数据名目录项。
17.如权利要求16所述的方法,其特征在于,还包括在所述目标文件名与所述匹配数 据名目录项的完整文件名相匹配时,拒绝数据的所述目标文件名。
18.如权利要求16所述的方法,其特征在于,还包括在所述目标文件名与每个目录项 的完整文件名相匹配时,将所述目标文件名标识为与现有的目录项相匹配。
19.如权利要求15所述的方法,其特征在于,在所述目标文件名的标识符与所述数据 名目录项中的任意一个的文件名标识符不匹配时,生成所述目标文件名的新数据名目录项 包括生成包括所述目标文件名和所述目标文件名的标识符的主要目录项。
20.如权利要求15所述的方法,其特征在于,获取目标文件名包括获取文件创建请求。
全文摘要
提供了用于便携式存储介质的可扩展文件系统格式。该可扩展文件系统格式包括可以自定义地定义的一级和二级目录项类型的规范。一级和二级目录项类型可以被进一步地分为关键和良性目录项。
文档编号G06F17/30GK101853302SQ20101018902
公开日2010年10月6日 申请日期2005年11月17日 优先权日2004年12月17日
发明者M·J·兹比科夫司基, R·S·蒂恩德, R·V·普迪佩蒂, S·C·哈弗瓦拉, V·V·戈特吉 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1