首页> 中国专利> 利用虚拟设备文件系统扩充移动设备存储容量的方法

利用虚拟设备文件系统扩充移动设备存储容量的方法

摘要

本发明是一种利用虚拟设备文件系统扩充移动设备存储容量的方法。需要解决现有移动设备存储介质容量小、价格高等问题。它包括在移动设备上建立一个虚拟设备文件系统模块,并挂入移动设备的操作系统,通过虚拟设备文件系统模块向移动设备上的应用提供一个虚拟的存储空间,并把对这个虚拟存储空间的读写请求通过网络发送到远端服务器,在远端服务器上,把从移动设备转来的读写请求转化为对服务器上本地存储设备的读写请求,并把读写的结果通过网络传回移动设备的步骤。具有使移动设备可使用服务器上廉价的大容量存储空间等优点,适于扩充各种移动设备的存储容量。

著录项

  • 公开/公告号CN1506840A

    专利类型发明专利

  • 公开/公告日2004-06-23

    原文格式PDF

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

    申请/专利号CN02155508.7

  • 发明设计人 黄飞;牛晓勇;袁林;

    申请日2002-12-09

  • 分类号G06F12/08;G06F13/14;

  • 代理机构北京北新智诚知识产权代理有限公司;

  • 代理人张卫华

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

  • 入库时间 2023-12-17 15:22:13

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2007-04-04

    授权

    授权

  • 2005-10-19

    实质审查的生效

    实质审查的生效

  • 2004-06-23

    公开

    公开

说明书

技术领域

本发明属于计算机网络存储器之间互连或传送请求处理技术领域,尤其是一种利用虚拟设备文件系统扩充移动设备存储容量的方法。

背景技术

随着计算机技术和通信技术的进步,移动设备具有越来越强的处理能力,并且以很快的速度以各种途径接入因特网,因此,各种移动终端的使用越来越广泛。在个人数字助理、手机等移动设备上处理各种信息,比如看电影、听音乐等已经不再是遥不可及的梦想。

移动设备由于其体积以及便携性的要求,所用的存储介质多为闪存卡,智能介质卡等,存储容量大多在几十兆左右,而且价格高,64兆的闪存卡要200~300元,硬盘的存储容量大,存储成本低,硬盘容量多在几十个千兆以上,而60千兆左右的硬盘价格也仅在600元左右。由于移动设备存储容量的限制,使得移动设备在处理需要很大存储容量的多媒体信息时,遇到了移动设备存储介质容量限制的困难,使得移动设备不能处理需要大存储容量的多媒体数据,因而,也就不能在移动设备上运行多媒体应用。现有技术中已有把远端服务器和移动设备连接起来的技术,使得移动设备可以利用服务器上的存储资源,但这种技术要求移动设备能够接入网络,并且移动设备利用服务器存储容量的性能受到网络带宽的影响。

发明内容

为了克服上述不足,本发明的目的是提供一种利用虚拟设备文件系统扩充移动设备存储容量的方法,使得移动设备可以象使用本地存储介质一样使用其存储容量。

为完成上述目的,本发明采取的技术方案是:用虚拟设备文件系统扩充移动设备存储容量的方法,包括在移动设备上建立一个虚拟设备文件系统模块,并挂入移动设备的操作系统,通过虚拟设备文件系统模块向移动设备上的应用提供一个虚拟的存储空间,并把对这个虚拟存储空间的读写请求通过网络发送到远端服务器,在远端服务器上,把从移动设备转来的读写请求转化为对服务器上本地存储设备的读写请求,并把读写的结果通过网络传回移动设备的步骤。

操作系统文件接口判断操作的文件是否位于虚拟文件系统,若是则把读写请求转发到虚拟文件系统模块;设备管理器根据注册表中的纪录自动装载设备驱动动态连接库,在设备驱动动态连接库中装载圣何西文件系统驱动,将圣何西文件系统驱动挂载到设备管理器上,设备管理器到圣何西文件系统驱动中寻找挂载虚拟磁盘函数,如果找到,设备管理器装载文件系统管理器模块,并传递圣何西文件系统驱动信息给文件系统管理器模块,文件系统管理器模块根据所得到的信息,包括文件系统名和文件系统驱动文件名,到圣何西文件系统驱动中调用圣荷西文件系统驱动挂载虚拟磁盘函数,在圣荷西文件系统驱动挂载虚拟磁盘函数中,调用文件系统驱动注册中的文件系统驱动注册函数,注册所有卷;虚拟文件系统模块可对操作的文件进行打开、读、写、关闭或设置属性等一种或几种操作;应用程序和操作系统的其它模块对文件的操作是先封装成消息然后通过网络发送到远端的服务器;消息包括消息号、会话标识、操作类型、用户名、口令、操作参数列表等一项或几项内容;远端服务器上有一个监听服务程序,它包括对接收到的消息进行分析,分析消息中包含的请求操作的类型、操作的对象是那个文件,根据分析的结果对服务器上的文件进行读、写、打开等操作,把操作的结果通过网络返回到移动设备的步骤。

本发明具有明显的效果,本发明的虚拟设备文件系统并不访问真实的本地存储,而是通过网络访问远端个人计算机或者服务器上的存储空间,这样就在本地虚拟了一个存储空间,这个存储空间的大小完全由个人计算机或者服务器所能提供的存储容量决定,不受其它任何限制。移动设备可使用服务器上廉价的大容量存储空间,一切操作对移动设备用户以及移动设备上的应用透明,可以把个人计算机、服务器以及其它设备上的存储空间透明地挂接到移动设备上,使用起来就象是移动设备本地的存储一样,用户感觉不到任何的不同,从而极大地扩充各种移动设备的存储容量。

附图说明

图1是本发明的系统的体系结构图;

图2是本发明在嵌入式视窗操作系统上的实现过程图;

图3是本发明的实现流程图。

下面结合附图具体和实施方式对本发明作进一步详细的说明。

具体实施方式

参阅图1,现代操作系统中一般都提供一个抽象的文件系统接口模型,使得开发者可以在系统中加入自己开发的特定的文件系统,比如,多用户操作系统和视窗操作系统提供的虚拟文件系统接口,定义了文件的打开、读、写等操作的接口。

本发明中,操作系统对上层应用提供了一个文件系统接口,通过改写这个接口的实现,把原来对磁盘的输入输出请求通过网络发送到远端机器上,从而利用了远端机器上的存储,实现了一个虚拟的存储设备。

参阅图2,本发明在windows CE(嵌入式视窗操作系统)平台上的实现。一般用户的应用程序面对的都是标准的操作系统应用程序编程接口函数,或者应用程序编程接口的进一步封装,如微软基础类库、活动模板库等,可以说,应用程序编程接口是应用程序的唯一接口。系统的所有具体操作隐藏在统一的应用程序编程接口下,其中重要的一部分便是文件与输入输出操作,大部分将交给文件系统进行管理,其它如驱动程序开发也同样遵循统一接口。

文件系统有许多种,常见的有FAT 16(16位的文件分配表文件系统)、FAT 32(32位的文件分配表文件系统)、EXT2(第二代扩展文件系统)以及光盘上的光盘介质文件系统等。光盘介质文件系统提供的是数据和文件的组织形式和操作规范,并不是实现了所有的文件和输入输出功能,其内部的许多函数都有可能是空函数,真正的数据输入输出要交给具体设备及其驱动程序来处理。

在嵌入式视窗操作系统中,设备驱动分为本地设备驱动和流接口驱动。对于文件系统来说,面对的是所谓的块设备,较适合用流接口驱动的模式,这是由于它由设备管理器提供默认的、并且十分方便的管理,并且提供标准模版和导出函数。

设备驱动和设备管理器,设备驱动也并非只有一层,对一般情况来说,设备驱动分上下两层,底层直接面对硬件操作,一般由硬件厂商提供;高层是在此之上针对不同的操作系统、不同应用和功能的设备驱动,不需要去写一个硬件驱动,一个上层的块设备驱动才合适,并且假定底层设备为磁盘存储卡。

嵌入式视窗操作系统中设备由设备管理器管理。设备管理器并不存在于内核中,它是一个动态连接模块,负责内核与注册表以及驱动之间的联系或者说互操作,它可以装载卸载设备驱动,向内核注册设备文件名和设备驱动函数,当设备接入时自动搜索适当驱动并加载之。

设备驱动与设备管理器之间的交互是通过注册表来完成的。当运行设备驱动的装载程序时,要向注册表中写入相关信息,包括驱动文件名、设备文件名、驱动程序入口函数、文件系统等等信息,设备管理器会根据这些信息自动管理。

文件系统驱动和文件系统驱动管理器。文件系统驱动实质是一个可装载文件系统,是一个动态连接模块。文件系统驱动通过实现一些固定的导出函数,来完成文件系统的所有功能,并可以反过来调用文件系统管理器的一些函数,来与之实现交互。

文件系统驱动管理器同样包含于一个动态连接库文件fsdmgr.dll中。它能够为可安装的文件系统提供许多服务,例如创建文件句柄和搜索句柄、注册注销卷、注册文件系统驱动函数等。它最重要的功能是能够将应用程序调用的应用程序变成接口函数映射到特定文件系统驱动函数上。

文件系统驱动的名字、文件系统驱动文件名以及文件系统驱动导出函数的头必须保持一致。例如原型文件系统驱动的名字叫SanFSD.dll(圣荷西文件系统驱动动态链接库),文件系统名字SanFSD(圣荷西文件系统驱动),导出函数则为SanFSD_ReadFile()(圣荷西文件系统驱动动态链接库的读文件函数)等,这样才能保证文件系统管理器调用正确。

文件系统驱动调用FSDMGR_RegisterVolume()(文件系统驱动管理器的卷注册函数)可以注册一个卷,取名为SanJos(圣荷西),此时嵌入式视窗操作系统的设备的一级目录上会出现一个SanJose目录,当应用程序访问该目录时,文件系统管理器判断出这是一个SanFSD(圣荷西文件系统驱动)文件系统的卷,于是将视窗操作系统应用程序编程接口映射到文件系统驱动内的函数上,比如应用程序调用FindFirstFile(查找目录下第一个文件的函数接口),则映射到SanFSD_FindFirstFile()(圣荷西文件系统驱动动态链接库的查找目录下第一个文件函数),调用CreateFile()(创建文件的函数接口),则映射到SanFSD_CreateFile()(圣荷西文件系统驱动动态链接库的创建文件的函数)。

本发明的系统调用流程是:文件系统驱动的动态连接库文件中有两个特殊的导出函数:FSD_MountDisk(挂载磁盘设备的函数接口)和FSD_UnmountDisk(卸载磁盘设备的函数接口)。它们不是被文件系统驱动管理器调用的,而是设备管理器调用。实质上,它们的函数主体是SanFSD_MountDisk(圣荷西挂载虚拟设备文件驱动的载磁盘设备的函数)和SanFSD_UnmountDisk(圣荷西挂载虚拟设备文件驱动的卸载磁盘设备的函数),只是在导出时改了名字。

参阅图3,首先,按照操作系统提供的文件系统接口标准要求,本发明实现了一个虚拟文件系统模块,在这个虚拟的文件系统模块中实现了对文件的打开、读、写、关闭、设置属性等文件一周或几种操作的处理。

当应用程序或者操作系统的其它模块需要操作位于虚拟文件系统上的文件时,调用在虚拟文件系统接口实现的操作,在这些操作的实现中,本发明把应用程序和操作系统其它模块对文件的操作封装成消息,通过网络发送到远端的服务器。消息的内容包括:消息号、会话标识、操作类型、用户名、口令、操作参数列表等一项或几项内容。

其次,需要在远端服务器上建立一个监听服务程序,服务监听程序的功能流程包括以下步骤:对接收到的消息进行分析,分析消息中包含的请求操作的类型,如读、写、打开等,操作的对象是那个文件,并根据分析的结果,对服务器上的文件进行读、写、打开等操作,并把操作的结果通过网络返回到移动设备。

系统安装好设备驱动后,设备管理器会根据注册表中的纪录自动装载设备驱动动态连接库,在本发明中的原型中是Ramdisk.dll(内存磁盘映象动态连接库)。在ramdisk.dll中装载文件系统驱动SanFSD.dll(圣何西文件系统驱动),将圣何西文件系统驱动挂载到此设备管理器上。此时,设备管理器得到了文件系统名圣何西文件系统驱动。然后设备管理器会到SanFSD.dll中寻找函数FSD_MountDisk(挂载虚拟磁盘的函数,是MyFSD_MountDisk的别名),如果找到了,设备管理器会装载fsdmgr.dll(文件系统驱动管理器模块),并传递圣何西文件系统驱动信息给文件系统管理器模块。接下来,文件系统管理器模块会根据所得到的信息,包括文件系统名SanFSD和文件系统驱动文件名SanFSD.dll,并到SanFSD.dll中调用SanFSD_MountDisk(圣荷西挂载虚拟设备文件驱动的挂载磁盘设备的函数),在这个函数中,必须将所有卷注册好,也就是调用fsdmgr.dll(文件系统驱动管理器动态连接库)中的函数FSDMGR_RegisterVolume(文件系统驱动管理器中的卷注册函数),此时系统中如果出现SanJose目录,文件系统驱动已被成功装载,并注册成功。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号