CN102722500B - 一种虚拟文件系统及其实现方法 - Google Patents
一种虚拟文件系统及其实现方法 Download PDFInfo
- Publication number
- CN102722500B CN102722500B CN201110079799.4A CN201110079799A CN102722500B CN 102722500 B CN102722500 B CN 102722500B CN 201110079799 A CN201110079799 A CN 201110079799A CN 102722500 B CN102722500 B CN 102722500B
- Authority
- CN
- China
- Prior art keywords
- file
- application program
- file system
- virtual
- database
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Abstract
本发明公开一种虚拟文件系统及其实现方法。该虚拟文件系统包括:应用程序权限数据库,用于存储应用程序的文件权限信息;系统植入模块,用于实现与操作系统内核的文件系统的对接;文件系统流转引擎根据所述应用程序权限数据库存储的应用程序的文件权限信息拒绝或者允许应用程序的文件操作,当允许应用程序的文件操作时,通过文件流转引擎拦截或转发文件操作。通过在文件系统和应用程序之间引入虚拟层,在应用程序尝试获取文件系统中数据时,需要经过本专利中的虚拟层模块,根据其应用程序所拥有的权限,通过对文件系统请求进行转发、重定向、在给定权限中执行等操作。
Description
技术领域
本发明涉及系统虚拟化技术,尤其涉及一种虚拟文件系统及其实现方法。
背景技术
文件系统的诞生是和计算机发展路线相辅相成的。早期,采用通过具体操作硬件接口直接读取存储媒介的办法,不同应用、不同硬件采用不同的存储办法。后来引入了简单文件系统如FAT(File AllocationTable,文件分配表)分区等,实现了简单的文件管理。再往后,操作系统中集合了文件系统功能,并将文件系统管理功能形成了现在通用的结构。但是,文件系统的基本功能目标从诞生之初就没有变化,即仅仅是一个文件信息的索引存储,难以适应现代化的业务需求。
Linux中提供了VFS(Virtual File System,虚拟文件系统)功能,能够让操作系统在同一的API(Application Programming Interface,应用程序编程接口)接口下,实现对不同文件存储媒介的访问,如磁盘、磁带、Flash存储等,也可以实现对同一媒介中不同磁盘分区的访问,如NTFS(New Technology File System,新技术文件系统)、EXT2、Yaffs、NFS(Network File System,网络文件系统)等,较传统操作系统有进步,但是还是无法实现更迅速的业务变更和业务支撑能力。
当前的文件系统中,应用程序通过API可以直接访问目录结构和文件信息,对于应用程序的内容访问控制、安全权限访问控制功能则有局限,无法精确控制应用程序所能访问的资源。
在当前的嵌入式开发中,开源代码的应用越来越广泛,但是不同开源代码架设的系统环境不尽相同,为移植带来了困扰,也带来了安全隐患。
发明内容
本发明要解决的一个技术问题是提供一种虚拟文件系统,可以提高系统安全性。
本发明提供一种虚拟文件系统,包括:
应用程序权限数据库,用于存储应用程序的文件权限信息;
系统植入模块,用于实现与操作系统内核的文件系统的对接,实现用户接口同原操作系统的用户系统匹配、对操作系统内核的文件系统的文件操作进行封装;
文件系统流转引擎,用于接收来自应用程序的文件操作请求,根据所述应用程序权限数据库存储的应用程序的文件权限信息拒绝或者允许应用程序的所述文件操作,当允许应用程序的所述文件操作时,通过所述系统植入模块实现所述文件操作。
根据本发明的虚拟文件系统的一个实施例,文件系统流转引擎还根据应用程序的文件权限信息对文件内容执行过滤文件操作。
根据本发明的虚拟文件系统的一个实施例,还包括文件映射数据库,用于存储应用程序的文件映射位置;所述文件系统流转引擎还用于根据所述文件映射数据库存储的应用程序的文件映射位置进行转发文件操作。
根据本发明的虚拟文件系统的一个实施例,还包括兼容数据库,用于存储不同操作系统之间文件系统环境的差别和兼容性方式;所述文件系统流转引擎根据所述兼容数据库存储的信息实现所述应用程序的文件操作对不同操作系统的兼容。
根据本发明的虚拟文件系统的一个实施例,虚拟文件系统基于中间件虚拟机实现,或者在嵌入式LINUX系统中通过扩展VFS实现,也能其他操作系统(ucOS、vxworks等)的文件系统中扩展实现。
本发明的虚拟文件系统,由文件系统流转引擎基于应用程序权利数据库存储的应用程序的文件权限信息对应用程序的文件操作请求进行权限控制,提高了对应用程序的文件操作的安全性。
本发明要解决的一个技术问题是提供一种虚拟文件系统的实现方法,可以提高系统安全性。
本发明提供一种虚拟文件系统的实现方法,包括:
接收来自应用程序的文件操作请求;
根据存储的应用程序的文件权限信息拒绝或者允许应用程序的所述文件操作;
当允许应用程序的所述文件操作时,通过文件流转引擎拦截或转发所述文件操作。
本发明提供一种虚拟文件系统的实现方法的一个实施例,还包括:根据应用程序的文件权限信息对文件内容执行过滤文件操作。
本发明提供一种虚拟文件系统的实现方法的一个实施例,还包括:根据文件映射数据库存储的应用程序的文件映射位置进行转发文件操作。
本发明提供一种虚拟文件系统的实现方法的一个实施例,还包括:通过兼容数据库存储不同操作系统之间文件系统环境的差别和兼容性方式;根据所述兼容数据库存储的信息实现拦截所述应用程序的文件操作,改写其面向的文件目录视图,实现对不同操作系统的兼容。
本发明提供一种虚拟文件系统的实现方法的一个实施例,虚拟文件系统基于中间件虚拟机实现,或者在LINUX系统中通过扩展VFS实现。
本发明提供的虚拟文件系统的实现方法,基于应用程序的文件权限信息对应用程序的文件操作进行控制,提高了应用程序的文件操作的安全性。
附图说明
图1示出本发明的虚拟文件系统的一个实施例的结构图;
图2示出本发明的虚拟文件系统的一个实施例在系统中位置图示;
图3示出本发明的虚拟文件系统的一个实施例的层次逻辑图;
图4示出本发明的虚拟文件系统的实现方法的一个实施例的流程图;
图5示出本发明的虚拟文件系统的实现方法的另一个实施例的流程图。
具体实施方式
下面参照附图对本发明进行更全面的描述,其中说明本发明的示例性实施例。
图1示出本发明的虚拟文件系统的一个实施例的结构图。如图1所示,该虚拟文件系统包括文件系统流转引擎11、系统植入模块12和应用程序权限数据库13。其中,应用程序权限数据库13存储应用程序的文件权限信息;权限信息既可以分组保存,也可以为每个应用程序进行单独保存。系统植入模块12用于实现与操作系统内核的文件系统的对接,实现用户接口同原操作系统的用户系统匹配、对操作系统内核的文件系统的文件操作进行封装;文件系统流转引擎11接收来自应用程序的文件操作请求,根据应用程序权限数据库13存储的应用程序的文件权限信息拒绝或者允许应用程序的文件操作,当允许应用程序的文件操作时,通过调用系统植入模块12相关接口实现具体文件操作。文件系统流转引擎还可以根据应用程序的文件权限信息对文件内容执行过滤文件操作。
上述实施例中,文件系统流转引擎基于应用程序权利数据库存储的应用程序的文件权限信息对应用程序的文件操作请求进行权限控制,提高了对应用程序的文件操作的安全性。
可选地,虚拟文件系统还包括文件映射数据库14和/或应用程序兼容数据库15。文件映射数据库14存储应用程序的文件映射位置;例如将/System/etc下的文件映射到/etc目录下,保证应用程序在试图访问某一目录时,实际将访问另外一目录中,保证整个系统的安全。文件系统流转引擎11还根据文件映射数据库14存储的应用程序的文件映射位置进行转发文件操作。兼容数据库15存储不同操作系统之间文件系统环境的差别和兼容性方式;例如Android系统和常见的Linux之间的文件系统差异性较大,通过兼容数据库实现针对Android下的程序,将原有Linux下的文件系统内容映射到Android的目录结构中,以实现跨操作系统之间的应用程序兼容性。文件系统流转引擎11根据兼容数据库存储的信息实现应用程序的文件操作对不同操作系统的兼容。
系统植入模块负责完成同原操作系统之间的对接,包括保证用户接口同原有操作系统的用户系统匹配、将下层操作系统的实际文件操作封装后,供内部或者上层调用。
文件系统流转引擎是本系统的核心组件,负责完成将来自应用程序的请求通过底层数据库的资料进行分析之后,转到相应的执行结果。执行结果包括转发文件操作、拒绝文件操作、过滤文件操作以及允许文件操作等。
需要指出,系统植入模块和文件系统流转引擎也可以作为一个模块实现。
转发文件操作会将文件的请求转发到另外一种模式下,如将某目录的数据实际映射到另外一目录后进行执行。如果应用程序访问权限不满足,则将执行拒绝文件操作。在访问部分敏感文件内容时,将进行过滤文件操作。如果该文件允许应用程序完全访问,则将执行允许文件操作。
本发明的系统通过不限于以上列举的控制方式,可以实现应用程序与文件系统的隔离,为应用程序提供一个安全的文件存储沙箱。
上述实施例中,为网关运行增值服务应用程序提供一个安全的文件系统权限管理方案,为云计算平台提供一种对文件系统访问的隔离方法。
通过文件映射数据库和应用程序兼容数据库,可以提供不同操作系统平台(例如Android平台和Linux平台)之间的相互映射性和相互关联性。
图2示出本发明的虚拟文件系统的一个实施例在系统中位置图示。虚拟文件系统22通常处于操作系统内核21和底层文件系统接口23之间,起到承上启下的作用。例如,虚拟文件系统22拦截来自操作系统内核21的文件系统的读写请求,在通过文件流转引擎对其读写请求进行读写任务判别之后,再通过底层文件系统接口23调用ExtFS、FAT3224等具体文件系统读写模块,完成读写任务。
图3示出本发明的虚拟文件系统的实现方法的一个实施例的流程图。
如图4所示,在步骤302,接收来自应用程序的文件操作请求;
在步骤304,根据存储的应用程序的文件权限信息拒绝或者允许应用程序的文件操作;
在步骤306,当允许应用程序的文件操作时,通过文件流转引擎调用系统植入模块实现文件操作,拦截或转发文件操作。
上述实施例中,基于应用程序的文件权限信息对应用程序的文件操作进行控制,提高了应用程序的文件操作的安全性。
基于嵌入式Linux系统的虚拟文件系统可以通过两种方式实现:(1)扩展Linux中自带的VFS;(2)作为中间件虚拟机实现,通过运行中间件虚拟机,将虚拟文件系统作为中间件虚拟机一模块执行。
下面对通过扩展Linux中自带的VFS实现虚拟文件系统进行说明。
通过VFS扩展的实现方式框图如图4所示,通过在原有文件系统支撑VFS层41上增加一文件系统虚拟化VFS层42,并且添加应用层管理模块,通过应用层管理程序45和虚拟化支撑数据库46实现对文件系统的管理。
虚拟VFS中,为应用程序提供了常规应用程序所需要的一切文件访问API接口43。另外,为了方便进行调度和管理,提供了proc接口44,通过proc接口44对应用程序的权限、文件映射数据等管理信息进行查询和设置。
本参考实现中,调度管理方式通过proc接口是为了遵循linux系统编程的习惯规范,本发明不仅仅局限于使用proc接口。
本领域的技术人员应当理解,本发明虚拟文件系统的实施例也可以在其他操作系统的文件系统中扩展实现。
图5示出本发明的虚拟文件系统的实现方法的另一个实施例的流程图,该图示出引入虚拟VFS层的文件操作系统调用流程的示例。
步骤502,应用程序发起一个正常的文件系统调用读写请求,如open、read、write、ioctl等。该系统请求将通过Linux内核的系统调用层封装,转换为对VFS的系统调用。
步骤504,虚拟VFS层将拦截该VFS系统调用。
步骤506,虚拟VFS层通过内嵌的文件系统流转引擎,根据权限数据库、兼容数据库和映射数据库的内容,判断该读写请求是否有效,以及该读写请求应该转发到哪个具体的文件中。
步骤508,如果读写请求为有效,文件系统流转引擎将该读写请求映射到正确的文件系统路径中,调用Linux的其他模块完成文件读写操作。
步骤510,操作完成后向虚拟VFS返回操作结果,回应读写请求。
步骤512,VFS虚拟层将文件读写操作的信息反馈给应用程序,完成本次操作。
在系统启动阶段,VFS通过系统植入模块,加载进Linux的VFS模块中。在系统运行阶段,虚拟VFS通过提供基于sysfs和procfs的读写接口,可配置其权限数据库、兼容数据库和映射数据库。
本发明通过在文件系统和应用程序之间引入虚拟文件系统,在应用程序尝试获取文件系统中数据时,经过本专利中的虚拟层模块,根据其应用程序所拥有的权限,通过对文件系统请求进行转发、重定向、在给定权限中执行等操作,一方面实现了应用程序对实际物理文件系统的隔离,所有的文件读写操作将经过验证,符合权限要求之后才能够进行,另一方面可以对不同的应用程序提供不同的文件视图(如隐藏部分系统文件、系统目录,敏感文件、敏感目录),并且划分不同的权限,细分访问粒度。
通过本发明的虚拟文件系统,实现对不同应用程序提供不同的文件系统视图。不同的应用程序,进行文件夹目录遍历方法所获取的目录结构均将根据应用程序自身的权限和功能有所不同。
本发明可以应用于网络设备开发中的安全技术和虚拟化技术领域,实现在业务网关中通过文件系统虚拟化隔离增值应用的方法。
本发明的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。
Claims (7)
1.一种虚拟文件系统,其特征在于,包括:
应用程序权限数据库,用于存储应用程序的文件权限信息;
系统植入模块,用于实现与操作系统内核的文件系统的对接,实现用户接口同原操作系统的用户系统匹配、对操作系统内核的文件系统的文件操作进行封装;
文件映射数据库,用于存储应用程序的文件映射位置;
兼容数据库,用于存储不同操作系统之间文件系统环境的差别和兼容性方式;
文件系统流转引擎,用于接收来自应用程序的文件操作请求,根据所述应用程序权限数据库存储的应用程序的文件权限信息拒绝或者允许应用程序的所述文件操作,当允许应用程序的所述文件操作时,通过所述系统植入模块实现所述文件操作;根据所述文件映射数据库存储的应用程序的文件映射位置进行转发文件操作;根据所述兼容数据库存储的信息实现所述应用程序的文件操作对不同操作系统的兼容。
2.根据权利要求1所述的虚拟文件系统,其特征在于,所述文件系统流转引擎还根据应用程序的文件权限信息对文件内容执行过滤文件操作。
3.根据权利要求1所述的虚拟文件系统,其特征在于,在系统启动阶段,所述虚拟文件系统通过所述系统植入模块,加载进Linux的虚拟文件系统模块中;在系统运行阶段,所述虚拟文件系统通过提供基于sysfs和procfs的读写接口,配置所述应用程序权限数据库、兼容数据库和文件映射数据库。
4.根据权利要求1至3中任意一项所述的虚拟文件系统,其特征在于,所述虚拟文件系统基于中间件虚拟机实现,或者在LINUX系统中通过扩展VFS实现。
5.一种虚拟文件系统的实现方法,其特征在于,包括:
接收来自应用程序的文件操作请求;
根据应用程序的文件权限信息拒绝或者允许应用程序的所述文件操作;
当允许应用程序的所述文件操作时,通过文件流转引擎拦截或转发所述文件操作;
根据文件映射数据库存储的应用程序的文件映射位置进行转发文件操作;
其中,还包括:
存储不同操作系统之间文件系统环境的差别和兼容性方式;
根据所述不同操作系统之间文件系统环境的兼容性方式实现所述应用程序的文件操作对不同操作系统的兼容。
6.根据权利要求5所述的方法,其特征在于,还包括:
根据应用程序的文件权限信息对文件内容执行过滤文件操作。
7.根据权利要求5至6中任意一项所述的方法,其特征在于,所述虚拟文件系统基于中间件虚拟机实现,或者在嵌入式LINUX系统中通过扩展VFS实现。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110079799.4A CN102722500B (zh) | 2011-03-31 | 2011-03-31 | 一种虚拟文件系统及其实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110079799.4A CN102722500B (zh) | 2011-03-31 | 2011-03-31 | 一种虚拟文件系统及其实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102722500A CN102722500A (zh) | 2012-10-10 |
CN102722500B true CN102722500B (zh) | 2017-03-15 |
Family
ID=46948267
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110079799.4A Active CN102722500B (zh) | 2011-03-31 | 2011-03-31 | 一种虚拟文件系统及其实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102722500B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103106260B (zh) * | 2013-01-25 | 2016-04-27 | 南开大学 | 一种面向角色的虚拟文件系统的建立方法 |
CN104573061B (zh) * | 2015-01-23 | 2017-09-26 | 南开大学 | 一种支持扩展功能的虚拟文件系统装置和方法 |
CN109144657B (zh) * | 2017-06-14 | 2023-10-13 | 中兴通讯股份有限公司 | 一种跨操作系统平台的文件共享的方法和装置 |
CN107679412B (zh) * | 2017-09-15 | 2021-05-18 | 福建星瑞格软件有限公司 | 一种拦截数据库访问数据的方法以及装置 |
CN110019121B (zh) * | 2017-10-31 | 2021-05-11 | 北京国双科技有限公司 | 一种数据库文件过滤方法、装置、存储介质及处理器 |
CN109491983B (zh) * | 2018-11-01 | 2021-08-31 | 郑州云海信息技术有限公司 | 一种数据信息的管理方法、装置和计算机可读存储介质 |
CN110413567B (zh) * | 2019-07-07 | 2020-12-22 | 上海鸿翼软件技术股份有限公司 | 一种基于文件过滤驱动的虚拟网盘技术装置 |
CN112988675B (zh) * | 2021-03-12 | 2023-02-21 | 麒麟软件有限公司 | 一种基于Linux文件管理器的Android文件分类显示方法 |
CN114968497B (zh) * | 2022-06-06 | 2023-11-14 | 中国电信股份有限公司 | 硬件层的调用方法、装置、设备及存储介质 |
CN115033550B (zh) * | 2022-08-10 | 2022-11-04 | 宁波均联智行科技股份有限公司 | 一种车机系统文件访问方法及车机系统 |
CN115470506B (zh) * | 2022-10-28 | 2023-03-10 | 山东华翼微电子技术股份有限公司 | 一种基于同态映射的安全文件系统实现方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1904901A (zh) * | 2005-07-29 | 2007-01-31 | 国际商业机器公司 | 用于实施基于内容的文件系统安全性的系统和方法 |
CN101106567A (zh) * | 2006-07-13 | 2008-01-16 | 国际商业机器公司 | 数据处理系统和文件系统防火墙方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6356915B1 (en) * | 1999-02-22 | 2002-03-12 | Starbase Corp. | Installable file system having virtual file system drive, virtual device driver, and virtual disks |
CN100555232C (zh) * | 2004-12-21 | 2009-10-28 | 西安三茗科技有限责任公司 | 一种硬盘Linux文件系统的数据备份还原与权限控制方法 |
JP5072314B2 (ja) * | 2006-10-20 | 2012-11-14 | キヤノン株式会社 | 文書管理システム、文書管理方法、文書管理プログラム、記憶媒体 |
-
2011
- 2011-03-31 CN CN201110079799.4A patent/CN102722500B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1904901A (zh) * | 2005-07-29 | 2007-01-31 | 国际商业机器公司 | 用于实施基于内容的文件系统安全性的系统和方法 |
CN101106567A (zh) * | 2006-07-13 | 2008-01-16 | 国际商业机器公司 | 数据处理系统和文件系统防火墙方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102722500A (zh) | 2012-10-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102722500B (zh) | 一种虚拟文件系统及其实现方法 | |
US9443101B2 (en) | Low-cost specification and enforcement of a privacy-by-consent-policy for online services | |
US9363252B2 (en) | Method for customizing software applications | |
US8863125B2 (en) | Optimization of virtual appliance deployment | |
CN102460382B (zh) | 标注虚拟应用进程 | |
US8838644B2 (en) | Extensible access control list framework | |
CN101326489B (zh) | 用于运行多个环境的操作系统小型引导 | |
KR102059219B1 (ko) | 컴퓨터 시스템과 관련된 하드웨어 자원의 가상화를 위한 방법, 시스템 및 실행가능한 코드 조각 | |
WO2023124967A1 (zh) | 软件操作系统调用Android HIDL接口的方法、设备及介质 | |
CN107515776A (zh) | 业务不间断升级方法、待升级节点和可读存储介质 | |
CN103593225B (zh) | 移动虚拟化场景中多Android系统复用Binder IPC机制的方法 | |
CN107077388A (zh) | 用于在多租户应用服务器环境中提供端到端生命周期的系统和方法 | |
CN107077389A (zh) | 用于在多租户应用服务器环境中使用全局运行时的系统和方法 | |
CN101211272A (zh) | 动态虚拟机生成 | |
CN107463369A (zh) | 一种虚拟桌面的接入设备控制方法与装置 | |
CN110119308B (zh) | 管理大规模容器应用的系统 | |
WO2015057816A1 (en) | Method and system for adaptive loading of application | |
US20150113502A1 (en) | Method and system for encapsulation of application | |
CN103617039B (zh) | 一种访问用户空间文件系统的方法及装置 | |
CN101777002B (zh) | 一种基于虚拟化的软件运行方法 | |
CN114816665B (zh) | 混合编排系统及超融合架构下虚拟机容器资源混合编排方法 | |
CN116644453A (zh) | 一种文档系统的权限管理方法、装置及设备 | |
CN113986858B (zh) | Linux兼容安卓系统的共享文件操作方法和装置 | |
CN116028163A (zh) | 一种容器组的动态链接库调度方法、装置及存储介质 | |
KR101813379B1 (ko) | 클라우드 스토리지 단말기 및 클라우드 스토리지 제공 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |