操作系统内核程序函数执行上下文的自动检验  被引量:5

Automatedly Checking Function Execution Context of Kernel Programs in Operation Systems

在线阅读下载全文

作  者:汪黎[1] 杨学军[1] 王戟[1] 罗宇[1] 

机构地区:[1]国防科学技术大学计算机学院,湖南长沙410073

出  处:《软件学报》2007年第4期1056-1067,共12页Journal of Software

基  金:SupportedbytheNationalNaturalScienceFoundationofChinaunderGrantNo.60233020(国家自然科学基金);theNationalHigh-TechResearchandDevelopmentPlanofChinaunderGrantNo.2002AAIZ2101(国家高技术研究发展计划(863));theProgramforNewCenturyExcellentTalentsinUniversityofChinaunderGrantNo.NCET-04-0996(新世纪优秀人才支持计划)

摘  要:函数执行上下文正确性是操作系统内核程序最容易违反且难以检查的正确性性质.应用传统的技术检查该类错误都有一定的困难和局限性.提出一个验证函数执行上下文正确性的框架PRPF,详细描述了其建模过程和相关算法.PRPF相比传统技术的优势有:直接检查源代码、无须编写形式化的验证规约、较低的时空运行开销、良好的可扩展性等等.该技术已应用在Linux内核2.4.20的网络设备驱动程序检查中.应用表明,PRPF能够自动探测程序中所有执行路径,有效地检查函数执行上下文的正确性.实验发现了Linux内核的23处编程错误,另有5处误报.该技术对提高内核代码编写的质量可起到重要作用.Function execution context correctness is one of the most easily violated critical properties by OS (operation system) kernel programs while it is non-trivial to be checked out. The existing solutions suffer some difficulty and limitation. This paper presents a framework PRPF to check the correctness of function execution context, as well as the modeling process and algorithms in detail. The PRPF has the advantages, such as direct checking source code, no need writing formal specifications, low time and space costs, and perfect scalability, etc., over the existing techniques. The technique has been applied in checking the Linux kernel source 2.4.20. The experimental results show that PRPF can check the correctness of function execution context as expected by automatically exploring all paths in the sources. As a result, 23 errors and 5 false positives are found in the 'drivers/net' source directory. The technique is very helpful in improving the quality of OS kernel codes.

关 键 词:操作系统内核程序 内核编程接口 程序验证 程序正确性 Linux内核验证 

分 类 号:TP316[自动化与计算机技术—计算机软件与理论]

 

参考文献:

正在载入数据...

 

二级参考文献:

正在载入数据...

 

耦合文献:

正在载入数据...

 

引证文献:

正在载入数据...

 

二级引证文献:

正在载入数据...

 

同被引文献:

正在载入数据...

 

相关期刊文献:

正在载入数据...

相关的主题
相关的作者对象
相关的机构对象