[发明专利]基于单数据库和单文件的进程内虚拟文件系统有效
申请号: | 201410043938.1 | 申请日: | 2014-01-29 |
公开(公告)号: | CN103761328B | 公开(公告)日: | 2017-02-15 |
发明(设计)人: | 严华杰;周后红;胡伟雄;戴立言;李庆瑜 | 申请(专利权)人: | 上海网达软件股份有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 上海汉声知识产权代理有限公司31236 | 代理人: | 胡晶 |
地址: | 201206 上海市浦东新*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 数据库 文件 进程 虚拟 文件系统 | ||
技术领域
本发明涉及计算机数据处理技术领域,特别涉及一种基于单数据库和单文件的进程内虚拟文件系统。
背景技术
文件系统的作用是实现二进制化数据的存储功能。目前的文件系统多种多样,最为常见的当属FAT/NTFS/EXT文件系统。不同的文件系统具有不同的优点和缺点,使用者可根据实际情况进行选择,或者在一个操作系统上设置多个文件系统。
然而,不同的操作系统使用的文件目录名称规则大不相同,大部分程序在不同的文件系统间移植时,需要协调不同操作系统的文件目录名称的差异才能正常使用,非常不便。更复杂的是各类模拟器程序,如虚拟机等,在解决原生操作系统文件目录差异的基础上,还需要为程序内部提供虚拟的目标文件系统支持。
发明内容
本发明针对现有技术存在的上述不足,提供了一种基于单数据库和单文件的进程内虚拟文件系统。本发明通过以下技术方案实现:
一种基于单数据库和单文件的进程内虚拟文件系统,基于单数据库和单文件的进程内虚拟文件系统建立在一原生操作系统上,应用于单个应用程序进程内部的一个或多个线程,原生操作系统提供一数据库、在数据库之外的一原生文件,以及原生系统接口层;
数据库包括访问接口,原生文件包括读写接口;
其中,数据库及访问接口存取虚拟文件的结构和数据块信息,原生文件及读写接口存取虚拟文件的数据内容;基于单数据库和单文件的进程内虚拟文件系统通过原生系统接口层调用访问接口以及读写接口,完成虚拟文件系统的功能。
较佳的,数据库中存取:
虚拟目录和文件信息表,用以存取虚拟文件和文件的结构信息;
虚拟文件数据块表,用以存取存储在原生文件中的虚拟文件的数据块位置;以及
原生文件的空白块表,用以存取原生文件中空白块的位置。
较佳的,虚拟目录和文件信息表包括至少六个字段:
所存储虚拟文件或目录的名称、名称的文件或目录的布尔标记、名称的唯一识别号、名称的父目录的唯一识别号、名称的创建时间,以及名称的最后修改时间。
较佳的,虚拟文件数据块表包括至少五个字段:
所存储虚拟文件的识别号、所存储的虚拟文件的数据块的块序号、所存储的数据块在原生文件中的起始位置、所存储的数据块在原生文件中的结束位置,以及数据块的实际使用量。
较佳的,原生文件的空白块表包括至少两个字段:
空白块在原生文件中的起始位置以及空白块在原生文件中的结束位置。
较佳的,原生文件的大小随所存储文件的增加而增加,在删除所存储的虚拟文件时仅修改数据库表,不减少原生文件的大小。
较佳的,在既修改数据库,又修改原生文件的情况下,使用数据库的事务提交功能,修改原生文件和数据库成功后,以提交数据库更改的结果作为是否成功操作的依据。
较佳的,接口层内部采用线程锁互斥,以支持多线程访问。
本发明所达到的技术效果在于:
1、虚拟出跨平台的文件系统:对应用程序而言,降低平台移植适配不同文件系统的难度;并且可以定制应用自己的虚拟文件系统名称规则。
2、该虚拟文件系统的实现方法不影响底层文件系统:只要原生操作系统中提供了数据库和文件的支持,那就可以实现。更进一步的,应用程序如果使用嵌入式数据库的话,那么只需要原生操作系统提供的文件访问接口。和原生操作系统的底层文件系统无关。对虚拟文件系统,也不需要了解其底层系统格式或驱动等,只需要知道其文件和目录的名称规则就可以虚拟。
附图说明
图1所示的是本发明的结构示意图。
具体实施方式
以下将结合本发明的附图,对本发明实施例中的技术方案进行清楚、完整的描述和讨论,显然,这里所描述的仅仅是本发明的一部分实例,并不是全部的实例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明的保护范围。
为了便于对本发明实施例的理解,下面将结合附图以具体实施例为例作进一步的解释说明,且各个实施例不构成对本发明实施例的限定。
请参考图1,本发明提供的一种基于单数据库和单文件的进程内虚拟文件系统,基于单数据库和单文件的进程内虚拟文件系统建立在一原生操作系统上,应用于单个应用程序进程内部的一个或多个线程,原生操作系统提供一数据库、在数据库之外的一原生文件,以及原生系统接口层;数据库包括访问接口,原生文件包括读写接口。数据库及访问接口存取虚拟文件的结构和数据块信息,原生文件及读写接口存取虚拟文件的数据内容。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海网达软件股份有限公司,未经上海网达软件股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410043938.1/2.html,转载请声明来源钻瓜专利网。