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

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

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


当结合附图,通过参考下文的详细描述,本发明的前述方面和众多伴随的优点将更容易理解和更好地领会,附图中图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来继续为文件系统中的所有目录项检查散列值。
根据本发明的各方面,通过指定特定目录类型可以添加各种额外的功能。例如,可以通过指定名称流目录项来支持名称流。另外,也可以通过使用特定加密算法和密钥交换来支持盘上加密。此外,时区转化可以与目录项相关联,以自动地将当前时区与制造目录项的时区转化。
尽管示出和描述了说明性实施例,但是可以理解,可以在其中进行各种修改而不背离本发明的精神和范围。
权利要求
1.一种含有用于存储数据的计算机可执行组件的计算机可读介质,所述计算机可读组件包括引导参数组件,用于为文件系统指定引导参数;文件分配表组件,用于定义与所述文件系统相关联的文件分配表;一级目录项组件,用于指定所述文件系统根目录中的数据;以及至少一个二级目录项组件,它对应于所述一级目录项组件,且定义与所述一级目录项组件相关联的元数据。
2.如权利要求1所述的计算机可读组件,其特征在于,所述一级目录项组件是所述文件系统必须理解的关键一级目录项组件。
3.如权利要求1所述的计算机可读组件,其特征在于,所述一级目录项组件是如果所述文件系统未知则可以被忽略的良性一级目录项组件。
4.如权利要求1所述的计算机可读组件,其特征在于,所述二级目录项组件是如果所述文件系统未知则会导致所述一级目录项组件和所述二级目录项组件被忽略的关键二级目录项。
5.如权利要求1所述的计算机可读组件,其特征在于,所述二级目录项组件是如果所述文件系统未知则可以被忽略的良性二级目录项。
6.如权利要求1所述的计算机可读组件,其特征在于,还包括两个二级目录项组件,它们对应于所述一级目录项组件,并定义与所述一级目录项相关联的元数据。
7.如权利要求1所述的计算机可读组件,其特征在于,所述一级目录项组件对应于定义存储介质内的簇可用性的分配位图。
8.如权利要求1所述的计算机可读组件,其特征在于,所述一级目录项组件对应于卷标识符。
9.如权利要求1所述的计算机可读组件,其特征在于,所述一级目录项组件对应于文件名标识符。
10.如权利要求9所述的计算机可读组件,其特征在于,所述文件名标识符包括完整文件名和文件名散列。
11.如权利要求1所述的计算机可读组件,其特征在于,所述至少一个二级目录项对应于可扩展二级目录项。
12.如权利要求1所述的计算机可读组件,其特征在于,还包括用于指定制造商数据结构的制造商数据组件。
13.一种含有用于存储数据的计算机可执行组件的计算机可读介质,所述计算机可读组件包括引导参数组件,用于为文件系统指定引导参数;文件分配表组件,用于定义与所述文件系统相关联的文件分配表;用于指定所述文件系统的根目录中的数据和与所述根目录中的数据相关联的元数据的装置。
14.如权利要求13所述的计算机可读组件,其特征在于,所述用于指定文件系统的根目录中的数据和与根目录中的数据相关联的元数据的装置对应于用于指定所述文件系统的根目录中的数据的一级目录项组件。
15.如权利要求14所述的计算机可读组件,其特征在于,所述一级目录项组件可以对应于关键一级目录项。
16.如权利要求14所述的计算机可读组件,其特征在于,所述一级目录项组件可以对应于良性一级目录项。
17.如权利要求13所述的计算机可读组件,其特征在于,所述用于指定文件系统的根目录中的数据和与根目录中的数据相关联的元数据的装置包括至少一个二级目录项组件,它对应于所述根目录中的数据,并定义与所述一级目录项相关联的元数据。
18.一种含有用于存储数据的计算机可执行组件的计算机可读介质,所述计算机可读组件包括引导参数组件,用于为文件系统指定引导参数;文件分配表组件,用于定义与所述文件系统相关联的文件分配表;根目录组件,用于指定所述文件系统根目录中的数据;以及至少可扩展一个元数据组件,它对应于所述根目录项组件,且定义与所述根目录项组件相关联的元数据。
19.如权利要求18所述的计算机可读组件,其特征在于,所述根目录组件是所述文件系统必须理解的关键根目录组件。
20.如权利要求18所述的计算机可读组件,其特征在于,所述根目录项组件是如果所述文件系统未知则可以被忽略的良性根目录项组件。
全文摘要
提供了用于便携式存储介质的可扩展文件系统格式。该可扩展文件系统格式包括可以自定义地定义的一级和二级目录项类型的规范。一级和二级目录项类型可以被进一步地分为关键和良性目录项。
文档编号G06F17/30GK1790328SQ20051012505
公开日2006年6月21日 申请日期2005年11月17日 优先权日2004年12月17日
发明者M·J·兹比科夫司基, R·S·蒂恩德, R·V·普迪佩蒂, S·C·哈弗瓦拉, V·V·戈特吉 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1