摘要
函数执行上下文正确性是操作系统内核程序最容易违反且难以检查的正确性性质.应用传统的技术检查该类错误都有一定的困难和局限性.提出一个验证函数执行上下文正确性的框架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.
出处
《软件学报》
EI
CSCD
北大核心
2007年第4期1056-1067,共12页
Journal of Software
基金
SupportedbytheNationalNaturalScienceFoundationofChinaunderGrantNo.60233020(国家自然科学基金)
theNationalHigh-TechResearchandDevelopmentPlanofChinaunderGrantNo.2002AAIZ2101(国家高技术研究发展计划(863))
theProgramforNewCenturyExcellentTalentsinUniversityofChinaunderGrantNo.NCET-04-0996(新世纪优秀人才支持计划)
关键词
操作系统内核程序
内核编程接口
程序验证
程序正确性
Linux内核验证
OS (operation system) kernel programs
kernel programming interfaces
program verification
program correctness
verification of Linux kernel