基于分层消息软总线模型的操作系统及实现方法转让专利

申请号 : CN202210680561.5

文献号 : CN114756495B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 董攀杨攀黄辰林丁滟蹇松雷李宝任怡王晓川张建锋谭霜

申请人 : 中国人民解放军国防科技大学

摘要 :

本发明公开了一种基于分层消息软总线模型的操作系统及实现方法,该操作系统包括消息软总线、组件节点和桥节点,消息软总线用于实现消息的传递与接口分离,提供一个透明的通信机制;消息软总线内部采用同一隔离机制,消息软总线之间通过桥节点来隔离;多个组件节点用于在同一消息软总线的控制下,实现多个组件节点之间的通信或隔离、以及多个消息软总线之间通过桥节点实现通信或隔离;桥节点用于连接和隔离分层的消息软总线,将多个消息软总线组成树状结构。本发明支持异构和动态变化的组件节点,同时促进了软件和硬件的协作设计;实现了结构的自相似性,有助于利用多样化的隔离机制来平衡系统能力。

权利要求 :

1.一种基于分层消息软总线模型的操作系统,其特征在于,包括消息软总线(10)、组件节点(20)、桥节点(30)和总线域(40),其中,所述消息软总线(10)与多个所述组件节点(20)相连接,用于实现消息的传递与接口分离,提供一个透明的通信机制;

多个所述组件节点(20)分别与所述消息软总线(10)相连接,用于在所述消息软总线(10)的控制下,实现多个所述组件节点(20)之间的通信或隔离、以及多个所述组件节点(20)与所述消息软总线(10)之间的通信或隔离;所述组件节点(20)之间的隔离分为内部消息软总线级别和消息软总线间级别,在所述内部消息软总线级别的层面下,所述组件节点(20)之间采用同一种隔离机制进行隔离;在所述消息软总线间级别的层面下,所述桥节点(30)利用多种隔离机制进行隔离;

所述桥节点(30)连接和隔离分层的多个所述消息软总线(10),用于将多个所述消息软总线(10)组成树状结构,将消息在分层的所述消息软总线(10)之间进行转换;

所述总线域(40)定义于所述消息软总线(10)上,两个所述总线域(40)之间被所述桥节点(30)相隔离,如果所述桥节点(30)使用硬件权切换机构,则所述消息软总线(10)利用不同的多级页表来实现独立的总线域;如果所述桥节点(30)利用硬件加密机制,则所述消息软总线(10)将拥有不同的密钥以实现关键数据的保护。

2.如权利要求1所述的基于分层消息软总线模型的操作系统,其特征在于,所述消息软总线(10)包括控制器(11)、路由机制(12)和总线接口(13),所述控制器(11)用于采用所述路由机制(12),通过所述总线接口(13)分别与所述组件节点(20)和所述桥节点(30)相连接,用于负责所述组件节点(20)和所述桥节点(30)的节点注册、节点定位、消息转发和故障处理。

3.如权利要求1所述的基于分层消息软总线模型的操作系统,其特征在于,每个所述组件节点(20)均包括总线适配器(21)和逻辑单元(22),所述总线适配器(21)与所述逻辑单元(22)相连接,用于调用所述逻辑单元(22)提供的接口来处理消息。

4.如权利要求1所述的基于分层消息软总线模型的操作系统,其特征在于,所述桥节点(30)包括第一桥接接口(31)和第二桥接接口(32),所述消息软总线包括第一消息软总线和第二消息软总线,所述第一桥接接口(31)与第一消息软总线相连接,所述第二桥接接口(32)与所述第二消息软总线相连接;所述桥节点(30)用于负责消息在所述第一消息软总线和所述第二消息软总线进行转换。

5.一种基于分层消息软总线模型的操作系统的实现方法,应用于如权利要求1至4任意一项所述的基于分层消息软总线模型的操作系统中,其特征在于,所述基于分层消息软总线模型的操作系统的实现方法包括以下步骤:针对目标操作系统所管理的资源类型、规模、范围和可用的隔离与通信方式,规划目标操作系统应实现的软件总线层级数量与各总线域;

将路由机制作为消息软总线中的基础模型,不同的消息软总线基于设定的隔离或通信技术对所述基础模型进行实例化;

构建普通总线节点的功能模块,实现操作系统的服务、功能、以及应用功能;

根据规划的软件总线层级数量与各总线域,确定必要的操作系统管理服务。

6.如权利要求5所述的基于分层消息软总线模型的操作系统的实现方法,其特征在于,所述针对目标操作系统所管理的资源类型、规模、范围和可用的隔离与通信方式,规划目标操作系统应实现的软件总线层级数量与各总线域的步骤中,规划的总线层级设计原则为每个总线层级中的模块将采用相同的隔离方法和通信方式,其中的通信功能通过统一的接口和同一个软组织构件进行连接;所述软组织构件定义为层级消息总线,所述统一的接口定义为层级消息总线的总线接口;

规划的总线域的设计原则为按照一个子系统的功能、性能、安全和可靠性需求将多个功能模块采用对应级别总线的接口进行逻辑连接,每个总线域又基于软件隔离机制和/或硬件隔离机制实现本总线域的子系统同其它总线域或子系统的隔离。

7.如权利要求5所述的基于分层消息软总线模型的操作系统的实现方法,其特征在于,所述将路由机制作为消息软总线中的基础模型,不同的消息软总线基于设定的隔离或通信技术对所述基础模型进行实例化的步骤中,所述路由机制根据消息软总线上所注册的节点信息对节点要求的消息传输进行路由,当目标节点不属于本总线域时,则路由机制负责确认通往所属总线域的桥节点,并将消息发送给桥节点。

8.如权利要求5所述的基于分层消息软总线模型的操作系统的实现方法,其特征在于,所述构建普通总线节点的功能模块,实现操作系统的服务、功能、以及应用功能的步骤中,每个普通总线节点均包括总线适配器单元和功能单元,通过功能单元实现操作系统所承担的功能;通过总线适配器单元负责适配所在总线域的总线接口,并将功能单元的消息通信转换为对总线接口的通信形式。

9.如权利要求5所述的基于分层消息软总线模型的操作系统的实现方法,其特征在于,所述根据规划的软件总线层级数量与各总线域,确定必要的操作系统管理服务的步骤中,将操作系统管理服务中的内存管理器、任务管理器、时钟和中断管理器、以及文件系统管理器转换为消息软总线上的普通模块节点。

说明书 :

基于分层消息软总线模型的操作系统及实现方法

技术领域

[0001] 本发明涉及计算机系统控制技术领域,尤其公开了一种基于分层消息软总线模型的操作系统及实现方法。

背景技术

[0002] 随着云计算、人工智能和IoT(Internet of Things,物联网)等的发展,现有的操作系统结构,如基于宏内核的结构、基于微内核的结构等,已经成为系统的可扩展性、可靠性、性能和生态发展的瓶颈。
[0003] 首先,大多数操作系统结构具有强耦合和集中化的特点。各个组成部分被紧密地结合在一起。特别是,核心功能总是集中在一个独特的组件中,如内核。这不仅限制了系统的可扩展性、安全性、灵活性和可维护性,也使得操作系统完成后很难结合新的软件和硬件机制。受结构的影响,每个操作系统建立的生态都与其他操作系统不兼容,造成了浪费和新操作系统的发展上的困难。
[0004] 其次,大多数结构假设并依赖内核‑用户隔离(即特权模式和非特权模式引入的隔离),内核使用特权态,拥有对系统资源的全部管理权限,而用户态权限很有限。两种特权态之间存在保护鸿沟,分处于两态的软件单元在相互通信协作的过程中需要付出较大代价。微内核和宏内核的关注焦点无非是系统服务所处的权限状态,如果系统服务处于特权态,则因具有高权限而对系统可靠性形成威胁,同时增加了内核复杂性;如果系统服务处于用户态,则因无法直接访问关键资源而增大了通信和切换开销,从而损失了性能。这种方法通常会导致安全、可扩展性和性能等各种能力之间的矛盾。
[0005] 从系统论的角度出发,基于一个好的操作系统结构所实现的创新操作系统设计是解决上述矛盾的关键。传统操作系统设计中最重大的挑战是需要管理的资源数量和范围不断增加,系统状态频繁变化,这就要求操作系统的结构支持:1)管理工作分散到更多的组件上;2)在尽可能不引入威胁的情况下灵活地添加和移除组件。因此,需要设计一个新的结构以灵活的方式连接大量的组件,并更安全和有效地组织和保护组件。为了使操作系统在安全、扩展性、可靠性、性能等方面都能满足高要求,其结构最好能同时具备下列特点:1)松散耦合和去中心化。一个组件应该在不了解内部通信机制的情况下很容易与操作系统连接,并且不受其他组件漏洞的影响。操作系统的结构应是分散的,因为一个中心节点总是系统整体能力的瓶颈。这样的结构接受来自任意生态的组件,因为一个组件可以很容易地适应加入。2)结构的自相似性。自相似性意味着操作系统的结构在不同的抽象尺度上是相似的,确保了操作系统的可扩展性和广泛适用性。3)有效利用多样化(硬件或软件)的安全机制。对于操作系统组件的边界应采用更多的隔离机制,以支持具有不同能力和性能的安全资源管理。
[0006] 事实上,前两个特点有助于使系统具有出色的可扩展性,而最后一个特点可以确保系统具有灵活可调的安全性、可靠性和性能,从而有助于解决这些能力之间的矛盾。这样一个新的结构模型有别于现有的结构模型,需要采用新的设计理念。
[0007] 因此,构建一个松耦合、去中心、能高效利用安全机制、具有自相似性的操作系统结构,并使其适用于通用计算机操作系统的开发,能够有效支持包括大型分布式系统和嵌入式操作系统,是目前亟待解决的技术问题。

发明内容

[0008] 本发明提供了一种基于分层消息软总线模型的操作系统及实现方法,旨在构建一个松耦合、去中心、能高效利用安全机制、具有自相似性的操作系统结构,并使其适用于通用计算机操作系统的开发,能够有效支持包括大型分布式系统和嵌入式操作系统。
[0009] 本发明的一方面涉及一种基于分层消息软总线模型的操作系统,包括消息软总线、组件节点和桥节点,其中,
[0010] 消息软总线与多个组件节点相连接,用于实现消息的传递与接口分离,提供一个透明的通信机制;
[0011] 多个组件节点分别与消息软总线相连接,用于在消息软总线的控制下,实现多个组件节点之间的通信或隔离、以及多个组件节点与消息软总线之间的通信或隔离;组件节点之间的隔离分为内部消息软总线级别和消息软总线间级别,在内部消息软总线级别的层面下,组件节点之间采用同一种隔离机制进行隔离;在消息软总线间级别的层面下,桥节点利用多种隔离机制进行隔离;
[0012] 桥节点与分层的多个消息软总线相连接,用于将多个消息软总线组成树状结构,将消息在分层的消息软总线之间进行转换。
[0013] 进一步地,消息软总线包括控制器、路由机制和总线接口,控制器用于采用路由机制,通过总线接口分别与组件节点和桥节点相连接,用于负责组件节点和桥节点的节点注册、节点定位、消息转发和故障处理。
[0014] 进一步地,每个组件节点均包括总线适配器和逻辑单元,总线适配器与逻辑单元相连接,用于调用逻辑单元提供的接口来处理消息。
[0015] 进一步地,桥节点包括第一桥接接口和第二桥接接口,消息软总线包括第一消息软总线和第二消息软总线,第一桥接接口与第一消息软总线相连接,第二桥接接口与第二消息软总线相连接;桥节点用于负责消息在第一消息软总线和第二消息软总线进行转换。
[0016] 进一步地,基于分层消息软总线模型的操作系统还包括总线域,总线域定义于消息软总线上,两个总线域之间被桥节点相隔离,如果桥节点使用硬件权切换机构,则消息软总线利用不同的多级页表来实现独立的总线域;如果桥节点利用硬件加密机制,则消息软总线将拥有不同的密钥以实现关键数据的保护。
[0017] 本发明的另一方面涉及一种基于分层消息软总线模型的操作系统的实现方法,应用于上述的基于分层消息软总线模型的操作系统中,基于分层消息软总线模型的操作系统的实现方法包括:
[0018] 针对目标操作系统所管理的资源类型、规模、范围和可用的隔离与通信方式,规划目标操作系统应实现的软件总线层级数量与各总线域;
[0019] 将路由机制作为消息软总线中的基础模型,不同的消息软总线基于设定的隔离或通信技术对基础模型进行实例化;
[0020] 构建普通总线节点的功能模块,实现操作系统的服务、功能、以及应用功能;
[0021] 根据规划的软件总线层级数量与各总线域,确定必要的操作系统管理服务。
[0022] 进一步地,针对目标操作系统所管理的资源类型、规模、范围和可用的隔离与通信方式,规划目标操作系统应实现的软件总线层级数量与各总线域的步骤中,
[0023] 规划的总线层级设计原则为每个总线层级中的模块将采用相同的隔离方法和通信方式,其中的通信功能通过统一的接口和同一个软组织构件进行连接;软组织构件定义为该级总线,统一的接口定义为该级总线的总线接口;
[0024] 规划的总线域的设计原则为按照一个子系统的功能、性能、安全和可靠性需求将多个功能模块采用对应级别总线的接口进行逻辑连接,每个总线域又基于软件隔离机制和/或硬件隔离机制实现本总线域的子系统同其它总线域或子系统的隔离。
[0025] 进一步地,将路由机制作为消息软总线中的基础模型,不同的消息软总线基于设定的隔离或通信技术对基础模型进行实例化的步骤中,
[0026] 路由机制根据消息软总线上所注册的节点信息对节点要求的消息传输进行路由,当目标节点不属于本总线域时,则路由机制负责确认通往所属总线域的桥节点,并将消息发送给桥节点。
[0027] 进一步地,构建普通总线节点的功能模块,实现操作系统的服务、功能、以及应用功能的步骤中,
[0028] 每个普通总线节点均包括总线适配器单元和功能单元,通过功能单元实现操作系统所承担的功能;通过总线适配器单元负责适配所在总线域的总线接口,并将功能单元的消息通信转换为对总线接口的通信形式。
[0029] 进一步地,根据规划的软件总线层级数量与各总线域,确定必要的操作系统管理服务的步骤中,
[0030] 将操作系统管理服务中的内存管理器、任务管理器、时钟和中断管理器、以及文件系统管理器转换为消息软总线上的普通模块节点。
[0031] 本发明提供一种基于分层消息软总线模型的操作系统及实现方法,操作系统采用消息软总线、组件节点和桥节点,消息软总线用于实现消息的传递与接口分离,提供一个透明的通信机制;多个组件节点用于在消息软总线的控制下,实现多个组件节点之间的通信或隔离、以及多个组件节点与消息软总线之间的通信或隔离;组件节点之间的隔离分为内部消息软总线级别和消息软总线间级别,在内部消息软总线级别的层面下,组件节点之间采用同一种隔离机制进行隔离;在消息软总线间级别的层面下,桥节点利用多种隔离机制进行隔离;桥节点用于将多个消息软总线组成树状结构,将消息在分层的消息软总线之间进行转换。
[0032] 本发明提供的基于分层消息软总线模型的操作系统及实现方法,所取得的有益效果为:
[0033] 1、通过消息软总线提供了一个灵活透明的通信机制,从而支持异构和动态变化的组件节点,同时促进了软件和硬件的协作设计。
[0034] 2、引入桥节点来连接分层的消息软总线,实现了结构的自相似性。同时,桥节点作为隔离的边界,有助于利用多样化的隔离机制来平衡系统能力,如安全和性能。
[0035] 3、具有广泛的适用性,不仅支持大规模的系统,也可用于嵌入式小系统的设计。
[0036] 4、一方面,以松散的耦合和层次关系组织操作系统节点,所以异构节点,如开源软件或主流操作系统内核,只要遵循消息软总线的接口标准,也可以集成到基于本发明的系统中。另一方面,从结构上来说可以通过伸缩变化得到不同的形态,且对特定的隔离和通信机制不做假设,可以适应到许多应用场景。因此,可能实现有利的生态发展,促进学术界和产业界的有效整合。

附图说明

[0037] 图1为本发明提供的基于分层消息软总线模型的操作系统第一实施例的功能框图;
[0038] 图2为本发明提供的基于分层消息软总线模型的操作系统一实施例中分层消息软总线模型的连接示意图;
[0039] 图3为图1中所示的消息软总线一实施例的功能模块示意图;
[0040] 图4为图1中所示的组件节点一实施例的功能模块示意图;
[0041] 图5为图1中所示的桥节点一实施例的功能模块示意图;
[0042] 图6为本发明提供的基于分层消息软总线模型的操作系统中引入的软构件定义的示意图;
[0043] 图7为本发明提供的基于分层消息软总线模型的操作系统第二实施例的功能框图;
[0044] 图8为本发明提供的基于分层消息软总线模型的操作系统的实现方法一实施例的流程示意图;
[0045] 图9为本发明提供的基于分层消息软总线模型的操作系统一实施例的应用示意图。
[0046] 附图标号说明:
[0047] 10、消息软总线;20、组件节点;30、桥节点;11、控制器;12、路由机制;13、总线接口;21、总线适配器;22、逻辑单元;31、第一桥接接口;32、第二桥接接口;40、总线域。

具体实施方式

[0048] 为了更好的理解上述技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案做详细的说明。
[0049] 如图1和图2所示,本发明第一实施例提出一种基于分层消息软总线模型的操作系统,包括消息软总线10、组件节点20和桥节点30,其中,消息软总线10与多个组件节点20相连接,用于实现消息的传递与接口分离,提供一个透明的通信机制;多个组件节点20分别与消息软总线10相连接,用于在消息软总线10的控制下,实现多个组件节点20之间的通信或隔离、以及多个组件节点20与消息软总线10之间的通信或隔离;组件节点20之间的隔离分为内部消息软总线级别和消息软总线间级别,在内部消息软总线级别的层面下,组件节点20之间采用同一种隔离机制进行隔离;在消息软总线间级别的层面下,桥节点30利用多种隔离机制进行隔离;桥节点30与分层的多个消息软总线10相连接,用于将多个消息软总线
10组成树状结构,将消息在分层的消息软总线10之间进行转换。
[0050] 在上述结构中,请见图3,图3为图1中所示的消息软总线一实施例的功能模块示意图,在本实施例中,消息软总线10包括控制器11、路由机制12和总线接口13,控制器11用于采用路由机制12,通过总线接口13分别与组件节点20和桥节点30相连接,用于负责组件节点20和桥节点30的节点注册、节点定位、消息转发和故障处理。本实施例提供的基于分层消息软总线模型的操作系统,通过消息软总线10提供了一个灵活透明的通信机制,从而支持异构和动态变化的组件节点,同时促进了软件和硬件的协作设计。
[0051] 优选地,请见图4,图4为图1中所示的组件节点一实施例的功能模块示意图,在本实施例中,每个组件节点20均包括总线适配器21和逻辑单元22,总线适配器21与逻辑单元22相连接,用于调用逻辑单元22提供的接口来处理消息。本实施例提供的基于分层消息软总线模型的操作系统,以松散的耦合和层次关系组织操作系统节点,所以异构节点,如开源软件或主流操作系统内核,只要遵循消息软总线的接口标准,也可以集成到基于本发明的系统中。
[0052] 进一步地,参见图5,图5为图1中所示的桥节点一实施例的功能模块示意图,在本实施例中,桥节点30包括第一桥接接口31和第二桥接接口32,消息软总线包括第一消息软总线和第二消息软总线,第一桥接接口31与第一消息软总线相连接,第二桥接接口32与第二消息软总线相连接;桥节点30用于负责消息在第一消息软总线和第二消息软总线进行转换。本实施例提供的基于分层消息软总线模型的操作系统,引入了桥节点来连接分层的消息软总线,实现了结构的自相似性。同时,桥节点作为隔离的边界,有助于利用多样化的隔离机制来平衡系统能力,如安全和性能。
[0053] 优选地,请见图7,图7为本发明提供的基于分层消息软总线模型的操作系统第二实施例的功能框图,在第一实施例的基础上,基于分层消息软总线模型的操作系统还包括总线域40,总线域40定义于消息软总线10上,两个总线域40之间被桥节点30相隔离,如果桥节点30使用硬件权切换机构,则消息软总线10利用不同的多级页表来实现独立的总线域;如果桥节点30利用硬件加密机制,则消息软总线10将拥有不同的密钥以实现关键数据的保护。本发明提供的基于分层消息软总线模型的操作系统,从结构上来说可以通过伸缩变化得到不同的形态,且对特定的隔离和通信机制不做假设,可以适应到许多应用场景。因此,可能实现有利的生态发展,促进学术界和产业界的有效整合。
[0054] 本发明提供的基于分层消息软总线模型的操作系统,基于分层消息软总线模型,将软总线模型应用于操作系统结构设计,引入了一些新的软构件定义,一般都是某种形式的软件实现:
[0055] 一、消息软总线10。消息软总线10是用于连接多个组件节点20的通信通道。消息软总线10将消息传递的实现与接口分离,以提供一个透明的通信机制。一个消息软总线10由控制器11、路由机制12和一系列总线接口13组成。其中,控制器11负责节点注册、节点定位、消息转发和故障处理。本发明并不限定消息软总线10的实现方式,它既可以是完全的软件机制,也可以借助硬件实现。
[0056] 二、组件节点20。一个组件节点20由一个总线适配器21和一个逻辑单元22组成。逻辑单元22代表一组操作系统的功能,一个传统的操作系统内核,一个硬件设备,甚至是一个软总线结构,而总线适配器21通过调用逻辑单元22提供的接口来处理消息。组件节点20是松散耦合的,因为它们的通信只通过消息软总线10进行。组件节点20之间的隔离分为两个层面。在内部消息软总线级别下,组件节点20之间采用同一种隔离,且组件节点20之间较低的耦合度缩小了故障节点影响的范围。在消息软总线间级别下,桥节点30可以利用多种隔离机制,使得系统的安全性和性能设计更加灵活。
[0057] 三、桥节点30。桥节点30负责连接分层的消息软总线10,从而将多个消息软总线10组成树状结构。每个桥节点30都由适配待连接消息软总线10的两套接口,并负责进行消息在两条消息软总线10间的转换。桥节点30同时隶属于所连接的两条消息软总线10(或总线域40)。桥节点30也是对应莫种隔离机制的一种通信转换器,本发明通过不同的桥节点30实现方式来利用多样化的隔离机制,如权限等级切换和硬件加密机制等。
[0058] 四、总线域40。每个消息软总线10都定义了独立的总线域40,这些总线域40被桥节点30所隔离,本发明不限定其所使用的隔离机制的数量和种类。例如:如果一个桥节点30使用硬件权限切换机制,则消息软总线10利用不同的多级页表来实现独立的总线域40;而如果一个桥节点30利用硬件加密机制,那么消息软总线10将拥有不同的密钥以实现关键数据的保护。
[0059] 请见图8,图8为本发明提供的基于分层消息软总线模型的操作系统的实现方法一实施例的流程示意图,在本实施例中,该基于分层消息软总线模型的操作系统的实现方法应用于上述的基于分层消息软总线模型的操作系统中,基于分层消息软总线模型的操作系统的实现方法包括以下步骤:
[0060] 步骤S100、针对目标操作系统所管理的资源类型、规模、范围和可用的隔离与通信方式,规划目标操作系统应实现的软件总线层级数量与各总线域。
[0061] 在消息总线层级和各总线域规划设计中,规划的总线层级设计原则为每个总线层级中的模块将采用相同的隔离方法和通信方式,其中的通信功能通过统一的接口和同一个软组织构件进行连接;软组织构件定义为该级总线,统一的接口定义为该级总线的总线接口。规划的总线域的设计原则为按照一个子系统的功能、性能、安全和可靠性需求将多个功能模块采用对应级别总线的接口进行逻辑连接,每个总线域又基于软件隔离机制和/或硬件隔离机制实现本总线域的子系统同其它总线域或子系统的隔离。
[0062] 总线层级设计的原则是每个总线层级中的模块将采用相同的隔离方法和通信方式,其中的通信功能通过统一的接口和同一个软组织构件进行连接。这个软组织构件将被定义为该级总线,统一的接口就是总线接口。通过对隔离机制和适配器的运用,可以开发能适配该总线的功能模块,或者将已有软件逻辑改造为该总线的功能模块,甚至将硬件功能单元作为一个该总线的功能模块。
[0063] 总线域的设计原则是按照一个子系统的功能、性能、安全、可靠等需求将多个功能模块采用某级总线的接口进行逻辑连接,每个总线域又基于某种软/硬件隔离机制实现本总线域的子系统同其它总线域或子系统的隔离。总线域的设计包含了对下属模块的选择。
[0064] 多层软总线中,总线之间的连接通过桥模块实现。桥模块负责在隔离的总线子系统之间实现受控的通信,桥模块的设计对应特定隔离方法提供的通信机制。
[0065] 系统总线结构的整体设计可采用自顶向下的方式进行,可对应各种隔离/通信机制进行自然的子系统划分,这些隔离/通信机制即包含硬件实现的,也包总线域中包含哪些模块是根据性能、安全及可靠等能力的需求而定的,同时总线域中包含哪些模块是根据性能、安全及可靠等能力的需求而定的,同时总线域中包含哪些模块是根据性能、安全及可靠等能力的需求而定的,同时含软件逻辑实现的,即能连接软件构件,也能连接软件和硬件。例如对应传统的分布式操作系统视角,不同的计算机单机之间可采用物理主机隔离和网络通信,目标操作系统可以将单机子系统组织到一个总线域中,其中总线域中的每个模块节点可以是管理单机的子系统。每个总线域中包含哪些模块是根据性能、安全及可靠等能力的需求而定的,同时也可根据对性能和安全等需求,选择相应的隔离机制和通信机制来定义总线和桥。
[0066] 步骤S200、将路由机制作为消息软总线中的基础模型,不同的消息软总线基于设定的隔离或通信技术对基础模型进行实例化。
[0067] 在各级总线和桥的具体机制设计中,路由机制根据消息软总线上所注册的节点信息对节点要求的消息传输进行路由,当目标节点不属于本总线域时,则路由机制负责确认通往所属总线域的桥节点,并将消息发送给桥节点。
[0068] 请见图2,各级消息软总线10都由总线接口13、控制器11、以及路由机制12等组成,这些机制一般通过软件实现,也可以融合硬件机制的支持。这些机制只是消息软总线的基础模型,不同软总线会基于设定的隔离或通信技术对模型进行实例化设计。
[0069] 总线接口13是供注册或注销模块节点、传输数据的标准接口,本总线域40中的节点模块(包括桥节点)都必须通过这些标准总线接口接入和通信。
[0070] 路由机制12根据总线上所注册的节点信息对节点要求的消息传输进行路由,当目标节点不属于本总线域40时,路由机制12负责确认通往所属总线域40的桥节点,并将消息发送给桥节点30,从而转发到其它总线域40。
[0071] 控制机制包含了节点注册机制和注销机制负责将模块节点(包括桥节点)注册到软总线10上,包括登记节点的各项信息、能力、回调接口指针等。控制器11还主要实现对总线状态的判断,以及对总线服务能力和服务质量的综合控制。
[0072] 消息软总线10负责将总线域40内的隔离模块节点进行通信连接,桥模块负责将隔离的两个总线域进行通信连接。因此,软总线上的模块隔离同总线域之间的隔离采用不同的侧重点。同一软总线上的模块一般具有较一致的安全和可靠性等级,注重频繁高效的交互;跨总线域的模块具有不同的安全和可靠等级,因此总线域40注重对资源和节点的访问控制能力的差异化,桥节点30的通信机制会更强调对于安全可靠的保护水平基础上的效率折中。
[0073] 步骤S300、构建普通总线节点的功能模块,实现操作系统的服务、功能、以及应用功能。
[0074] 在普通总线节点模块的设计中,每个普通总线节点均包括总线适配器单元和功能单元,通过功能单元实现操作系统所承担的功能;通过总线适配器单元负责适配所在总线域的总线接口,并将功能单元的消息通信转换为对总线接口的通信形式。
[0075] 普通总线节点是对传统操作系统中各种系统服务、功能、以及应用等概念的具体设计。每个普通总线节点一般包含两个逻辑单元,一是总线适配器单元,二是功能单元。功能单元就是该模块在操作系统中所承担的功能的实现,如果是应用程序,则就是应用的功能;总线适配器单元负责适配所在总线域的总线接口,并将功能单元的消息通信转换为对总线接口的通信形式。在同一个总线域中,可以将模块节点中的总线适配器单元进行标准化实现(类似PCIE(peripheral component interconnect express,高速串行计算机扩展总线标准)设备上的PCIE控制适配器芯片的标准化),从而使设计者专著于模块的功能逻辑设计,提高协作能力、以及可靠性和安全性等。
[0076] 步骤S400、根据规划的软件总线层级数量与各总线域,确定必要的操作系统管理服务。
[0077] 在各种必要的操作系统管理服务的设计中,将操作系统管理服务中的内存管理器、任务管理器、时钟和中断管理器、以及文件系统管理器转换为消息软总线上的普通模块节点。
[0078] 针对不同的需求场合,必要的操作系统管理服务是不同的,例如嵌入式的操作系统可能不需要磁盘服务,云计算操作系统相对于单机操作系统需额外提供资源池服务。具体需要哪些操作系统管理服务在本发明第一个实施步骤“消息总线层级和各总线域规划设计”中首先确定。
[0079] 一些较通用的单机操作系统管理服务包括:内存管理器、任务管理器、时钟和中断管理器、文件系统管理等。这些服务将转换为软总线上的普通模块节点,具体分布在哪些总线域中将依据安全、可靠、性能等需要在本实施例中第一个实施步骤中确定。在模块设计时,除了总线适配器单元可以共用外,功能单元可以单独设计也可以通过对成熟的已有操作系统模块源码进行改造获得,单独设计时还可以继续遵从本发明的方法,对该模块进行更细致的多层总线域设计。
[0080] 本实施例提供的基于分层消息软总线模型的操作系统的实现方法,将操作系统视为一个由众多功能和服务采用一种或多种通信机制所联系起来的一个用于管理各种计算资源和软件任务的软件系统。因此,操作系统中的要素可以划分为三个类别:功能服务、连接、资源。本发明所提的结构方法就是对功能服务、连接、和资源三种要素的一种组织方法。其中,功能服务和资源被视为所发明的结构方法中的组件节点,连接被视为所发明的结构方法中的消息软总线和桥节点。本发明并不对操作系统作内核、服务及应用等概念的区分,而是将它们都作为某种软件模块或者模块的集合,分布在不同的总线域中。
[0081] 本实施例提供的基于分层消息软总线模型的操作系统及实现方法,所取得的有益效果为:
[0082] 1、通过消息软总线提供了一个灵活透明的通信机制,从而支持异构和动态变化的组件节点,同时促进了软件和硬件的协作设计。
[0083] 2、引入桥节点来连接分层的消息软总线,实现了结构的自相似性。同时,桥节点作为隔离的边界,有助于利用多样化的隔离机制来平衡系统能力,如安全和性能。
[0084] 3、具有广泛的适用性,不仅支持大规模的系统,也可用于嵌入式小系统的设计。
[0085] 4、一方面,以松散的耦合和层次关系组织操作系统节点,所以异构节点,如开源软件或主流操作系统内核,只要遵循消息软总线的接口标准,也可以集成到基于本发明的系统中。另一方面,从结构上来说可以通过伸缩变化得到不同的形态,且对特定的隔离和通信机制不做假设,可以适应到许多应用场景。因此,可能实现有利的生态发展,促进学术界和产业界的有效整合。
[0086] 本发明以一个小型分布式集群操作系统的设计作为实施例。实施例在开源硬件平台RISC‑V(RISC‑V instruction set architecture,RISC‑V指令集)上构建,在设计不同的模块节点功能时,实施例采用了对开源操作系统rCore中的相应功能单元进行改造的方法。
[0087] 1、消息总线层级和各总线域规划设计
[0088] 针对一个局域网中的小型集群操作系统设计,本实施例重点规划了三个消息软总线层次,如图9所示。最顶层是集群软总线,集群软总线用于连接管理不同主机的组件节点(即主机管理器),而节点之间采用主机的物理隔离。第二层是主机软总线,将主机节点再次分解为松耦合的组件节点,包括:时钟管理器、文件系统、任务管理器、内存管理器、任务和驱动程序等,节点之间的隔离采用编译支持的对象隔离。通过衡量组件节点对性能和安全的不同要求,本实施例将内存管理器节点、任务管理器节点、时钟管理器即诶点、文件系统管理器节点连接到主机管理器总线上。第三层消息软总线中包含两类软总线。一是用户软总线。每个应用和任务总线可以连接一个或多个任务(类似于Linux中一个进程所下属的多个线程)。二是设备软总线(第三层消息软总线)来连接设备驱动程序。本层总线的节点之间采用线程隔离。实际上,由于本实施例的操作系统结构模型具有自相似性,消息软总线的层数是没有限制的。因此本实施例不仅可以通过桥节点扩展消息软总线以支持大规模分布式系统,还可以轻松地简化消息软总线和组件节点,以适应小型系统的设计。
[0089] 顶层层软总线到二层总线之间计划采用网络桥连接,二层到三层之间计划采用系统调用机制连接。
[0090] 2、各级总线和桥的具体机制设计
[0091] 本实施例将组件节点之间的通信简化为经消息软总线的消息传递,其中,组件节点之间的隔离机制被映射到总线上节点之间以及总线域之间。为了充分满足系统组件节点对性能和安全的不同要求,本实施例利用了多种隔离和通信机制。1)集群软总线上的节点可以采用物理隔离,使用标准的网络消息通信。2)为了保护操作系统免受行为不端的任务,本实施例采用硬件特权机制(例如,特权环)来限制任务对硬件资源的访问。此时,用户软总线利用执行系统调用通过桥向主机总线发送消息,异常触发后,用户桥节点负责切换上下文并将消息转发到主机总线。3)为了在不显着降低性能的同时缩小设备驱动程序故障传播范围,本实施例通过软件机制隔离设备驱动程序。一方面,松耦合的设备驱动程序在一定程度上避免了故障传播。另一方面,本实施例在设备软总线中添加了消息验证功能,避免设备驱动程序通过不合理的消息影响其他组件节点。此外,考虑到性能因素,设备软总线和设备桥节点都使用函数调用来转发消息。
[0092] 本实施例将消息定义为由目标组件节点标识符、服务标识符和参数组成的结构体。在各级消息软总线中都设计了send()、reply()、register()等接口为组件节点提供标准服务。其中前两个接口负责组件节点的服务请求与响应,后一个接口负责将组件节点的信息注册到它所连接的总线上。任何加入系统的组件节点都需要调用注册函数。当组件节点调用注册函数时,消息软总线将实现了组件节点总线适配器的结构体的引用压入其注册表中。然后,根据对应的注册表下标计算一个唯一的值,即组件节点的标识符。组件节点通过将消息中目标组件节点标识符、服务标识符和参数设置为正确的值,并把此消息发送到消息软总线上请求服务。
[0093] 集群软总线中通过网络通信传输消息,其实现方法同传统CORBA(Common ObjectRequest Broker Architecture,公共对象请求代理体系结构)技术类似,集群总线同主机总线的桥可简单地实现为网络端口,本实施例利用网络驱动程序作为集群软总线的桥节点。出于性能考虑,实施例中主机总线的模块之间采用(编程语言)对象之间的接口调用来传输消息。而主机总线和用户总线之间的桥采用系统调用机制进行消息转换。在RISC‑V规范中,ecall指令将CPU的权限级别从当前切换到更高,寄存器a0~a6保存系统调用的参数,a0~a1保存系统调用的返回值,a7传递系统调用号。因此,用户软总线的消息经过桥时,利用ecall指令通过寄存器发送消息。通过设置stvec的值,主机管理器将在触发异常时转移到用户桥节点进行处理。然后,用户桥节点切换上下文并将消息转发到主机总线。设备桥节点和设备软总线采用函数调用来发送消息,并重点关注设备桥中的消息验证和故障处理。
[0094] 3、普通总线节点模块的设计
[0095] 本实施例对每级总线上的节点都进行功能单元的服务封装,并设计通用接口的总线适配器。每个功能单元都具备一个总线适配器。总线适配器指定了服务标识符和接口之间的对应关系,就像Linux中的系统调用号对应一个内核服务一样。功能单元和总线适配器组成了组件节点。
[0096] 4、重要操作系统服务设计
[0097] (1)内存管理
[0098] 本实施例将内存管理服务封装到主机总线上的组件节点中(内存管理器),内存管理器负责为每条消息软总线分配适当数量的物理内存帧以及建立多级页表来存储虚拟内存和物理内存的映射关系。所有组件节点共享其连接的消息软总线的受保护虚拟地址空间。当一个组件节点需要申请内存空间时,组件节点通过消息传递将分配请求经消息总线和桥节点转发给内存管理器。内存管理器的总线适配器收到此消息后,会调用相关服务根据传递的参数创建相应的页表项。
[0099] (2)任务管理
[0100] 本实施例将任务管理服务封装到主机总线上的组件节点中(任务管理器)。在初始阶段,任务管理器会创建一个初始任务(initask)并将其添加到任务就绪队列中。当initas执行时,任务管理器可以通过向任务管理器发送消息来生成新任务。当时间片用完或任务主动放弃CPU使用权时,任务管理器使用任务调度算法选择下一个就绪任务。然后,任务管理器通过主机总线、用户桥节点和用户总线向该任务发送消息,其中用户桥节点负责切换上下文。最后新任务开始执行。
[0101] (3)异常处理
[0102] 在分层消息软总线模型中,异常处理程序被映射到桥节点中。在本实施例中,当任务想要获取主机软总线上组件节点的服务时,首先将一条消息中的组件节点标识、服务标识和参数设置为正确的值,然后将该消息发送到用户总线。用户总线接受到消息后使用执行环境调用指令发送消息。这时异常被触发,然后用户桥节点存储当前上下文,切换特权模式,并将消息转发到主机总线。主机总线接收此消息,查询注册表,并将此消息转发给目标组件节点的适配器。最后目标组件节点的适配器接收到这个消息,调用相应的接口处理这个请求,并通过消息软总线返回结果。
[0103] 本实施例在一个局域网主机集群上建立了一个分布式操作系统,相对于已有的传统分布式操作系统,分层消息软总线模型带给其的优势包括:
[0104] 1、实现了系统的去中心化,能够方便地增加或减少系统中的主机节点,还能通过增加新的总线层级的方式构建更大规模的分布式系统(例如广域网上的分布式系统),扩展性好。
[0105] 2、实现了组件设计的标准化,能够很容易利用现有操作系统生态中的功能模块源代码进行改造。
[0106] 3、容易整合异构主机节点构建统一的分布式操作系统环境。
[0107] 4、通过单独的总线层级实现对驱动程序的支持,提高了单机的可靠性和安全性。
[0108] 5、方便新型隔离和安全机制的融合和替换,能利用未来新技术提升操作系统的各种能力。
[0109] 尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。