1、信息记录材料 年 月 第 卷第 期计算机 操作系统调用测试的自动化设计李 菲(沈阳市公用事业技工学校 辽宁 沈阳)【摘摘要要】操作系统作为计算机中的基础软件,负责整个计算机的指挥与控制工作,而系统调用作为用户访问操作系统内核空间的唯一接口,对其自主可控性进行测试尤为重要。由此,在分析 操作系统的传统系统调用机制和快速系统调用机制的基础上,运用 内核版本对系统调用测试自动化程序进行设计,包括测试过程中的环境配置、用例执行、结果记录和结果分析等模块。并通过面向 的功能测试与分析,结果表明,本文提出的系统调用测试自动化设计在测试用例设计方面具有较强的完备性和灵活性,且适用于国产操作系统。【关关键键词
2、词】操操作作系系统统;系系统统调调用用;测测试试程程序序;自自动动化化设设计计【中中图图分分类类号号】【文文献献标标识识码码】【文文章章编编号号】()作者简介:李菲(),女,辽宁葫芦岛,硕士,讲师(中级),研究方向:计算机应用。引言在计算机中,操作系统作为基础组成部分,是保障计算机系统正常、稳定运行的关键。随着计算机生态体系的不断完善,各类操作系统崭露头角,操作系统凭借自身开源免费、软件环境良好、服务器发展势头强等优势,在嵌入式系统和个人电脑等领域具有广泛的应用。但与之相伴的是在操作系统的快速发展以及用户需求的不断增多下,操作系统内核的更新速度更快,内核复杂性也在持续提升,随着内核接受代码量的
3、增加,内核遭受攻击的范围相继提升,导致计算机系统面对的安全隐患加剧,此时就需要对操作系统进行自主可控测试。而系统调用作为操作系统内核测试的关键切入点,在发展进程中规模越来越大,无论是数量、种类还是复杂程度均发生了较大的改变,致使操作系统调用测试工作的难度增大,且易出现遗漏情况。由此,基于 操作系统内核,设计一种面向系统调用测试的自动化程序框架,以此实现对系统调用的全面、高效测试,为国内操作系统开发工作的进一步发展提供支持。操作系统调用机制 传统系统调用机制针对 操作系统而言,传统系统调用机制原理如下:借助软中断将用户态的代码请求转移至内核态之中,当前执行代码 段所处位 置可用代码 段寄存 器(
4、,)中最低两位予以表述。在某个系统调用执行时,需将调用号、参数和程序的上下文环境存储至寄存器之中,再进行软中断。之后由中央处理器从中断描述符表中提取匹配门描述符,并对门描述符的结构化查询语言(,)和调用者的计算机程序库(,)进行检查,当 大于 时,调用者才可以访问此代码段。此时,指令会更改寄存器中的 为,从而进入 系统内核。门描述符是()函数,入口地址储存在中断描述符之中,在 初始化时预先设置好此函数,当执行软中断指令时,则会自动执行()。同时,()作为全部系统调用的公用入口,能够根据调用号对相应的内核函数予以处理。最后,执行 指令即可切回用户态。快速系统调用机制自 内核 之后,出现快速系统调
5、用机制。因为在执行系统调用时调用者的 必然是,对应的门描述符 也为。由此,采用 指令将处在 的用户程序可以直接调用处在 的内核程序,并利用 指令将处在 的内核程序切回到用户程序。此过程中,因为无需进行 和 检查,系统调用指令的执行速度明显增快。以 的快速系统调用指令为例,其实现主要涉及如下三个寄存器:(),负责存储待执行的内核态代码段,还能得到内核堆栈段基址和用户态代码段与堆栈段基址;()负责存储下一次将要执行指令的偏移地址;():负责存储内核态代码堆栈的栈顶指针。对于上述寄存器内容的写入采用 指令,而读取则可采用 指令。当用户程序调用 指令时,即可在 寄存器中存储内核态代码段描述符,将值增加
6、 后于 寄存器中进行存储,将待执行的指令地址存入企业信息门户寄存器,并将栈顶指针存入扩展栈指针寄存器,从而实现 向 的切换,对相应的内核程序予以执行。操作系统调用测试自动化程序设计与实现 系统调用分类针对 内核版本而言,系统调用表是 内核的大数据结构,负责对所有系统调用内核函数指针进行记录,借助此表即可明确哪个系统调用得到实现。在 架构下,使用 文件实现初始化系统调用表。通过对系统调用表的分析,能够明确 信息记录材料 年 月 第 卷第 期内核版本在 架构下实现的系统调用共有 个,依照功能划分,共分为以下 类:()文件操作:共具有 个文件操作类系统调用,涉及文件的创建、读写、删除、复制、重命名、
7、属性设置等功能。()系统管理:共具有 个系统管理类系统调用,涉及系统日期、时间的设置和获取,系统数据的设置和查看等功能。()进程控制:共具有 个进程控制类系统调用,涉及进程创建、执行、加载、终止以及进程属性设置等功能。()通信:共具有 个通信类系统调用,涉及通信连接的创建、删除,状态信息传递,消息接发等功能。()内存管理:共具有 个内存管理类系统调用,涉及内存页面的加解锁、映射以及内存缓冲区数据写回等功能。()用户管理:共具有 个用户管理类系统调用,涉及用户组的设置、修改以及用户权限等功能。系统调用测试自动化程序设计及实现现阶段系统调用测试方法以黑盒测试为主,测试过程缺少对内核函数的分析,忽略
8、了测试程序的内部实现,导致系统调用测试易出现用例冗余或覆盖范围不全的情况。因此,在上述分析的基础上提出一种基于灰色测试的系统调用测试自动化程序。用例设计和优化系统调用由用户程序发起,以“文件打开”系统调用为例。用户程序共传入 个参数,在第 个参数中文件打开标志位存有 个选项,各选项还可以与其他标志项进行多种组合,倘若未进行内核源码分析就对参数进行盲目性的组合,一方面可能出现只能对错误代码进行调用的情况,导致核心功能代码未执行,从而造成用例冗余,增加系统调用测试难度,另一方面部分系统调用的内核函数完全相同,例如 与 等。针对此类系统调用测试而言,可以选择传递参数最全的系统调用进行测试,尽可能减少
9、测试数量。在系统调用测试程序的执行过程中,具体的执行路径取决于 条件判断,由此在用例优化过程中,可从 条件判断的优化入手。考虑部分 条件判断的标准为不可控因素,所以可以将此类 条件判断忽略,例如()函数是对缓存中某个目录项进行查找,并非用户程序可控,故此可以忽略。倘若 条件判断与用户传入参数相关,在测试过程中无论真假分支均需进行测试。此外,通过对系统调用内核源码的静态分析,能够发现内核函数在系统调用的实现过程中还与内核安全自主访问控制机制的权限检测有关。在测试前,需要提前赋予用户针对文件拥有的访问控制列表(,)权限或进程具备的能力。在此过程中,若只采用黑盒测试对系统调用功能的实现进行验证,难免
10、全面涉及所有与权限检查相关的代码,导致执行测试的过程中内核代码的覆盖率较低。测试程序自动化设计和实现基于上述对系统调用分类和内核函数的分析,对系统调用测试程序自动化的设计流程如图 所示。图 系统调用测试自动化流程图在系统调用测试自动化流程中,测试环境配置、测试用例执行、测试结果记录与分析均实现自动化,显著提升系统调用测试的效率。在自动化设计过程中,将自动化测试程序的目录进行四层结构设计,如图 所示。第一层目录结构是系统调用的六大分类。第二层目录结构包括部分以系统调用名称进行命名的子目录,一个 文件以及 脚本,文件可递归至第三层目录结构中的 文件之中,从而实现对同一系统调用中全部测试程序的共同编
11、译。而 脚本则可以对已经完成编译的测试程序进行执行。第三层目录结构中 文件负责对某系统调用测试程序进行编译,因为 在一两层目 录结构中也 对 文件及对应的脚本进行设计,所以测试程序自动化粒度既要求能够对同类系统调用进行统一测试,也能够针对单独的一个系统调用进行测试。中存储的是测试分析结果,采用系统调用名称测试时间的方式对存储文件进行命名。中存储的是执行测试时创建的目录与文件。存储的是测试程序中具有的头文件,其中包括存放测试用例和结果的结构体。通过对测试用例数量 宏的初始化,当出现用例数量变化时,仅需对宏进行修改或调整即可。则是主要测试程序,通过对可执行文件的运行实现对系统调用的测试,负责初始化
12、数据结构体和全局变量、逐条获取测试用例参数、执行系统调用测试、记录结果、编写日志等工作。脚本负责测试前的环境配置和检查工作,例如权限检查,用户及用户组创建并赋予相应权限等。存储的信息记录材料 年 月 第 卷第 期图 系统调用测试自动化程序目录结构是为单个系统调用设计的测试用例,测试程序可将从此文件中提取出的用例存入 结构体中。当完成系统调用测试之后,即可对设置的测试环境进行清除,考虑不同系统调用测试需要的测试环境也有所差异,所以应依照具体测试情况对测试环境清除程序进行设计。大体上,测试环境清除的类别划分如下:()对测试前预先创建的目录或文件进行清除;()对测试前预先创建的用户及用户组以及赋予的
13、权限进行清除;()对测试过程中创建的目录和文件进行清除;()对执行测试时打开的文件予以关闭。面向 的测试实施和结果分析 是一款类 的国产计算机操作系统,将上述设计的测试用例移植到 上,既是对系统调用测试程序自动化设计成果的检验,也是对 系统调用测试用例在国产操作系统中的适用性展开探究。测试用例执行在面向 的测试过程中,需采用 工具对测试环境进行部署,并新建 工程。实验采用兆芯,编译工具链为,编译代码级别是。当完成 工程创建后,编译 内核,完成编译后即可将其上传至目标板上并启动。之后对测试工程进行建设,须注意在 工程中对创建好的 文件夹进行选择,并对测试工程予以编译,编译完成的工程上传至 系统目
14、标文件之中。最后将编译好的测试程序在目标板上进行执行。测试结果分析系统调用测试实验结果显示,在 个测试用例中存在 个用例的执行结果和预期不符,如表 所示,其余测试结果均与预期结果和 测试结果保持一致。以其中问题级别为“严重”的、为例,主要测试的是 标志同写权限之间的关系。是当文件存在清空文件内容,在打开时需赋予用户相应的写 权限,文件自身 也 需 要 提 供 权 限。但 在 测试中并未检查对写权限的赋予,与操作系统的安全性问题有关,所以标注问题级别为“严重”。表 测试结果对照表序号预期结果 测试结果 测试结果问题级别打开失败打开失败打开成功建议打开失败打开失败打开成功建议打开失败打开失败打开成
15、功建议打开失败打开失败打开成功严重打开失败打开失败打开成功建议打开失败打开失败打开成功严重打开失败打开失败打开成功严重打开失败打开失败打开成功严重同时,将本文提出的系统调用测试程序与 测试计划(,)程序进行对比,发现本文提出的系统调用测试自动化程序更为灵活,既可支持单一或全部系统调用的检测,也支持某一类的系统调用检测。同时,由于本文提出的测试自动化程序建立在灰盒测试方法基础上,在测试用例设计上基于系统调用内核源码分析,且尽可能全面覆盖代码执行路径,在用例设计方面具有更强的完备性,冗余情况得到有效减少。以 系统调用为例,测试仅对其基本功能进行了验证,测试用例仅在 个测试程序中有所分布;而本文提出
16、的测试自动化程序,针对 系统调用共设计了 个用例,除基本功能测试外还包含面向 机制的权限测试、内核机制的权限测试等,在测试用例的完备性方面明显更强,可选性更为灵活。结语综上所述,本文基于对 操作系统调用测试机制的介绍以及系统调用类型划分,对 操作系统调用测试自动化程序展开设计,总结规律优化系统调用测试用例。并将测试用例移植到 操作系统之中进行检验,分析测试结果,在验证系统调用程序自动化设计有效的同时,对更适合国产计算机操作系统的自动化系统调用测试方法进行探究。【参考文献】董文清 操作系统的安装调试 电子技术与软件工程,():(下转第 页)信息记录材料 年 月 第 卷第 期操作控制管理装置组成。
17、其中分散生产过程操作控制管理装置是用来控制生产集散过程和其他生产操作过程,其通过分散控制管理装置将各种控制变量转变为生产操作控制监控变量数据,而生产操作中各种变量数据也全部被传输到生产执行控制机构。因此,在设计总线控制系统时,应结合实际,全面提高系统运行的稳定性,加强其整体性能。()总线控制系统 总线分布式控制系统是一种新型的分散式现场总线控制系统,合理利用传统硬件接线方式,实时监控现场设备实际应用情况。同时,能通过现场总线方式控制智能设备,适用于中大型工业生产控制方面,能加强逻辑控制功能,从而满足各行业控制要求。因为在隔离变送器输入的信号中,包含了可以一路与 模组连接的信号,并与分布式控制站
18、实现转换为 总线信号后的联结,形成 现场总线完整的分布式控制系统。操作员站则主要应用于人机交互,便于工作人员随时调整系统的控制方式,提高工作的针对性和合理性,以直观的流程界面监控为基础。另外,数据服务器在系统中具备日记记录、历史资料储存等功能,该自动控制联锁系统主要包括液位、设定、流量等方面内容,能自动控制化工生产过程,当实际液位低于设定液位时,分布式液位控制器会自动触发报警信号,关闭液位调节制动阀联锁系统;当液位超过设定液位时,分布式控制系统终端会触发信号,关闭开关触点,停止整个设备运行。()现场总线控制系统在设计 现场总线控制系统时,要将对应技术应用到现场总线控制方面。而 作为现代最先进的
19、控制技术,在工业现场设备控制中应用最为频繁,可以有效地做到以太网标准的开放性和即时性,能将多样化 技术应用到各行业控制系统中。分布式控制系统利用塔底自动控制系统能控制 液位,一旦塔底无法保证 液位的稳定性,很容易给整个后塔进料需求量带来严重影响;相反,如果工作人员不能定期提高后塔进料需求量的稳定性,会影响到 液位的稳定。而在传统产品生产过程中,由于工作人员在生产时并未对产品进行系统性分析,从而导致很多能源和原料出现浪费问题,对社会经济和经济效益都造成严重影响。现场总线控制系统能充分发挥以太网优势,如稳定性强、标准高、效率高等特征,合理调整 协议,打造工作实时监控的健全标准。此外,由于部分信号与
20、 总线在隔离变送器输出信号中互相连接,并直接传送到分布式控制站,可以建立合理的 现场总线控制系统目标。通过上述设计,能帮助工作人员融合分布式控制系统和现场总线技术,增加系统整体性能,实时监控整个工业生产环节,控制现场操作人员的生产流程。结语综上所述,为了得到预期设计效果,要合理控制各种工业生产过程数据,如温度、压力、液位、流量、压力等参数,充分发挥分布式控制系统作用,体现出现场总线技术价值。因此,本文以现场总线技术为核心,优化分布式控制系统结构,将软件和硬件相互结合,满足工作人员真实模拟仿真要求。【参考文献】冯勋亮,孙景乐 基于国产密码的网络安全组件的分布式系统设计 集成电路应用,():许建峰
21、,许俊渊,方洪波 基于 的发电厂分布式网关网络信息安全存储系统设计 现代电子技术,():金世昕 基于工业以太网的自动化生产线分布式控制系统设计 精密制造与自动化,():柏乃琳 轨道交通综合监控系统的设计研究 信息记录材料,():李辉德 基于分布式系统的循环流化床锅炉给煤机智能控制程序设计 今日自动化,():魏涛涛,梁嘉琳,赵爽 一种分布式系统电路板卡寿命自动诊 断 报 警 系 统 的 设 计 方 法:李宗攀 智深 分布式在火电厂分布式国产化改造中的工程应用及其设计优化 自动化博览,():冀苗苗,王冬,刘志凯,等 核电安全级分布式系统多节点通信网络容错技术的开发及应用 核电子学与探测技术,():(上接第 页)贾巧雯,马昊玉,厉严,等 一种嵌入式 系统上的新型完整性度量架构 计算机研究与发展,():吴刚 系统防火墙技术辨析 网络安全和信息化,():夏盛明 利用内核脚本执行引擎优化系统调用过程 电子技术与软件工程,():范舒颜 浅析 操作系统构建原理与应用 中国新通信,():