首页> 中国专利> Linux操作系统与Windows操作系统的NTFS分区数据交换的方法及装置

Linux操作系统与Windows操作系统的NTFS分区数据交换的方法及装置

摘要

本发明涉及一种在Linux操作系统与Windows操作系统下的NTFS分区数据交换的方法,该方法基于现有Linux操作系统内核已经实现对NTFS分区有限访问的基础,在Linux或Windows操作系统下将某一NTFS分区上创建一个或多个空文件;利用虚拟分区技术可将所创建的空文件在各自的系统下加载为一个或多个虚拟设备或虚拟分区,从而使得每个系统的上层应用程序可以实现对各自系统下的虚拟设备或分区完全的访问,该方法在一定程度上解决了Linux下对NTFS分区的限制性访问的问题,使得Windows和Linux的数据资源互访成为可能。同时,该方法是在底层驱动上进行的,上层已有的无论是Windows应用程序还是Linux应用程序无需进行代码修改,都可以方便的使用该方法进行Windows和Linux基于NTFS的数据共享,大大简化了使用难度。

著录项

  • 公开/公告号CN1940873A

    专利类型发明专利

  • 公开/公告日2007-04-04

    原文格式PDF

  • 申请/专利权人 联想(北京)有限公司;

    申请/专利号CN200510105155.2

  • 发明设计人 丁刚;

    申请日2005-09-28

  • 分类号G06F9/46(20060101);

  • 代理机构11243 北京银龙知识产权代理有限公司;

  • 代理人郝庆芬

  • 地址 100085 北京市海淀区上地信息产业基地创业路6号

  • 入库时间 2023-12-17 18:29:26

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2008-12-31

    授权

    授权

  • 2007-05-30

    实质审查的生效

    实质审查的生效

  • 2007-04-04

    公开

    公开

说明书

技术领域

本发明涉及双操作系统下的数据交换的方法,特别是涉及在Linux操作系统与Windows操作系统下的NTFS分区数据交换的方法。

背景技术

随着作为服务器和工作站操作系统的选择之一的Linux操作系统的日益壮大,Linux操作系统的优势不断的显露出来,其强大的自由软件资源,安全无病毒的系统环境,越来越多的吸引着对系统安全要求较高的商业用户和对性价比要求苛刻的个人PC用户,但由于Linux本身存在的一些限制,如版权问题、有限的办公、娱乐软件资源,将Linux操作系统作为PC的通用操作系统(特别是对个人PC用户)所存在的局限性愈加明显。相反,当谈及多媒体,尤其是视频编辑以及DVD光盘制作等方面的软件时,Windows操作系统是一个必不可少的操作系统。对于办公软件以及图像编辑等方面来说,Windows操作系统目前在这方面仍然处于领先地位。

因此,目前一种新的Linux系统的应用逐渐引起大家的兴趣,进而推动了Linux的发展。即,许多专业用户使用Windows系统和Linux系统的双操作系统用以相互补充。针对一台PC机,以Windows操作系统为主要操作系统,用户可以方便的利用Windows操作系统所提供给大家的强大的应用软件,方便自己的办公和学习环境,同时又利用Linux操作系统来弥补Windows操作系统所带来的不足,如针对Windows操作系统对病毒防护能力的不足,而且在Windows操作系统本身运行杀毒程序又无法彻底杀死病毒的情况,采用在Linux环境安装杀毒软件的方法,可以在一个完全脱离Windows环境的操作系统下,彻底的将Windows病毒杀死。这种双操作系统的结合不仅解决了两个系统的应用冲突,利用了各个系统的优势,避开了二者的弱点,最大程度上发挥了各自的功能。众所周知,FAT16、FAT32、NTFS是目前最常见的三种文件系统。NTFS分区格式是跟随Windows NT系统产生的,除了WindowsNT外,Win 2000和Win XP也都支持这种硬盘分区格式。它显著的优点是安全性和稳定性极其出色,在使用中不易产生文件碎片,对硬盘的空间利用及软件的运行速度都有好处。它能对用户的操作进行记录,通过对用户权限进行非常严格的限制,使每个用户只能按照系统赋予的权限进行操作,充分保护了网络系统与数据的安全。由于NTFS格式具有上述许多独特的优点,其已被很多用户广泛的使用。然而NTFS格式也有一个致命的缺点,那就是该磁盘文件格式不能被很多其他操作系统所识别(包括Linux系统),这就对与不识别NTFS格式的系统在NTFS分区进行数据交换造成了很大的影响。

因此,如何使Linux系统访问Windows系统资源,特别是如何在Linux环境下访问Windows的NTFS分区数据的问题已经是上述双操作系统的使用所面临的主要问题之一。由于微软公司并未开放其开发的NTFS分区技术内幕,这使得Linux环境下访问Windows NTFS分区数据更显得极为困难。这一问题限制了利用双系统进一步开发应用的步伐,也在一定程度上减慢了Linux发展的步伐。

随着Linux内核的逐步更新,目前一些Linux标准内核,例如版本号为2.6.9-1.667以上的内核,已经实现对NTFS分区的有限访问,该有限访问包括完全的读控制和有限的写控制,但无法对NTFS文件结构进行增加、删除、改写文件大小等操作,只能对NTFS现有文件在不改变文件大小的基础上进行有限的改写操作,即只能在NTFS现有文件上修改文件内容,而无法修改文件大小和属性。由于Linux内核对NTFS分区读写的种种限制,使得希望在Linux环境下向Windows中NTFS分区存储数据的应用程序无法发挥其功能。

发明内容

为了解决Windows操作系统和Linux操作系统利用NTFS分区进行数据互访以及解决在Linux环境下的应用程序无法完全访问NTFS分区文件数据的问题,本发明提出了一种基于Linux操作系统和Windows操作系统下的NTFS分区数据交换的方法和装置,该方法是基于现有Linux操作系统内核已经实现对NTFS分区有限访问的基础上实现的。该方法使得Windows操作系统和Linux操作系统的NTFS分区的数据可方便的相互访问,达到Windows和Linux利用NTFS分区进行充分的数据共享的目的。

本发明的第一方面提出一种在Linux操作系统与Windows操作系统下的NTFS分区数据交换的方法,该方法主要是:在Linux操作系统或Windows操作系统下将某一NTFS分区上创建一个或多个空文件;在上述的系统中,利用虚拟分区的技术可将所创建的空文件在各自的系统下加载为一个或多个虚拟设备或虚拟分区,从而使得每个系统的上层应用程序可以实现对各自系统下的虚拟设备或分区完全的访问,即可以实现对文件进行建立、删除、和完全的改写文件和目录;再利用虚拟分区技术将每个系统上层应用程序完全访问后文件进行卸载,使得另一操作系统通过将该卸载文件利用上述提到的方法,即在本系统下加载为虚拟设备或分区的方法,从而系统的实现上层应用程序对所加载的虚拟设备或分区的完全访问。

其中,上述的方法是基于具有可以实现对NTFS分区进行有限访问的Linux内核版本,该有限访问括完全的读控制和有限的写控制,但无法对NTFS文件结构进行增加、删除、改写文件大小等操作。

其中,在上述方法中将一文件虚拟为一分区的方法可以采用loop虚拟分区技术。

其中,在上述方法中将一文件虚拟为一分区的方法可以采用自定义的将逻辑文件划分为分区的方法。

其中,在上述方法中将一文件虚拟为一分区的方法可以采用ISO文件。

其中,在上述方法中对文件的完全的访问是指对文件的完全的读控制和完全的写控制。

其中,在上述的方法中所使用的Linux内核版本是2.6.9-1.667以上的版本。

本发明的另一方面提出了一种实现在Linux操作系统与Windows操作系统下的NTFS分区数据交换的装置,该装置主要包括创建空文件单元和虚拟化单元,其中所述的创建空文件单元用于在Linux操作系统或Windows操作系统的NTFS分区上创建一个或多个空文件,该空文件的大小根据实际系统的应用程序的大小而设定。所述的虚拟化单元由包括一加载单元和一卸载单元,所述的加载单元利用虚拟分区的技术将所创建空文件单元创建的空文件在各自的系统下加载为一个或多个虚拟设备或虚拟分区。经过加载后的虚拟设备或分区可以被对各自系统下的每个系统的上层应用程序完全的访问,即可以实现对文件进行建立、删除、和完全的改写文件和目录等处理。所述的卸载单元用于利用虚拟分区的技术将每个系统的上层应用程序访问后的虚拟设备或分区进行卸载。

其中所述的创建空文件单元还可以包括创建文件单元和格式化单元,所述的格式化单元是对创建文件单元中创建的文件判断否为空文件以及对不为空的文件执行全部清“0”处理并将该文件格式化成系统所需要的数据格式。在所述的加载单元中,Linux操作系统下可以使用loop等设备技术将创建空文件单元中创建的文件加载为一虚拟设备或虚拟分区。在Windows操作系统下需要利用预先开发的一驱动程序来对上述创建的文件进行加载为Windows操作系统下的一个虚拟设备或分区。该驱动程序具有如下功能:可以创建一个空文件,所创建的空文件文件用于在Linux操作系统下对其以loop文件的形式进行加载,从而可以向该分区中读、写、增、删、改目录和文件,而不受Linux内核目前无法改写NTFS文件大小等的限制,并且在Windows系统下可将一loop文件挂载成虚拟分区,使得Windows应用程序将该loop文件以分区的形式读写,而不必关心它的内部存储方式。

附图说明

图1为本发明实施例1的在Linux操作系统下与Windows操作系统的NTFS分区数据交换的方法的流程示意图;

图2为本发明实施例2的在Linux操作系统下与Windows操作系统的NTFS分区数据交换的方法的流程示意图;

图3为本发明的实现在Linux操作系统下与Windows操作系统的NTFS分区数据交换的装置示意图。

具体实施方式

以下给出的本发明具体实施例,用于对本发明的内容做更具体的说明。本发明的实施例主要是基于一台安装有双操作系统,即Linux操作系统和Windows操作系统的计算机,并且采用Linux内核对NTFS的有限度支持和Linux操作系统下的成熟技术,结合现有的虚拟分区技术实现本发明的目的。其中本实施例中所采用Linux内核是最大限度的解决了Linux操作系统下完全访问NTFS分区数据的方法,不仅可以读取NTFS数据,也可以随意的向NTFS中写入、修改、删除文件和目录数据,部分解决了Windows操作系统和Linux操作系统利用NTFS分区进行数据互访的问题。本实施例中所采用的虚拟技术可以是loop虚拟块设备技术(也称虚拟分区技术),所述的loop虚拟分区技术是在Linux下可以使用loop技术将一个文件虚拟成一个块设备,从而可以将该文件加载为Linux下一个分区,进而可以在该文件中建立、删除、改写文件和目录。通过上述技术的结合实现了Linux操作对NTFS的支持功能的扩充,从而达到在Linux操作系统下完全访问NTFS数据的能力,而不再仅限于只对NTFS数据进行读取,修改的功能。由于在Windows系统下,loop虚拟分区技术的开放性,使其很容易被开发出读写loop文件的工具,从而实现在Windows环境下读、写Linux下存储的数据的目的。很明显,上述技术的结合克服了现有Linux操作系统内核对NTFS格式下文件的限制性访问的局限性,实现了Windows操作系统和Linux操作系统下利用NTFS分区的数据共享。

以下将参照附图对本发明的具体实施例做更详尽的描述。

实施例1

图1是装有上述双操作系统的计算机,在Linux操作系统下与Windows操作系统的NTFS分区的数据交换的流程示意图。

首先,在Windows操作系统下执行下述的步骤:

创建空目标文件步骤:在Windows操作系统下的某一NTFS分区创建一个目标文件,并对该目标文件进行格式化处理,使其成为一空目标文件,所述的空目标文件是指文件数据全部为“0”的文件。上述格式化处理主是判断该目标文件是否为空文件以及对不为空的目标文件执行全部清“0”处理并将该空的目标文件处理成系统所需要的数据格式(实施例中的系统所需要的数据格式通常指为下述的虚拟分区可识别的数据格式)。该空目标文件的大小可根据应用程序的实际需求来设定,所创建的空目标文件数目也可以根据实际需要而创建一个或多个。

上述创建空目标文件的方法可以采用一驱动程序来创建,例如利用looptool的方法进行创建,在Windows操作系统下开发一个这样的驱动程序(Looptool),该驱动程序具有如下功能:可以创建一个空文件并对该空文件格式处理成为系统所需要的数据格式,所创建的空文件文件用于在Linux操作系统下对其以loop文件的形式进行加载,从而可以向该分区中读、写、增、删、改目录和文件,而不受Linux内核目前无法改写NTFS文件大小等的限制。而在Windows系统下可将一loop文件挂载成虚拟分区,使得Windows应用程序将该loop文件以分区的形式读写,而不必关心它的内部存储方式。

形成交换文件步骤:当所创建的目标文件经过格式化成为空目标文件后,系统将该空目标文件命名为交换文件。

然后,当计算机切换进入Linux操作系统,可以执行如下的步骤:

加载交换文件为虚拟设备或虚拟分区步骤:利用该Linux操作系统内核对NTFS分区的支持,将上述的交换文件加载为一虚拟设备或一分区。这里,我们可以采用现有的loop虚拟分区技术将该加载文件通过命令如:mount-oloop test.img/mnt/tmp,(这里,交换文件的名称为test.img)映射为一虚拟分区。实际上,将交换文件虚拟为一分区的方法不仅限于在用loop虚拟分区技术,还可以采用自定义的将逻辑文件划分为分区的方法或其他的方法,如可以采用ISO文件替代loop技术等,这里不再一一列举。由于Linux内核已经实现了对NTFS分区中文件的改写操作,而且loop文档不会改变的交换文件(test.img文件)的大小(这也刚好符合目前Linux内核版本2.6.9-1.667对NTFS操作的限制),并且支持所有的文件目录操作,因此这时Linux操作系统可以对所加载的虚拟分区实现完全的增、删、改等文件和目录等操作。

Linux操作系统的上层应用程序的完全访问步骤:在已经成功完成上述的加载交换文件为虚拟设备或虚拟分区步骤后,Linux操作系统的上层应用程序可以直接读写上述的加载的虚拟设备或分区数据,从而达到完全访问,而不需要考虑该设备或分区是否为NTFS结构。

卸载虚拟设备或分区步骤:当Linux操作系统的上层应用程序完全访问后,卸载上述的虚拟设备或分区,这里可以使用loop tool来卸载该虚拟分区。

最后,当计算机重新切换进入Windows操作系统下,可执行如下步骤:

加载交换文件为虚拟设备或分区步骤,Windows操作系统的上层应用程序的完全访问和卸载虚拟设备或分区步骤,这些步骤与Linux操作系统下所执行的步骤大致相同。

加载交换文件为虚拟设备或分区步骤:将上述的形成交换文件步骤中的交换文件加载为一虚拟设备或一分区。具体到将交换文件加载为虚拟设备或分区的方法可以利用上述所开发的驱动程序来实现,将该交换文件挂载为Windows操作系统下的一个分区。

Windows操作系统的上层应用程序的完全访问步骤:在已经成功完成上述的交换文件加载为虚拟设备或分区骤后,Windows操作系统的上层应用程序可以直接读取Linux操作系统的应用程序传入的文件数据,也可以向其内写入文件数据。

卸载虚拟设备或分区步骤:当Windows操作系统的上层应用程序完全访问后,卸载上述的虚拟设备或分区,这里可以使用loop tool卸载该虚拟分区。

实施例2

实施例2与实施例1的基本结构和具体方法很近似,这里仅对不同之处进行描述,相同的部分就不在重复。

与上述实施例1的不同仅在于如图2所示,首先,计算机在Linux操作系统下实现上述的创建空目标文件,形成交换文件等步骤,至于上述步骤的实现以及其他的步骤与实施例1的内容相同。可见,上述的步骤是需要在Windows操作系统还是Linux操作系统下完成可以根据实际的需求情况而任意设定,这里并没有严格的限制。

另外,实施例1和实施例2中,计算机是先切换进入Linux操作系统进行加载交换文件为虚拟设备或虚拟分区步骤,上层应用程序完全访问步骤以及卸载分区步骤等操作还是先切换进入Windows操作系统执行相应的操作,也可以根据具体的实际需求而任意设定,这里不做严格的限制。

以上的实施例中所描述采用的loop虚拟分区技术也可以采用自定义的将逻辑文件划分为分区的方法或其他方法,即只要可以将一个文件映射为分区的方法都可以使用,如可以采用ISO文件替代loop技术。

以上实施例中在Windows操作系统下的创建空目标文件步骤中所描述的采用驱动程序(Loop tool)制作空文件的方法也可以使用其他可以生成空文件的工具代替,如可以使用WinISO等虚拟光驱软件创建空文件。

以上实施例中在Windows操作系统下的加载交换文件为虚拟设备或分区步骤中所采用驱动(Loop tool)加载交换文件的方法也可以使用其他可以识别并加载该交换文件成Windows下分区的方法实现,如除了采用ISO文件以外,可以采用虚拟光驱创建文件的技术。

如图3所示为本发明实现在Linux操作系统与Windows操作系统下的NTFS分区数据交换的装置。

该装置主要包括创建空文件单元和虚拟化单元,其中所述的创建空文件单元用于在Linux操作系统或Windows操作系统的NTFS分区上创建一个或多个空文件。

所述的虚拟化单元由包括一加载单元和一卸载单元,如图所示,在Windows操作系统下的W-虚拟化单元,W-加载单元和W-卸载单元,以及在Linux操作系统下的L-虚拟化单元,L-加载单元和L-卸载单元。

所述的加载单元利用虚拟分技术将所创建空文件单元创建的空文件在各自的系统下加载为一个或多个虚拟设备或虚拟分区。经过加载后的虚拟设备或分区可以被对各自系统下的每个系统的上层应用程序完全的访问,即可以实现对文件进行建立、删除、和完全的改写文件和目录等处理。所述的卸载单元用于利用虚拟分区的技术将每个系统的上层应用程序访问后的虚拟设备或分区进行卸载。

其中所述的创建空文件单元还可以包括创建文件单元和格式化单元(图中未示),所述的格式化单元是对创建文件单元中创建的文件进行格式化处理,使其成为空文件和系统所需要的数据格式。

在L-加载单元中,Linux操作系统可以使用loop等设备技术将创建空文件单元中的文件加载为L-虚拟分区。在W-加载单元中,Windows操作系统中需要利用预先开发的一驱动程序来对上述的文件进行加载为W-虚拟分区。该驱动程序可以使用Loop tool工具进行开发,开发后的程序具有可以创建一个空文件,所创建的空文件文件用于在Linux操作系统下对其以loop文件的形式进行加载,从而可以向该分区中读、写、增、删、改目录和文件,而不受Linux内核目前无法改写NTFS文件大小等的限制,并且在Windows系统下可将一loop文件挂载成虚拟分区,使得Windows应用程序将该loop文件以分区的形式读写,而不必关心它的内部存储方式的功能。

这里需要说明的是,对于在Linux操作系统的L-加载单元和Windows操作系统下L-加载单元中,各自的系统将选择哪些交换文件进行加载以及如何选择所需要的交换文件,在此均不需要做特别的限定。各个系统可以根据具体的实际需要进行设定选择所需要加载的交换文件,一般可考虑选择另一个系统已经卸载后的交换文件。所选择的方法也可以自由设定,例如可以对Linux操作系统卸载后返回的文件设定一标识符,给与Windows操作系统卸载后返回文件给予另一不同的标识符,这样不同的操作系统根据选择具有对方标识符的文件可以进行加载处理,以便可以访问另一个系统操作系统的应用程序传入的文件数据。由于空的交换文件没有设定标识符可以根据具体需要设定为上述两个系统均可以直接加载或仅指定其中一个系统进行加载。

综上所述,本发明的Linux操作系统与Windows操作系统的NTFS分区数据交换的方法和装置在一定程度上解决了Linux下对NTFS分区的限制性访问的问题,使得Windows和Linux的数据资源互访成为可能。同时,该方法是在底层驱动上进行的,上层已有的无论是Windows应用程序还是Linux应用程序无需进行代码修改,都可以方便的使用该方法进行Windows和Linux基于NTFS的数据共享,大大简化了使用难度。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号