雷锋网新智驾按:7月10日,在由中国计算机学会(CCF)主办,雷锋网和香港中文大学(深圳)承办的CCF-GAIR全球人工智能与机器人大会压轴日上,大会智能驾驶专场如约而至。以下内容来自专场对话环节,对话问方来自哈尔滨工业大学(深圳)教授朱晓蕊,对话答方来自耶鲁大学教授邵中,后者的团队目前专注于汽车领域安全操作系统研究,话题围绕“安全操作系统与自动驾驶”展开。雷锋网新智驾将对话内容做了不改变原意的整理编辑。
目前,大部分对自动驾驶的研究停留在应用层或系统级别层面,但核心软件,例如操作系统,现在其实是发展的黄金时期。从前的操作系统在设计时,是按照开发普通应用的思路,但通用性差,为了能够快速在市场应用,目前操作系统已经到了发展拐点,邵中团队就在做这方面工作。
邵中团队目前聚焦于对面向车辆的安全操作系统研究,并自主搭建一套支持多核的CertiKOS的安全操作系统。CertiKOS是世界上第一个能够在多核平台上运行,而且能够以非常快的速度,支持多个内核的系统,这套技术正变得越来越成熟。
朱晓蕊:您从新的角度讲了如何将安全操作系统应用在自动驾驶领域,现在做自动驾驶的人都知道,ROS (Robot Operating System, 机器人操作系统)是自动驾驶领域常用的软件。那么您所讲的安全操作系统与ROS系统之间是什么关系?
邵中:ROS更像一个中间件,因为它是在Linux平台上搭的。ROS是把一个很复杂的应用分成不同的层面,但是其中一旦涉及实时系统要求的时候,它还是依赖于底层操作系统给予这样的保证,因此,如果底层操作系统到最后完全是Linux的话,它也不能提供很好的保障,当然Linux里面有几十万行的代码,它的安全是没有保证的。
朱晓蕊:所以安全操作系统,和ROS并没有冲突,它只是在ROS的底层加一层安全防护。第二个问题,如果要专门为自动驾驶系统设计一套安全操作系统,需要考虑哪几个核心的要素?
邵中:其实操作系统的概念是非常广的,之前的主题演讲中我介绍了一个特定的操作系统,但是大家都知道,现在我们讲操作系统,管理一个智慧城市,它的政府部门加上软件就属于一个操作系。操作系统的概念,其实就是为硬件平台和它上面为应用搭建出来的环境起到一个承上启下的作用。
所以,为了搭建这样一个汽车操作系统,首先要搞清楚你的硬件平台是什么样的。早期阶段,很可能是汽车不同的ECU有自己的电脑,并将一大堆电脑连在一起,但未来,很可能会朝着类飞机的情况发展,它会把越来越多的功能都聚到几个SoC上。因为机器的功能越来越大,所以你必须要明确未来的硬件是什么样子。
例如,SoC硬件很可能包括实时的CPU、GPU,另外还会有FPGA,在这上面做操作系统,就需要系统内核能够非常敏捷地应用到各种架构上。这种架构会越来越复杂,所以软件用抽象层做设计的理念跟硬件上开发设计的理念是非常一致的,要把这个硬件搭出来,搭出一个非常开放的抽象层内核,这样才能保证在各种各样的情景下,你的操作系统都能转换成汽车软件的需求。
所以,首先是为了安全性,要做一定的形式化验证;第二是为了多变的硬件平台上多变的软件应用需求,要做到操作系统内核非常容易转换成不同的功能。
朱晓蕊:安全操作系统是一个非常重要的平台,用在自动驾驶领域和用在其他领域,有哪些不太一样的地方?比如,能否分享一下之前你们团队在安全操作系统的其他方面应用和自动驾驶应用比较接近的案例?
邵中:现在大部分的形式化验证用在航天领域更多一些,或者是被用在飞船的环境下,很多情况下有些要求可能会比无人驾驶车更高,因为如果你发了一个飞船到月亮上,出现故障的代价就非常高。而汽车上,不一定非要把所有的功能都验证。很多情况下,无人驾驶汽车关键是要保证出现问题或是被黑客攻击时,不要整个车垮掉,而是要保证黑客再怎么攻击,只能攻击到其中的一块,汽车最基本的功能还是有。
所以,需要将汽车上的各种部件分成各种级别,然后在特定的情况下,能够保证在车辆最基本的功能,这是为汽车做安全操作系统非常重要的一点,这样可以避免大量的验证工作。
另外,区块链其实也是形式化验证中非常相关的一个应用。这是个很有意思的领域,比如一旦智能合约中出现一点点的错误,你很可能就丢钱了,所以它对功能验证的要求更高。
在汽车领域,我相信有一天也会跟区块链连在一起,它也会需要联网、需要加密。所以,凡是在汽车上用到跟这些加密软件相关的东西,还是需要验证的。在这方面,国际上已经有很多工作,这些工作也可以应用在无人驾驶车辆上。至于无人驾驶车本身,我认为还是要在建模时搞清楚,在各种情况下保证最基本的安全状态,这才是比较有用的一个目标。
朱晓蕊:我相信目前国内产业界对自动驾驶安全问题还没有引起足够的重视,大家可能还普遍在讲怎么去做算法,怎么去做决策,实际上正如邵教授刚才讲的,操作系统是一个最底层的安全保证,如果没有,上面的高层级的安全措施都是无效的。
下面一个问题,如果是产业界现在想要去在自动驾驶安全方面投入的话,比如说在这个操作系统的安全方面投入,大家都需要去做什么工作,如何去投入?
邵中:现在做无人驾驶车,我个人觉得还是比较早的时候。大家都知道,全世界有很多公司都在做无人驾驶车,有很多公司都在写上面的机器学习软件或者控制软件,如果你这家公司想做无人驾驶,怎么在众多公司当中脱颖而出?更不用说世界上很多大公司,他们已经有了一些积累,已经做了很多。比如,谷歌就有自己的操作系统,其开发的是基于安卓的系统,还有很多车载控制设备专门在Linux上开发软件,也有自己的系统,这样比下去,很难看到竞争出路。
但我想说的是,安全绝对是无人驾驶车甚至无人驾驶飞机,或者任何跟这个智能系统相关的最关键的领域之一,谁决定了这个安全平台,谁可能就会成为掌握智能平台操作系统的最后赢家。普通软件一旦有开发bug,大家都是接受的,检查出来就可以修复,但如果在无人车、无人机上有软件的安全隐患,就会成为一个很大的问题。所以我觉得,目前汽车行业应该关注安全方面工作,应该有团队去做安全系统,这是一个很大的领域。
在这个领域,可能一开始你会发现投入不是马上就能用到实际的场景,但其实很多方面还是有很好的效果。比如,我们最近有好几个课题,在做一些demo,让黑客来攻击已经被验证的操作系统,黑客根本攻击不进去。从这个角度来说,我觉得汽车厂商应该关注底层的操作系统,而不是随便用其中某一家的,因为这样很可能造成被动,一旦安全需求变了,你就需要做很大的调整,这方面就不一定能跟上以后的飞速发展进程。
朱晓蕊:赞同,全球都在竞争自动驾驶方面技术,如何在国内自动驾驶产业界脱颖而出,这实际上是一个蛮有挑战性的问题,也是这次智能驾驶专场这个环节带来的前沿技术的价值。
最后一个问题,您这个团队在安全操作系统领域大概有多少年的积累?
邵中:我们在这个领域的研究,很多是在形式化方法、程序设计语言和编译方面,我个人在这个领域已经做了20多年,只是最近5年我们开始把技术用到底层的操作系统内核当中。
在我们这个领域,很多刚才演讲提的工具都已经做了很多年,只是最近5年发现这个技术竟然也能做到验证操作系统。甚至现在,很多大公司都开始研究如何用这个形式化方法来搭建能够被验证的操作系统。
我觉得在中国,一些最底层的非常关键的模块,比如说操作系统、编译、制造芯片的技术,没有获得特别多的关注。操作系统大部分都是开源的,像我们这种操作系统过一段时间肯定会开源,让所有人都可以在上面建立新的平台,并且慢慢建立起更大的生态圈。
朱晓蕊:我们非常期待CertiKOS开源的这一天,这样我们都可以在这个平台上把我们在自动驾驶领域做的一些上层的算法、决策和CertiKOS结合起来,大家去建立一个很稳固的、安全的自动驾驶系统。