CN114398172A - 资源配置方法、装置、电子设备及计算机可读存储介质 - Google Patents
资源配置方法、装置、电子设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN114398172A CN114398172A CN202111537761.7A CN202111537761A CN114398172A CN 114398172 A CN114398172 A CN 114398172A CN 202111537761 A CN202111537761 A CN 202111537761A CN 114398172 A CN114398172 A CN 114398172A
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- resource
- resource file
- memory
- virtual
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45575—Starting, stopping, suspending or resuming virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供了一种资源配置方法、装置、电子设备及计算机可读存储介质,涉及虚拟化技术领域。该方法包括:从预先构建的第一设备树内获取第一资源文件,将第一设备树内的第一硬件资源加载至内存中以启动虚拟机监视器;从预先构建的第二设备树内获取第二资源文件,将第二资源文件加载至内存中以创建至少一个虚拟机;从预先构建的第三设备树内获取启动至少一个虚拟机的操作系统需要的第三资源文件;将第三资源文件加载至内存中,以启动至少一个虚拟机的操作系统。本申请实现了将系统虚拟化环境下的硬件资源通过三个独立的设备树进行描述,可以灵活配置VM资源,更加方便地对不同的VM进行调试。
Description
技术领域
本申请涉及虚拟化技术领域,具体而言,本申请涉及一种资源配置方法、装置、电子设备及计算机可读存储介质。
背景技术
基于Hypervisor的虚拟化,Hypervisor启动时需要硬件平台的资源描述,Hypervisor创建VM时需要配置给VM的资源描述,VM启动时Guest OS也需要硬件资源描述。而现有技术的做法是借助Guest OS DT,将这三个资源描述修改、合并后作为了一个文件。
这种做法使得Hypervisor、VM和Guest OS的资源描述文件绑定在一起,不够灵活也不方便对不同的VM进行调试。而且对于资源描述文件,Hypervisor中需要添加解析DT的代码。
因此在虚拟化环境下,Hypervisor如何合理、灵活配置VM所需的资源,方便支持不同的VM是个亟需解决的问题。
发明内容
本申请实施例提供了一种资源配置的方法、装置、电子设备及计算机可读存储介质。所述技术方案如下:
根据本申请实施例的一个方面,提供了一种资源配置的方法,该方法包括:
若确定BootLoader已启动,则从预先构建的第一设备树内获取第一资源文件,所述第一资源文件包括启动虚拟机监视器时需要的第一硬件资源;
将所述第一硬件资源加载至内存中以启动虚拟机监视器;
从预先构建的第二设备树内获取第二资源文件,所述第二资源文件包括创建各虚拟机时所述虚拟机独占的第二硬件资源;
将所述第二硬件资源和第二资源文件加载至内存中以创建至少一个虚拟机;
从预先构建的第三设备树内获取启动所述至少一个虚拟机的操作系统需要的第三资源文件;
将所述第三资源文件加载至内存中,以启动至少一个虚拟机的操作系统。
在一个可能的实现方式中,所述预先构建第一设备树时,还包括:
通过只读结构体形式,描述所述第一设备树内第一资源文件的框架;
通过结构体指针方式,描述所述第一资源文件内第一硬件资源。
在一个可能的实现方式中,所述第一资源文件,还包括:CPU的个数、内存区域的个数、内存区域指针、硬件设备个数、硬件设备指针、控制台基地址以及CPU架构描述中的至少一种;
所述第二资源文件还包括虚拟资源,所述虚拟资源包括虚拟寄存器和虚拟设备,所述虚拟设备为所述虚拟机监视器配置给各虚拟机的虚拟硬件资源。
在一个可能的实现方式中,所述预先构建第二设备树时,还包括:
通过只读结构体形式,描述所述第二设备树内创建至少一个虚拟机时需要的第二资源文件的框架;
通过结构体指针方式,描述所述第二资源文件内的,创建至少一个虚拟机时所需要的第二硬件资源和虚拟资源;
其中,所述第二硬件资源包括所述虚拟机监视器配置给各虚拟机的CPU、内存、硬件设备、控制台基地址以及CPU架构描述中的至少一种。
在一个可能的实现方式中,所述预先构建第二设备树时,还包括:
构建所述第二设备树内第二资源文件的文件头,所述文件头包括所述第二资源文件的版本类型;
根据所述文件头,确定相应版本类型的所述第二资源文件。
在另一个可能的实现方式中,所述第二资源文件还包括:所述至少一个虚拟机操作系统的基地址和偏移地址;
所述将所述第三资源文件加载至内存中,以启动至少一个虚拟机的操作系统,还包括:
根据所述基地址和偏移地址确定所述至少一个虚拟机操作系统在所述内存中的物理地址;
根据所述物理地址,将所述至少一个虚拟机操作系统加载至内存中对应位置。
根据本申请实施例的另一个方面,提供了一种资源配置的装置,该装置包括:
第一获取模块,用于若确定BootLoader已启动,则从预先构建的第一设备树内获取第一资源文件,所述第一资源文件包括启动虚拟机监视器时需要的第一硬件资源;
第一加载模块,用于将所述第一硬件资源加载至内存中以启动虚拟机监视器;
第二获取模块,用于从预先构建的第二设备树内获取第二资源文件,所述第二资源文件包括创建各虚拟机时所述虚拟机独占的第二硬件资源;
第二加载模块,用于将所述第二硬件资源和第二资源文件加载至内存中以创建至少一个虚拟机;
第三获取模块,用于从预先构建的第三设备树内获取启动所述至少一个虚拟机的操作系统需要的第三资源文件;
第三加载模块,用于将所述第三资源文件加载至内存中,以启动至少一个虚拟机的操作系统。
根据本申请实施例的另一个方面,提供了一种电子设备,该电子设备包括:存储器、处理器及存储在存储器上的计算机程序,其特征在于,所述处理器执行所述计算机程序以实现所述的资源配置方法的步骤。
根据本申请实施例的再一个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现所述的资源配置方法的步骤。
根据本申请实施例的一个方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现所述资源配置方法的步骤。
本申请实施例提供的技术方案带来的有益效果是:将系统虚拟化环境下的硬件资源通过三个独立的设备树进行描述,可以灵活配置VM资源,更加方便地对不同的VM进行调试。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
图1为本申请实施例提供的实现资源配置的系统架构示意图;
图2为本申请实施例提供的一种资源配置方法的流程示意图;
图3为本申请实施例提供的一种第一设备树的结构示意图;
图4为本申请实施例提供的一种第二设备树的结构示意图;
图5为本申请实施例提供的一种资源配置装置的结构示意图;
图6为本申请实施例提供的一种资源配置的电子设备的结构示意图。
具体实施方式
下面结合本申请中的附图描述本申请的实施例。应理解,下面结合附图所阐述的实施方式,是用于解释本申请实施例的技术方案的示例性描述,对本申请实施例的技术方案不构成限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请实施例所使用的术语“包括”以及“包含”是指相应特征可以实现为所呈现的特征、信息、数据、步骤、操作、元件和/或组件,但不排除实现为本技术领域所支持其他特征、信息、数据、步骤、操作、元件、组件和/或它们的组合等。应该理解,当我们称一个元件被“连接”或“耦接”到另一元件时,该一个元件可以直接连接或耦接到另一元件,也可以指该一个元件和另一元件通过中间元件建立连接关系。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的术语“和/或”指示该术语所限定的项目中的至少一个,例如“A和/或B”可以实现为“A”,或者实现为“B”,或者实现为“A和B”。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。首先对本申请涉及的几个名词进行介绍和解释:
Hypervisor:又称虚拟机监视器,一种运行在物理硬件和操作系统之间的中间层软件,允许多个操作系统和应用共享一套基础物理硬件。
VM:虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。在实体计算机中能够完成的工作在虚拟机中通常都能够实现。创建虚拟机时,需要将实体机的部分硬盘和内存容量作为虚拟机的硬盘和内存容量。在虚拟机内运行的操作系统被称为GuestOS。
设备树(Device Tree):一种描述硬件资源的数据结构,它通过bootloader将硬件资源传给内核,使得内核和硬件资源描述相对独立。Device Tree可以描述的信息包括但不限于CPU的数量和类别、内存地址和大小、总线和桥、外设连接、中断控制器和中断使用情况、GPIO控制器和GPIO使用情况、Clock控制器和Clock使用情况等。
本申请提供的资源配置方法、装置、电子设备及计算机可读存储介质,旨在解决现有技术的存在的技术问题。
下面通过对几个示例性实施方式的描述,对本申请实施例的技术方案以及本申请的技术方案产生的技术效果进行说明。需要指出的是,下述实施方式之间可以相互参考、借鉴或结合,对于不同实施方式中相同的术语、相似的特征以及相似的实施步骤等,不再重复描述。
图1为本申请实施例提供的实现VM资源配置的系统架构示意图,其中包含第一设备树HostDT、第二设备树VmCfgDT、第三设备树GuestOSDT。Host硬件设备对应计算机、移动终端等电子产品中的CPU、内存、终端、串口、EMMC存储、定时器等设备,Hypervisor包含VM的CPU管理、设备驱动、Host硬件访问、内存管理、异常处理、VirtIO后端以及GuestIO模拟等功能,每一个VM内部包含对应的操作系统GusetOS和相应的第三设备树GuestOSDT,每一个VM的操作系统GusetOS内还包含相应的VirtIO前端。
本申请实施例中提供了一种资源配置的方法,如图2所示,该方法可以包括:
S101、若确定BootLoader已启动,则从预先构建的第一设备树内获取第一资源文件,所述第一资源文件包括启动虚拟机监视器时需要的第一硬件资源。
在本申请实施例中,可以预先构建第一设备树,第一设备树用于描述Hypervisor(虚拟机监视器)启动时需要的关键硬件资源,以及Hypervisor(虚拟机监视器)创建的各个虚拟机共享的硬件资源。当电子产品启动时,BootLoader会优先于Hypervisor(虚拟机监视器)启动,在确定BootLoader启动后,从预先构建的第一设备树内确定出第一资源文件,第一设备树内的第一资源文件用于描述Hypervisor(虚拟机监视器)启动时需要的第一硬件资源,例如,该第一硬件资源中的硬件设备可以是CPU、串口、中断或定时器等。若BootLoader需要传递多个参数给Hypervisor(虚拟机监视器),则可以通过寄存器传递参数的内存地址,Hypervisor(虚拟机监视器)访问该段内存,即得到相应的参数。
在上述各实施例的基础上,作为一种可选的实施例,第一设备树还包括Hypervisor(虚拟机监视器)创建各个VM时,配置给各个VM需要共享的硬件资源,例如,该硬件资源中的硬件设备可以是磁盘或网络等。
S102、将所述第一资源文件加载至内存中以启动虚拟机监视器。
在本申请实施例中,若需要启动Hypervisor(虚拟机监视器),则需要确定出Hypervisor(虚拟机监视器)在内存中的位置,以及启动时需要的硬件资源,将第一设备树或第一资源文件内的第一硬件资源加载至内存中,确定出将Hypervisor(虚拟机监视器)加载至内存中的具体位置,以及Hypervisor(虚拟机监视器)启动时需要调度的硬件设备,并将需要的硬件设备初始化,以便于启动Hypervisor(虚拟机监视器)。
S103、从预先构建的第二设备树内获取第二资源文件,所述第二资源文件包括创建各虚拟机时所述虚拟机独占的第二硬件资源。
在本申请实施例中,可以预先构建第二设备树,第二设备树用于描述Hypervisor(虚拟机监视器)创建VM时为每个VM配置的资源。第二设备树内可以包括第二资源文件,第二资源文件可以包括Hypervisor(虚拟机监视器)创建每个VM时,为每个VM分配的由该VM独占的第二硬件资源,例如,某个VM独占终端等电子产品的屏幕或者USB等。在Hypervisor(虚拟机监视器)启动后,可以获取第二设备树的第二资源文件,并初始化第二资源文件中的的硬件设备。
S104、将所述第二资源文件加载至内存中以创建至少一个虚拟机。
在本申请实施例中,Hypervisor(虚拟机监视器)将第二资源文件加载至内存中,以确定出为每一个虚拟机配置的硬件设备和内存。
S105、从预先构建的第三设备树内获取启动所述至少一个虚拟机的操作系统需要的第三资源文件。
S106、将所述第三资源文件加载至内存中,以启动至少一个虚拟机的操作系统。
在本申请实施例中,可以预先构建第三设备树,第三设备树用于描述各个VM的操作系统启动或运行时需要的资源。通过获取第三设备树内描述启动各个VM的操作系统所需要的第三资源文件,并将第三资源文件加载至内存中,确定出VM的操作系统启动或运行时需要调度的硬件设备,并将这些硬件设备进行初始化,以便于启动或运行各个VM的操作系统。
进一步的,预先构建第一设备树时,可以包括:
通过只读结构体形式,描述所述第一设备树内第一资源文件的框架;通过结构体指针方式,描述所述第一资源文件内第一硬件资源。
在本申请实施例中,通过只读的结构体,描述第一设备树内第一资源文件的框架,即将第一设备树内第一资源文件对应的资源信息的属性设置为只读,使得Hypervisor(虚拟机监视器)从第一设备树中获取其启动时需要的硬件资源时,不需要设置相应的解析设备树的代码;在第一资源文件内通过结构体指针的形式描述第一硬件资源。
具体的,所述第一资源文件可以包括:CPU个数、内存区域个数、内存区域指针、硬件设备个数、硬件设备指针、控制台基地址以及CPU架构描述中的至少一种。
在本申请实施例中,如图3所示,本申请的第一资源文件可以包括:CPU个数、内存区域个数、内存区域指针、硬件设备个数、硬件设备指针、控制台基地址以及CPU架构描述,其中,使用结构体指针的形式描述内存区域和硬件设备,每一个内存区域指针指向对应的内存区域的基地址和对应的内存空间的大小,每一个硬件设备的指针指向对应硬件设备的IPA(Intermediate Physical Address,中间物理地址)、PA(Physical Address,物理地址)、地址空间大小、中断个数和中断指针,中断指针指向该硬件设备的所有的中断号。若第一资源文件内描述的硬件设备不包含中断,则对应的中断个数为0,中断指针为NULL。图3中的CPU架构描述是以ARM架构描述为例进行说明,而非是对CPU架构描述本身进行限定,CPU架构描述可以包括GIC中断、SMMU、通用定时器基地址等。
进一步的,所述第二资源文件还包括虚拟资源,所述虚拟资源包括虚拟寄存器和虚拟资源,所述虚拟设备为所述虚拟机监视器配置给各虚拟机的虚拟硬件资源。
在本申请实施例中,第二设备树内的第二资源文件还可以包括虚拟寄存器和虚拟资源,该虚拟资源是Hypervisor(虚拟机监视器)配置给各个VM的虚拟硬件资源,该虚拟资源中的虚拟设备可以是VM共享的磁盘或网络等。虚拟寄存器是Hypervisor(虚拟机监视器)为各个VM配置的寄存器。
具体的,预先构建第二设备树时,还可以包括:
通过只读结构体形式,描述所述第二设备树内创建至少一个虚拟机时需要的第二资源文件的框架;通过结构体指针方式,描述所述第二资源文件内的,所述虚拟机监视器配置给至少一个虚拟机的第二硬件资源和虚拟资源;其中,所述第二硬件资源包括所述虚拟机监视器配置给各虚拟机的CPU、内存、硬件设备、控制台基地址以及CPU架构描述中的至少一种。
在本申请实施例中,通过只读结构体形式,描述第二设备树内创建至少一个虚拟机时需要的第二资源文件的框架,即将第二资源文件内的每一个资源的属性设置为只读;并通过结构体指针的形式,描述Hypervisor(虚拟机监视器)创建至少一个虚拟机时为每个虚拟机配置的第二硬件资源和虚拟资源。具体的,可以在第二资源文件内描述创建的VM的个数,以及每一个VM对应的配置指针,每一个VM对应的配置指针可以指向Hypervisor(虚拟机监视器)为VM分配的硬件资源和虚拟资源,其中,每一个硬件资源包括Hypervisor(虚拟机监视器)配置给各虚拟机的CPU、内存、硬件设备、控制台基地址和CPU架构描述,每一个虚拟资源包括虚拟设备的个数、虚拟设备指针、虚拟寄存器的个数和虚拟寄存器的指针,每一个虚拟设备指针包括IPA(Intermediate Physical Address,中间物理地址),地址空间大小等信息,每一个寄存器指针包括寄存器地址等信息。
在上述实施例的基础上,作为一种可选的实施例,本申请在预先构建第三设备树时,采用现有技术中的标准设备树的形式来描述每个虚拟机的操作系统启动或运行时,需要的硬件设备和虚拟设备。具体构建过程,本申请对此不再进行描述。在本申请实施例中,每一个VM的操作系统对应一个自己的第三设备树,VM的操作系统只能读写与其对应的第三设备树,即只能访问VM操作系统被分配的资源,使得多个VM之间强制性隔离,进而提升系统的安全性。
进一步的,所述预先构建第二设备树还包括:
构建所述第二设备树内第二资源文件的文件头,所述文件头包括所述第二资源文件的版本类型;根据所述文件头,确定相应版本类型的所述第二资源文件。
在本申请实施例中,预先构建第二设备树时,还可以构建出第二资源文件的文件头,该文件头可以包括:用于描述第二资源文件的幻数、第二资源文件的版本号、文件头大小、第二设备树的总大小等信息;根据幻数,可以确定出当前文件为第二资源文件,根据第二资源文件的版本号,可以确定出相应版本的第二资源文件。
具体的,所述第二资源文件,还包括所述第三资源文件的基地址和偏移地址。
在本申请实施例中,第二资源文件中还描述了第三设备树第三资源文件的基地址和偏移地址。在本申请实施例中,第二资源文件中还描述了各个虚拟机操作系统在运行时需要的物理地址,即虚拟机操作系统在运行时在内存中的实际地址。而该物理地址可以由虚拟机操作系统的基地址和偏移地址进行确认。
所述将所述第三资源文件加载至内存中,以启动至少一个虚拟机的操作系统,包括:
根据所述基地址和偏移地址确定所述至少一个虚拟机操作系统在所述内存中的物理地址;根据所述物理地址,将所述至少一个虚拟及操作系统加载至内存中对应位置,以启动所述至少一个虚拟机的操作系统。在本申请实施例中,根据基地址和偏移地址,可以确定出至少一个虚拟机操作系统在内存中的物理地址,并根据该物理地址,将至少一个虚拟机操作系统加载至内存中对应的位置,以便于终端等电子产品的CPU在内存中的对应位置执行至少一个虚拟机操作系统,进而启动至少一个虚拟机操作系统。
在上述各实施例的基础上,作为一种可选的实施例,本申请在预先通过只读结构体构建第一设备树后,将Hypervisor(虚拟机监视器)与第一设备树进行编译并打包形成第一镜像;预先通过只读结构体构建第二设备树后,将第二设备树进行编译并形成第二镜像;预先通过标准设备树形式构建第三设备树后,将第三设备树进行编译形成第三镜像。在本申请实施例中采用只读结构体以及结构体指针的形式构建第一设备树和第二设备树,可以灵活的配置第一设备树和第二设备树内的内存区域指针、硬件设备指针和中断的个数,使得编译后的镜像能够占用较小的内存空间。将第二设备树单独编译成镜像,可以只修改其内部的某个配置项,实现在不改变Hypervisor和VM镜像的基础上,调试VM的其它功能。
本申请实施例中提供了一种可能的实现方式,如图4所示,本申请预先构建的第二设备树可以包括:文件头和第二资源文件,第二资源文件中包括VM个数和VM配置指针,每一个VM配置指针可以包括虚拟机操作系统镜像的基地址、偏移地址、镜像的大小、镜像在磁盘中的地址、硬件资源描述和虚拟资源描述,其中,硬件资源描述用于描述Hypervisor(虚拟机监视器)创建VM时,为每一个VM单独配置的硬件设备。每一个虚拟资源描述用于描述虚拟设备和虚拟寄存器,包括虚拟设备个数、虚拟设备指针、虚拟寄存器个数和虚拟寄存器指针,每个虚拟设备指针包括:IPA或地址空间大小和相应的处理函数等信息,每个虚拟寄存器包括寄存器的地址和相应的处理函数等信息。
本申请实施例提供了一种资源配置装置,如图5所示,该资源配置装置50可以包括:第一获取模块501、第一加载模块502、第二获取模块503、第二加载模块504、第三获取模块505、第三加载模块506,其中,
第一获取模块501,用于若确定BootLoader已启动,则从预先构建的第一设备树内获取第一资源文件,所述第一资源文件包括启动虚拟机监视器时需要的第一硬件资源;
第一加载模块502,用于将所述第一硬件资源加载至内存中以启动虚拟机监视器;
第二获取模块503,用于从预先构建的第二设备树内获取第二资源文件,所述第二资源文件包括创建各虚拟机时所述虚拟机独占的第二硬件资源;
第二加载模块504,用于将所述第二硬件资源和第二资源文件加载至内存中以创建至少一个虚拟机;
第三获取模块505,用于从预先构建的第三设备树内获取启动所述至少一个虚拟机的操作系统需要的第三资源文件;
第三加载模块506,用于将所述第三资源文件加载至内存中,以启动至少一个虚拟机的操作系统。
本申请实施例的装置可执行本申请实施例所提供的方法,其实现原理相类似,本申请各实施例的装置中的各模块所执行的动作是与本申请各实施例的方法中的步骤相对应的,对于装置的各模块的详细功能描述具体可以参见前文中所示的对应方法中的描述,此处不再赘述。与相关技术相比可实现:将系统虚拟化环境下的硬件资源通过三个独立的设备树进行描述,可以灵活配置VM资源,更加方便地对不同的VM进行调试。
本申请实施例中提供了一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,该处理器执行上述计算机程序以实现资源配置方法的步骤,与相关技术相比可实现:将系统虚拟化环境下的硬件资源通过三个独立的设备树进行描述,可以灵活配置VM资源,更加方便地对不同的VM进行调试。
在一个可选实施例中提供了一种电子设备,如图6所示,图6所示的电子设备6000包括:处理器6001和存储器6003。其中,处理器6001和存储器6003相连,如通过总线6002相连。可选地,电子设备6000还可以包括收发器6004,收发器6004可以用于该电子设备与其他电子设备之间的数据交互,如数据的发送和/或数据的接收等。需要说明的是,实际应用中收发器6004不限于一个,该电子设备6000的结构并不构成对本申请实施例的限定。
处理器6001可以是CPU(Central Processing Unit,中央处理器),通用处理器,DSP(Digital Signal Processor,数据信号处理器),ASIC(Application SpecificIntegrated Circuit,专用集成电路),FPGA(Field Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器6001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线6002可包括一通路,在上述组件之间传送信息。总线6002可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(ExtendedIndustry Standard Architecture,扩展工业标准结构)总线等。总线6002可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器6003可以是ROM(Read Only Memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,RAM(Random Access Memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM(Electrically ErasableProgrammable Read Only Memory,电可擦可编程只读存储器)、CD-ROM(Compact DiscRead Only Memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质、其他磁存储设备、或者能够用于携带或存储计算机程序并能够由计算机读取的任何其他介质,在此不做限定。
存储器6003用于存储执行本申请实施例的计算机程序,并由处理器6001来控制执行。处理器6001用于执行存储器6003中存储的计算机程序,以实现前述方法实施例所示的步骤。本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现前述方法实施例的步骤及相应内容。
本申请实施例还提供了一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时可实现前述方法实施例的步骤及相应内容。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”、“1”、“2”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除图示或文字描述以外的顺序实施。
应该理解的是,虽然本申请实施例的流程图中通过箭头指示各个操作步骤,但是这些步骤的实施顺序并不受限于箭头所指示的顺序。除非本文中有明确的说明,否则在本申请实施例的一些实施场景中,各流程图中的实施步骤可以按照需求以其他的顺序执行。此外,各流程图中的部分或全部步骤基于实际的实施场景,可以包括多个子步骤或者多个阶段。这些子步骤或者阶段中的部分或全部可以在同一时刻被执行,这些子步骤或者阶段中的每个子步骤或者阶段也可以分别在不同的时刻被执行。在执行时刻不同的场景下,这些子步骤或者阶段的执行顺序可以根据需求灵活配置,本申请实施例对此不限制。
以上所述仅是本申请部分实施场景的可选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请的方案技术构思的前提下,采用基于本申请技术思想的其他类似实施手段,同样属于本申请实施例的保护范畴。
Claims (10)
1.一种资源配置方法,其特征在于,包括:
若确定BootLoader已启动,则从预先构建的第一设备树内获取第一资源文件,所述第一资源文件包括启动虚拟机监视器时需要的第一硬件资源;
将所述第一资源文件加载至内存中以启动虚拟机监视器;
从预先构建的第二设备树内获取第二资源文件,所述第二资源文件包括创建各虚拟机时所述虚拟机独占的第二硬件资源;
将所述第二资源文件加载至内存中以创建至少一个虚拟机;
从预先构建的第三设备树内获取启动所述至少一个虚拟机的操作系统需要的第三资源文件;
将所述第三资源文件加载至内存中,以启动至少一个虚拟机的操作系统。
2.根据权利要求1所述的资源配置方法,其特征在于,所述预先构建第一设备树时,还包括:
通过只读结构体形式,描述所述第一设备树内第一资源文件的框架;
通过结构体指针方式,描述所述第一资源文件内第一硬件资源。
3.根据权利要求1所述的资源配置方法,其特征在于,所述第一资源文件,包括:CPU的个数、内存区域的个数、内存区域指针、硬件设备个数、硬件设备指针、控制台基地址以及CPU架构描述中的至少一种;
所述第二资源文件还包括虚拟资源,所述虚拟资源包括虚拟寄存器和虚拟设备,所述虚拟设备为所述虚拟机监视器配置给各虚拟机的虚拟硬件资源。
4.根据权利要求1或3所述的资源配置方法,其特征在于,所述预先构建第二设备树时,还包括:
通过只读结构体形式,描述所述第二设备树内创建至少一个虚拟机时需要的第二资源文件的框架;
通过结构体指针方式,描述所述第二资源文件内的,所述虚拟机监视器配置给至少一个虚拟机的第二硬件资源和虚拟资源;
其中,所述第二硬件资源包括所述虚拟机监视器配置给各虚拟机的CPU、内存、硬件设备、控制台基地址以及CPU架构描述中的至少一种。
5.根据权利要求1所述的资源配置方法,其特征在于,所述预先构建第二设备树时,还包括:
构建所述第二设备树内第二资源文件的文件头,所述文件头包括所述第二资源文件的版本类型;
根据所述文件头,确定相应版本类型的所述第二资源文件。
6.根据权利要求1所述的资源配置方法,其特征在于,所述第二资源文件还包括:所述至少一个虚拟机操作系统的基地址和偏移地址;
所述将所述第三资源文件加载至内存中,以启动至少一个虚拟机的操作系统,还包括:
根据所述基地址和偏移地址确定所述至少一个虚拟机操作系统在所述内存中的物理地址;
根据所述物理地址,将所述至少一个虚拟机操作系统加载至内存中对应位置。
7.一种资源配置装置,其特征在于,包括:
第一获取模块,用于若确定BootLoader已启动,则从预先构建的第一设备树内获取第一资源文件,所述第一资源文件包括启动虚拟机监视器时需要的第一硬件资源;
第一加载模块,用于将所述第一资源文件加载至内存中以启动虚拟机监视器;
第二获取模块,用于从预先构建的第二设备树内获取第二资源文件,所述第二资源文件包括创建各虚拟机时所述虚拟机独占的第二硬件资源;
第二加载模块,用于将所述第二资源文件加载至内存中以创建至少一个虚拟机;
第三获取模块,用于从预先构建的第三设备树内获取启动所述至少一个虚拟机的操作系统需要的第三资源文件;
第三加载模块,用于将所述第三资源文件加载至内存中,以启动至少一个虚拟机的操作系统。
8.一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,其特征在于,所述处理器执行所述计算机程序以实现权利要求1-6任一项所述的资源配置方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-6任一项所述的资源配置方法的步骤。
10.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-6任一项所述的资源配置方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111537761.7A CN114398172A (zh) | 2021-12-15 | 2021-12-15 | 资源配置方法、装置、电子设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111537761.7A CN114398172A (zh) | 2021-12-15 | 2021-12-15 | 资源配置方法、装置、电子设备及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114398172A true CN114398172A (zh) | 2022-04-26 |
Family
ID=81226979
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111537761.7A Pending CN114398172A (zh) | 2021-12-15 | 2021-12-15 | 资源配置方法、装置、电子设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114398172A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114791854A (zh) * | 2022-05-11 | 2022-07-26 | 科东(广州)软件科技有限公司 | 用户态虚拟机任务的调度方法、装置、设备及存储介质 |
CN114968497A (zh) * | 2022-06-06 | 2022-08-30 | 中国电信股份有限公司 | 硬件层的调用方法、装置、设备及存储介质 |
CN115934603A (zh) * | 2023-01-30 | 2023-04-07 | 中瓴智行(成都)科技有限公司 | 一种基于模块化的智能座舱域控制器 |
-
2021
- 2021-12-15 CN CN202111537761.7A patent/CN114398172A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114791854A (zh) * | 2022-05-11 | 2022-07-26 | 科东(广州)软件科技有限公司 | 用户态虚拟机任务的调度方法、装置、设备及存储介质 |
CN114791854B (zh) * | 2022-05-11 | 2023-03-24 | 科东(广州)软件科技有限公司 | 用户态虚拟机任务的调度方法、装置、设备及存储介质 |
CN114968497A (zh) * | 2022-06-06 | 2022-08-30 | 中国电信股份有限公司 | 硬件层的调用方法、装置、设备及存储介质 |
CN114968497B (zh) * | 2022-06-06 | 2023-11-14 | 中国电信股份有限公司 | 硬件层的调用方法、装置、设备及存储介质 |
CN115934603A (zh) * | 2023-01-30 | 2023-04-07 | 中瓴智行(成都)科技有限公司 | 一种基于模块化的智能座舱域控制器 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101574403B1 (ko) | 결합된 가상 그래픽 장치 | |
CN114398172A (zh) | 资源配置方法、装置、电子设备及计算机可读存储介质 | |
CN101233489B (zh) | 自适应进程分派的方法和系统 | |
US20150356049A1 (en) | Assigning processors to memory mapped configuration | |
CN112035397B (zh) | 包括fpga的电子系统及其操作方法 | |
US20210240467A1 (en) | Method for Implementing Function Jump, Apparatus, and Computer Storage Medium | |
JP2023545818A (ja) | チップ・システム、仮想割り込み処理方法および対応する装置 | |
US9436495B2 (en) | Protection against interrupts in virtual machine functions | |
CN113672342A (zh) | 嵌入式虚拟化系统及构建、测试方法、终端及介质 | |
CN108459906B (zh) | 一种vcpu线程的调度方法及装置 | |
US8726258B2 (en) | Supporting multiple hardware components in UEFI | |
CN113391881A (zh) | 中断的管理方法、装置、电子设备及计算机存储介质 | |
US9477509B2 (en) | Protection against interrupts in virtual machine functions | |
US20050091022A1 (en) | Ultra fast multi-processor system simulation using dedicated virtual machines | |
Baldin et al. | Proteus, a hybrid virtualization platform for embedded systems | |
EP3022643B1 (en) | Techniques for dynamically redirecting device driver operations to user space | |
US20170286072A1 (en) | Custom class library generation method and apparatus | |
CN109408407B (zh) | 显示内存的分配方法和装置 | |
CN113703913A (zh) | 设备测试方法及装置 | |
CN114356812B (zh) | 中断处理方法、装置、电子设备及计算机可读存储介质 | |
WO2024069772A1 (ja) | 解析装置、解析方法および解析プログラム | |
CN117873633A (zh) | 一种jailhouse隔离PCIe网卡的中断注入的方法 | |
CN112328472A (zh) | 硬件仿真方法及装置、电子设备及存储介质 | |
CN117075973A (zh) | 一种基于RISC-V服务器CPU的新型LinuxBoot启动引导方法及系统 | |
CN117742890A (zh) | 一种虚拟机的创建方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |