访问专有文件系统的方法

文档序号:6564746阅读:192来源:国知局
专利名称:访问专有文件系统的方法
技术领域
本发明涉及计算机技术,具体涉及在多操作系统情况下从一个操 作系统对另一操作系统的专有文件系统进行访问的方法。
背景技术
在当前以及未来的PC设备上,运行两个或者多个操作系统(同步或者异步)己经成为必然,比如双模式电脑的多操作系统异步运行, 以及未来支持虚拟化技术下,多操作系统同步运行等等。从用户需求的角度看,多个操作系统之间需要数据的共享,因为 这些数据都同属于用户。但是,在一个操作系统中使用另外一个操作系统的数据存在很多障碍,尤其是专有文件系统,比如NTFS。另外, 由于文件系统的不开放,导致在知识产权以及兼容性上存在相当多的 问题。现有的解决方案有两类。 一种是运行专有文件系统的虚拟环境, 通过虚拟机来完成文件的读取以及存储等,比如Captive软件操作 NTFS的方式。另一种根据已经理解的文件系统结构去重新书写文件系 统驱动,比如目前正在开发的Linux Kernel对NTFS的支持。以上这两种方式最大的问题专有文件系统的知识产权问题。对于 第二种,专有文件系统的任何改变都会导致驱动失效。因此,需要一 种新的思路去解决类似于NTFS这样专有文件系统的共享方式。NTFS 最主要的知识产权,存在于其文件系统驱动NTFS FSD和数据描述 NTFS Metadata (元数据)。上述的解决方案基本上无法回避专有文件系统的知识产权问题。 因此,需要从操作系统及软件架构的角度解决专有系统的共享问题
发明内容
鉴于现有技术的上述问题,完成了本发明。本发明的目的是提出 一种访问专有文件系统的方法,它能够在第二操作系统下访问第一操 作系统专有的文件系统。在本发明的一个方面,提供了一种描述数据的数据组织的方法, 包括步骤通过与不同的操作系统相对应的不同类型的元数据描述来描述同一数据的数据组织。根据本发明的实施例,所述步骤包括通过与第一操作系统和第 二操作系统相对应的第一元数据描述和第二元数据描述来描述同一数 据的数据组织。根据本发明的实施例,所述步骤包括在专有文件系统下增加附 加元数据描述来在不同专有系统下数据的数据组织。在本发明的另一个方面,提出了一种访问专有文件系统的方法,包括利用软件驱动来监控在第一操作系统下对专有文件系统的操作;基于监控结果形成用于描述所述专有文件系统的元数据;将所述元数 据存储在与所述专有文件系统无关的指定存储区域;以及在第二操作系统下基于所述元数据访问所述专有文件系统。根据本发明的实施例,该方法还包括步骤以日志的方式记录所 述专有文件系统的数据在所述第二操作系统下的变化。根据本发明的实施例,该方法还包括步骤基于所述日志在所述 第一操作系统下更新所述专有文件系统的数据。根据本发明的实施例,所述日志仅仅能够在所述第一操作系统下根据本发明的实施例,该所述监控步骤包括通过回调机制,截 获对所述专有文件系统的操作请求;以及通过所述第一操作系统的内 部系统调用,获得所述第一操作系统的内核数据结构,作为所述监控结果。根据本发明的实施例,所述第一操作系统是WINDOWS操作系 统,而所述第二操作系统是LINUX操作系统。利用本发明的方法,在专有文件系统运行环境中(比如,NTFS
的运行环境是微软操作系统),通过Call-Back机制,在专有文件系统 上增加Shdl。该Shell的主要功能是截获对专有文件系统的10操作, 根据这些10操作以及相应的数据块描述,在专有文件系统之外保存 一块区域,专门用来保存对数据块的描述(metadata)。这样,专有文 件系统下的数据除了本身的描述数据,还有另一套可以被解读的新的 描述数据,根据该另一套描述数据,其它的操作系统可以比较容易的 访问到原始数据块,绕开专有文件系统的数据描述部分。


通过下面结合附图对发明进行的详细描述,将使本发明的上述特征和优点更加明显,其中图l是用于说明在多操作系统情况下如何从一个操作系统访问另 一操作系统下的专有文件的软件结构示意图;图2示出了在WINDOWS系统下初始化和辅助元数据重构过程的 流程图;图3示出了启动操作系统的过程;图4示出了在WIND0WS系统下如何访问辅助元数据的流程图;以及图5示出了在LINUX系统下访问WINDOWS系统的专有文件系统的流程图。
具体实施方式
下面,参考附图详细说明本发明的优选实施方式。在附图中,虽 然示于不同的附图中,但相同的附图标记用于表示相同的或相似的组 件。为了清楚和简明,包含在这里的己知的功能和结构的详细描述将 被省略,否则它们将使本发明的主题不清楚。本发明的系统主要表现形式为一套软件以及相应的文件系统驱 动。图1就以NTFS为专有文件系统的范例,描述在Linux下,如何 通过本发明来实现多个操作系统下数据的共享。图1是用于说明在多操作系统情况下如何从一个操作系统访问另
一操作系统下的专有文件的软件结构示意图。如图1所示,辅助元数据管理器(Auxiliary metadata manager,简 称AMM) 11是一个建立在Windows平台的应用程序,主要功能是负 责管理Auxiliary Metadata中的日志内容,完成Linux系统下,写、修 改NTFS文件系统时留下的日志。另外,辅助元数据管理器11根据 日志内容,调用Windows平台的NTFS驱动14,按照日志信息,通过 介质或盘驱动器16对盘17进行真正的读写操作,以保持Metadata与 实际数据布局的一致性。图1中,Shell部分包括NTFS I/O过滤器13以及VPB过滤器 15,它通过回调(Callback)机制,截获对NTFS文件系统的操作请求, 通过Windows内核的内部系统调用,获得FCB(文件控制块)及CCB (命令控制块)等Windows内核数据结构,建立对整个NTFS文件系 统存储映像的认知。然后将该映像认知重新组织成新的映像描述形式, 即辅助元数据,存储在辅助元数据存储区域18中。另外,辅助元数据管理器11随Windows操作系统启动而启动, 并在系统中一直运行,轮询辅助元数据,当发生改变则启动日志的执 行。当系统关机时,辅助元数据管理器11收到关机信号,则关闭文 件系统IO之前,完成日志更新任务,并把自己关闭。如图1所示,NTFS I/O过滤器13挂接在Windows系统的I/O系 统管理器12上,从而截获任何对NTFS系统的操作请求。VPB过滤 器15设置在Windows系统的文件系统驱动14和介质或盘驱动器16 之间,过滤任何从文件系统驱动14发来的巻参数块VPB,从而获得 对NTFS数据的具体操作请求。这样,辅助元数据管理器11就可以用 辅助元数据来描述任何对NTFS系统的数据块的操作,并将辅助元数 据存储在与Windows系统的元数据存储区无关的辅助元数据存储区 域18中。在Linux端,构建了一个基于辅助元数据(Auxiliary Metadata) 的虚拟文件系统21,该虚拟文件系统21由辅助文件系统驱动22所驱 动,通过巻管理器23来访问辅助元数据存储区域18中的辅助元数据, 了解NTFS文件系统在磁盘上的布局,从而完成在Linux端的读写操
作。这里,对原来NTFS映像的修改(增、删及修改),通过日志操作 记录在辅助元数据存储区域18,由Shell (同步或者异步)完成修改 的更新操作。这样,可以辅助元数据的形式建立对专有文件系统的合 法共享过程。图2示出了在WINDOWS系统下初始化和辅助元数据重构过程的流程图。如图2所示,初始化过程由应用层的辅助元数据管理器11来启动完成。首先,计算机在启动时,自动加载辅助元数据管理器11 (步骤 S21)。在加载之后,辅助元数据管理器11首先检査是否存在Shell程 序(步骤S22)。如果不存在Shall程序,则启动Shell程序(步骤S23)。然后,辅 助元数据管理器11开始解释或构造辅助元数据,以在内存中构建一 个新的文件系统。构造辅助元数据的过程具体如下辅助元数据管理器11首先获 得NTFS的根FCB (文件控制块)节点(步骤S24)。然后,判断是否 有FCB (步骤S25)。如果没有,则流程结束。否则,巻管理器23获 取与当前的FCB相对应的CCB (命令控制块)禾卩VPB (巻参数块) (步骤S26)。在获得相应的CCB和VPB之后,根据对应CCB (命令控制块) 和VPB (巻参数块)数据结构中对于NTFS文件系统数据块的描述, 来组织辅助元数据的内容,并通过巻管理器23将组织的辅助元数据写 入辅助元数据存储区域18中。然后,取下一FCB (步骤S28),流程转到步骤S25,重复上述的 操作。这样,从该根节点开始,遍历所有FCB (文件控制块),根据 对应CCB (命令控制块)禾PVPB (巻参数块)数据结构中对于NTFS 文件系统数据块的描述,来组织辅助元数据的内容,最终使得辅助元 数据能够完整地表述当前NTFS文件系统的状态。图3示出了启动操作系统的过程。首先操作系统启动(步骤S31),同时,加载Shall驱动器(步骤S32)。 Shell作为Windows的一个缺
省的Driver,随系统启动而启动。在加载了 Shall驱动器之后,Shell首先检査辅助元数据存储区域 18中的辅助元数据,从其中寻找日志记录(步骤S23)。如果没有曰 志,则流程结束。否则,Shall根据日志记录,更新NTFS系统(步骤 S24)。下面对照图4描述,在辅助元数据构造完成后,当NTFS的文件 系统发生变化(文件数据更新,删增等),辅助元数据管理器11如何 更改辅助元数据来保证与NTFS文件系统数据描述的一致性。图4示 出了在WINDOWS系统下如何访问辅助元数据的流程图。NTFS I/O过滤器13随时判断当前有无对NTFS的1/0请求。如 果有,则NTFS 1/0过滤器13截获所有对NTFS的操作请求(步骤S41 ), 并按照当前时刻设立时间戳(步骤S42)。然后,NTFS 1/0过滤器13 回调到NTFS的FSD (文件系统驱动)14 (步骤S43)。当NTFS的FSD14处理完成数据布局,发送VPB (巻参数块) 到介质或盘驱动器16之前,VPB过滤器15截获处理后的信息,根 据时间戳,以及NTFSFSD的请求和FCB, CCB信息,获得该数据在 磁盘17上的映像更改(步骤S44)。然后,将本次更改,通过VPB过滤器15转化成相应的辅助元数 据,然后回调VPB(步骤S45),并判断NTFS的修改操作是否成功(步 骤S46)。如果没有成功,则流程转到步骤S44,重复上述的步骤。如 果NTFS的修改操作成功,则重新修改辅助元数据(步骤S47)。图5示出了在LINUX系统下访问WINDOWS系统的专有文件系 统的流程图。在Linux端的正常使用过程是指,Linux上的应用程序使用和访 问辅助文件系统上的数据的过程。辅助文件系统驱动22被看成一个新型的文件系统,它挂接在VFS (虚拟文件系统)21上,并作为Linux识别NTFS数据的主元数据, 通过该主元数据,Linux的应用完全可以操控NTFS所控制的数据区。当Linux上的应用程序访问NTFS文件系统对应的数据时(步骤 S51), Linux的VFS (虚拟文件系统)21首先检查辅助文件系统驱动
22是否存在(步骤S52)。如果存在其它的文件系统,则加载其它的 文件系统驱动(步骤S53)。如果不存在辅助文件系统驱动22,则调相应的文件系统驱动程序 进入到内存中来,并执行(步骤S54)。然后,辅助文件系统驱动22 首先按照约定通过巻管理器23访问辅助元数据存储区域18中的辅助 元数据(步骤S55),并依据元数据的内容构建对NTFS文件系统的数 据块描述(步骤S56)。当辅助文件系统驱动22存在时,按照其文件系统的元数据的描 述,来进行文件操作(步骤S57)。因为辅助元数据描述的是NTFS文 件系统的数据布局,所以Linux下的应用在辅助元数据指引下访问的 数据块和NTFS是同一数据。这样,就实现Linux系统对NTFS数据 的访问。辅助文件系统满足作为文件系统的各种基本要求 *能够创建,修改和删除文件*能够在安全和可控的方式共享文件并在它们之间传递信息 *能够以适于应用程序的形式来使文件的内容结构化 *能够通过它们的符号/逻辑名,而不是物理设备名称,来识别存 储的文件*能够逻辑地査看数据,而不处理更详细的物理视图同时,辅助文件系统也是一个日志型文件操作系统,它对辅助元 数据的所有修改操作,都被记录到日志中。需要注意的是,它与传统 日志文件系统并不相同,因为辅助元数据还要实现NTFS的统一,所以并不删除日志。相反,删除日志操作是在WhKk)WS系统下由Shdl驱动来完成的。上面的描述仅用于实现本发明的实施方式,本领域的技术人员应 该理解,在不脱离本发明的范围的任何修改或局部替换,均应该属于 本发明的权利要求来限定的范围,因此,本发明的保护范围应该以权 利要求书的保护范围为准。
权利要求
1. 一种描述数据的数据组织的方法,包括步骤通过与不同的操作系统相对应的不同类型的元数据描述来描述同一数据的数据组织。
2. 如权利要求l所述的方法,其特征在于,所述步骤包括通过与第一操作系统和第二操作系统相对应的第一元数据描述 和第二元数据描述来描述同一数据的数据组织。
3. 如权利要求l所述的方法,其特征在于,所述步骤包括在专有文件系统下增加附加元数据描述来在不同专有系统下数 据的数据组织。
4. 一种访问专有文件系统的方法,包括步骤利用软件驱动来监控在第一操作系统下对专有文件系统的操作;基于监控结果形成用于描述所述专有文件系统的元数据;将所述元数据存储在与所述专有文件系统无关的指定存储区域;以及在第二操作系统下基于所述元数据访问所述专有文件系统。
5. 如权利要求4所述的方法,其特征在于,还包括步骤以日志的方式记录所述专有文件系统的数据在所述第二操作系 统下的变化。
6. 如权利要求5所述的方法,其特征在于,还包括步骤 基于所述日志在所述第一操作系统下更新所述专有文件系统的数据。
7. 如权利要求6所述的方法,其特征在于,所述日志仅仅能够在所述第一操作系统下被删除。
8. 如权利要求4所述的方法,其特征在于,所述监控步骤包括通过回调机制,截获对所述专有文件系统的操作请求;以及 通过所述第一操作系统的内部系统调用,获得所述第一操作系统 的内核数据结构,作为所述监控结果。
9.如权利要求4到8之一所述的方法,其特征在于,所述第一操 作系统是WINDOWS操作系统,而所述第二操作系统是LINUX操作系
全文摘要
公开了一种访问专有文件系统的方法,以解决在一个操作系统下访问另一操作系统专有的文件系统所引起的知识产权问题。该方法包括步骤利用软件驱动来监控在第一操作系统下对专有文件系统的操作;基于监控结果形成用于描述所述专有文件系统的元数据;将所述元数据存储在与所述专有文件系统无关的指定存储区域;以及在第二操作系统下基于所述元数据访问所述专有文件系统。利用本发明的方法,可以从操作系统及软件架构的角度解决专有文件系统的共享问题。
文档编号G06F17/30GK101211358SQ200610171669
公开日2008年7月2日 申请日期2006年12月31日 优先权日2006年12月31日
发明者峰 金 申请人:联想(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1