一种基于VFS的内核文件系统技术方案

技术编号:30367705 阅读:21 留言:0更新日期:2021-10-16 17:40
本发明专利技术公开了一种基于VFS的内核文件系统,包括初始化模块、伙伴系统、文件页管理模块以及文件系统,其中,所述初始化模块用于实现对保留内存的初始化以及高速缓存的分配;所述伙伴系统用于实现对内存页的管理以及文件页的分配/回收计算;所述文件页管理模块用于进程对文件操作时进行当前进程的文件页的修复,并控制文件页的分配、回收以及增添操作;所述文件系统用于向上实现虚拟内存层的函接口,向下通过文件页管理模块对保留内存进行操作,通过上述方式,用户系统不需要去关心底层设备的实现,直接使用系统调用就可以访问,操作底层设备,系统调用使得用户系统有着很高的可移植性,该程序就可以在不同的内核版本上运行。该程序就可以在不同的内核版本上运行。该程序就可以在不同的内核版本上运行。

【技术实现步骤摘要】
一种基于VFS的内核文件系统


[0001]本专利技术涉及存储
,具体涉及一种基于VFS的内核文件系统。

技术介绍

[0002]现如今,随着科学技术的高速发展,计算机的各部分硬件设备都在不断地迭代更新,这其中就包括计算机的硬件存储设备。在很长的一段时间内,磁盘都是作为主要的存储介质,但是在如今,有很多高速存储设备正在冲击着市场,比如目前市场上的SSD固态硬盘。而有些对计算要求比较高的系统,他们希望能够更快的获得数据,并对数据进行计算和存储,这样就使得我们需要在内存中处理大量的数据,而传统的基于磁盘的文件系统设计,在存储介质发生改变后,其实在底部的软件层有着大量的冗余。这样对于高速的存储介质而言,就非常有必要针对性的设计一个文件系统,来减少文件读写在软件层面上的开销。

技术实现思路

[0003]针对现有技术中的上述不足,本专利技术提供了一种基于VFS的内核文件系统。
[0004]为了达到上述专利技术目的,本专利技术采用的技术方案为:
[0005]一种基于VFS的内核文件系统,包括初始化模块、伙伴系统、文件页管理模块以及文件系统,其中,
[0006]所述初始化模块用于实现对保留内存的初始化以及高速缓存的分配;
[0007]所述伙伴系统用于实现对内存页的管理以及文件页的分配/回收计算;
[0008]所述文件页管理模块用于进程对文件操作时进行当前进程的文件页的修复,并控制文件页的分配、回收以及增添操作;
[0009]所述文件系统用于向上实现虚拟内存层的函接口,向下通过文件页管理模块对保留内存进行操作。
[0010]进一步的,当工作在装载状态时,所述初始化模块从内存的起始地址到结束地址建立文件也表,并为所述文件系统分配高速缓存并注册内核,同时为伙伴系统初始化系统链表,并将文件系统进行内核注册。
[0011]进一步的,所述伙伴系统中一个页面有且仅有与当前页面相邻的一个伙伴,其中每一个连续文件页结构均包括一个在指令下的编号num,其中:
[0012]当指令为0是,表示当前连续文件页结构为单页,其编号表示从内存起始地址开始的第num个页面;
[0013]当指令为k时,表示当前连续文件页结构从虚拟地址开始有2
k
个页面,此时以虚拟地址代表的单页编号num向右移动k为当前页的编号。
[0014]进一步的,所述系统链表为双向循环链表,其中每个节点均包含链表头结构,所述链表头节点为头尾指针,分别指向其前一个元素和后一个元素的链表头节点。
[0015]进一步的,当添加文件时,所述伙伴系统在指令为0的系统链表中进行分配,若该系统链表不为空,则所对应的页面空闲页面,将所添加的文件分配给当前页面并从当前链
表中删除该页;
[0016]若指令为0的链表为空,则继续在具有更高指令的系统链表中查找,直至查找到非空系统链表;
[0017]在查找到的非空的系统链表后,将其对应的文件页分为两部分,将前半部分插入到比当前指令小一级的系统链表中,后半部分寻找若满足当前页面要求则分配至当前页面,否则继续划分划分并查找下一级系统链表对应的页面直至满足分配要求;
[0018]当删除文件时,在指令为0的系统链表中查找对应的伙伴页,若没有则直接插入当前链表,若有则将伙伴页从系统链表中删除并于当前也合并。
[0019]进一步的,所述文件页管理系统处于所述文件系统和伙伴系统之间,当文件被创建/删除时,由文件页管理系统出发文件页的分配/删除,文件页的大小与伙伴系统中页的大小相同。
[0020]进一步的,所述文件页管理系统为每个文件再内存中分配一个一级页表基地址以及当前已分配的页面数量,在执行文件分配页时,向所述伙伴系统请求对应数量的液面,并按顺序插入到当前的文件页表中。
[0021]进一步的,所述文件页管理系统通过如下方式定位文件页:
[0022]当无法完成页表替换时,通过用户进程具体给出的偏移量定位文件页;
[0023]当伙伴系统找到空余页面地址空间且空余页面地址空间的起始虚拟地址为4K对齐时,从起始虚拟地址开始替换文件页表中的顶层表项值,并将其替换为对应需要插入的文件的页,其中,当需要插入的文件的页包含n个页面时,需要替换n个页面;
[0024]当伙伴系统找到文件页的空余区段且该空余区段的起始虚拟地址是2M对齐时,从起始虚拟地址开始替换文件页表中的中间表项值,此时,当需要插入到文件的页包含n个页面时,需要替换的表项数为
[0025](n+PAGE_SIZE

1)>>PAGE_SHIFT;
[0026]其中,PAGE_SIZE为页面大小,PAGE_SHIFT是对应的偏移;
[0027]当伙伴系统找到文件页的空余区段且该空余区段的起始虚拟地址为1G对齐时,从启示虚拟地址开始替换文件页表中的中间表象顶层指针。
[0028]进一步的,所述文件系统基于VFS内核,在创建文件时,VFS内核向文件管理系统发出请求并创建索引节点,接收来自父节点的索引指令以及当前文件的目录项以及其他标志位,其中,当所创建的文件为普通文件时,标志位将对应的标识置位S_IFREG,当创建的文件为目录时,标志位将对应的标识置位S_IFDIR;
[0029]当创建索引节点时,从初始化模块分配的高速缓存中分配空间,文件被初次创建时,文件页表的表头地址为空。
[0030]进一步的,当文件系统删除文件时,通过伙伴系统逐一删除与被删除文件相关的所有页并清除页面数据,同时删除对应的页表,最后分配的高速缓存中撤销索引信息。
[0031]本专利技术具有以下有益效果:
[0032]首先,使得我们的用户程序变得更加简便。用户系统不需要去关心底层设备的实现,直接使用系统调用就可以访问,操作底层设备。其次,系统调用使得用户系统有着很高的可移植性,因为只要内核提供的系统调用相同,该程序就可以在不同的内核版本上运行。
附图说明
[0033]图1为本专利技术基于VFD的内核文件系统结构示意图。
[0034]图2为本专利技术实施例系统链表结构示意图。
[0035]图3为本专利技术实施例文件页表结构示意图。
[0036]图4为本专利技术实施例文件页虚拟地址结构示意图。
具体实施方式
[0037]下面对本专利技术的具体实施方式进行描述,以便于本
的技术人员理解本专利技术,但应该清楚,本专利技术不限于具体实施方式的范围,对本
的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本专利技术的精神和范围内,这些变化是显而易见的,一切利用本专利技术构思的专利技术创造均在保护之列。
[0038]一种基于VFS的内核文件系统,如图1所示,包括初始化模块、伙伴系统、文件页管理模块以及文件系统,其中,
[0039]所述初始化模块用于实现对保留内存的初始化以及高速缓存的分配;
[0040]所述伙伴系统用于实现对内存页的管理以及文件页的分配/回收计算;
[004本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于VFS的内核文件系统,其特征在于,包括初始化模块、伙伴系统、文件页管理模块以及文件系统,其中,所述初始化模块用于实现对保留内存的初始化以及高速缓存的分配;所述伙伴系统用于实现对内存页的管理以及文件页的分配/回收计算;所述文件页管理模块用于进程对文件操作时进行当前进程的文件页的修复,并控制文件页的分配、回收以及增添操作;所述文件系统用于向上实现虚拟内存层的函接口,向下通过文件页管理模块对保留内存进行操作。2.根据权利要求1所述的一种基于VFS的内核文件系统,其特征在于,当工作在装载状态时,所述初始化模块从内存的起始地址到结束地址建立文件页表,并为所述文件系统分配高速缓存并注册内核,同时为伙伴系统初始化系统链表。3.根据权利要求2所述的一种基于VFS的内核文件系统,其特征在于,所述伙伴系统中一个页面有且仅有与当前页面相邻的一个伙伴,其中每一个连续文件页结构均包括一个在指令下的编号num,其中:当指令为0是,表示当前连续文件页结构为单页,其编号表示从内存起始地址开始的第num个页面;当指令为k时,表示当前连续文件页结构从虚拟地址开始有2
k
个页面,此时以虚拟地址代表的单页编号num向右移动k为当前页的编号。4.根据权利要求3所述的一种基于VFS的内核文件系统,其特征在于,所述系统链表为双向循环链表,其中每个节点均包含链表头结构,所述链表头节点为头尾指针,分别指向其前一个节点和后一个节点的链表头结构。5.根据权利要求4所述的一种基于VFS的内核文件系统,其特征在于,当添加文件时,所述伙伴系统在指令为0的系统链表中进行分配,若该系统链表不为空,则所对应的页面空闲页面,将所添加的文件分配给当前页面并从当前链表中删除该页;若指令为0的链表为空,则继续在具有更高指令的系统链表中查找,直至查找到非空系统链表;在查找到的非空的系统链表后,将其对应的文件页分为两部分,将前半部分插入到比当前指令小一级的系统链表中,后半部分寻找若满足当前页面要求则分配至当前页面,否则继续划分划分并查找下一级系统链表对应的页面直至满足分配要求;当删除文件时,在指令为0的系统链表中查找对应的伙伴页,若没有则直接插入当前链表,若有则将伙伴页从系统链表中删除并与当前页合并。6.根据权利要求5所述的一种基于VFS的...

【专利技术属性】
技术研发人员:李建平蒋涛李天凯陈强强王青松贺喜
申请(专利权)人:电子科技大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1