[发明专利]一种访问用户空间文件系统的方法及装置有效
申请号: | 201310625947.7 | 申请日: | 2013-11-28 |
公开(公告)号: | CN103617039B | 公开(公告)日: | 2017-02-01 |
发明(设计)人: | 赵前;高杰 | 申请(专利权)人: | 北京华胜天成科技股份有限公司;北京鲸鲨软件科技有限公司 |
主分类号: | G06F9/44 | 分类号: | G06F9/44 |
代理公司: | 北京品源专利代理有限公司11332 | 代理人: | 胡彬 |
地址: | 100192 北京市海*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 访问 用户 空间 文件系统 方法 装置 | ||
技术领域
本发明涉及应计算机数据处理技术领域,尤其涉及一种访问用户空间文件系统的方法及装置。
背景技术
用户空间文件系统(Filesystem in Userspace,简称FUSE),是操作系统中的概念,指完全在用户态实现的文件系统。目前内核系统,例如Linux通过内核模块对此进行支持,一些文件系统如ZFS,glusterfs和luster都属于用户空间文件系统。
Linux对所有的文件系统采用统一的文件界面,用户通过该文件界面来实现对不同文件系统的操作。对于用户来说,不需要清楚不同文件系统的具体操作过程,而只是对一个虚拟的文件操作界面来进行操作,这个操作界面就是Linux的虚拟文件系统(Virtual File Systems,简称VFS)。
现有技术如图1所示,应用程序访问一个用户空间文件系统时,需要首先访问VFS,VFS判断应用程序访问的文件系统类型为FUSE,再把指令传递给内核功能模块,用户空间文件系统读取数据,并对该数据加工处理后把结果沿反方向传递直至应用程序。所以应用程序应用该方法访问用户空间文件系统时,必然会引入额外的内核态/用户态切换带来的开销,降低了访问效率。
发明内容
本发明实施例提供了一种访问用户空间文件系统的方法及装置,以提高对用户态文件系统的访问效率。
本发明实施例提供了一种访问用户空间文件系统的方法,包括:
通过动态库拦截应用程序用于访问文件系统的访问指令;
如果通过所述动态库根据所述访问指令的内容,识别出访问的文件系统为用户空间文件系统,则调用所述用户空间文件系统的应用程序编程接口,访问所述用户空间文件系统。
本发明实施例还提供了一种访问用户空间文件系统的装置,包括:
指令拦截模块,用于通过动态库拦截应用程序用于访问文件系统的访问指令;
接口调用模块,用于当通过所述动态库根据所述访问指令的内容,识别出应用程序访问的文件系统为用户空间文件系统时,调用所述用户空间文件系统的应用程序编程接口,访问所述用户空间文件系统。
应用本发明提供的一种访问用户空间文件系统的方法及装置,通过使用动态库拦截应用程序用于访问文件系统的访问指令、调用用户空间文件系统的应用程序编程接口等步骤实现了全程在用户态下访问用户空间文件系统的方法,提高了对用户态文件系统的访问效率。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1是背景技术中对用户空间文件系统的访问方法示意图;
图2是本发明实施例提供的一种访问用户空间文件系统的方法流程图;
图3是本发明实施例提供的一种访问用户空间文件系统的装置结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。
实施例一
如图2所示,本实施例提供一种访问用户空间文件系统的方法,该方法由访问用户空间文件系统的装置来实现,该装置可以由软件或硬件来实现,该方法具体包括:
步骤21,通过动态库拦截应用程序用于访问文件系统的访问指令;
步骤22,如果通过所述动态库根据所述访问指令的内容,识别出访问的文件系统为用户空间文件系统,则调用所述用户空间文件系统的应用程序编程接口,访问所述用户空间文件系统。
本发明所述的动态库,是指可以动态链接的库,例如Windows系统中的动态链接库(dynamic link library,简称DLL)文件、UNIX或Linux系统中的共享对象(shared object,简称so)文件。库文件是预先编译链接好的可执行文件,存储在计算机的硬盘上。大多数情况下,同一时间多个应用程序可以使用一个库的同一份拷贝,而操作系统不需要加载这个库的多个实例。
应用程序与动态库的连接属于一种动态链接,在可执行文件装载时或运行时,由操作系统的装载程序加载动态库。应用程序会在硬盘上搜索需要的库,然后将其加载到内存中预先不确定的位置,之后根据加载库时确定的库的地址更新可执行程序。可执行程序根据更新后的库信息调用库中的函数或引用库中的数据,这种类型的动态加载即装载时加载,被Windows和Linux等多数系统采用。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京华胜天成科技股份有限公司;北京鲸鲨软件科技有限公司,未经北京华胜天成科技股份有限公司;北京鲸鲨软件科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310625947.7/2.html,转载请声明来源钻瓜专利网。