摘要:
如今计算机系统正在各行业各领域得到越来越广泛的应用,操作系统作为底层软件平台,是计算机系统稳定运行的关键.国内外由于操作系统软件缺陷而导致的灾难和事故屡见不鲜.保障操作系统的安全可靠具有重要意义.形式化程序验证使用严格的数学证明来保证软件的正确性和可靠性,能够比软件测试,程序静态分析等方法带来更强的保障,已被运用于验证操作系统等底层软件. 操作系统全局性质是运行过程中系统时刻满足的性质.这些性质不只是单个模块具有的,而是在运行时各组件相互协同过程中系统整体应始终满足的.全局性质从全局的视角刻画系统整体行为,能够直观体现内核设计和开发人员的想法和意图,形式化证明系统具有的全局性质是保证系统正确可靠的重要方法. 北京控制工程研究所为我国航天器研发了一个嵌入式实时操作系统,该系统已被成功应用于嫦娥3号等航天任务.目前国内针对该系统开展的形式化验证工作针对的是单个内核组件或具体应用场景,尚缺乏对系统整体性质的验证. 本文基于一个已有的操作系统验证框架开展全局性质验证工作.本文首先扩展了原验证框架,克服了其对全局性质验证的支持不够成熟,验证代价较高的问题,然后使用扩展后的框架,为我国某航天器操作系统建立了抽象模型,在模型上形式化描述并验证了若干全局性质.本文的主要贡献如下: 1.扩展了Certi-μC/OS验证框架,在高层抽象模型上给出操作系统全局性质的形式化定义,设计了验证全局性质的推理规则. 2.使用扩展后的验证框架为目标系统建立了抽象模型,给出主要模块的系统调用和中断处理程序的抽象规范,形式化描述了8条与目标系统任务管理和信号量相关的全局性质,使用推理规则证明了目标系统的抽象模型具有这些性质. 3.所有工作都在证明助手Coq中完成,所有证明脚本均可通过机器检查.为提高手工证明的效率,还开发了一组通用的Coq证明策略.
展开