期刊鉴别 论文检测 免费论文 特惠期刊 学术答疑 发表流程

一种指令级Linux内核瞬时故障注入方法研究

时间:2015-10-21 10:19 文章来源:http://www.lunwenbuluo.com 作者:张影,杨麦顺,张兴军 点击次数:

  【摘要】:为对Lmux操作系统的可靠性和健壮性进行测试,提出一种指令级Lmux内核瞬时故障注入方法。该方法允许测试人员动态地向指定的内核指令及其运行环境注入故障,并根据测试需求设计合适的故障模式,从而收集系统的反馈信息,研究导致系统失效的故障模式,实现对Lmux系统可靠性与健壮性的有效测试。以Lmux2.6.32内核为目标系统进行故障注入实验,结果表明,该方法能够有效地对内核指令及其运行环境进行故障注入,并在此基础上完成Lmux系统对不同故障的敏感度统计。
  【关键词】:Lmux内核;故障注入;可靠性;健壮性;测试;Lmux系统
  1概述
  金融、电信等关键性领域对计算机系统的安全性要求非常高,甚至要求零失误。但随着计算机性能的提高,其电子元件的规模越来越大,也越来越复杂,计算机发生故障的概率也大大增加,当系统因故障导致错误、失效或是宕机时,往往会造成不可估量的损失。因此,对系统的可靠及健壮性进行测试是非常有必要的。现阶段,基于故障注入的测试是评测计算机系统可靠性的重要方法之一。
  目前的系统测试工具多建立在跟踪及查看的基础上,例如Systemtap工具可对运行中的Linux内核进行监控和跟踪,它允许测试人员通过编写Systemtap脚本,获取内核数据及相关信息,strace命令可以跟踪程序执行时的系统调用和所接收的信号,包括参数、返回值、执行消耗的时间等。这些方法能够达到一定的测试目的,但都没有人为地对内核引入故障并测试系统处理故障的能力。当然Linux也提供了一些错误注入机制,例如failslab,它实现了slab分配器的内存分配错误注入2。但测试人员只能通过特定的命令触发系统预设好的错误,不能根据测试人员的意愿向内核注入自定义故障,依然达不到对系统处理故障的测试。
  此外,目前存在的大多数故障注入工具都是针对应用程序,不能实现Linux内核程序故障的注入,例如美国密歇根大学研制的DOCTORH故障注入工具,能够注入CPU、内存和通信故障,还能够注入系统行为级的高层故障。商用软件故障注入工具XceptionH利用CPU提供的调试寄存器实现了内存和CPU故障注入,但上述故障注入方法均不适用于内核故障注入。为此,本文提出指令级Linux内核瞬时故障注入(Instruction-levelFaultInjectionMethodforLinuxKernel,IFIMK)方法,由测试人员控制故障的触发位置及故障模式,向Linux内核引入指令级的瞬时故障,并分析各个故障对系统失效率的影响。
  2IFIMK故障研究
  对一个运行中计算机系统来说,故障的发生是随机的,但不同的故障发生的概率仍不尽相同。根据卡内基梅隆大学LANL实验室公布的一批高性能计算系统的故障统计0,在环境配置故障、硬件故障、人为故障、网络故障、软件故障、未确定故障等6类故障中,62%的故障是硬件故障,占主要比重,另外其他故障如软件异常等,也有一部分是由硬件导致的。而硬件故障注入技术能够访问到_些其他方法访问不到的位置,比如集成电路的内部,这对于其他方法是几乎不可能实现的。
  硬件故障注入技术可分为物理故障注入、仿真故障注入和模拟故障注入3类67-3。物理故障注入使用附加的硬件产生物理现象例如重离子辐射、电磁干扰等通过影响芯片内部电流和电压的变化,向目标系统引入故障。这种方法需要制定特殊的硬件,并很难控制和观察芯片内部的故障注入情况。仿真故障注入技术可控制故障注入时间、故障类型等,但这种技术精度不高,需要大量的开发工作,非常耗时。模拟故障注入以软件的方式模拟硬件故障,实现对系统硬件故障的注入,这种故障引入的方式工作量少、花费少也容易实现,同时可达到较高的故障覆盖率M。
  基于以上讨论,本文采用软件的方式向Linux内核注入硬件故障。
  3IFIMK方法描述
  IFIMK内核故障注入方法提供一种指令级的故障注入方法,其目标是将特定的故障模式注入到动态运行的Linux内核的特定指令及其运行环境中,分析不同故障模式对系统失效率的影响。
  3.1故障模式定义
  故障注入首先选择特定的故障模型,人为地向目标系统内核引入故障,以加速失效的发生,通过系统的反馈,得到有效性的系统测试结果。故障模式描述了_个系统故障的完整信息,合理的故障模式有助于测试人员对测试结果的分析。目前被广为接受的一种故障注入模型是FARM模型612,由故障集合、激活集合、读回集合和度量集合组成。IFIMK根据自己的需求将故障模式定为Fault(i_position,f_positon,f_type)形式,包括故障注入的目标指令地址、故障注入的位置以及故障类型。
  计算机上电初始化时,物理内存被设置成从地址0开始的连续区域。通过BIOS程序和自身引导程序的有序引导,内核映像文件被加载到内存的固定位置,其代码和内核栈分别位于内存的不同区域,保护模式开启后,系统通过线性地址对不同区域的内存数据进行访问。
  在IFIMK方法中,故障注入模块将依据i_position项指定插入断点的位置,故障注入位置取决于f_positon项提供的指令地址或寄存器名称,注入故障的类型由f_type项给出。
  3.2LKM支持
  为使故障注入模块具有和内核_致的访问权限,跨过Linux操作系统对内核的地址保护,IFIMK以动态可加载内核模块(LoadableKernelModule,LKM)的方式将其加载进内核。LKM支持内核模块的动态加载,装载后,故障注入模块作为内核的一部分运行在系统内核空间,具有内核级的访问权限,可直接访问操作系统内核数据结构和程序。

  •   论文部落提供核心期刊、国家级期刊、省级期刊、SCI期刊和EI期刊等咨询服务。
  •   论文部落拥有一支经验丰富、高端专业的编辑团队,可帮助您指导各领域学术文章,您只需提出详细的论文写作要求和相关资料。
  •  
  •   论文投稿客服QQ: 论文投稿2863358778 论文投稿2316118108
  •  
  •   论文投稿电话:15380085870
  •  
  •   论文投稿邮箱:lunwenbuluo@126.com

联系方式

  • 论文投稿客服QQ: 论文投稿2863358778
  • 论文投稿客服QQ: 论文投稿2316118108
  • 论文投稿电话:15380085870
  • 论文投稿邮箱:lunwenbuluo@126.com

热门排行

 
QQ在线咨询
咨询热线:
15380085870
微信号咨询:
lunwenbuluoli