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

中文引用格式:张影,杨麦顺,张兴军,等.一种指令级Linux内核瞬时故障注入方法研究[J].计算机工程,2015,41(8):32-36.英文引用格式:ZhangYing,YangMaishun,ZhangXingjun,etal.ResearchonInstruction-levelTransientFaultInjectionMethodforLinuxKernel[J].ComputerEngineering,2015,41(8):32-36.1概述金融、电信等关键性领域对计算机系统的安全性要求非常高,甚至要求零失误。但随着计算机性能的提高,其电子元件的规模越来越大,也越来越复杂,计算机发生故障的概率也大大增加,当系统因故障导致错误、失效或是宕机时,往往会造成不可估量的损失。因此,对系统的可靠及健壮性进行测试是非常有必要的。现阶段,基于故障注入的测试是评测计算机系统可靠性的重要方法之一[1]。目前的系统测试工具多建立在跟踪及查看的基础上,例如Systemtap工具可对运行中的Linux内核进行监控和跟踪,它允许测试人员通过编写Systemtap脚本,获取内核数据及相关信息,strace命令可以跟踪程序执行时的系统调用和所接收的信号,包括参数、返回值、执行消耗的时间等。这些方法能够达到一定的测试目的,但都没有人为地对内核引入故障并测试系统处理故障的能力。当然Linux也提供了一些错误注入机制,例如failslab,它实现了slab分配器的内存分配错误注入[2]。但测试人员只能通过特定的命令触发系统预设好的错误,不能根据测试人员的意愿向内核注入自定义故障,依然达不到对系统处理故障的测试。此外,目前存在的大多数故障注入工具都是针对应用程序,不能实现Linux内核程序故障的注入,例如美国密歇根大学研制的DOCTOR[3]故障注入工具,能够注入CPU、内存和通信故障,还能够注入系统行为级的高层故障。商用软件故障注入工具Xception[4]利用CPU提供的调试寄存器实现了内存和CPU故障注入,但上述故障注入方法均不适用于内核故障注入。为此,本文提出指令级Linux内核瞬时故障注入(Instruction-levelFaultInjectionMethodforLinuxKernel,IFIMK)方法,由测试人员控制故障的触发位置及故障模式,向Linux内核引入指令级的瞬时故障,并分析各个故障对系统失效率的影响。2IFIMK故障研究对一个运行中计算机系统来说,故障的发生是随机的,但不同的故障发生的概率仍不尽相同。根据卡内基梅隆大学LANL实验室公布的一批高性能计算系统的故障统计[5],在环境配置故障、硬件故障、人为故障、网络故障、软件故障、未确定故障等6类故障中,62%的故障是硬件故障,占主要比重,另外其他故障如软件异常等,也有一部分是由硬件导致的。而硬件故障注入技术能够访问到一些其他方法访问不到的位置,比如集成电路的内部,这对于其他方法是几乎不可能实现的[6]。硬件故障注入技术可分为物理故障注入、仿真故障注入和模拟故障注入3类[7-9]。物理故障注入使用附加的硬件产生物理现象例如重离子辐射、电磁干扰等通过影响芯片内部电流和电压的变化,向目标系统引入故障。这种方法需要制定特殊的硬件,并很难控制和观察芯片内部的故障注入情况。仿真故障注入技术可控制故障注入时间、故障类型等,但这种技术精度不高,需要大量的开发工作,非常耗时。模拟故障注入以软件的方式模拟硬件故障,实现对系统硬件故障的注入,这种故障引入的方式工作量少、花费少也容易实现,同时可达到较高的故障覆盖率

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值