一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

面向微内核架构的虚拟文件构建方法及系统

2022-11-19 09:34:33 来源:中国专利 TAG:

技术特征:
1.一种面向微内核架构的虚拟文件构建方法,其特征在于,包括:步骤s1:利用进程隔离抽象,将文件系统实例放在不同进程中,通过进程间通信机制进行交互,使得文件系统各个元件之间相互隔离;步骤s2:将代码根据文件系统语义分层化与模块化步骤s3:修改musl-libc适配微内核的方式,使得动态链接libc的程序无需修改放入系统中使用;步骤s4:采用惰性方式启动文件系统实例。2.根据权利要求1所述的面向微内核架构的虚拟文件构建方法,其特征在于:在所述步骤s1中:将文件系统拆分为用户态磁盘驱动服务、分区挂载服务、具体文件服务接口服务;在所述步骤s2中:编写一个轻量级虚拟文件系统模块收纳所有文件系统请求,并处理这些请求中与具体文件系统制式无关的逻辑,以静态链接库形式提供给文件系统移植人员,移植方根据接口列表中要求的文件系统接口,以填空形式填入函数指针列表完成移植。3.根据权利要求1所述的面向微内核架构的虚拟文件构建方法,其特征在于:在所述步骤s3中:提供可移植操作系统接口兼容的接口,并以动态链接的形式交与应用程序调用,具体技术方法为:在现有的musl-libc源码中,扦插微内核完成文件系统逻辑的进程间通信逻辑,将之编译为一个gcc-wrapper与一个动态链接库libc.so,使得应用程序在动态链接与静态链接时均能够使用自定义的函数行为,并且这些函数保持了原有的可移植操作系统接口兼容性;针对需要内核参与的文件系统相关接口,在内核提供线程调度与内存管理相关接口时完整实现,具体细节如下:通过环形队列与拉取机制建立内核与用户态的异步通信机制,将内核中的缺页事件信息传递给用户态文件系统实例,文件系统实例通过读取该信息,通过调用内核提供的页表接口,进行用户态缺页处理;在所述步骤s3中:当应用程序切实需要使用某个具体文件系统实例时,由全局的应用程序管理器加载具体的文件系统实例,当该文件系统实例已经在系统中运行时,直接建立应用程序与文件系统的通信通道。4.根据权利要求1所述的面向微内核架构的虚拟文件构建方法,其特征在于:为了保证系统的隔离性,应用程序之间的文件系统状态应该相互隔离,包括两个无关进程之间不应该能通过文件系统访问到各自的进程状态,以及无关的请求之间不应该有性能影响;在可移植操作系统接口设计中,文件描述符由系统调用产生,随后通过一系列操作文件描述符的系统调用完成对文件系统的访问,文件描述符分为三类,一是文件类型的描述符,二是目录类型的描述符,三是其他描述符;在linux的设计中,由系统调用产生的描述符可能在不同进程之间共享偏移量数据,偏移量数据应当保存在文件系统服务端而非应用程序端。5.根据权利要求1所述的面向微内核架构的虚拟文件构建方法,其特征在于:
保存在应用程序侧的描述符信息,包括一个整型索引以及文件描述符的类型信息;保存在服务侧的entry,包含描述符偏移量信息;保存在服务侧的虚拟节点。文件描述符的索引由应用程序产生后发送给文件系统服务进行记录,文件系统服务侧会为每个描述符生成一个对应的entry,指向同一个文件的不同entry会被合并指向一个虚拟节点;文件系统服务侧,每个entry对应应用程序侧一个文件描述符,每个虚拟节点对应一个磁盘上的文件,而entry与虚拟节点之间是一个多对一的映射关系;应用程序以可移植操作系统接口兼容的接口使用文件系统,将调用转化成对应进程间通信的代码被封装到musl-libc中,有关文件描述符的数据结构被分到应用部分和服务侧部分,由应用和服务协同完成对文件描述符的操作,文件系统服务侧的数据结构根据应用程序的id分别保存,保证了不同应用进程之间的数据隔离和性能隔离;文件系统装饰器部分的功能主要是接收和分发进程间通信请求;文件系统通用模块位于装饰器和具体文件系统之间,作为可选模块;装饰器和具体文件系统封装成一个静态链接库,保留与具体文件系统有关的函数指针列表,由此最小化文件系统移植过程中的重复代码;每个文件系统实现都包含:一组文件系统装饰器和文件系统通用模块,一个文件系统实现。编码过程中如果开发人员需要扩展文件系统通用模块,则编写对应模块的代码并在文件系统通用模块部分进行对接;如果开发人员需要添加新的文件系统实现,则根据文件系统装饰器内的函数指针列表进行编写,以静态链接的方式与文件系统装饰器进行组合;该框架将文件系统共同的代码逻辑抽象为文件系统装饰器;执行过程中应用程序libc模块通过将用户的可移植操作系统接口请求转化成进程间通信形式发送给文件系统管理服务;文件系统管理服务根据路径参数惰性启动文件系统实例,不同的文件系统实例被分放在不同的进程中,以此达到隔离错误的目的;随后文件系统服务处理具体请求,件系统服务包括文件系统装饰器、文件系统通用模块、一个文件系统实现;文件系统服务进程内更新该请求对应的数据结构后,将运行结果信息返回给应用程序。6.一种面向微内核架构的虚拟文件构建系统,其特征在于,包括:模块m1:利用进程隔离抽象,将文件系统实例放在不同进程中,通过进程间通信机制进行交互,使得文件系统各个元件之间相互隔离;模块m2:将代码根据文件系统语义分层化与模块化模块m3:修改musl-libc适配微内核的方式,使得动态链接libc的程序无需修改放入系统中使用;模块m4:采用惰性方式启动文件系统实例。7.根据权利要求6所述的面向微内核架构的虚拟文件构建系统,其特征在于:在所述模块m1中:将文件系统拆分为用户态磁盘驱动服务、分区挂载服务、具体文件服务接口服务;在所述模块m2中:编写一个轻量级虚拟文件系统模块收纳所有文件系统请求,并处理这些请求中与具体文件系统制式无关的逻辑,以静态链接库形式提供给文件系统移植人员,移植方根据接口列表中要求的文件系统接口,以填空形式填入函数指针列表完成移植。
8.根据权利要求6所述的面向微内核架构的虚拟文件构建系统,其特征在于:在所述模块m3中:提供可移植操作系统接口兼容的接口,并以动态链接的形式交与应用程序调用,具体技术方法为:在现有的musl-libc源码中,扦插微内核完成文件系统逻辑的进程间通信逻辑,将之编译为一个gcc-wrapper与一个动态链接库libc.so,使得应用程序在动态链接与静态链接时均能够使用自定义的函数行为,并且这些函数保持了原有的可移植操作系统接口兼容性;针对需要内核参与的文件系统相关接口,在内核提供线程调度与内存管理相关接口时完整实现,具体细节如下:通过环形队列与拉取机制建立内核与用户态的异步通信机制,将内核中的缺页事件信息传递给用户态文件系统实例,文件系统实例通过读取该信息,通过调用内核提供的页表接口,进行用户态缺页处理;在所述模块m3中:当应用程序切实需要使用某个具体文件系统实例时,由全局的应用程序管理器加载具体的文件系统实例,当该文件系统实例已经在系统中运行时,直接建立应用程序与文件系统的通信通道。9.根据权利要求6所述的面向微内核架构的虚拟文件构建系统,其特征在于:为了保证系统的隔离性,应用程序之间的文件系统状态应该相互隔离,包括两个无关进程之间不应该能通过文件系统访问到各自的进程状态,以及无关的请求之间不应该有性能影响;在可移植操作系统接口设计中,文件描述符由系统调用产生,随后通过一系列操作文件描述符的系统调用完成对文件系统的访问,文件描述符分为三类,一是文件类型的描述符,二是目录类型的描述符,三是其他描述符;在linux的设计中,由系统调用产生的描述符可能在不同进程之间共享偏移量数据,偏移量数据应当保存在文件系统服务端而非应用程序端。10.根据权利要求6所述的面向微内核架构的虚拟文件构建系统,其特征在于:保存在应用程序侧的描述符信息,包括一个整型索引以及文件描述符的类型信息;保存在服务侧的entry,包含描述符偏移量信息;保存在服务侧的虚拟节点。文件描述符的索引由应用程序产生后发送给文件系统服务进行记录,文件系统服务侧会为每个描述符生成一个对应的entry,指向同一个文件的不同entry会被合并指向一个虚拟节点;文件系统服务侧,每个entry对应应用程序侧一个文件描述符,每个虚拟节点对应一个磁盘上的文件,而entry与虚拟节点之间是一个多对一的映射关系;应用程序以可移植操作系统接口兼容的接口使用文件系统,将调用转化成对应进程间通信的代码被封装到musl-libc中,有关文件描述符的数据结构被分到应用部分和服务侧部分,由应用和服务协同完成对文件描述符的操作,文件系统服务侧的数据结构根据应用程序的id分别保存,保证了不同应用进程之间的数据隔离和性能隔离;文件系统装饰器部分的功能主要是接收和分发进程间通信请求;文件系统通用模块位于装饰器和具体文件系统之间,作为可选模块;装饰器和具体文件系统封装成一个静态链接库,保留与具体文件系统有关的函数指针列表,由此最小化文件系统移植过程中的重复代码;
每个文件系统实现都包含:一组文件系统装饰器和文件系统通用模块,一个文件系统实现。编码过程中如果开发人员需要扩展文件系统通用模块,则编写对应模块的代码并在文件系统通用模块部分进行对接;如果开发人员需要添加新的文件系统实现,则根据文件系统装饰器内的函数指针列表进行编写,以静态链接的方式与文件系统装饰器进行组合;该框架将文件系统共同的代码逻辑抽象为文件系统装饰器;执行过程中应用程序libc模块通过将用户的可移植操作系统接口请求转化成进程间通信形式发送给文件系统管理服务;文件系统管理服务根据路径参数惰性启动文件系统实例,不同的文件系统实例被分放在不同的进程中,以此达到隔离错误的目的;随后文件系统服务处理具体请求,件系统服务包括文件系统装饰器、文件系统通用模块、一个文件系统实现;文件系统服务进程内更新该请求对应的数据结构后,将运行结果信息返回给应用程序。

技术总结
本发明提供了一种面向微内核架构的虚拟文件构建方法及系统,包括:步骤S1:利用进程隔离抽象,将文件系统实例放在不同进程中,通过进程间通信机制进行交互,使得文件系统各个元件之间相互隔离;步骤S2:将代码根据文件系统语义分层化与模块化步骤S3:修改musl-libc适配微内核的方式,使得动态链接libc的程序无需修改放入系统中使用;步骤S4:采用惰性方式启动文件系统实例。本发明通过分析现有微内核中文件系统的支持以及它们的不足之处,采用新的技术手段提出了全新的微内核文件系统架构;不仅使得系统应用程序在文件系统接口方面二进制兼容,并且拥有较好的可扩展性与安全特性。并且拥有较好的可扩展性与安全特性。并且拥有较好的可扩展性与安全特性。


技术研发人员:胡雨奇 古金宇 臧斌宇 王肇国
受保护的技术使用者:上海交通大学
技术研发日:2022.08.22
技术公布日:2022/11/18
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献