在车辆的电子控制单元中实现进程间通信的系统和方法与流程

文档序号:28098486发布日期:2021-12-22 08:26阅读:130来源:国知局
在车辆的电子控制单元中实现进程间通信的系统和方法与流程

1.本发明涉及计算机操作系统领域,并且更具体地,涉及用于在车辆的电子控制单元中实现进程间通信的系统和方法。


背景技术:

2.当前,随着各种技术的发展,汽车工业正在快速发展。供应商可以实施新的信息和控制系统,这些系统允许车辆软件系统更舒适地控制汽车。汽车的各种信息和控制系统由控制单元控制,控制单元又执行各种算法。因此,例如,为了符合欧洲生态标准(euro

4、euro

5)的规定,汽车制造商不仅需要优化发动机,而且还需要优化用于这些发动机的控制系统,以确保法规规定的生态排气,同时还确保功率特性不会变差。为更加适应性的驾驶而设计的变速箱控制系统正在被优化,以能够适应驾驶方式、道路和天气状况、变速器换挡的各种方式、以及轮轴之间的扭矩传递。当前,正在采用更复杂的高级驾驶员辅助系统(advanced driver

assistance system,adas),例如自动停车系统、驾驶辅助系统、或自动紧急制动系统。车辆中的自动停车系统使用传感器来确定从车辆到障碍物的距离。车辆中的驾驶辅助系统通常使用摄像机来识别车辆在车道上和在公路上的位置。自动紧急制动系统被配置为在车辆的红外传感器检测到障碍物时帮助驾驶员制动。此外,电动车辆和/或混合动力电动车辆得到普及,其移动由位于这些车辆上的控制系统控制。随着信息技术的快速发展,交通工具(汽车和卡车两者)的自动驾驶的问题也变得越来越重要。
3.当前,存在用于控制单元在其上操作的平台的传统标准。用于关键组件(例如转向系统或制动系统)的汽车控制单元是根据面临更高安全要求的标准来实现的。此外,这种用于关键组件的控制单元通常在资源有限的单核处理器上运行。例如,可以使用具有低cpu性能和有限存储容量的专用微控制器来实现这种控制单元。另一方面,多媒体系统可能缺乏更高的安全要求,因为它们的操作(媒体文件的回放或地图上地理位置的显示)通常不会直接影响车内驾驶人员的安全。前面提到的驾驶员辅助和控制方法表示多媒体和安全单元之间的“中间层”。驾驶员辅助系统面临更高安全要求。在特定控制单元中,使用实时系统,这又限制了这些单元可以支持的算法。
4.汽车开放系统架构(automotive open system architecture,autosar)是成立于2003年的汽车相关各方的全球发展合作伙伴关系。autosar的目标是为汽车电子控制单元(automotive electronic control unit,ecu)创建和建立开放的且标准化的软件架构

autosar自适应平台(autosar adaptive platform,aap)。该标准的主要特征之一是对确保基于aap构建的系统的信息安全性的要求。
5.已知的aap标准对安全子系统提出了高层次的要求。aap标准设想了用于设计安全子系统的各种方法。例如,安全子系统的一种实现方式可以使用多个决策点来提供应用程序的接口之间的访问。这些决策点可以以在aap平台的控制下工作的其他应用程序的形式实现。这些技术会阻止创建具有指定属性的访问控制安全子系统,指定属性例如安全策略的完整说明、它们的相互兼容性以及指定复杂且全面的安全策略的能力。因此,应该注意的
是,用于授予访问权限的多个决策点的存在可能无法允许明确预料到在一个或多个决策点受到黑客的威胁的情况下系统作为一个整体将如何表现。
6.这也意味着在当今条件下可能威胁上述控制单元。驾驶员经常未注意对汽车内部的访问(例如,在清洗时、季节性更换轮胎期间或由除官方经销商以外的各种供应商进行的非计划维护期间)。黑客可能能够(通过电缆或通过使用数据交换端口的恶意存储介质,例如usb)连接到控制单元。因此,控制单元中的至少一者和至少一个决策点可能会受到威胁。
7.因此,需要解决上述问题。


技术实现要素:

8.公开了存在单个决策点的系统和方法,并且软件平台在安全操作系统的控制下运行。
9.在一方面,提出了一种用于在具有限定内核空间的操作系统的电子控制单元中提供进程间交互的方法,其中,该方法涉及以下步骤:操作系统的内核拦截对进行电子控制单元的第一应用程序和第二应用程序之间的进程间通信的请求。从操作系统的访问控制组件请求关于以下的判决:授予对进行所请求的电子控制单元的第一应用程序和第二应用程序之间的进程间通信的访问权限。访问控制组件基于安全策略为所请求的进程间通信生成判决。操作系统的内核基于生成的判决,选择性地允许进行所请求的第一应用程序和第二应用程序之间的进程间通信。
10.在一方面,访问控制组件具有做出关于所述进程间通信的访问权限授予决策的专有权。
11.在一方面,安全策略包括包含多个数据元素的列表。该多个数据元素中的每一者至少指示客户端应用程序的标识符、服务应用程序的标识符和该服务应用程序允许执行的服务的标识符。
12.在一方面,内核向访问控制组件发送第一应用程序的标识符、第二应用程序的标识符以及将由第二应用程序执行的服务的标识符。访问控制组件响应于在列表中找到与第一应用程序的标识符、第二应用程序的标识符和将由第二应用程序执行的服务的标识符匹配的数据元素而生成肯定判决。访问控制组件响应于在列表中未找到与第一应用程序的标识符、第二应用程序的标识符和将由第二应用程序执行的服务的标识符匹配的数据元素而生成否定判决。
13.在一方面,内核基于由访问控制组件生成的肯定判决而允许进行所请求的进程间通信。内核基于访问控制组件生成的否定判决而阻止进行所请求的进程间通信。
14.在一方面,所述列表是基于规范创建的,所述规范限定相应应用程序对不同应用程序的一个或多个服务的访问权限。
15.在一方面,该规范至少包括相应应用程序所需的一个或多个计算资源、相应应用程序所需的运行时环境条件、相应应用程序提供的一个或多个接口。
附图说明
16.并入本说明书中并构成本说明书的一部分的附图示出了本发明的一个或多个示例性方面,以及连同详细的描述一起用来阐述这些示例性方面的原理和实现方式。
17.图1a示出了autosar自适应平台标准的传统系统的结构的框图。
18.图1b示出了根据autosar自适应平台标准的规范的用于提供访问权限的方案的实现方式的框图。
19.图1c示出了使用中介器根据autosar自适应平台标准的规范提供访问权限的方案的实现方式的框图。
20.图2a示出了根据本发明的各方面的用于在电子控制单元中提供进程间通信的系统。
21.图2b示出了根据本发明的各方面的flux高级安全内核(flux advanced security kernel,flask)架构。
22.图2c示出了根据本发明的各方面的示例性安全操作系统中的进程间通信。
23.图3示出了根据本发明的各方面的用于在电子控制单元中提供进程间通信的方法。
24.图4示出了可以实现本发明的各方面的通用计算机系统的示例。
具体实施方式
25.本文在用于在电子控制单元中提供进程间通信的系统、方法和计算机程序产品的上下文中描述各示例性方面。本领域普通技术人员将意识到,以下的描述仅仅是示例性的,而不旨在以任何方式进行限制。其它方面将很容易将其自身暗示给了解本发明的优点的本领域技术人员。现在将详细地参考如附图中所示的示例性方面的实现方式。贯穿附图和以下描述将尽可能地使用相同的附图标记来指代相同或相似的项目。
26.图1a示出了根据autosar自适应平台(aap)标准的传统系统的结构的框图。
27.通常,使用aap标准实现的控制系统可以在车辆的控制单元(电子控制单元,ecu)100中运行。aap系统的功能可以由一组基本组件110执行。如本文所使用的,术语“基本组件”是指如aap规范中限定的、并且对其完整操作所必需的平台的软件元件(例如,以应用程序、系统应用程序或服务的形式实现)。一个或多个应用程序120可以根据aap标准来实现车辆的控制100所需的某些操作。应用程序120可以包括但不限于二进制可执行代码和描述应用程序的基本属性的规范(清单)。在一方面,应用程序规范可以是以arxml语言(基于xml语言)编写的arxml文档。
28.在一方面,应用程序规范可以至少包括:
29.‑
执行应用程序120所需的计算资源(诸如内存容量、与某些ecu处理器核的连接等);
30.‑
给定应用程序120所需的运行时环境条件(例如,当发动机关闭时驾驶员辅助系统的应用程序120不运行);
31.‑
由一应用程序120提供给其他应用程序120的接口。
32.有利地,应用程序120的规范可以实现对其他应用程序120的服务的访问,该规范从应用程序120之间的进程间通信(interprocess communication,ipc)方案的特定实施方式中抽象出来。
33.应用程序120可以访问aap平台的任何基本组件110(与之交互)。换句话说,一个或多个应用程序120可以通过利用由基本组件110的接口提供的服务来实现aap功能。此外,应
用程序120可以通过由它们提供的接口来访问其他应用程序120。在通常情况下,应用程序120驻留在哪个电子控制单元100上无关紧要。aap标准提供了使得能够以对应用程序120透明的方式连接到驻留在aap平台的其他控制单元100上的其他应用程序120的机制。
34.在图1a中示出了基本组件110的示例,下面描述其中一些。
35.应用程序执行组件可以被配置为基于系统的当前状态来启动或停止某些应用程序120。例如,如果汽车在发动机关闭的情况下停车,则应用程序执行组件在此状态下提供对一组应用程序的访问权限。如果汽车正在行驶,则应用程序执行组件提供对另一组应用程序的访问权限(其中一些应用程序可能也包括来自第一组的应用程序)。
36.交互监控组件(通信管理器)可以被配置为注册由应用程序120提供的服务,以检测这些服务并且提供与这些服务的信息交换。
37.平台性能监控组件(平台健康管理器)可以被配置为监控系统中的检查点以及监控组件110和应用程序120的正确运行。
38.时间同步管理器可以被配置为向车辆的所有系统提供统一的时间,因为应用程序120是在车辆内的不同控制单元100上执行的。
39.访问控制组件(本文中也称为身份和访问管理器(identity and access manager,iam))110’可以被配置为识别和存储应用程序120的所有可访问的交互。例如,如果应用程序b向应用程序a提供某种服务,则应用程序b的该服务的接口可以包含一组在应用程序b的规范中描述的方法。访问控制组件110’可以指定应用程序a可以访问应用程序b的服务的哪些方法。相同的方案可以用于确定哪些应用程序120可以获得对平台的基本组件110的访问权限。在一方面,访问控制组件110’可以分析应用程序120的规范,并且可以授予执行一个或多个交互的许可。
40.所提到的基本组件110的组合使得能够在aap平台上实现应用程序。
41.在aap规范中假定系统可以具有负责做出安全决策的组件(策略决策点,(policy decision points,pdp))和负责执行这些决策的组件(策略执行点(policy enforcement points,pep))。aap规范中未提供限定这些组件的功能的更多详细信息。此外,应注意,可以在aap的每个实施方式中单独限定这些功能的详细信息。例如,在一个实施方式中,aap平台可以包括pdp和pep作为补充应用程序120或中介器(图1c中呈现了一个实施方式的示例)。
42.在图1b和图1c中示出了根据aap标准的规范来授予访问权限的各种方案。为了更清楚起见,在图1b和图1c中对交互许可的请求用虚线标记,而交互本身(进程间通信)则由实线标记。
43.如上面已经提到的,在aap标准中,需要交互许可的应用程序120或任何基本组件110可以从访问控制组件110’获得许可。图1b示出了一个示例,其中,为了与应用程序b交互以及为了与基本组件交互,应用程序a向访问控制组件110’请求进行进程间通信的许可。
44.在aap标准的实施方式的另一个示例中,决策点可以位于访问控制组件110’内,或者可以在特定应用程序120’中实现(图1c)。在图1c所示的示例中,应用程序120’与访问控制组件110’协同工作。此外,如果需要复杂的安全策略,则甚至可以经由多个应用程序120’来实现访问控制。应当注意,在给定的情况下,进程间通信也通过应用程序120’来实现。
45.所指出的方法具有许多缺点,包括但不限于:
46.‑
aap协议的不同实施方式之间不兼容;
47.‑
难以指定所需的安全策略并监控其属性,例如完整的覆盖范围、不存在不兼容性、计算关于允许交互的决策的时间、以及其他;
48.‑
根据aap标准构建的系统的受信任代码库的不可控制的增长(在图2a的描述中更详细地考虑了受信任代码库)。
49.为了消除这些缺点,根据本发明的各方面,提出了访问控制组件110’的实现方式,下面将结合图2a对其进行详细描述。
50.图2a示出了根据本发明的各方面的用于在电子控制单元中提供进程间通信的系统。
51.aap标准限定了用于提供用于实现该标准的系统和平台的信息安全的要求。然而,该标准仅对安全子系统提供了高层次要求,而该子系统的实现细节未包含在该标准中。本发明描述了一个示例性实施方式。
52.aap标准的文本讨论了用于所述实现的各种方法。例如,一种实现可以利用多个pdp点和pep点,并且如上所述,这些pdp点和pep点本身可以以在aap平台的控制下运行的补充应用程序120的形式来实现。这种方法的使用不允许(或至少显著地复杂化)具有指定属性的安全子系统的创建。这些属性可以包括安全策略的描述的完整性、安全策略的相互兼容性、对pdp和pep代码的信任保证以及全面的安全策略的规范。此外,此方法不允许实现aap标准中已针对其基本组件110描述的安全属性。
53.基于aap标准构建的系统的受信任代码库包括确保系统安全的一组组件,使得任何这些组件的威胁或不当工作都可能导致对整个系统的安全属性的破坏。系统的受信任的代码库是信息系统(在本示例性实施方式中为aap标准的系统)的整个代码的集合,其中操作的中断(错误、漏洞)可能会影响安全目标。反过来,安全目标可以是在信息系统的所有可能的操作条件下待满足的与信息系统的安全有关的要求。
54.与信息系统的安全有关的(一个或多个)要求的示例可以包括但不限于:
55.‑
保密性,
56.‑
完整性,
57.‑
可访问性,
58.‑
其他。
59.因此,pdp和pep两者的代码包括在基于aap标准构建的系统的受信任代码库中。然而,当需要指定根据aap标准构建的复杂系统的安全属性时,除非采取其他步骤,否则很难保证pdp点和pep点正常工作。
60.作为这种步骤的示例,可以考虑对pdp和pep的实现或者对基于能够保证pdp和pep正常工作的规则的、pdp和pep的代码的生成进行形式验证(例如,通过形式数学方法进行的验证)。
61.最初,如上所述,aap标准设想了所提到的访问控制组件110’,其是用于检查基于aap标准在系统中发生的相互通信进程的点。本发明的实施方式提出,在保持访问控制组件110’的软件接口的同时,如下所述地改变其功能。
62.具体地,本发明的实施方式设想了基于安全操作系统的aap软件平台。安全操作系统的一个示例是卡巴斯基os 200(kos)。
63.通常,安全的os(操作系统)保证功能和信息的安全。功能安全的保证包括用于防
止由于作用在os上并具有随机性质的随机因素的组合而引起的问题的措施。例如,从功能安全(或安全性)的角度来看,可能会以一定概率出现os发生崩溃的情况。确保功能安全的目标是将可能的崩溃次数减少到所需水平(例如,每天不多于7

10次)。信息安全的保证包括防止因os上的故意操作(例如网络攻击)而引起的问题的措施。例如,从信息安全的角度来看,如果已知os的漏洞,则成功攻击的概率等于1。确保信息安全的目标(即,没有漏洞)是安全os的主要目标。
64.卡巴斯基os 200的基本属性使得可以实现用于与mils(multiple independent levels of security,多重独立安全等级)架构相对应的aap的安全子系统。mils架构基于将系统划分为独立的受信任组件和不受信任组件,并监控它们之间的交互(相互通信)。mils架构还基于flask(flux高级安全内核)架构,而flask架构又基于将安全系统划分为pdp和pep两部分。在图2b中示出了flask架构的示例。在客户端201请求访问对象的情况下,对象管理器202向安全服务器203请求判决,并且基于安全服务器的决策(判决),授予客户端对对象的访问权限。
65.安全操作系统(诸如卡巴斯基os 200)的一个特征是它能够监控系统中的进程间通信,并且通过使用一组形式化的安全模型,安全操作系统可以为交互指定最详细的用于交互的安全策略。该功能由卡巴斯基os 200的单独的子系统提供,该子系统被称为卡巴斯基安全系统(kaspersky security system,kss)220,如图2a所示。
66.应当注意的是,在卡巴斯基os 200中实现的进程间通信的机制在美国专利no.9,201,712(名称为“system and method for selecting a synchronous or asynchronous interprocess communication mechanism”)中进行了描述,该专利通过引用整体并入本文中,而子系统kss 220在美国专利no.9,774,568(名称为“computer security architecture and related computing method”)中进行了描述,该专利也通过引用整体并入本文中。
67.在卡巴斯基os的控制下运行的软件组件之间的进程间通信的唯一可能机制是由操作系统200的内核(微内核)210提供的ipc。这种通信机制如图2c所示。根据本发明的一方面,在执行应用程序120之间的ipc的过程中,内核210可以从kss 220请求执行ipc的判决或许可(关于授予对交互的访问权限的判决)。kss 220可以访问在ipc过程中传输的数据,并根据指定的安全策略对这些数据进行分析。通常情况下,指定的安全策略可以在编译阶段限定,并且无法改变。在本发明的实施方式中,kss 220可以利用形式化的安全模型来计算关于授予对交互的访问权限的判决。内核210可以使用所计算的判决来执行进程间通信。
68.在一方面,形式化的安全模型可以包括但不限于:
69.‑
强制访问控制(bella

lapadula模型);
70.‑
强制完整性控制(biba模型);
71.‑
基于角色的访问控制模型;
72.‑
基于有限状态机的安全模型;
73.‑
基于各种时间逻辑的方言的安全模型;
74.‑
其他。
75.此外,在一个示例性实施方式中,kss 220可以附加地提供到软件组件的接口(安全接口kss)。根据本发明的实施方式,这种接口可以用于指定安全策略的参数,以及用于从
kss 220接收关于某些动作是否可以执行的判决。
76.作为示例,示出了用于提供从应用程序a 120访问应用程序b 120的服务的过程。在开始,在系统加载后,禁止应用程序a和b之间的所有进程间通信。这意味着当尝试进行这种通信时,内核210将向kss 220请求执行该进程间通信的许可,并且将接收到这样的通信是不可行的响应,之后将阻止进行该进程间通信的尝试。
77.然而,如果应用程序a 120的规范包含可以与应用程序b 120的服务进行交互的声明,则访问控制组件110’在获得该规范后将对其进行分析,以确定该规范的完整性和真实性。另外,访问控制组件可以获得描述可允许的交互的信息。然后,具有修改设计的安全配置的参数的专有权的访问控制组件110’可以通过安全接口kss 220指定安全配置的参数,该参数指示进行交互的可能性。此后,当尝试从应用程序a 120访问应用程序b 120的服务时,kss 220将发出肯定判决,并且可以执行该交互。
78.下面是允许执行上述行为的简单安全策略的示例。
79.应用程序a 120可以具有标识符id_a,标识符id_a可以独立于应用程序由os的内核210确定。类似地,应用程序b 120可以具有标识符id_b。例如,该标识符可以是与该应用程序相关联的进程的id。此外,应用程序b 120可以具有一组服务(例如,接口方法),每个服务具有其自己的标识符。这些标识符的值可以在应用程序b 120的规范中指定。应用程序a 120的规范可以包含以下声明:可以获得对具有标识符id_service_b_1的应用程序b 120的服务的访问权限。
80.在交换信息的过程中,os的内核210可以访问所有这些参数,因此,内核210可以将这些参数发送给kss 220,以使kss 220宣布关于是否可以进行交互的判决。
81.在一个实施方式中,kss 220可以实现如下地构造的安全策略。存在一个列表(“列表”类型的容器用于简化讨论,在实际的实施方式中,可以使用其他容器,例如“词汇表”,使得可以减少用于计算判决的时间),其中包含数据元素的三元组,数据元素的三元组可以包括客户端应用程序的标识符、服务应用程序的标识符以及服务应用程序中的服务的标识符。在系统启动时,此列表可以为空。为了做出决策,kss 220可以针对每个进程间通信接收组成数据元素的标识符的列表,并且可以使用该列表执行搜索。如果列表中存在给定的数据元素的三元组,则允许通信。否则,禁止通信。
82.在一个实施方式中,访问控制组件110’可以访问安全接口kss 220,并且可以通过该接口向列表添加新的数据元素。
83.在分析应用程序的规范时,访问控制组件110’可以发现被允许的交互,可以获取它们的相应标识符,并且可以使用安全接口将它们添加到kss 220的安全策略列表中。其他交互如之前一样被禁止。
84.因此,所公开的实施方式确保了以下属性:
85.1.验证是在系统中所有进程间通信都发生的点(即os的内核210)执行的,这消除了执行未经验证的进程间通信的可能性。
86.2.所描述的系统具有单个决策点(pdp),其使用形式化的安全模型进行操作。这样的配置极大地保证了完整且无矛盾的安全策略,在可预测的时间内计算了用于授予对进程间通信的访问权限的判决,并利用形式化机制来评估了该安全模型的质量(例如,决策时间)。在所提到的mils架构中,建议在系统中具有一个(单个)以最低级别的操作系统运行
(如上所述,在内核210中)的pdp,其实际上在所提出的方法中实现。
87.3.安全操作系统极大地保证了所有进程间通信均在kss 220的监督下。进程间通信的规则以高级语言编写。可以生成用于计算判决的代码,该代码允许在kss 220中为其计算判决的组件(应用程序120)中具有高信任级别。例如,一条规则可以声明组件a不能访问组件b。但是规则还可以声明组件a可以访问组件c,而组件c可以访问组件b。通过使用完整性模型,kss 220将发现该组规则不正确,并且在分析安全配置的阶段将输出错误。
88.有利地,本发明的实施方式设想了一种方法,该方法使得可以满足aap标准的要求,同时利用了诸如卡巴斯基os的安全操作系统提供的安全范例的优点。
89.所提出的方法与其他类似方法之间的主要区别在于以下事实:访问控制组件110’既不是实现安全策略的组件也不是强制执行判决的组件。在所提出的架构的情况下,访问控制组件110’仅是用于配置全局安全策略的机构,从而可以显著地简化访问控制组件110’。访问控制组件110’的这种简化使得可以对其进行详细分析,以识别潜在的漏洞和错误。实际的安全策略,即计算判决和强制执行判决的机制使用kss 220在os的内核210中独立实现。
90.因此,车辆的控制单元100可以在安全操作系统200的控制下进行操作,该控制单元被设计为执行用于控制车辆的应用程序120和基本组件110。安全操作系统200包含内核210和安全模块220。基本组件110在安全操作系统200中执行,并提供用于与应用程序120和其他基本组件110交互的接口。此处的基本组件110是独立的应用程序120(根据mils架构)。用于控制车辆的应用程序120也在安全操作系统200中执行,并且经由所提到的相互通信接口与基本组件110和其他应用程序120通信,并提供用于与其他应用程序120通信的接口。在一般情况下,这些通信接口是进程间通信接口。
91.安全操作系统的内核210使得基本组件110能够通过上述接口进行与用于控制车辆的应用程序120之间的进程间通信。为此,内核210通过所提供的通信接口拦截对进行应用程序120与基本组件110的通信的请求。此后,基于安全操作系统的安全模块220的判决而使进程间通信能够发生。
92.在本发明的实施方式中,安全操作系统的安全模块220是用于授予访问权限的唯一决策点。在一个实施方式中,安全操作系统的安全模块220可以使用形式化的安全模型来计算关于以下的判决:授予通过所提到的交互接口对基本组件110进行访问的权限。如果基本组件110与用于控制车辆的应用程序120之间的通信符合所提到的形式化的安全模型,则安全操作系统的安全模块220可以宣布关于授予访问权限的判决。
93.在一个实施方式中,内核210基于安全操作系统的安全模块220的判决,可以选择性地使得能够经由交互接口进行基本组件110和应用程序120之间的进程间通信。在宣布授予访问权限的判决的情况下,在一个示例性实施方式中,内核210可以通过提供的进程间通信接口将拦截的对进行应用程序120与基本组件110的进程间通信的请求发送给基本组件110。
94.图3示出了根据本发明的各方面的用于在电子控制单元中提供进程间通信的方法。
95.在开始步骤310中,可以使用电子控制单元100中的操作系统的内核210来拦截对进行基本组件110与控制车辆的应用程序120的进程间通信的请求。在一个实施方式中,操
作系统是安全操作系统,例如卡巴斯基os(如上面结合图2a所讨论的)。基本组件110是如在aap规范中所限定的平台的软件元件(如以上结合图1a所讨论的)。基本组件110在这里是独立的应用程序120(根据mils架构),并且它提供了用于与其他应用程序120交互的接口。在一个实施方式中,基本组件110和应用程序120提供用于与其他基本组件110和其他应用程序120进行进程间通信的接口。
96.在步骤320中,操作系统的内核210可以向操作系统的安全模块220请求关于授予通过进程间通信接口进行应用程序120与基本组件110的进程间通信的访问权限。操作系统的安全模块220在这里是唯一的决策点(符合flask架构),即,是计算关于授予访问权限的判决的唯一点。
97.在步骤330中,可以使用操作系统的安全模块220来计算(宣布)关于授予通过进程间通信接口进行应用程序120与基本组件110的进程间通信的访问权限的判决。在一个实施方式中,操作系统的安全模块220可以根据已经在编译步骤中限定并且不能被改变的安全策略来计算判决。在一个实施方式中,操作系统的安全模块220可以通过使用形式化的安全模型(如以上结合图2a所讨论的)来计算判决。如果基本组件110和用于控制车辆的应用程序120之间的通信符合形式化的安全模型,则所计算的判决可以允许基本组件110和用于控制车辆的应用程序120之间进行进程间通信。
98.在步骤340中,基于操作系统的安全模块220的判决,安全操作系统的内核210使得能够进行基本组件110与用于控制车辆的应用程序120之间的进程间通信。
99.图4是示出了计算机系统20的框图,在计算机系统20上可以根据示例性方面来实现用于在电子控制单元中提供进程间通信的系统和方法的各方面。计算机系统20可以表示图2a的车辆的电子控制单元,并且可以是多个计算设备的形式,也可以是单个计算设备的形式,例如台式电脑、笔记本电脑、手提电脑、移动计算设备、智能手机、平板电脑、服务器、主机、嵌入式设备和其它形式的计算设备。
100.如图所示,计算机系统20包括中央处理单元(central processing unit,cpu)21、系统存储器22和连接各种系统部件的系统总线23,各种系统部件包括与中央处理单元21相关联的存储器。系统总线23可以包括总线存储器或总线存储器控制器、外围总线、以及能够与任何其它的总线架构交互的本地总线。总线的示例可以包括pci、isa、串行总线(pci

express)、超传输
tm
(hypertransport
tm
)、无限带宽
tm
(infiniband
tm
)、串行ata、i2c、和其它合适的互连。中央处理单元21(也称为处理器)可以包括单组或多组具有单核或多核的处理器。处理器21可以执行实现本发明的技术的一种或多种计算机可执行代码。系统存储器22可以为用于存储本文中所使用的数据和/或由处理器21可执行的计算机程序的任何存储器。系统存储器22可以包括易失性存储器(诸如随机存取存储器(random access memory,ram)25)和非易失性存储器(诸如只读存储器(read

only memory,rom)24、闪存等)或其任意组合。基本输入/输出系统(basic input/output system,bios)26可以存储用于在计算机系统20的元件之间传输信息的基本程序,例如在使用rom 24加载操作系统时的那些基本程序。
101.计算机系统20可以包括一个或多个存储设备,诸如一个或多个可移除存储设备27、一个或多个不可移除存储设备28、或其组合。所述一个或多个可移除存储设备27和一个或多个不可移除存储设备28借助存储器接口32连接到系统总线23。在一个方面,存储设备
和相应的计算机可读存储介质为用于存储计算机指令、数据结构、程序模块、和计算机系统20的其它数据的电源独立的模块。系统存储器22、可移除存储设备27和不可移除存储设备28可以使用各种各样的计算机可读存储介质。计算机可读存储介质的示例包括:机器存储器,诸如缓存、sram、dram、零电容ram、双晶体管ram、edram、edo ram、ddr ram、eeprom、nram、rram、sonos、pram;闪存或其它存储技术,诸如在固态驱动器(solid state drive,ssd)或闪存驱动器中;磁带盒、磁带、和磁盘存储器,诸如在硬盘驱动器或软盘中;光学存储器,诸如在光盘(cd

rom)或数字通用光盘(digital versatile disk,dvd)中;以及可用于存储期望数据且可被计算机系统20访问的任何其它介质。
102.计算机系统20的系统存储器22、可移除存储设备27和不可移除存储设备28可以用于存储操作系统35、附加应用程序37、其它程序模块38和程序数据39。计算机系统20可以包括用于传送来自输入设备40的数据的外围接口46,所述输入设备40诸如键盘、鼠标、光笔、游戏控制器、语音输入设备、触点输入设备、或其它外围设备,诸如借助一个或多个i/o端口的打印机或扫描仪,该一个或多个i/o端口诸如串行端口、并行端口、通用串行总线(universal serial bus,usb)、或其它外围接口。显示设备47(诸如一个或多个监控器、投影仪或集成显示器)也可以通过输出接口48(诸如视频适配器)连接到系统总线23。除了显示设备47之外,计算机系统20还可以装配有其它外围输出设备(未示出),诸如扬声器和其它视听设备。
103.计算机系统20可以使用与一个或多个远程计算机49的网络连接而在网络环境中工作。所述一个或多个远程计算机49可以为本地计算机工作站或服务器,其包括前面在描述计算机系统20的性质时所述的元件中的大多数元件或全部元件。其它设备也可以存在于计算机网络中,诸如但不限于路由器、网站、对等设备或其它网络节点。计算机系统20可以包括用于借助一个或多个网络而与远程计算机49通信的一个或多个网络接口51或网络适配器,该一个或多个网络诸如局域计算机网络(local

area computer network,lan)50、广域计算机网络(wide

area computer network,wan)、内联网、和因特网。网络接口51的示例可以包括以太网接口、帧中继接口、sonet(同步光纤网)接口、和无线接口。
104.本发明的各个方面可以为系统、方法和/或计算机程序产品。计算机程序产品可以包括一种或多种计算机可读存储介质,该计算机可读存储介质上具有用于使处理器执行本发明的各方面的计算机可读程序指令。
105.计算机可读存储介质可以为有形设备,该有形设备可以保持且存储指令或数据结构的形式的程序代码,该程序代码可以被计算设备(诸如计算系统20)的处理器访问。计算机可读存储介质可以为电子存储设备、磁性存储设备、光学存储设备、电磁存储设备、半导体存储设备、或其任何合适的组合。作为示例,这类计算机可读存储介质可以包括随机存取存储器(ram)、只读存储器(rom)、电可擦可编程只读存储器(eeprom)、便携式光盘只读存储器(cd

rom)、数字通用光盘(dvd)、闪存、硬盘、便携式电脑磁盘、记忆棒、软盘、或甚至机械编码设备,诸如在其上记录有指令的凹槽中的打孔卡或凸起结构。如在本文中所使用的,计算机可读存储介质不应被视为暂时性信号本身,暂时性信号诸如无线电波或其它自由传播的电磁波、通过波导或传输介质传播的电磁波、或通过电线传输的电信号。
106.可以将本文中所描述的计算机可读程序指令从计算机可读存储介质下载到相应的计算设备、或借助网络(例如,因特网、局域网、广域网和/或无线网络)下载到外部计算机
或外部存储设备。该网络可以包括铜传输电缆、光学传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。在每个计算设备中的网络接口从网络接收计算机可读程序指令并转发该计算机可读程序指令,用以存储在相应的计算设备内的计算机可读存储介质中。
107.用于执行本发明的操作的计算机可读程序指令可以为汇编指令、指令集架构(instruction

set

architecture,isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或以一种或多种编程语言(包括面向对象的编程语言和传统程序化编程语言)的任何组合编写的源代码或目标代码。计算机可读程序指令(作为独立的软件包)可以完全地在用户的计算机上、部分地在用户的计算机上、部分地在用户的计算机上且部分地在远程计算机上、或完全地在远程计算机或服务器上执行。在后一种情况中,远程计算机可以通过任何类型的网络(包括lan或wan)连接到用户的计算机,或可以进行与外部计算机的连接(例如通过因特网)。在一些实施方式中,电子电路(包括例如可编程逻辑电路、现场可编程门阵列(fpga)、或可编程逻辑阵列(programmable logic array,pla))可以通过利用计算机可读程序指令的状态信息而执行计算机可读程序指令,以使该电子电路个性化,从而执行本发明的各方面。
108.在各个方面中,本发明中所描述的系统和方法可以按照模块来处理。如本文中所使用的术语“模块”指的是例如现实世界的设备、部件、或使用硬件(例如通过专用集成电路(asic)或fpga)实现的部件的布置,或者指的是硬件和软件的组合,例如通过微处理器系统和实现模块功能的指令集(该指令集在被执行时将微处理器系统转换成专用设备)来实现这样的组合。一个模块还可以被实施为两个模块的组合,其中单独地通过硬件促进某些功能,并且通过硬件和软件的组合促进其它功能。在某些实现方式中,模块的至少一部分(以及在一些情况下,模块的全部)可以在计算机系统的处理器上运行。因此,每个模块可以以各种适合的配置来实现,而不应受限于本文中所例示的任何特定的实现方式。
109.为了清楚起见,本文中没有公开各个方面的所有例行特征。应当领会的是,在本发明的任何实际的实现方式的开发中,必须做出许多特定实现方式的决定,以便实现开发者的特定目标,并且这些特定目标将对于不同的实现方式和不同的开发者变化。应当理解的是,这种开发努力会是复杂的且费时的,但对于了解本发明的优点的本领域的普通技术人员来说仍然是工程的例行任务。
110.此外,应当理解的是,本文中所使用的措辞或术语出于描述而非限制的目的,从而本说明书的术语或措辞应当由本领域技术人员根据本文中所提出的教导和指导结合(一个或多个)相关领域技术人员的知识来解释。此外,不旨在将本说明书或权利要求中的任何术语归于不常见的或特定的含义,除非明确如此阐述。
111.本文中所公开的各个方面包括本文中以说明性方式所引用的已知模块的现在和未来已知的等同物。此外,尽管已经示出并描述了各个方面和应用,但是对于了解本发明的优点的本领域技术人员将明显的是,在不脱离本文中所公开的发明构思的前提下,相比于上文所提及的内容而言的更多修改是可行的。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1