内核升级方法及装置与流程

文档序号:32743083发布日期:2022-12-30 20:17阅读:72来源:国知局
内核升级方法及装置与流程

1.本技术涉及计算机技术领域,特别涉及一种内核升级方法及装置。


背景技术:

2.内核是计算机操作系统的核心。内核负责管理计算机中的进程、内存、文件系统、网络系统和硬件设备的驱动程序,决定着计算机的性能和稳定性。并且,为了修复内核的缺陷、安全漏洞、为内核提供新的功能和性能优化等,需要每隔一段时间对内核进行升级。
3.相关技术中,在对计算机中的老内核进行升级时,可以使用老内核准备新内核运行所需的必要环境,并将新内核的运行代码加载到内存,然后运行新内核并退出老内核,使用新内核替代老内核工作。其中,准备新内核运行所需的必要环境包括:加载中央处理器(central processing unit,cpu)使用的内存、对内存、计算机中子系统、硬件设备、驱动、文件系统和网络系统进行初始化等初始化流程。
4.但是,该初始化流程的耗时较长,导致内核升级耗时过长。


技术实现要素:

5.本技术提供了一种内核升级方法及装置。本技术缩短了内核升级的耗时,减小了因内核升级时间较长对通过内核实现的业务造成的影响。本技术提供的技术方案如下:
6.第一方面,本技术提供了一种内核升级方法,该方法包括:处理器运行第一内核,在第一内核中将第一内核管理的设备的设备状态信息记录到预留存储空间中,接收内核升级指令;处理器根据内核升级指令停止运行第一内核,运行第二内核,在第二内核中从预留存储空间中获取设备状态信息,基于设备状态信息对第一内核管理的设备进行初始化。
7.在该内核升级方法中,通过处理器在第二内核中从预留存储空间中获取第一内核管理的设备的设备状态信息,并基于设备状态信息对第一内核管理的设备进行初始化,使得第二内核能够直接从预留内存空间中获取到设备状态信息,无需通过对第一内核管理的设备进行读取就能够获得该设备的设备状态信息,有效地减小了对内核进行初始化的耗时,减小了内核升级的耗时,减小了因内核升级时间较长对通过内核实现的业务(如使用虚拟机向用户提供的业务)造成的影响。并且,当计算机设备中由第一内核管理的设备数量越多时,该内核升级方法的效果表现得越明显。
8.在一种可实现方式中,处理器在第二内核中从预留存储空间中获取设备状态信息,包括:处理器在第二内核中基于第一内核管理的任一设备的标识,在预留存储空间中查询任一设备的设备状态信息。并且,在预留存储空间查询的设备状态信息可以为设备状态信息本身,也可以为设备状态信息的存储地址,且查询的设备状态信息时设备状态信息本身或其存储地址可以根据应用需求确定。
9.在一种可实现方式中,当查询的设备状态信息是设备状态信息本身时,处理器基于设备状态信息对第一内核管理的设备进行初始化的实现过程包括:处理器通过第二内核将设备状态信息恢复到第二内核使用的内存中。
10.在另一种可实现方式中,当查询的设备状态信息是设备状态信息的存储地址时,处理器基于设备状态信息对第一内核管理的设备进行初始化,包括:处理器将第二内核对第一内核管理的任一设备的访问地址,设置为任一设备的设备状态信息的存储地址。
11.由于设备状态信息的存储地址中存储有该设备的设备状态信息,通过将对任一设备的访问地址,设置为该设备的设备状态信息的存储地址,使得第二内核按照该存储地址对该设备进行访问时,能够访问到该设备的设置状态信息,在第二内核的角度,该过程的结果与将该设备的状态和变量进行保存的结果相同。因此,通过将第二内核对设备的访问地址设置为该设备的设备状态信息的存储地址,能够实现对该设备的初始化。
12.可选地,预留存储空间为预留内存空间,预留内存空间中存储的信息不会随第一内核的停止运行而丢失。
13.在一种可实现方式中,由于预留存储空间用于存储内核升级过程中需要使用到的信息,则该方法还包括:处理器在第二内核中从预留存储空间中获取第一内核对预留存储空间的存储管理信息,存储管理信息用于指示预留存储空间的使用状态;处理器基于内存管理信息对预留存储空间进行初始化。可选地,对预留存储空间进行初始化包括:处理器获取第一内核对预留存储空间的存储管理信息,并基于该存储管理信息对预留存储空间进行初始化,使得第二内核继承该存储管理信息,并按照第一内核对预留存储空间进行管理的方式对预留存储空间进行管理。
14.可选地,第一内核管理的设备包括:第一内核管理的硬件设备和/或硬件设备的设备驱动。例如,当第一内核为linux内核时,该设备驱动可以包括acpi。该设备驱动的设备状态信息包括acpi的命名空间。第一内核管理的硬件设备包括:第一内核通过acpi管理的处理器、内存、pci设备(如网卡、磁盘、pci桥、输入/输出设备)等。
15.在一种可实现方式中,该方法还包括:处理器在第二内核中从预留存储空间中获取经第一内核处理的数据;处理器基于数据在第二内核中进行状态恢复。处理器通过从第一内核获取经第一内核处理的数据,以便于第二内核根据该数据更快速地提供服务。可选地,该数据可以为第一内核访问的用户数据或其他数据,只要该数据为第一内核访问且第二内核工作也需要的数据即可。例如,当计算机设备为服务器,该服务器上创建有虚拟机时,该数据可以为通过虚拟机向用户提供服务时使用的数据。
16.第二方面,本技术提供了一种内核升级装置,该装置包括:处理模块,用于运行第一内核,在第一内核中将第一内核管理的设备的设备状态信息记录到预留存储空间中,接收内核升级指令;处理模块,还用于根据内核升级指令停止运行第一内核,运行第二内核,在第二内核中从预留存储空间中获取设备状态信息,基于设备状态信息对第一内核管理的设备进行初始化。
17.可选地,处理模块在第二内核中从预留存储空间中获取设备状态信息,包括:在第二内核中基于第一内核管理的任一设备的标识,在预留存储空间中查询任一设备的设备状态信息。
18.可选地,处理模块基于设备状态信息对第一内核管理的设备进行初始化,包括:将第二内核对第一内核管理的任一设备的访问地址,设置为任一设备的设备状态信息的存储地址。
19.可选地,预留存储空间为预留内存空间,预留内存空间中存储的信息不会随第一
内核的停止运行而丢失。
20.可选地,处理模块还用于:在第二内核中从预留存储空间中获取第一内核对预留存储空间的存储管理信息,存储管理信息用于指示预留存储空间的使用状态;基于内存管理信息对预留存储空间进行初始化。
21.可选地,第一内核管理的设备包括:第一内核管理的硬件设备和/或硬件设备的设备驱动。
22.可选地,设备驱动包括:高级配置与电源接口。
23.可选地,处理模块还用于:在第二内核中从预留存储空间中获取经第一内核处理的数据;基于数据在第二内核中进行状态恢复。
24.第三方面,本技术提供了一种计算机设备,包括存储器和处理器,存储器存储有程序指令,处理器运行程序指令以执行本技术第一方面以及其任一种可能的实现方式中提供的方法。
25.第四方面,本技术提供了一种计算机可读存储介质,该计算机可读存储介质为非易失性计算机可读存储介质,该计算机可读存储介质包括程序指令,当程序指令在计算机设备上运行时,使得计算机设备执行本技术第一方面以及其任一种可能的实现方式中提供的方法。
26.第五方面,本技术提供了一种包含指令的计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行本技术第一方面以及其任一种可能的实现方式中提供的方法。
附图说明
27.图1是本技术实施例提供的一种内核升级方法涉及的应用场景的示意图;
28.图2是本技术实施例提供的另一种内核升级方法涉及的应用场景的示意图;
29.图3是本技术实施例提供的一种内核升级方法的流程图;
30.图4是本技术实施例提供的一种内核升级方法的过程示意图;
31.图5是本技术实施例提供的一种内核升级装置的结构示意图。
具体实施方式
32.为使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术实施方式作进一步地详细描述。
33.为便于理解,下面先对本技术实施例中涉及的一些概念进行解释。
34.操作系统是管理计算机硬件与软件资源的程序,同时也是计算机系统的核心与基石。操作系统身负诸如管理与配置内存、决定系统资源供需的优先次序、控制输入与输出设备、操作网络与管理文件系统等基本事务。在本技术实施例中,操作系统可以为linux
tm
,unix
tm
,windows
tm
等。
35.内核是计算机操作系统的核心。内核负责管理计算机中的进程、内存、文件系统、网络系统和硬件设备的驱动程序,决定着计算机的性能和稳定性。
36.内存(memory):也可以称为内存储器或者主存储器,其作用是暂时存放cpu中的运算数据,以及与硬盘等外部存储器交换的数据。由于内存具有较快的读写速度,内存通常用
作外部存储器与处理器的缓存,即在计算设备的运行过程中,可以预先将处理器需要使用的数据从外部存储器读入内存中,使得处理器从内存中读取所需的数据,以保证处理器的计算速度。
37.本技术实施例提供了一种内核升级方法。该内核升级方法包括:处理器运行第一内核,在第一内核中将第一内核管理的设备的设备状态信息记录到预留存储空间中,接收内核升级指令,然后,根据内核升级指令停止运行第一内核,运行第二内核,在第二内核中从预留存储空间中获取设备状态信息,基于设备状态信息对第一内核管理的设备进行初始化。
38.在该内核升级方法中,通过处理器在第二内核中从预留存储空间中获取第一内核管理的设备的设备状态信息,并基于设备状态信息对第一内核管理的设备进行初始化,使得第二内核能够直接从预留存储空间中获取到设备状态信息,无需通过对第一内核管理的设备进行读取就能够获得该设备的设备状态信息,有效地减小了对第一内核管理的设备进行初始化的耗时,减小了内核升级的耗时,进而减小了因内核升级时间较长对通过内核实现的业务(如使用虚拟机向用户提供的业务)造成的影响。
39.本技术实施例提供的一种内核升级方法涉及的实施场景包括计算机设备。图1示例性的提供了计算机设备的一种可能的架构图。如图1所示,该计算机设备10可以包括处理器101、存储器102、通信接口103和总线104。在该计算机设备中,处理器101的数量可以是一个或多个,图1仅示意了其中一个处理器101。可选的,处理器101可以是中央处理器(central processing unit,cpu)。若计算机设备具有多个处理器101,多个处理器101的类型可以不同,或者可以相同。可选的,计算机设备的多个处理器还可以集成为多核处理器。
40.存储器102存储计算机指令和数据,存储器102可以存储实现本技术提供的内核升级方法所需的计算机指令和数据。存储器102可以是以下存储介质的任一种或任一种组合:非易失性存储器(如只读存储器(read-only memory,rom)、固态硬盘(solid state disk,ssd)、硬盘(hard disk drive,hdd)、光盘等、易失性存储器。
41.通信接口103可以是以下器件的任一种或任一种组合:网络接口(如以太网接口)、无线网卡等具有网络接入功能的器件。
42.通信接口103用于计算机设备与其他节点或者其他计算机设备进行数据通信。
43.图1还示例性地绘制出总线104。总线104可以将处理器101与存储器102、通信接口103连接。这样,通过总线104,处理器101可以访问存储器102,还可以利用通信接口103与其他节点或者其他计算机设备进行数据交互。
44.在本技术中,计算机设备执行存储器102中的计算机指令,可以实现本技术提供的内核升级方法。例如,存储器102中存储有用于实现第一内核和第二内核的指令,处理器101通过运行第一内核的指令能够运行第一内核,处理器101通过运行第二内核的指令能够运行第二内核。并且,处理器101在运行第一内核后,该处理器101能够接收指示对第一内核进行升级的内核升级指令,基于内核升级指令停止运行第一内核,并运行第二内核,且处理器101能够在第二内核中从预留存储空间中,获取第一内核管理的设备的设备状态信息,并基于设备状态信息,对第一内核管理的设备进行初始化。
45.可选地,计算机设备可以是物理服务器、手机、平板电脑、个人计算机、膝上型计算机、移动电话、多媒体播放器、智能家电、人工智能设备、智能可穿戴设备、电子阅读器、智能
车载设备或物联网设备等。在一种可实现方式中,该计算机设备可以部署在云平台中。此时,该计算机设备可以通过云平台中部署的物理服务器实现。
46.其中,第一内核接收到的内核升级指令可以是用户触发的。例如,计算机设备的管理人员在上传对内核进行升级的升级包后触发的。或者,该内核升级指令可以是自动触发的。例如,该内核升级指令是计算机设备在到达内核升级周期自动触发的,或者,计算机设备在检测到需要对内核进行升级时(如检测到对内核进行升级的升级包)自动触发的。
47.当内核升级指令由用户触发时,如图2所示,该内核升级方法涉及的实施场景还包括:客户端20。用户可以在该客户端20上执行操作,以触发该内核升级指令。相应的,计算机设备10用于根据该内核升级指令对内核进行升级。
48.可选地,客户端可以是手机、平板电脑、个人计算机、虚拟机、容器、膝上型计算机、移动电话、多媒体播放器、智能家电、人工智能设备、智能可穿戴设备、电子阅读器、智能车载设备或物联网设备等。
49.下面对本技术实施例提供的内核升级方法的实现过程进行说明。如图3所示,该内核升级方法的实现过程可以包括以下步骤:
50.步骤301、处理器运行第一内核,在第一内核中将第一内核管理的设备的设备状态信息记录到预留存储空间中。
51.在计算机设备的运行过程中,处理器可以运行第一内核,以使用第一内核管理计算机设备中的进程、内存、文件系统、网络系统和硬件设备的驱动程序等。
52.其中,在第一内核的运行过程中,处理器可以通过第一内核对第一内核具有管理权限的设备进行管理,该管理过程会产生设备状态信息,则处理器可以在第一内核中将该设备状态信息记录到预留存储空间中。例如,在第一内核的运行过程中,处理器能够通过第一内核对第一内核管理的硬件设备和/或硬件设备的设备驱动等进行管理。
53.在一种可实现方式中,第一内核管理的设备包括:第一内核管理的硬件设备和/或硬件设备的设备驱动。该设备驱动可以为对该第一内核管理的所有硬件设备进行管理的功能模块。例如,当第一内核为linux(一种操作系统)内核时,该设备驱动可以包括高级配置与电源接口(advanced configuration andpower interface,acpi)。该设备驱动的设备状态信息包括acpi的命名空间。第一内核管理的硬件设备包括:第一内核通过acpi管理的处理器、内存、外围组件互联(peripheral component interconnect,pci)设备(如网卡、磁盘、pci桥、输入/输出设备)等。第一内核管理的硬件设备的设备状态信息包括以上硬件设备的设备状态信息,如处理器的寄存器信息,内存的内存管理信息,pci的配置空间信息。或者,该设备驱动可以包括分别用于对第一内核管理的多个硬件设备进行一一对应管理的多个设备驱动,本技术实施例对其不做具体限定。
54.在本技术实施例中,计算机设备的存储空间包括至少两部分,该至少两部分包括预留存储空间和其他存储空间。预留存储空间用于存储内核升级过程中需要使用到的信息,如存储内核管理的设备的设备状态信息。其他存储空间用于存储计算机设备运行过程中需要使用到的信息。在一种可实现方式中,预留存储空间可以为预留内存空间,其他存储空间可以为其他内存空间,该其他内存空间用于存储实现计算机设备的功能所需的运行代码和处理器的运算数据等。或者,预留存储空间也可以为通过预先配置用于存储升级内核所需的信息的其他类型的存储空间,只要保证该其他类型的存储空间中存储的信息能够在
内核升级过程中被第二内核读取到即可。
55.为保证能够在内存升级过程中使用到预留存储空间中存储的信息,需要保证该预留存储空间中存储的信息不会随内核的停止运行而丢失。而保证该预留存储空间中存储的信息不会随内核的停止运行而丢失,可以通过预先对存储空间进行设置实现。在一种可实现方式中,其设置过程包括:根据应用需求确定预留存储空间的大小,并在计算机的存储空间中选取该大小的存储空间,然后将选取的存储空间设置为专门用于存储内核升级过程中需要使用到的信息,并将该选取的存储空间设置为在内核升级过程中不会被刷新,以保证内核升级过程数据不会丢失。其中,当预留存储空间为预留内存空间时,可以通过设置预留内存空间在内核升级过程中对操作系统不可用,就能够使该预留内存空间中存储的信息不会随内核的退出而丢失。
56.步骤302、处理器接收指示对第一内核进行升级的内核升级指令。
57.可选地,内核升级指令可以是用户触发的。例如,计算机设备的管理人员可以在需要修复内核的缺陷、安全漏洞、为内核提供新的功能和性能优化等时机,触发该内核升级指令。或者,内核升级指令可以是自动触发的。例如,该内核升级指令是计算机设备在到达内核升级周期或者检测到需要对内核进行升级时自动触发的。其中,计算机设备的管理人员可以为内核设置升级周期,以指示在每次达到该升级周期时对内核进行升级。另外,当计算机设备接收到内核的升级代码(如升级代码包)时,可以确定需要对内核进行升级。
58.步骤303、处理器根据内核升级指令停止运行第一内核,并运行第二内核。
59.处理器接收到内核升级指令后,可以停止运行当前正在运行的内核。在本技术实施例中,该当前正在运行的内核为第一内核,对第一内核进行内核升级得到的内核为第二内核。可选地,处理器可以在接收到内核升级指令后立即停止运行第一内核,也可以在接收到内核升级指令后的任一时刻停止运行第一内核。例如,还可以在完成第二内核的初始化过程后停止运行第一内核,或者,也可以在运行第二内核后的任一时刻停止运行第一内核,本技术实施例对其不做具体限定。
60.处理器接收到内核升级指令后,可以获取用于实现第二内核的运行代码,将该运行代码加载到内存中,并通过运行该运行代码,以运行该第二内核。其中,在运行该第二内核之前,第一内核需要先对处理器和内存进行初始化,以便于使用初始化后的处理器和内存运行用于实现第二内核的运行代码。该对内存进行初始化是指对其他内存空间进行初始化。
61.步骤304、处理器在第二内核中从预留存储空间中获取第一内核对预留存储空间的存储管理信息。
62.如步骤301中所说,预留存储空间用于存储内核升级过程中需要使用到的信息,因此对第一内核进行升级的过程还可以包括:对该预留存储空间进行初始化的过程。对预留存储空间进行初始化包括:处理器获取第一内核对预留存储空间的存储管理信息,并基于该存储管理信息对预留存储空间进行初始化,使得第二内核继承该存储管理信息,并按照第一内核对预留存储空间进行管理的方式对预留存储空间进行管理。存储管理信息用于指示预留存储空间的使用状态。可选地,处理器可以从预留存储空间中获取该存储管理信息。
63.当预留存储空间为预留内存空间时,存储管理信息也称为该预留内存空间的内存管理信息,内存管理信息用于指示预留内存空间的使用状态。可选地,预留内存空间的使用
状态包括以下一项或多项:预留内存空间中每个内存块的占用状态和被占用的内存块的使用者的信息。其中,内存块的占用状态用于指示内存块处于已分配状态或处于空闲状态。被占用的内存块的使用者的信息包括:使用者的标识信息和使用者的其他描述信息。例如,某一内存块的使用者的信息包括指示该内存块的使用者为acpi的标识信息。或者,该内存块的使用者的信息还包括acpi管理的设备的标识。
64.其中,第一内核对预留内存空间的内存管理信息,可以在第一内核的运行过程中,通过第一内核对预留内存空间执行的管理操作得到。例如,在第一内核的运行过程中,第一内核能够对第一内核管理的硬件设备和/或硬件设备的设备驱动等管理对象进行管理,管理过程中会产生管理对象的设备状态信息等信息,这些信息需要存储在预留内存中,在预留内存中存储信息的操作会产生内存管理信息。在管理过程中,第一内核可以为管理对象申请内存(如申请用于存储acpi的命令空间信息的内存,或申请用于存储硬件设备的设备状态信息的内存)和释放内存(如无需使用内存时释放内存),申请内存和释放内存均会使内存管理信息发生变化。
65.在一种可实现方式中,第一内核对预留内存空间的管理可以通过功能模块实现。下面以图4为例,对第一内核对预留内存空间进行管理的实现方式进行说明。如图4所示,第一内核105包括内存初始化模块1051、设备初始化模块1052和预留内存管理模块1053,并且,预留内存管理模块1053可以包括:内存管理单元1053a、内存申请单元1053b、内存释放单元1053c和内存查询单元1053d,预留内存管理模块1053的功能可以通过该内存管理单元1053a、内存申请单元1053b、内存释放单元1053c和内存查询单元1053d协同实现。类似地,第二内核106包括内存初始化模块1061、设备初始化模块1062和预留内存管理模块1063,且预留内存管理模块1063可以包括:内存管理单元1063a、内存申请单元1063b、内存释放单元1063c和内存查询单元1063d,预留内存管理模块1063的功能可以通过该内存管理单元1063a、内存申请单元1063b、内存释放单元1063c和内存查询单元1063d协同实现。各个模块的功能分别为:
66.内存初始化模块用于拉起预留内存管理模块。例如在运行第一内核105时,拉起第一内核105中的预留内存管理模块1053,在运行第二内核106时,拉起第二内核106中的预留内存管理模块1063。
67.设备初始化模块用于对第一内核105管理的设备进行管理。例如为设备申请和释放用于存储设备状态信息的内存,查询设备的设备状态信息,以及根据查询的设备状态信息对设备进行初始化。
68.预留内存管理模块用于对预留内存空间进行管理。并且,在产生设备状态信息时,预留内存管理模块还用于申请使用预留内存管理接口,以通过该预留内存管理接口将该设备状态信息存储在预留内存空间中。其中,内存管理单元、内存申请单元、内存释放单元和内存查询单元的功能分别为:
69.预留内存管理模块用于在第一内核105运行后,从预留内存空间中读取预留内存空间的内存管理信息,基于内存管理信息对预留内存空间进行初始化,及向预留内存空间通知内存管理信息的变化和将内存管理信息存储在预留内存空间中。在一种可实现方式中,该步骤304可以通过该预留内存管理模块实现。
70.内存申请单元用于接收设备初始化模块的申请请求,并根据该申请请求查询预留
内存管理模块记录的内存管理信息,以在预留内存空间内找到满足申请请求所需大小的内存,在该内存中保存设备的设备状态信息,并根据保存结果更新内存管理信息。相应的,预留内存管理模块还用于根据内存申请单元的更新信息,标记对应内存已分配并记录该内存的使用者的信息。
71.内存释放单元用于接收设备初始化模块的释放请求,并对释放请求请求释放的内存执行释放操作,并根据释放结果更新内存管理信息。相应的,预留内存管理模块还用于根据内存释放单元的更新信息,标记被释放的内存可用。
72.内存查询单元用于接收设备初始化模块的查询请求,根据查询请求携带的特定字符或标识查询内存管理信息,得到查询请求指示的设备的设备状态信息,并向设备初始化模块提供查询到的设备状态信息。
73.步骤305、处理器基于存储管理信息对预留存储空间进行初始化。
74.处理器基于内存管理信息对预留内存空间进行初始化,实质是使第二内核继承该存储管理信息,并按照第一内核对预留存储空间进行管理的方式对预留存储空间进行管理。可选地,处理器对预留存储空间进行初始化包括:处理器将第二内核使用的预留存储空间及其对应的地址空间保持为与第一内核不变,将对预留存储空间的使用状态同步为第一内核对预留存储空间的使用状态,及将第二内核对预留存储空间进行管理的方式设置为第一内核对预留存储空间进行管理的方式。其中,当预留存储空间为预留内存空间时,该步骤305可以通过图4中第二内核的预留内存管理模块实现。
75.处理器将第二内核使用的预留存储空间及其对应的地址空间保持为与第一内核不变,是指使第二内核保持与第一内核使用相同的预留存储空间,并保持与第一内核使用相同的预留存储空间与地址空间的映射关系。这样一来,对于与内核进行交互的其他设备来说,由于第一内核和第二内核使用的预留存储空间和映射关系相同,使得在将第一内核升级为第二内核后,与内核进行交互的是其他设备能够按照与第一内核进行交互的方式与第二内核进行交互,能够实现对升级前后的内核进行无差别的访问,而无需重新配置就能够与第二内核的进行交互。
76.通过将对预留存储空间的使用状态同步为第一内核对预留存储空间的使用状态,使得在完成预留存储空间的初始化后,该预留存储空间的使用情况能够保持为与在对第一内核升级前第一内核对预留存储空间的使用状态的情况相同,使得第二内核能够以此为基础继续工作。其中,当预留存储空间为预留内存空间时,将对预留内存空间的使用状态同步为第一内核对预留内存空间的使用状态,可以通过图4所示的将内存管理信息从预留内存空间重载至第二内核实现。
77.通过将第二内核对预留存储空间进行管理的方式设置为第一内核对预留存储空间进行管理的方式,使得第二内核与第一内核对预留存储空间进行管理的方式相同,这样就无需对预留存储空间的实现逻辑进行修改,可以使得预留存储空间对内核升级无感知。
78.步骤306、处理器在第二内核中从预留存储空间中获取设备状态信息。
79.在一种可实现方式中,处理器在第二内核中从预留存储空间中获取设备状态信息的实现过程,包括:处理器在第二内核中基于第一内核管理的任一设备的标识,在预留存储空间中查询任一设备的设备状态信息。例如,处理器在第二内核中从预留存储空间中获取acpi的设备状态信息的实现过程,包括:处理器在第二内核中基于acpi的标识,在预留存储
空间中查询acpi的设备状态信息。并且,在预留存储空间查询的设备状态信息可以为设备状态信息本身,也可以为设备状态信息的存储地址,且查询的设备状态信息时设备状态信息本身或其存储地址可以根据应用需求确定。其中,当预留存储空间为预留内存空间时,该步骤306可以通过图4中第二内核的内存查询单元实现。
80.步骤307、处理器基于设备状态信息对第一内核管理的设备进行初始化。
81.对第一内核管理的设备进行初始化实质是指对第一内核管理的设备的状态和变量进行保存。如前所述,在预留存储空间查询的设备状态信息可以为设备状态信息本身,也可以为设备状态信息的存储地址。可选地,当查询的设备状态信息是设备状态信息本身时,处理器基于设备状态信息对第一内核管理的设备进行初始化的实现过程包括:处理器通过第二内核将设备状态信息恢复到第二内核使用的内存中。当查询的设备状态信息是设备状态信息的存储地址时,处理器基于设备状态信息对第一内核管理的设备进行初始化的实现过程包括:处理器将第二内核对任一设备的访问地址,设置为任一设备的设备状态信息的存储地址。例如,当查询到的acpi的设备状态信息为acpi命名空间树的根节点地址时,处理器基于acpi的设备状态信息对acpi进行初始化时,可以将第二内核对该acpi的访问地址,设置为acpi命名空间树的根节点地址。由于设备状态信息的存储地址中存储有该设备的设备状态信息,通过将对任一设备的访问地址,设置为该设备的设备状态信息的存储地址,使得第二内核按照该存储地址对该设备进行访问时,能够访问到该设备的设置状态信息,在第二内核的角度,该过程的结果与将该设备的状态和变量进行保存的结果相同。因此,通过将第二内核对设备的访问地址设置为该设备的设备状态信息的存储地址,能够实现对该设备的初始化。其中,当预留存储空间为预留内存空间时,该步骤307可以通过图4中第二内核的设备初始化模块实现。
82.通过处理器在第二内核中从预留存储空间中获取设备状态信息,并基于设备状态信息,对第一内核管理的设备进行初始化,使得第二内核无需通过对第一内核管理的设备进行读取,就能够获得该设备的设备状态信息,有效地减小了对内核进行初始化的耗时,减小了内核升级的耗时。例如,当设备状态信息为acpi的命令空间时,通过从预留内存中获取该acpi的命令空间,避免了完整acpi的命令空间的重新初始化,无需重建所有acpi命名空间中的对象,能够大幅缩短第二内核对acpi进行初始化的耗时。
83.步骤308、处理器在第二内核中从预留存储空间中获取经第一内核处理的数据。
84.在一些实现场景中,处理器还可以从第一内核获取经第一内核处理的数据,以便于第二内核根据该数据更快速地提供服务。可选地,该数据可以为第一内核访问的用户数据或其他数据,只要该数据为第一内核访问且第二内核工作也需要的数据即可。例如,当计算机设备为服务器,该服务器上创建有虚拟机时,该数据可以为通过虚拟机向用户提供服务时使用的数据。并且,该步骤308的实现过程可以相应参考步骤306的实现过程,此处不在赘述。
85.另外,用于存储经第一内核处理的数据的预留存储空间,与用于存储设备状态信息的预留存储空间,可以位于同一片预留存储空间中,也可以是存储逻辑不相干的两片预留存储空间(如互相隔离的两片预留存储空间),本技术实施例对其不做具体限定。类似地,用于存储多个设备的设备状态信息的预留存储空间,可以位于同一片预留存储空间中,也可以是存储逻辑不相干的多片预留存储空间,例如,计算机设备中可以配置有多片预留存
储空间,每片预留存储空间用于存储一个设备的设备状态信息。
86.步骤309、处理器基于经第一内核处理的数据在第二内核中进行状态恢复。
87.处理器从预留存储空间中获取经第一内核处理的数据后,即可根据获取的数据在第二内核中进行状态恢复,以便于根据继承的数据更快速地提供服务。并且,该步骤309的实现过程可以相应参考步骤307的实现过程,此处不在赘述。
88.需要说的是,对第一内核管理的设备进行初始化后,第二内核的初始化过程还包括对文件系统、驱动和网络系统等进行初始化,以及准备用户程序和拉起服务进程等过程,此处不对该过程的实现方式进行一一描述。
89.综上所述,在本技术实施例提供的内核升级方法中,通过处理器在第二内核中从预留存储空间中获取第一内核管理的设备的设备状态信息,并基于设备状态信息对第一内核管理的设备进行初始化,使得第二内核能够直接从预留内存空间中获取到设备状态信息,无需通过对第一内核管理的设备进行读取就能够获得该设备的设备状态信息,有效地减小了对内核进行初始化的耗时,减小了内核升级的耗时,减小了因内核升级时间较长对通过内核实现的业务(如使用虚拟机向用户提供的业务)造成的影响。并且,当计算机设备中由第一内核管理的设备数量越多时,本技术实施例提供的内核升级方法的效果表现得越明显。
90.需要说明的是,本技术实施例提供的内核升级方法的步骤先后顺序可以进行适当调整,步骤也可以根据情况进行相应增减。任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化的方法,都应涵盖在本技术的保护范围之内,因此不再赘述。
91.本技术实施例还提供了一种内核升级装置。如图5所示,该内核升级装置50包括:
92.处理模块501,用于运行第一内核,在第一内核中将第一内核管理的设备的设备状态信息记录到预留存储空间中,接收内核升级指令。
93.处理模块501,还用于根据内核升级指令停止运行第一内核,运行第二内核,在第二内核中从预留存储空间中获取设备状态信息,基于设备状态信息对第一内核管理的设备进行初始化。
94.可选地,处理模块501在第二内核中从预留存储空间中获取设备状态信息,包括:在第二内核中基于第一内核管理的任一设备的标识,在预留存储空间中查询任一设备的设备状态信息。
95.可选地,处理模块501基于设备状态信息对第一内核管理的设备进行初始化,包括:将第二内核对第一内核管理的任一设备的访问地址,设置为任一设备的设备状态信息的存储地址。
96.可选地,预留存储空间为预留内存空间,预留内存空间中存储的信息不会随第一内核的停止运行而丢失。
97.可选地,处理模块501还用于:在第二内核中从预留存储空间中获取第一内核对预留存储空间的存储管理信息,存储管理信息用于指示预留存储空间的使用状态;基于内存管理信息对预留存储空间进行初始化。
98.可选地,第一内核管理的设备包括:第一内核管理的硬件设备和/或硬件设备的设备驱动。
99.可选地,设备驱动包括:高级配置与电源接口。
100.可选地,处理模块501还用于:在第二内核中从预留存储空间中获取经第一内核处理的数据;基于数据在第二内核中进行状态恢复。
101.综上所述,在本技术实施例提供的内核升级装置中,通过处理模块在第二内核中从预留存储空间中获取第一内核管理的设备的设备状态信息,并基于设备状态信息对第一内核管理的设备进行初始化,使得第二内核能够直接从预留内存空间中获取到设备状态信息,无需通过对第一内核管理的设备进行读取就能够获得该设备的设备状态信息,有效地减小了对内核进行初始化的耗时,减小了内核升级的耗时,减小了因内核升级时间较长对通过内核实现的业务(如使用虚拟机向用户提供的业务)造成的影响。并且,当由第一内核管理的设备数量越多时,本技术实施例提供的内核升级方法的效果表现得越明显。
102.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置和模块的具体工作过程,可以参考前述方法实施例中的对应内容,在此不再赘述。
103.本技术实施例提供了一种计算机设备。该计算机设备包括存储器和处理器,存储器存储有程序指令,处理器运行程序指令以执行本技术提供的方法。例如,处理器运行第一内核,在第一内核中将第一内核管理的设备的设备状态信息记录到预留存储空间中,接收内核升级指令;处理器根据内核升级指令停止运行第一内核,运行第二内核,在第二内核中从预留存储空间中获取设备状态信息,基于设备状态信息对第一内核管理的设备进行初始化。并且,计算机通过执行存储器中的计算机指令,执行本技术提供的内核升级方法的步骤的实现过程可以相应参考上述方法实施例中对应的描述。
104.本技术实施例还提供了一种计算机可读存储介质,该计算机可读存储介质为非易失性计算机可读存储介质,该计算机可读存储介质包括程序指令,当程序指令在计算机设备上运行时,使得计算机设备执行如本技术实施例提供的内核升级方法。
105.本技术实施例还提供了一种包含指令的计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行本技术实施例提供的内核升级方法。
106.本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
107.在本技术实施例中,术语“第一”、“第二”和“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。术语“至少一个”是指一个或多个,术语“多个”指两个或两个以上,除非另有明确的限定。
108.本技术中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
109.以上所述仅为本技术的可选实施例,并不用以限制本技术,凡在本技术的构思和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1