朱明远:工程实践中的形式化方法

发布者:SparkCrafter最新更新时间:2009-08-06 来源: 嵌入式系统联谊会关键字:操作系统  内核 手机看文章 扫描二维码
随时随地手机看文章

      科银京城朱明远的发言题目为《工程实践中的形式化方法——一个操作系统内核VMK的形式开发》。朱明远从安全和可靠性角度阐述了嵌入式操作系统的现状,分析了一种基于形式化验证方式的嵌入式操作系统的实践。
     

     
                   朱明远 北京科银京成技术有限公司

      以下是文字实录。

      我这个ppt是英文的,两个礼拜以前,软件所搞了国际的一个研讨会,我过去讲演就准备了这样一个稿子。我实在没时间写新的稿子了,就使用这个吧。

      我的题目反应了我们这一两年的工程实践,所以我把它叫做formal method is working,我估计在这个方向上研究差不多有20年了,但是在这个领域,好像大家都不知道你在干啥,忙啥呢,做的东西没有人有强烈反应,直到这几年才在工业上,特别是航空工业上有了很多应用,软件系统,特别是操作系统可靠性,这样提出了非常挑战性的对我们的要求,反应了我们这个方向上的工作。

      这个构成就从这个开始,我找到了McCarthy的一段话,McCarthy说现在编程用debug,未来编程序则不使用,应该去证明它满足specifications,而且这个证明应该可以由一个Computer program(程序)来check。这个理想或者dream,实际上我们在慢慢实现它,这个差不多有40年了,这是我们在做这些事上,要回答的一些问题,特别是操作系统的一些基本问题,操作系统最基本的问题其实应该是可靠性和效率,操作系统围绕的工作其实就是做这两件事情,包括windows打补丁,也是说明不够可靠,补丁就是希望能够更结实一点,但是实际结果可能越来越不结实了。

      这是我们碰到的基本问题,特别是搞操作系统的问题,为什么软件总是不正确的?更细一点,就是为什么多数商业操作系统总有不正确的?和怎么样写一个正确的程序?用debugging也好,用testing也好,或者用其他的方法。我们按照可靠性或者正确性给操作系统分分类,实际上有这几种:一种是the market proven operating system市场常见操作系统,就是不管好不好,反正我已经卖了很多年了,像windows,已经十几年了,现在还是用着,市场证明了的操作系统;还有一种是certificated的操作系统,通过一些certificate组织或者office来验证操作系统的可靠性,包括瑞典的OSE,Green hill integrity 178B等;还有一个就是我们现在要做的,国际上工业界上已经开始在做provably correct operating system,就是说通过一些形式化方法,在系统开发的时候,就做验证。

      我们通过这几年的实践,感觉到,第一嵌入式实时操作系统很重要,其实硬件以上就是它了,只要一上电,操作系统就跑起来了,所以操作系统永远是个在底层,只要有软件在运行,操作系统肯定在跑;

      第二条,操作系统内核比较小,所以我们有能力或者时间能够把它整个形状方法去Polish一遍的。现在美国有两个对于软件Assurance系统认证的这种方式,一个就是大家都知道的航空系统使用DO-178B,它是按照软件发生故障以后所产生的结果灾难程度来分析的,分为ABCDE五个等级,最高级就是如果软件出现故障可能会造成生命损失,最低级的可能就是可以重启,或者产生点小毛病,你不理会也没有关系;还有一个就是common criteria evaluation assurance level,这个是分为7级,这个是从方法学的角度去考证这个软件的级别,最高级别是7级,所有的从设计就开始formally verified,最低级是functionally tested,这是7个级别的情况。第七级前三个阶段是formal,LLD(low-level design)可以是semiformal,到implementation可以是informal,当然最极端化,这五个步骤都可以是formal,就是整个都是用formal verified整一遍。[page]

      我们近来做的工作就是我们搞的操作系统内核有点像韩青刚才讲到的hypervisor的那种体系结构的操作系统,在一个处理器内核上通过虚拟的办法支持几个不同的操作系统的这样的运行环境,形状方法使用过去我在研究所的时候,搞过的一个定理证明系统,这个系统我们一直用着,差不多有20年了。基本的方法就是这样。

      建立一个model,然后translation成一个specification in powerEpsilon,根据model定义一些性质,这些性质实际上要通过定理证明系统证明产生一些结果,我在此就不详细讲解了。这是自然数归纳法的一个描述,证明specification实际上是一个过程,从最初的specification通过refinement到一个细的specification,证明整个系统比较复杂在于先用一个语言来描述一个操作系统,然后可能定义一个比较小的语言,必要时是一个完整的C语言,可能和C语言有点关系,这要建立起来,然后还要定义一个虚拟的machine或者TM codes,要描述一个VIE,最后完成specification应该使用C语言和汇编语言写的一段编译成X86 codes,这都要做verification。

      从操作系统的定义开始,到机器上可以跑的东西,这个产生很大的工作量,基本上语言的描述、语言的语义定义、目标机的定义、目标机的语义定义,然后compiler之间的语义的准确性,所有的东西都要描述,所以看起来不是特别复杂,但是工作量很大,由于时间的关系,我就稍微讲一下。比较难的是,我们做的两个东西,第一个是VMK虚拟化以后产生不同的partition,partition之后要证明是在这种体系结构上通过硬件的一些支持以后得到的separation,一个操作系统的应用如果产生故障,不影响其他操作系统,所以这叫做separation kernel theorem,主要来证明一个操作系统,虚拟系统里的一个应用时如何产生的,一个故障只会影响到本身的这个separation、这个分区的状态,而不会影响到其他分区,这个就是separation kernel定理,这是整个定理的一个证明。

      证明实际上挺简单的,机器可以check的一个定理,和编程序一样,你写一段程序,机器可以自动check,基本上就是这样。实际上最难的不是这一点,最难的是操作系统有高层的东西,也有底层的东西,底层的东西就是你要描述的东西,因为操作系统要处理中断,你就要描述中断,一描述中断,可能就要涉及到虚拟机的概念,通过machine的描述来描述中断,在高级语言这块是没法描述的,所以为什么要有虚拟机的概念,那么有虚拟机的概念就麻烦了,因为你要描述compiler,compiler涉及到高级语言的问题,但是有了两级虚拟机的定义以后,就可以描述semantic of context saving,上下文的切换也可以描述,这样就把整个东西描述比较完整了。这是我们工作还没做完,因为工作量比较大,先把重要的给描述了,慢慢地再做细节的处理。

      国际上实际上从2000年以后,有几个比较大的工作。一个就是Rockwell Collins AAMP7 separation kernel microcode,这是个硬件,支持CPU,他们自己设计的一个CPU,形式化的方法按照EAL7的级别去做认证,基本上全部是形式化的方法进行设计的;然后还和Green Hills另外一个搞操作系统integrity OS kernel,达到EAL6+的级别;还有一个是Java虚拟机的工作。

      还是回到我们当初谈到的dream,实际上Computer Science,软件工程,Tony Hoare 07年说到,我们做的工作围绕zero defect program,就是零缺陷程序,大家的目标就是做到零缺陷的程序,编的程序一点缺陷都没有。还有一些impossible,像物理中的测量的精度,根据测不准原理是永远测不准的,物理上有这么个缺陷,大家在追求物理上越来越精确,但绝对精确是达不到的;化学上就是材料的纯度,要做到纯度100%是不可能的。我们这些人每天忙活的就是这些。但是他还有个dream is possible,通过工作上的努力,实现不是zero defect program,而是zero defect programming,就是通过一些方法来实现你的梦想,通过形式化的方法,来逐渐逼近,defect越来越少,越来越极限。

      基本上我的发言就这些,谢谢。

      (感谢嵌入式系统联谊会提供本次文字实录,相关PPT下载请访问:http://www.esbf.org.cn/img/0906zmy.pdf

关键字:操作系统  内核 引用地址:朱明远:工程实践中的形式化方法

上一篇:韩青:多核和多操作系统
下一篇:杨欣欣:半导体公司的嵌入式软件开发

推荐阅读最新更新时间:2024-05-02 20:50

汽车操作系统抢位战:从暗斗走向明争
2023年,或许是全球智能汽车操作系统(OS)竞争从暗斗走向明争的一年。 从国外企业看,在2023年1月举行的CES上,黑莓(BlackBerry)宣布,与亚马逊云服务(AWS)联合打造的云连接汽车AI平台BlackBerry IVY已集成到头部一级汽车供应商博世和博泰的三款商用数字座舱平台中,基于此,汽车企业可快速部署新车载服务。也是在CES上,谷歌展示了新版Android Auto,几天后,谷歌与保时捷就汽车操作系统应用程序使用权谈判,达成和解。 从中国企业看,2022年最后一个月,华为内部会议要求其智能汽车解决方案BU(简称汽车BU)在2025年盈利;由吉利控股集团创始人兼董事长李书福和前吉利汽车研究院副院长沈子瑜共
[汽车电子]
汽车<font color='red'>操作系统</font>抢位战:从暗斗走向明争
台湾Afa公司 引入Tensilica公司Xtensa可配置处理器
美国加州 SANTA CLARA 2006 年 10 月 16 日讯 – Tensilica 公司日前宣布,位于台湾台北的 Afa Technologies , Inc. ( 简称 Afa) 选择 Xtensa 可配置处理器内核用于最新一个支持多标准的手机数字电视接收 SoC 设计项目。 Afa 是一家无工厂 IC 设计服务公司,专精于 DTV ( 数字电视 ) 、手机和数字家庭 LAN (局域网)芯片设计。 Afa 公司执行副总裁 Philip Sun 表示, “ 选择 Tensilica 公司的 Xtensa 处理器内核,是因为我们对其可定制能力印象深刻,通过采用 TIE ( Tensilica 可扩展指令集)语言
[焦点新闻]
时评:Atom智能手机能跑所有操作系统
  周二英特尔开发者论坛(IDF)消息,英特尔已经在基于凌动(Atom)处理器的智能手机中引入谷歌Android操作系统。   英特尔已经将Android移植到配置Atom处理器的智能手机上,不过英特尔还没有透露能够支持Android操作系统的Atom处理器的具体上市时间。   至此,用Renee James的话说,Intel现在可以让所有的操作系统都顺利跑在Atom手机上了。    很是吃的开的Android   英特尔正在智能手机中推广Atom处理器,此次将Android移植到Atom手机上是整个策略中的一部分。智能手机的每种处理器架构都需要专门的软件,英特尔Atom采用x86架构,而ARM芯片则采用RISC架构。
[手机便携]
凌华科技加入机器人操作系统(ROS)全球开放源码计划
全球领先的边缘计算解决方案提供商 -- 凌华科技宣布加入工业机器人操作系统联盟(ROS-Industrial Consortium),并且成为该联盟亚太地区首位成员。机器人操作系统(ROS)是一项全球性的合作计划,旨在简化机器人平台开发的复杂性。工业机器人操作系统(Robot Operating System)支持开源,可将机器人操作系统软件的先进功能扩展到生产制造端。凌华科技加入ROS-I联盟后,将凭借数据连接标准的专长,来推动机器人产业的发展。 全球领先的边缘计算解决方案提供商 -- 凌华科技宣布加入工业机器人操作系统联盟(ROS-Industrial Consortium),并且成为该联盟亚太地区首位成员。 工业机器人操作系
[嵌入式]
64位MIPS的起源 回顾及展望
  早在20世纪 80 年代中期,摩尔定律就已经为集成电路的设计人员带来了严峻的挑战。如何使用所有这些复杂的晶体管?对于新型 RISC 处理器的设计人员来说,处理器要求的晶体管体积更小,数量更多。因此,在 1988 年开始定义 MIPS R2/3000 的后续产品时,我们在继续采用 RISC 原理的同时,也在寻求可以使用更多晶体管的方法。当时存在的一些问题和发展趋势,不仅使我们的工作迷失了方向,而且也使 R4000 处理器陷入困境。   第一个问题或者说是机遇(视您的观点而定)是在试图实现较低的每指令周期(CPI)时认识到大量高速缓存的重要性,因为对 CPI 降级起最大作用的是由高速缓存故障所引起的处理器失速。可接受的最低高速缓
[嵌入式]
实时操作系统VxWorks在跟踪雷达系统中的应用
摘要:实现跟踪雷达系统中各子系统之间的实时通讯,重点是信号处理子系统中信号处理板和网络间的实时通讯。在实时操作系统VxWorks平台下,编写PCI设备的驱动程序和网络通讯程序,以完成通讯功能。VxWorks的高可靠性和强实时性在应用中得到了充分的验证,在VxWorks平台的支持下,信号处理子系统完成了信号处理和网络之间的实时通讯。 关键词:VxWorks 跟踪雷达 PCI 网络通讯 跟踪雷达在跟踪高速目标时,需要有足够快的反应速度,这不仅对它自身的硬件系统的实时性要求较高,而且对相应软件系统的实时性要求也较高。用实时操作系统VxWorks作为跟踪雷达系统中的操作系统,可以满足软件对实时性需求。 本系统中,跟踪雷达各分机设备
[应用]
[JZ2440] 配置编译 linux-2.6 内核
一、相关资料获取   我个人在学习 mini2440 开发板时是跟着韦东山老师的视频学习的,视频和资料可以访问百问网论坛获取。   百问网论坛链接: http://www.100ask.net/bbs/forum.php   下载好资料后在 JZ2440资料光盘 文件中 systems 目录下可以获取到 linux-2.6.22.6.tar.bz2(内核源码包)和 linux-2.6.22.6_jz2440.patch(韦东山老师移植 linux-2.6 到 JZ2440 开发板的 patch 包)。在第一期视频目录下可以获取到 韦东山Linux视频第1第2期所有源码文档图片芯片手册.rar 压缩包。 二、配置编译
[单片机]
统信UOS桌面操作系统V20E再次更新:适配多款龙芯3A5000整机设备
据统信软件发布,统信 UOS 桌面操作系统 V20E 再次更新,完善了对 LoongArch64 架构的支持,进一步丰富了硬件、软件等生态圈。在产品特性和系统优化上也有多处更新与优化,为用户带来更加稳定流畅的使用体验。   主要升级内容   1。 适配清华同方、联想、浪潮等多个整机厂商的多款龙芯 3A5000 的整机设备;用户在这些设备上可以得到与统信 UOS 教育版其他架构最新版本上一致的体验;   2。修复教育版 1033 LoongArch64 架构中部分已知问题;提高了系统的稳定性和流畅性;   3。 适配大量开源应用,移植大量 Windows 应用,更好地兼容硬件、软件应用平台;   4。 体现教育版特有的系
[手机便携]
统信UOS桌面<font color='red'>操作系统</font>V20E再次更新:适配多款龙芯3A5000整机设备
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved