基于OBP的BIOS与多域操作系统通信的方法与流程

文档序号:14129823阅读:500来源:国知局

本发明涉及云计算机技术领域,特别是涉及一种基于obp的bios与多域操作系统通信的方法。



背景技术:

obp(openbootprom),是计算机bios的一种实现方法,最初应用在美国sunmicrosystems公司的服务器上,而后在sparc架构处理器计算机平台上得到广泛使用。obp初始化配置硬件、加载第三方板卡的驱动程序、控制计算机的引导过程并提供了命令行下的诊断工具。obp由forth语言实现,能够支持用户管理计算机系统,例如进行交互式诊断工作等;能够用来解释执行或者增量编译存放在外插设备的eeprom中用fcode写成的设备驱动程序,实现外设的“即插即用”。

多域操作系统是指可以在一套硬件平台的不同逻辑域当中同时运行的两个或两个以上的操作系统。在硬件平台上电后,首先运行的是hypervisor。hypervisor是一个基于硬件的底层虚拟机,负责把多核处理器、内存、平台硬件设备分配给各个域。每个域都有各自的硬件资源、obp和操作系统。多域操作系统由自身所在域的obp负责引导启动,由于多域操作系统运行在hypervisor上,而hypervisor直接访问硬件,所以多域操作系统的运行效率要比普通操作系统下的虚拟机运行效率高很多。在同一个硬件平台上,同时运行多个多域操作系统,能够提高硬件的使用效率。

多域通信通道是多域操作系统之间为了进行通信而在底层建立的数据传输通道。由于多域操作系统之间通过hypervisor实现了物理隔离,所以多域操作系统之间无法访问对方域中的物理设备。多域通信通道的实现,建立了多域操作系统之间的数据传输通道,实现了多域操作系统之间可控的数据传输。多域通信通道具备传输层和协议层,能够保证数据传输的正确性和安全性。

目前的多域通信通道的建立和使用仅限于多域操作系统之间,obp与多域操作系统之间多域通信通道还没有实现。因此,obp无法使用操作系统提供的各种服务。



技术实现要素:

本发明的一个目的在于为了解决上述现有技术的缺陷,提供一种在obp与多域操作系统之间建立多域通信通道、能够使obp调用操作系统提供的服务的实现方法。通过这个方法,主域操作系统启动后,从域obp启动时就可以和主域操作系统通过多域通信通道进行通信,调用操作系统提供的各种服务。

根据本发明的一个方面,提供了一种基于obp的bios与多域操作系统通信的方法,用于支持多域启动的obp和支持多域通信的操作系统中bios与多域操作系统之间进行通信,包括如下步骤:

多域硬件平台系统上电后运行中间软件层,分配硬件资源;

主域obp完成主域操作系统硬件初始化,启动多域通信通道驱动,建立主域下的多域通信通道;

从域obp完成从域操作系统硬件初始化,建立从域下的多域通信通道,向主域操作系统发送通信请求;

主域操作系统对所述从域操作系统发送的通信请求进行应答;

从域obp通过所述多域通信通道与所述主域操作系统建立通信,调用所述主域操作系统提供的服务,完成订制的功能。

在其中一个实施例中,所述启动多域通信通道驱动的步骤,包括加载传输层和协议层驱动。

在其中一个实施例中,所述主域obp完成主域操作系统硬件初始化的步骤,包括寄存器配置、设备驱动加载和设备树建立。

在其中一个实施例中,所述从域操作系统建立从域下的多域通信通道包括建立数据传输层和协议层。

在其中一个实施例中,所述从域obp通过所述多域通信通道与所述主域操作系统建立通信的步骤为通过建立一个多域通信通道设备节点建立与主域操作系统的通信;或者以直接引用多域通信通道基础词建立与主域操作系统的通信。

在其中一个实施例中,所述从域obp通过所述多域通信通道与所述主域操作系统建立通信的步骤为以直接引用多域通信通道基础词建立与主域操作系统的通信。

在其中一个实施例中,所述从域obp通过所述多域通信通道与所述主域操作系统建立通信的步骤为主域操作系统对从域obp的通信请求做出响应,根据握手协议建立通信。

在其中一个实施例中,所述从域obp调用所述主域操作系统提供的服务的步骤为从域obp多域通信通道通过构建命令包,按照预定规范,调用主域操作系统下设备驱动对用的服务。

在其中一个实施例中,所述命令包包括:命令发送方向,命令码,命令包长度,命令传输状态码,数据传输区,数据区长度。

在其中一个实施例中,所述从域obp向主域操作系统发送的通信请求为64位整数或者1kb长度内存。

这样,根据本公开的基于obp的bios与多域操作系统通信的方法,能够实现如下技术效果:

从域obp中多域通信通道的建立,实现了和主域操作系统的通信,能够调用主域操作系统提供的服务。例如从域obp通过多域通信通道,调用主域操作系统提供服务,实现访问主域硬盘、u盘等存储设备当中的文件内容;实现使用主域操作系统的输入输出设备等功能;

在obp当中建立的多域通信通道是作为一个模块,按照obp驱动模型完成,并加入到obp代码执行流程当中。模块化的设计,不会影响obp的完整性和其他功能,并且可以把通过多域通信通道实现的功能作为选择性功能进行开关。

附图说明

图1示出了根据本发明一实施例的基于obp的bios与多域操作系统通信的方法的流程图;

图2示出了根据本发明一实施例的多域计算机系统各组成部分示意图;

图3示出了根据本发明一实施例的从域obp和主域操作系统建立多域通信通道并实现通信的流程图;

图4示出了根据本发明一实施例的从域obp多域通信通道组成架构图。

具体实施方式

下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。

如前所述,目前的多域通信通道的建立和使用仅限于多域操作系统之间,obp与多域操作系统之间多域通信通道还没有实现。因此,obp无法使用操作系统提供的各种服务。而根据本发明的基于obp的bios与多域操作系统通信的方法从域obp中多域通信通道的建立,实现了和主域操作系统的通信,能够调用主域操作系统提供的服务。例如从域obp通过多域通信通道,调用主域操作系统提供服务,实现访问主域硬盘、u盘等存储设备当中的文件内容;实现使用主域操作系统的输入输出设备等功能;在obp当中建立的多域通信通道是作为一个模块,按照obp驱动模型完成,并加入到obp代码执行流程当中。模块化的设计,不会影响obp的完整性和其他功能,并且可以把通过多域通信通道实现的功能作为选择性功能进行开关。

图1所示,为根据本发明一实施例的基于obp的bios与多域操作系统通信的方法的流程图。

下面将参照附图1具体描述本发明的实施例。

图1示出了根据本发明一实施例的基于obp的bios与多域操作系统通信的方法100,用于支持多域启动的obp和支持多域通信的操作系统中bios与多域操作系统之间进行通信,包括如下步骤:

步骤s110:多域硬件平台系统上电后运行中间软件层,分配硬件资源。

步骤s120:主域obp完成主域操作系统硬件初始化,启动多域通信通道驱动,建立主域下的多域通信通道。

其中,主域obp完成主域操作系统硬件初始化的步骤,包括寄存器配置、设备驱动加载和设备树建立。上述启动多域通信通道驱动的步骤,包括加载传输层和协议层驱动。

步骤s130:从域obp完成从域操作系统硬件初始化,建立从域下的多域通信通道,向主域操作系统发送通信请求。

其中,从域操作系统建立从域下的多域通信通道包括建立数据传输层和协议层。所述从域obp向主域操作系统发送的通信请求为64位整数或者1kb长度内存。

步骤s140:主域操作系统对所述从域操作系统发送的通信请求进行应答。

步骤s150:从域obp通过所述多域通信通道与所述主域操作系统建立通信,调用所述主域操作系统提供的服务,完成订制的功能。

从域obp通过所述多域通信通道与所述主域操作系统建立通信的步骤为通过建立一个多域通信通道设备节点建立与主域操作系统的通信;或者以直接引用多域通信通道基础词建立与主域操作系统的通信。或者,从域obp通过所述多域通信通道与所述主域操作系统建立通信的步骤为以直接引用多域通信通道基础词建立与主域操作系统的通信。

所述从域obp通过所述多域通信通道与所述主域操作系统建立通信的步骤为主域操作系统对从域obp的通信请求做出响应,根据握手协议建立通信。

所述从域obp调用所述主域操作系统提供的服务的步骤为从域obp多域通信通道通过构建命令包,按照预定规范,调用主域操作系统下设备驱动对用的服务。其中,命令包包括:命令发送方向,命令码,命令包长度,命令传输状态码,数据传输区,数据区长度。

这样,根据本公开的基于obp的bios与多域操作系统通信的方法,从域obp中多域通信通道的建立,实现了和主域操作系统的通信,能够调用主域操作系统提供的服务。例如从域obp通过多域通信通道,调用主域操作系统提供服务,实现访问主域硬盘、u盘等存储设备当中的文件内容;实现使用主域操作系统的输入输出设备等功能。在obp当中建立的多域通信通道是作为一个模块,按照obp驱动模型完成,并加入到obp代码执行流程当中。模块化的设计,不会影响obp的完整性和其他功能,并且可以把通过多域通信通道实现的功能作为选择性功能进行开关。

图2所示,为根据本发明一实施例的多域计算机系统各组成部分示意图。

图3所示,为根据本发明一实施例的从域obp和主域操作系统建立多域通信通道并实现通信的流程图。

图4所示,为根据本发明一实施例的从域obp多域通信通道组成架构图。

下面结合附图2-4并举实施例,对本发明进行详细描述。

图2示出在多域硬件平台上实现多域操作系统运行所必须的组成部分,以及在这个系统中从域obp建立多域通信通道并实现和主域操作系统通信在整个系统中的位置。

多域obp和多域操作系统运行的环境包括硬件环境和软件环境。硬件环境是多核多线程处理器保证每个域至少有一个处理器线程作为虚拟处理器;内存总量保证每个域有至少1g的内存;硬盘总量保证每个域至少有一块硬盘用于存放操作系统;串口数量最好能够保证每个域有一个调试串口等。软件环境是hypervisor,用于扫描硬件资源并对主板硬件资源进行划分。完成各个域的资源划分之后,启动处理器的各个线程,引导相应域的obp。

主域obp完成硬件初始化后引导主域操作系统。主域操作系统启动后,加载各种硬件设备驱动、虚拟设备驱动,其中包括多域通信通道驱动。主域操作系统下的多域通信通道模块包括两方面内容:第一,建立多域通信通道,能够保证数据的正确传输;第二,建立可以供多域通信通道另一端使用的各种服务以及调用服务的方法。

从域obp功能包括三部分:第一,初始化硬件设备,加载相应设备驱动;第二,建立多域通信通道,和主域操作系统完成通信,调用主域操作系统提供的服务;第三,引导从域操作系统。

从域obp引导从域操作系统后,从域操作系统加载硬件设备驱动、虚拟设备驱动。和主域操作系统通过多域通信通道进行通信,既能彼此提供给对方服务,也能够调用对方提供的服务。

图3示出在多域硬件平台上从域obp建立多域通信通道并和主域操作系统进行通信的流程。

硬件平台开机上电,首先执行的是直接运行在硬件上的hypervisor。hypervisor负责对硬件平台资源划分,分为主域和从域。主域内的obp负责初始化硬件、启动主域操作系统。进入主域操作系统后,主域操作系统创建多域通信通道、创建相应来自多域通信通道请求的服务、等待多域通信通道发来的通信请求。

从域内的obp负责初始化硬件。从域obp创建多域通信通道。从域obp通过通信通道向主域操作系统发送通信请求,检查主域操作系统是否有响应。从域obp通过多域通信通道和主域操作系统握手成功。从域obp向主域发送请求,调用主域操作系统提供的服务。利用主域操作系统提供的服务完成obp阶段所需要的功能。从域obp结束和主域操作系统之间的通信。从域obp启动从域操作系统。

图4示出在从域obp中建立的多域通信通道的组成部分。多域通信通道包括数据传输层和协议层两个层面。

数据传输层是利用能够访问所有内存的hypervisor,建立底层通信通道和自身数据传输节点。数据传输时,从自身数据节点发送数据,通过底层通信通道,发送至目标数据节点。

协议层包含两个方面:第一,可信数据传输层,负责对传输的数据进行校验,保证从传输层获得数据的正确性和完整性。第二,服务调用协议层,负责按指定的数据结构发送调用请求,调用多域操作系统提供的服务。

具体结合附图2-4,整个系统按照实现流程进行如下描述:

硬件部分采用sparc架构的ultrasparc-t2处理器(8核,每核8线程),4g内存,2块1t容量硬盘,1块独立显卡,4个usb接口,2个网络接口。hypervisor把硬件资源平均划分给2个域,其中一个为主域,另外一个为从域,主域设备比从域多一个独立显卡。hypervisor完成划分硬件资源后,同时引导主域obp和一个从域obp。

主域obp按照正常启动流程,完成初始化所在域的硬件资源,加载硬件驱动,引导操作系统等各项任务。主域操作系统启动后,加载多域通信通道驱动模块,建立主域操作系统下的多域通信通道。同时,主域操作系统下也建立两个简单的服务。一,从多域通信通道收到字符串“ping”后,向多域通信通道的另一端发送字符串“pong”。二,从多域通信通道按照协议获取“readfile”命令和相应文件名后,在硬盘中查找该文件。如果找到该文件,则发送文件内容到多域通信通道的另一端;如果没有找到该文件,则返回相应错误码。

从域obp完成初始化所在域的硬件资源后,加载多域通信通道驱动模块,建立多域通信通道。第一,建立多域通信通道的数据传输层,需要通过hypervisor申请和主域操作系统的底层传输通道,然后建立相应从域obp的数据传输节点。做数据传输时,从域obp数据传输节点,通过hypervisor底层传输通道向主域操作系统数据传输节点发送数据。第二,建立可信数据传输层,可信数据传输层建立在数据传输层之上,通过对收发信息进行校验保证信息的正确性。第三,建立服务调用协议层。服务调用协议层建立在可信数据传输层之上,通过多域通信通道规定的传输结构,填写发送服务请求的格式和输入输入数据所用的内存。

从域obp调用主域操作系统的服务前,需要先进行初始化。初始化内容包括为多域通信通道分配内存资源;从域obp和主域操作系统通过多域通信通道完成可信数据传输层面的握手。握手成功后,在从域obp向主域操作系统发送字符串“ping”,同时接收返回字符串,获得“pong”,说明通道已经能够正常通信。从域obp在向主域操作系统发送“readfile”命令和相应文件名,能够获得相应文件的内容,表明读文件的功能也已经实现。最后,从域obp结束通信并引导从域操作系统。

附图中的流程图和框图显示了根据本发明的多个实施例的系统的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标记的功能也可以以不同于附图中所标记的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1