一种基于ARINC653标准的文件系统分区访问控制方法与流程

文档序号:29924218发布日期:2022-05-07 10:29阅读:246来源:国知局
一种基于ARINC653标准的文件系统分区访问控制方法与流程
一种基于arinc653标准的文件系统分区访问控制方法
技术领域
1.本公开涉及计算机系统软件技术领域,尤其涉及一种基于arinc653标准的文件系统分区访问控制方法。


背景技术:

2.综合化、模块化航空电子系统(ima)将多个应用系统集成到具有高速处理能力的计算机中,通过资源共享,提升系统能效。分区操作系统是ima系统所主要采用的嵌入式实时操作系统。为了保证确定性和健壮性,分区操作系统中的分区在空间和时间是相互隔离的。航空系统综合化的趋势下,航电系统中满足arinc653标准的分区操作系统得以广泛应用。
3.同时文件系统是分区操作系统中各个分区使用的主要功能。在常见的ima系统中,多个分区需要对处于核心操作系统中的文件系统进行访问进行相应操作。基于上述需求,如果能考虑到分区操作系统中分区对文件系统的访问权限进行相应的限制,则能够提升系统的可靠性,方便用户进行权限管理。


技术实现要素:

4.有鉴于此,本公开实施例提供一种基于arinc653标准的文件系统分区访问控制方法,解决在符合arinc653标准操作系统的多个分区对处于核心操作系统中的文件系统进行访问时的权限控制的问题。本发明是在分区操作系统文件系统所在核心层的设备管理处理过程中,对分区的文件系统访问权限进行限制,提升系统的可靠性,方便用户进行权限管理。
5.为了实现上述目的,本发明提供如下技术方案:
6.一种基于arinc653标准的文件系统分区访问控制方法,包括如下步骤:
7.(1)分区操作系统开发环境配置工具,根据用户分区模块配置记录中volumes元素进行设置,配置每个volume卷元素的mountpoint挂载点、ownerpartition所属分区的分区名和readerpartition读取分区的分区名,集成项目构建时配置项目生成对应的配置记录;
8.(2)在核心操作系统初始化的过程中,对配置记录中volumes元素进行处理,将每个volume元素的属性转化到全局卷访问控制数据中;
9.设备管理初始化时,若可以获取全局卷访问控制数据并且有volume元素配置数据,则初始化文件系统分区访问控制检查函数挂钩;
10.(3)在分区用户态中调用设备管理标准open接口,通过系统调用进入到系统态,系统调用处理程序转入设备管理open操作中,找到对应设备后进行文件系统分区访问控制检查函数挂钩的检查;
11.若挂钩存在,则检查设备所属类型是否为文件系统类型的设备;
12.若是,则给文件系统分区访问控制检查函数传入设备控制头参数和open接口输入参数flags,进入文件系统分区访问控制检查函数中,获取分区号;
13.若分区号为1,则检查输入参数flags中是否有写权限的标记,
14.若有,则循环对全局卷访问控制数据中的volumes元素进行匹配比较,
15.若volume名称与设备名称匹配,则检查访问分区是否是ownerpartition所属分区,若是,则返回success,代表允许访问。
16.进一步地,步骤(3)中,若挂钩不存在,则跳过分区访问控制检查函数挂钩的检查,直接进行设备管理操作。
17.进一步地,步骤(3)中,若则检查设备所属类型不是文件系统类型的设备,则跳过检查,直接进行设备管理操作。
18.进一步地,步骤(3)中,若分区号为0,则代表是核心操作系统访问,则返回success,代表允许访问。
19.进一步地,步骤(3)中,检查访问分区是否是ownerpartition所属分区,若不是,则根据readernid进一步循环检查readerpartitionid拥有读权限的分区号记录,若在记录中,则返回success。
20.进一步地,根据readernid进一步循环检查readerpartitionid拥有读权限的分区号记录,若不在记录中,返回到设备管理标准open接口中,返回permissiondenied访问权限拒绝错误码和failure返回值。
21.进一步地,用户可以配置一个或者多个volume卷元素,每个volume卷元素只包含一个mountpoint挂载点,同时该volume卷元素下只有一个ownerpartition所属分区,可以有0个或者多个readerpartition读取分区。
22.进一步地,全局卷访问控制数据属性包含配置类型、配置数据大小、volume名称、拥有读写权限、拥有读权限的分区号记录和能够读访问的分区id列表有效表项。
23.本发明的基于arinc653标准的文件系统分区访问控制方法,解决了在符合arinc653标准操作系统的多个分区对处于核心操作系统中的文件系统进行访问时的权限控制的问题,方便用户对不同分区进行文件系统访问权限的管理,提升系统的可靠性。
附图说明
24.为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
25.图1为本发明实施例的分区访问控制方法示意图。
具体实施方式
26.下面结合附图对本公开实施例进行详细描述。
27.以下通过特定的具体实例说明本公开的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本公开的其他优点与功效。显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。本公开还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本公开的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下
所获得的所有其他实施例,都属于本公开保护的范围。
28.要说明的是,下文描述在所附权利要求书的范围内的实施例的各种方面。应显而易见,本文中所描述的方面可体现于广泛多种形式中,且本文中所描述的任何特定结构及/或功能仅为说明性的。基于本公开,所属领域的技术人员应了解,本文中所描述的一个方面可与任何其它方面独立地实施,且可以各种方式组合这些方面中的两者或两者以上。举例来说,可使用本文中所阐述的任何数目个方面来实施设备及/或实践方法。另外,可使用除了本文中所阐述的方面中的一或多者之外的其它结构及/或功能性实施此设备及/或实践此方法。
29.还需要说明的是,以下实施例中所提供的图示仅以示意方式说明本公开的基本构想,图式中仅显示与本公开中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
30.另外,在以下描述中,提供具体细节是为了便于透彻理解实例。然而,所属领域的技术人员将理解,可在没有这些特定细节的情况下实践所述方面。
31.本公开实施例提供一种基于arinc653标准的文件系统分区访问控制方法,包括如下步骤:
32.(1)分区操作系统开发环境配置工具,根据用户分区模块配置记录中volumes元素进行设置,配置每个volume卷元素的mountpoint挂载点、ownerpartition所属分区的分区名和readerpartition读取分区的分区名,集成项目构建时配置项目生成对应的配置记录;
33.(2)在核心操作系统初始化的过程中,对配置记录中volumes元素进行处理,将每个volume元素的属性转化到全局卷访问控制数据中;设备管理初始化时,若可以获取全局卷访问控制数据并且有volume元素配置数据,则初始化文件系统分区访问控制检查函数挂钩;
34.(3)在分区用户态中调用设备管理标准open接口(传入参数包含文件系统打开地址),通过系统调用进入到系统态,系统调用处理程序转入设备管理open操作中,找到对应设备后进行文件系统分区访问控制检查函数挂钩的检查;若挂钩不存在,则跳过分区访问控制检查函数挂钩的检查,直接进行设备管理相关操作;若挂钩存在,则检查设备所属类型是否为文件系统类型的设备,如果不是,否则跳过检查;若是,则给文件系统分区访问控制检查函数传入设备控制头参数和open接口输入参数flags,进入文件系统分区访问控制检查函数中,获取分区号;如果分区号为0,则代表是核心操作系统访问则返回success,代表允许访问;若分区号为1,则检查输入参数flags中是否有写权限的标记,若有,则循环对全局卷访问控制数据中的volumes元素进行匹配比较,若mountpoint即volume名称与设备名称匹配,则检查访问分区是否是ownerpartition所属分区,若是,则返回success,代表允许访问;若不是,则根据readernid进一步循环检查readerpartitionid拥有读权限的分区号记录,若在记录中,则返回success。
35.实施例一
36.本实施例提出一种基于arinc653标准的文件系统分区访问控制方法,通过对arinc653配置文件中增加文件系统访问权限的配置,使得操作系统分区在访问核心层的文件系统的时候进行权限的审核和控制。技术方案包括:
37.步骤101:用户对配置记录中volumes元素进行设置,配置每个volume卷元素的mountpoint挂载点、ownerpartition所属分区的分区名和readerpartition读取分区的分区名;
38.需要说明的是,用户可以配置一个或者多个volume卷元素,每个volume卷元素只包含一个mountpoint挂载点,同时此volume卷元素下只有一个ownerpartition所属分区,可以有0个或者多个readerpartition读取分区,具体见表1;集成项目构建时配置项目生成对应的配置记录,目标机中操作系统初始化时会读取之前加载到目标机中的配置记录。
39.表1:volume卷元素
40.配置项意义备注idvolume的id标识例如0,要求序号唯一mountpoint挂载点a:的形式,采用大写字母,盘符ownerpartition拥有读写权限唯一readerpartition拥有读权限0个或者多个
41.步骤102:在核心操作系统初始化的过程中,对配置记录中volumes元素进行处理,将每个volume元素的属性转化到全局卷访问控制数据中。之后设备管理初始化时候如果可以成功获取全局卷访问控制数据并且有volume元素配置数据,则初始化文件系统分区访问控制检查函数挂钩。否则,则不初始化文件系统分区访问控制检查函数挂钩。
42.全局卷访问控制数据属性包含配置类型、配置数据大小、volume名称、拥有读写权限、拥有读权限的分区号记录和能够读访问的分区id列表有效表项。
43.需要说明的是,全局卷访问控制数据包含项见表2。
44.表2:全局卷访问控制数据
45.[0046][0047]
步骤103到步骤109为用户日常文件操作的处理流程如图1所示。
[0048]
步骤103:在分区用户态中调用设备管理标准open接口(传入参数包含文件系统打开地址)通过系统调用进入到系统态,系统调用处理程序转入核心层设备管理open操作中,找到对应设备后进行文件系统分区访问控制检查函数挂钩的检查,如果挂钩存在则进入步骤104,否则跳过分区访问控制检查函数挂钩的检查,直接进行设备管理相关操作。
[0049]
步骤104:检查设备所属类型是否为文件系统类型的设备,如果是则进入步骤105检查,否则跳过检查,直接进行设备管理相关操作。
[0050]
步骤105:给文件系统分区访问控制检查函数传入设备控制头参数和open接口输入参数flags。进入文件系统分区访问控制检查函数中,获取分区号,如果分区号为0,则代表是核心操作系统访问则返回success,代表允许访问,否则进入步骤106。
[0051]
步骤106:检查输入参数flags中是否有写权限的标记,如果有则进行步骤107检查,否则直接进行步骤108检查。
[0052]
需要说明的是,写权限的标记包括o_rdwr、o_wronly、o_append、o_creat和o_trunc。
[0053]
步骤107:根据sarincvolumetblsize循环对全局卷访问控制数据中的volumes元素进行匹配比较,如果mountpoint即volume名称与设备名称匹配,则检查访问分区是否是ownerpartition所属分区,如果是则返回success,如果不是则返回failure,最后进入步骤109。
[0054]
步骤108:根据sarincvolumetblsize循环对全局卷访问控制数据中的volumes元素进行匹配比较,如果mountpoint即volume名称与设备名称匹配,则检查访问分区是否是ownerpartition所属分区,如果是则返回success,如果不是则根据readernid进一步循环检查readerpartitionid拥有读权限的分区号记录,如果在记录中则返回success,如果还不在则返回failure,最后进入步骤109。
[0055]
步骤109:回到设备管理标准open接口中,判断检查结果的返回值,如果为success,则进一步进行设备管理的相关操作,否则返回permission denied访问权限拒绝
错误码和failure返回值。
[0056]
需要说明的是,在步骤102如果用户在配置表中不配置任何volume元素,则sarincvolumetblsize为0,系统初始化的时候不进行挂钩函数的初始化,则在用户在分区用户态中调用设备管理标准open接口后会按照步骤103中最后直接进行设备管理相关操作。
[0057]
实施例二
[0058]
本实施例以3个分区即分区1、分区2和分区3,2个卷元素即分别为c:卷和d:卷为例进行说明,方法包括:
[0059]
步骤201:用户对配置记录中volumes元素进行设置,配置其中一个volume卷元素的mountpoint挂载点为“c:”,ownerpartition所属分区为分区1和readerpartition读取分区的为分区2和分区3;配置另一个volume卷元素的mountpoint挂载点为“d:”,ownerpartition所属分区为分区2和readerpartition读取分区的为分区1和分区3;
[0060]
步骤202:在核心操作系统初始化的过程中,对配置记录中volumes元素卷c:卷和d:卷进行处理,将每个volume元素的属性转化到全局卷访问控制数据中,并初始化文件系统分区访问控制检查函数挂钩。
[0061]
步骤203:在分区1用户态中调用设备管理标准open接口(传入参数为c:和o_rdwr)通过系统调用进入到系统态,系统调用处理程序转入设备管理open操作中,找到对应设备后进行文件系统分区访问控制检查函数挂钩的检查,进入到步骤204进行检查。
[0062]
步骤204:检查设备所属类型为文件系统类型的设备,进入步骤205检查。
[0063]
步骤205:给文件系统分区访问控制检查函数传入设备控制头参数c:和输入参数flags为o_rdwr。进入文件系统分区访问控制检查函数中,获取分区号为1,进入步骤206。
[0064]
步骤206:检查输入参数flags中是有写权限的标记,进入步骤207检查。
[0065]
步骤207:循环查找两个volumes卷元素对全局卷访问控制数据中的volumes元素进行匹配比较,mountpoint名称c:与设备名称c:匹配,检查其ownerpartition所属分区为分区1与访问分区匹配,返回success,进入步骤208。
[0066]
步骤208:回到设备管理标准open接口中,判断检查结果的返回值为success,则进一步进行设备管理的相关操作。
[0067]
步骤209:在分区1用户态中调用设备管理标准open接口(传入参数为d:和o_rdwr)通过系统调用进入到系统态,系统调用处理程序转入设备管理open操作中,找到对应设备后进行文件系统分区访问控制检查函数挂钩的检查,进入到步骤210进行检查。
[0068]
步骤210:检查设备所属类型为文件系统类型的设备,进入步骤211检查。
[0069]
步骤211:给文件系统分区访问控制检查函数传入设备控制头参数d:和输入参数flags为o_rdwr。进入文件系统分区访问控制检查函数中,获取分区号为1,进入步骤212。
[0070]
步骤212:检查输入参数flags中是有写权限的标记,进入步骤213检查。
[0071]
步骤213:循环查找两个volumes卷元素对全局卷访问控制数据中的volumes元素进行匹配比较,mountpoint名称d:与设备名称d:匹配,检查其ownerpartition所属分区为分区2与访问分区不匹配,返回failure,进入步骤214。
[0072]
步骤214:回到设备管理标准open接口中,判断检查结果的返回值为failure,返回permission denied访问权限拒绝错误码和failure返回值。
[0073]
步骤203到步骤208为一个操作循环,步骤209到步骤214为一个操作循环,类似操作循环在分区2和分区3操作同理。
[0074]
本发明提出了一种基于arinc653标准的文件系统分区访问控制方法,解决在符合arinc653标准操作系统的多个分区对处于核心操作系统中的文件系统进行访问时的权限控制的问题,方便用户对不同分区进行文件系统访问权限的管理,提升系统的可靠性。
[0075]
以上所述,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应以权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1