一种基于嵌入式操作系统的虚拟机的制作方法

文档序号:36778449发布日期:2024-01-23 11:49阅读:17来源:国知局
一种基于嵌入式操作系统的虚拟机的制作方法

本发明涉及虚拟机,尤其涉及一种基于嵌入式操作系统的虚拟机。


背景技术:

1、在目前的嵌入式应用开发中,针对硬件资源有限、实时响应要求高的设备都需要嵌入式操作系统。在使用嵌入式操作系统开发程序时,需要使用某种嵌入式操作系统特有的接口函数。不论是一些嵌入式操作系统的基本功能(如信号量、互斥量等),或者是某些嵌入式操作系统的扩展功能(例如一些针对处理器的外设的驱动框架),都需要该嵌入式操作系统的特有的接口函数。

2、目前有一些针对嵌入式领域的虚拟机,实现了程序之间的相互隔离。但是,由于在每个虚拟机中都存在一个操作系统内核,因此,对于嵌入式硬件平台而言,极大地浪费了硬件资源,降低了整个平台运行的效率。并且,由于每个虚拟机中仍存在着不同的操作系统,程序仍需要针对操作系统提供的接口函数进行开发。

3、无论是单独使用嵌入式操作系统开发程序,还是在虚拟机中使用嵌入式操作系统,都存在着程序与操作系统耦合程度高的缺点。额外的,使用虚拟机方式还存在着重复加载操作系统,浪费硬件资源的问题。

4、有资料显示,操作系统调用硬件外设时,针对不同的操作系统,往往提供了专门的外设框架,需要单独针对该框架开发程序。并且使用时,通常需要信号量、互斥量等来管理硬件资源,使用繁琐、开发困难。并且程序与操作系统之间耦合程度大,针对不同的操作系统,往往需要专门开发相应的程序,一旦更换操作系统,修改代码量极大,严重影响开发进度。现有的虚拟机通常在虚拟机内部也运行了一个操作系统,对于嵌入式平台而言,这极大的浪费了硬件资源,降低了软件运行的效率。

5、现有的嵌入式系统程序采用ota升级有两种方式,分别是全量升级和差分升级。使用全量升级时,需要下载整个程序的升级包,需重启进入bootloader进行升级。使用差分升级时,尽管是升级整个应用程序的某个部分,但在下载差分升级包后,同样需要重启进入bootloader,根据原有的程序和差分升级包合成新的程序,进行升级。升级过程复杂,速度慢。

6、中国专利文献cn114816666b公开了一种“ 嵌入式千字节java虚拟机kvm虚拟机平台”。由hardware、linuxos、java call、phoneme feature和main control manager构成;phoneme feature包括pcsl、cldc和midp;main control manager包括kvm_init、kvm_install、kvm_run、kvm_close、kvm_remove、kvm_socket、kvm_download和kvm_logic。上述技术方案程序与操作系统之间耦合程度大,可移植性差,同时内部也运行了一个操作系统,浪费硬件资源,降低软件运行效率,并且ota升级不便。


技术实现思路

1、本发明主要解决程序与操作系统之间耦合程度大,可移植性差,同时内部也运行了一个操作系统,浪费硬件资源,降低软件运行效率,并且ota升级不便的技术问题,提供一种基于嵌入式操作系统的虚拟机,通过虚拟机对运行在其中的程序提供统一的虚拟os、虚拟设备等,隔离了底层操作系统的不同,通过虚拟机运行环境为每个虚拟机提供包括但不限于独立的cpu运行时间,内存空间,中断,设备等,提高虚拟机运行时的实时性、安全性和隔离性,可选整体或部分程序升级,并且部分升级某个虚拟机内程序时,不影响其他虚拟机内的程序的运行,提升了程序的可维护性和可升级性。

2、本发明的上述技术问题主要是通过下述技术方案得以解决的:本发明包括虚拟机运行环境,所述虚拟机运行环境运行在底层操作系统上,所述底层操作系统运行在处理器平台上,还包括运行在虚拟机运行环境之上的虚拟机,所述虚拟机运行环境为虚拟机提供运行资源,并对虚拟机内部实现功能所需要的资源进行管理、调度,所述虚拟机为运行在其中的程序提供虚拟os和虚拟设备的api,虚拟os将嵌入式操作系统的所必需的功能抽象出来,对程序提供统一的操作系统的接口,建立程序与底层操作系统之间的联系,在一个虚拟机中独立运行ota程序,在其他虚拟机应用程序运行的同时升级部分功能代码。

3、作为优选,所述的运行资源包括cpu运行时间、内存空间、中断,虚拟机内部实现功能所需要的资源包括文件系统、网络协议栈、外部设备。

4、作为优选,所述的虚拟os对程序提供统一的操作系统的接口,实现嵌入式操作系统应用的功能,嵌入式操作系统应用的功能包括内存管理、中断管理、文件系统、网络协议栈、虚拟内核,所述虚拟内核提供嵌入式操作系统具有的基本功能包括线程管理、线程间通信、线程间同步。

5、作为优选,所述的虚拟os还提供了ipc功能,用于在运行多个虚拟机时,实现不同虚拟机之间的通信。

6、作为优选,所述的虚拟设备将处理器常用的外设、硬件平台常用的设备抽象出来,适配不同的硬件平台,所抽象出的外设接口包括uart、spi、iic,所抽象的设备包括sensor、flash、lcd、led。

7、作为优选,所述的虚拟机运行环境为虚拟机提供独立的虚拟机管理器、虚拟内核管理器、中断管理器、虚拟文件系统管理器、网络协议栈管理器、虚拟设备管理器,对虚拟机内部所申请、占用的资源进行分配、管理、调度。

8、虚拟机管理器提供对虚拟机的创建、卸载、挂起、运行等操作。虚拟机管理器通过时间片或者优先级的方式为虚拟机分配cpu的运行时间。在虚拟机初始化时,虚拟机管理器分配给虚拟机独立的内存空间、优先级等。如果底层的处理器平台存在多核或者多核异构,虚拟机管理器还可以为某个重要的虚拟机指定使用的核心。并且,虚拟机管理器还为虚拟机中的虚拟os提供ipc功能,实现了虚拟机之间的通信。

9、虚拟内核管理器为虚拟机中的虚拟os提供虚拟内核的服务的管理,包括线程管理、线程间通信、线程间同步等嵌入式操作系统具有的基本功能。

10、中断管理器为每个虚拟机提供独立的中断,每个虚拟机可以有自己的中断程序,为每个虚拟机提供独立的中断,提升虚拟机的实时性与安全性。

11、虚拟文件系统管理器为虚拟机的虚拟os提供虚拟文件系统的管理、调度,由底层操作系统的文件系统提供实际的功能支持。

12、网络协议栈管理器为虚拟机的虚拟os提供网络协议栈的管理、调度,由底层操作系统的网络协议栈提供实际的功能支持。

13、虚拟设备管理器对虚拟机中抽象出来的虚拟设备进行分配、管理、调度。对于仅有一个虚拟机使用的外设,虚拟设备管理器提供一种直通的方式,将虚拟机与底层的设备直连。对于两个及多个虚拟机共同使用的设备,虚拟设备管理器通过共享的方式,按照虚拟机创建时设定的优先级进行分配、调度。通过调用底层操作系统的文件系统,向虚拟机提供标准的posix接口,实现了对虚拟设备的调用。例如打开设备(open)、关闭设备(close)、读数据(read)、写数据(write)、命令控制(ioctl)等。

14、作为优选,所述的虚拟机运行环境实现虚拟机中的程序与底层的操作系统之间的隔离,当程序死机时,不会影响底层的操作系统以及其他的运行中的虚拟机。

15、作为优选,还包括面向虚拟机中的程序的开发环境,用于对程序进行开发、测试,开发环境提供了一种编译器,用于对虚拟机及其编译、链接,生成用于烧录和调试的固件,底层操作系统、虚拟机运行环境作为基本无需更改的部分,以单独的镜像存在,所创建的每个虚拟机都分别作为一个镜像存在,开发环境所提供的编译器针对每个镜像分别编译,并在最后链接成为一个固件,用于烧录、调试。

16、作为优选,所述的底层操作系统包括rt-thread、openharmony、freertos,用于为虚拟机运行环境及虚拟机提供实际的功能支持。底层操作系统向虚拟机和虚拟机运行环境提供实际的功能支持。底层操作系统中的文件系统向虚拟文件系统管理器提供实际的文件系统的功能,而且,文件系统还向虚拟设备提供利用posix接口操作设备的功能支持。

17、开发环境提供了一种模拟器,模拟器运行在电脑上,提供与虚拟机相同的api和运行环境,可以方便地在电脑上验证程序。使得在开发过程中,硬件平台尚未准备好或者存在问题时,也能测试程序的功能,加快应用的开发进度。

18、本发明的有益效果是:

19、安全:硬件资源相互隔离,虚拟机中的程序出现错误时,不会影响另一个虚拟机。提高了虚拟机运行的隔离性和安全性。

20、实时:运行环境为每个虚拟机提供中断通道,提高了虚拟机运行的实时性。

21、移植方便:程序移植时直接迁移整个虚拟机,可以快速部署到另一个硬件平台或者嵌入式操作系统之上。程序运行在虚拟机之上,用户无需关注外设是否被其余线程中的程序占用。

22、使用方便,减少重复开发:程序独立于底层的操作系统以及硬件。开发程序时,只需要按照虚拟机中的接口开发一次,简化了对应用的开发难度。提高了虚拟机的易用性。

23、运行效率高:由于虚拟机内运行的是虚拟os,而不是一个完整的操作系统,因此,降低了对硬件平台的资源消耗,提高了虚拟机的运行效率。

24、功能模块化,提升了可升级性和可维护性,简化了开发难度:在使用时,各个服务运行在不同的虚拟机中,相互独立,通过ipc接口进行调用,实现了应用逻辑和应用逻辑所依赖的服务分离的效果。在程序升级时可以分别独立升级,在单独升级虚拟机内的程序的同时,不影响其他虚拟机内的程序的运行,提升了程序的可维护性和可升级性。在程序开发时,可以将应用程序和功能模块分别开发,分别在所提供的开发工具中的模拟器中验证功能,减少了程序之间的耦合,简化了开发难度。

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