内核升级方法、装置以及计算设备与流程

阅读: 评论:0



1.本技术涉及操作系统升级技术领域,尤其涉及一种内核升级方法、装置以及计算设备。


背景技术:



2.计算设备在工作过程中,计算设备通过操作系统调用各种驱动程序,以实现不同的功能。为了更好地满足用户的需求,通常对操作系统的内核进行升级,以增加操作系统的功能或优化操作系统的性能。其中,操作系统的内核用于提供最基本的功能,例如,管理操作系统的进程、内存、设备驱动程序、文件和网络系统等。
3.相关技术中,通常需要获取内核对应的升级文件,并在操作系统重启后,根据升级文件刷新操作系统的整个内核,以完成内核的升级。由于内核的升级文件具有较大的数据量,获取升级文件需要的时间较长,且内核的升级过程需要操作系统重启。因此,存在内核升级效率低的问题。


技术实现要素:



4.本技术实施例提供一种内核升级方法、装置以及计算设备,用于解决计算设备的操作系统的内核升级效率低的问题。
5.为达到上述目的,本技术的实施例采用如下技术方案:
6.第一方面,提供了一种内核升级方法,应用于计算设备,计算设备运行有操作系统,操作系统包括第一内核,第一内核划分为多个模块,多个模块分别用于实现不同的功能,计算设备配置有存储器,存储器存储有用于加载多个模块中每个模块的数据,多个模块配置有预设排序,预设排序用于指示加载第一内核时的多个模块的加载顺序;上述方法包括:响应于对第一内核的第一模块的升级请求,获取第一模块对应的第一升级文件,其中,第一模块为多个模块中的至少一个。确定第二模块,第二模块包括预设排序位于第一模块之后的模块;依次以与预设排序相反的顺序卸载第二模块和第一模块;根据第一升级文件以及第二模块的数据,以预设排序加载第一模块和第二模块,以得到第二内核。本技术提供的方法通过将内核划分为多个模块,每个模块分别对应不同的升级文件,同时多个模块配置有预设排序,在任一模块升级的过程中,无需将第一内核的所有模块卸载,只需要将待升级模块和预设排序位于待升级模块之后的模块进行卸载,再按照预设排序进行加载,能够节约内核升级时间,提升内核升级效率。
7.在第一方面的一种可能的实现方式中,计算设备配置有芯片寄存器,多个模块至少包括芯片适配模块和第一控制模块,芯片适配模块用于实现操作系统和芯片寄存器之间的映射和建链,第一控制模块用于实现计算设备的指令控制和数据流控制;第一控制模块的加载顺序位于芯片适配模块之后。本技术提供的方法通过将第一控制模块的加载顺序位于芯片适配模块之后,当第一控制模块进行升级时,无需卸载芯片适配模块,也就是无需解除操作系统和芯片寄存器之间的映射和建链,以及在内核升级时重新再次建立操作系统和
芯片寄存器之间的映射和建链,能够节约内核升级时间,提升内核升级效率。
8.在第一方面的一种可能的实现方式中,多个模块中还包括第二控制模块,第二控制模块的加载顺序位于芯片适配模块和第一控制模块之间,加载第一控制模块和芯片适配模块的数据存储在存储器的只读分区,加载第二控制模块的数据存储在存储器的可读写分区,第二控制模块为第一控制模块的备用模块;在第一模块为第一控制模块的情况下,在响应于对第一内核的第一模块的升级请求,获取第一模块对应的第一升级文件之后,上述方法还包括:根据第一升级文件对第二控制模块进行升级。本技术提供的方法通过将除第二控制模块外的其他模块的升级文件存储在只读分区,在内核升级过程中,只对存储在可读写分区的第二控制模块进行更新,完成内核升级。有效提升内核升级的安全性,避免其他模块被恶意篡改,造成损失。
9.在第一方面的一种可能的实现方式中,上述方法还包括:置起第一标志位,第一标志位用于指示将实现计算设备的指令控制和数据流控制的第一控制模块,切换为第二控制模块。本技术提供的方法通过置起第一标志位,将实现计算设备的指令控制和数据流控制的第一控制模块,切换为第二控制模块,即可完成内核升级。有效提升内核升级的安全性,避免其他模块被恶意篡改,造成损失。
10.在第一方面的一种可能的实现方式中,在置起第一标志位之后,上述方法还包括:获取第二升级文件,第二升级文件包括第一升级文件和用于加载第二内核的数据;响应于输入的重启操作系统的操作,根据第二升级文件得到第二内核。本技术提供的方法通过响应于输入的重启操作系统的操作,将当前运行的内核刷新为第二内核,即对存储在只读分区的第一控制模块进行升级,这样一来,当再次对第二内核进行升级时,只需升级第二控制模块以及置起第一标志位,即可完成第二内核的升级,无需重启操作系统,能够节约内核升级时间,进而提升内核升级效率。
11.在第一方面的一种可能的实现方式中,上述方法还包括:置起第二标志位,第二标志位用于指示将实现计算设备的指令控制和数据流控制的第二控制模块,切换为第一控制模块。
12.第二方面,提供了一种内核升级装置,应用于计算设备,计算设备运行有操作系统,操作系统包括第一内核,第一内核划分为多个模块,多个模块分别用于实现不同的功能,该装置包括:用于执行第一方面提供的任意一种方法的功能单元,各个功能单元所执行的动作通过硬件实现或通过硬件执行相应的软件实现。例如,内核升级装置可以包括获取单元和升级单元。获取单元,被配置为执行响应于对第一内核的第一模块的升级请求,获取第一模块对应的第一升级文件,其中,第一模块为多个模块中的至少一个。升级单元,被配置为执行确定第二模块,第二模块包括预设排序位于第一模块之后的模块;依次以与预设排序相反的顺序卸载第二模块和第一模块;根据第一升级文件以及第二模块的数据,以预设排序加载第一模块和第二模块,以得到第二内核。
13.第三方面,提供了一种计算设备,包括:基板管理控制器bmc和存储器,基板管理控制器bmc与存储器连接;存储器用于存储计算机执行指令,基板管理控制器bmc执行存储器存储的计算机执行指令,从而实现第一方面提供的任意一种方法。
14.第四方面,提供了一种芯片,该芯片包括:处理器和接口电路;接口电路,用于接收代码指令并传输至处理器;处理器,用于运行代码指令以执行上述第一方面提供的任意一
种方法。
15.第五方面,提供了一种计算机可读存储介质,存储有计算机执行指令,当计算机执行指令在计算机系统上运行时,使得计算机系统执行上述第一方面提供的任意一种方法。
16.第六方面,提供了一种计算机程序产品,包括计算机执行指令,当计算机执行指令在计算机上运行时,使得计算机执行上述第一方面提供的任意一种方法。
17.其中,第二方面至第六方面中任一种设计方式所带来的技术效果可以参见第一方面中不同实现方式所带来的技术效果,此处不再赘述。
附图说明
18.图1示出了本技术实施例提供的一种计算设备的结构方框图;
19.图2示出了本技术实施例提供的一种第一内核的结构示意图;
20.图3示出了本技术实施例提供的一种内核升级方法的流程示意图;
21.图4示出了本技术实施例提供的另一种内核升级方法的流程示意图;
22.图5示出了本技术实施例提供的一种第一内核升级的过程示意图;
23.图6示出了本技术实施例提供的另一种内核升级方法的流程示意图;
24.图7示出了本技术实施例提供的一种内核升级前后的对比示意图;
25.图8示出了本技术实施例提供的另一种内核升级方法的流程示意图;
26.图9示出了本技术实施例提供的一种内核升级装置的结构方框图。
具体实施方式
27.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行描述。其中,在本技术的描述中,除非另有说明,“多个”是指两个或多于两个。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
28.另外,为了便于清楚描述本技术实施例的技术方案,在本技术的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。同时,在本技术实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本技术实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念,便于理解。
29.计算设备在工作过程中,计算设备通过操作系统调用各种驱动程序,以实现不同的功能。为了更好地满足用户的需求,通常对操作系统的内核进行升级,以增加操作系统的功能或优化操作系统的性能。其中,操作系统的内核用于提供最基本的功能,例如,管理操作系统的进程、内存、设备驱动程序、文件和网络系统等。
30.相关技术中,通常需要获取内核对应的升级文件,并在操作系统重启后,根据升级文件刷新操作系统的整个内核,以完成内核的升级。由于内核的升级文件具有较大的数据量,获取升级文件需要的时间较长,且内核的升级过程需要操作系统重启。因此,存在内核
升级效率低的问题。
31.基于此,本技术实施例提供一种内核升级方法,应用于计算设备,计算设备运行有操作系统,操作系统包括第一内核,第一内核划分为多个模块,多个模块分别用于实现不同的功能,上述方法包括:响应于对第一内核的第一模块的升级请求,获取第一模块对应的第一升级文件,其中,第一模块为多个模块中的至少一个。确定第二模块,第二模块包括预设排序位于第一模块之后的模块。依次以与预设排序相反的顺序卸载第二模块和第一模块。根据第一升级文件以及第二模块的数据,以预设排序加载第一模块和第二模块,以得到第二内核。本技术提供的方法通过将内核划分为配置有预设排序的多个模块,每个模块分别对应不同的升级文件。因此,在任一模块升级的过程中,无需将第一内核的所有模块卸载,只需要将待升级模块和预设排序位于待升级模块之后的模块进行卸载,再按照预设排序进行加载,由于内核无需重启,因此能够节约内核升级时间,提升内核升级效率。
32.其中,上述计算设备可以是任意运行有操作系统的设备。作为示例,计算设备可以是通用计算机、平板电脑、桌面型、膝上型、手持计算机、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,umpc)、上网本等,或者是服务器,本技术对计算设备的具体形态不做特殊限制。
33.参见图1,图1示出了本技术实施例提供的一种计算设备的结构方框图。该计算设备100包括处理器110、存储器120和基板管理控制器130。
34.处理器110可以是中央处理单元(central processing unit,cpu)。处理器110上运行有操作系统(operating system,os)。
35.其中,操作系统包括第一内核。在本技术实施例中,第一内核可以划分为多个用于实现不同的功能的模块。参见图2,图2为本技术实施例示出的一种第一内核的结构示意图,第一内核包括芯片适配模块210、第一控制模块220和设备适配模块230,芯片适配模块210用于操作系统和芯片寄存器之间的映射和建链,将各硬件的接口转化为方便第一控制模块220的代码调用的函数接口,也就是用于与计算设备的各个硬件建立联系,进而实现第一内核管理计算设备的各种硬件,为计算设备的应用程序提供基础,第一控制模块220用于实现计算设备的指令控制和数据流控制,可以理解为控制和协调计算设备的应用程序对计算设备的硬件的分配和使用。例如,从芯片适配模块210获取、需传递给设备适配模块230的指令和数据流,并将该转化为指令和数据流为设备适配模块230能够识别的格式,设备适配模块230用于将芯片控制和数据流对应的功能转化为方便应用层240访问的设备形式,并提供便捷的操作接口,以使得应用层240进行功能操作,需要说明的是,应用层240即为计算设备中配置的应用软件。
36.需要说明的是,第一内核包括的多个模块的划分方式可以为根据用户的实际需求进行任意层次的划分。例如,第一内核的每个功能分别对应一个模块。需要说明的是,以上对第一内核的多个模块的描述仅为示例性说明。本技术实施例对第一内核的多个模块的具体划分方式不作特别限制。
37.具体的,上述多个模块分别对应不同的升级文件,其中,每个模块的升级文件通过分别编译的方式得到。且多个模块配置有预设排序。预设排序用于指示加载第一内核时的多个模块的加载顺序。例如,结合图2,若第一内核包括的三个模块的预设排序依次为芯片适配模块210

第一控制模块220

设备适配模块230,则计算设备100响应于加载第一内核
的指令加载第一内核时,首先加载芯片适配模块210。当芯片适配模块210加载完成时,再加载第一控制模块220。当第一控制模块220加载完成时,最后加载设备适配模块230,当设备适配模块230加载完成时,计算设备100操作系统的第一内核加载完成。
38.在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,i2c)接口,集成电路内置音频(inter-integrated circuit sound,i2s)接口,用户标识模块(subscriber identity module,sim)接口,和/或通用串行总线(universal serial bus,usb)接口等。
39.i2c接口是一种双向同步串行总线,包括一根串行数据线(serial data line,sda)和一根串行时钟线(derail clock line,scl)。在一些实施例中,处理器110可以包含多组i2c总线。
40.uart接口是一种通用串行数据总线,用于异步通信。该总线可以为双向通信总线。它将要传输的数据在串行通信与并行通信之间转换。在一些实施例中,uart接口通常被用于连接处理器110。
41.可以理解的是,本技术实施例示意的计算设备各器件间的接口连接关系,只是示意性说明,并不构成对计算设备100的结构限定。在本技术另一些实施例中,计算设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
42.存储器120可以包括随机存储器(random access memory,ram),也可以包括只读存储器(read-only memory,rom)。可选地,该存储器120包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器120可用于存储指令、程序、代码、代码集或指令集。存储器120可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如数据处理功能、声音播放功能、图像播放功能等)、用于实现本技术实施例所述的方法等。
43.基板管理控制器130(以下简称bmc)根据指令操作码和时序信号,产生操作控制信号,完成获取指令和执行指令的控制。在本技术中,bmc响应于对第一内核的第一模块的升级请求,获取第一模块对应的第一升级文件,其中,第一模块为多个模块中的至少一个;根据第一升级文件对第一模块进行升级,以得到第二内核。
44.除此之外,本领域技术人员可以理解,本实施例示意的结构并不构成对计算设备100的具体限定。在本技术另一些实施例中,计算设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。
45.以下结合说明书附图,对本技术实施例提供的内核升级方法进行说明。
46.图3为本技术实施例提供的一种内核升级方法的流程图。可选的,该方法可以由具有图1所示硬件结构的计算设备100执行。该方法可以包括以下步骤:
47.s301、响应于对第一内核的第一模块的升级请求,获取第一模块对应的第一升级文件。
48.具体的,第一内核被预先划分为多个模块,每个模块分别用于实现不同的功能,每个模块分别配置有对应的升级文件。其中,第一模块为多个模块中的至少一个,第一模块为第一内核包括的多个模块中的待升级模块。
49.可选的,计算设备获取第一模块对应的第一升级文件,可以是计算设备中的bmc获取第一模块对应的第一升级文件。例如,从计算设备本地的存储器件获取,又例如,也可以
为从与计算设备连接的存储设备中获取第一升级文件。本技术实施例对bmc获取第一升级文件的具体实现方式不作特别限制。
50.在一种可能的实现方式中,第一内核的多个模块配置有预设排序。其中,预设排序用于指示加载第一内核时的多个模块的加载顺序。参见图4,在上述s301之前,本技术实施例提供的方法还包括以下步骤:
51.s401、响应于对第一内核的加载请求,获取用于加载第一内核的多个模块的数据;
52.具体的,上述加载请求用于完成第一内核的加载。对第一内核的加载请求可以为用户在指定界面输入的加载请求,也可以为来自其他计算设备的加载请求。
53.示例性的,第一内核包括模块a、模块b和模块c,三个模块的预设排序依次为模块a

模块b

模块c。响应于对第一内核的加载请求,计算设备获取用于加载模块a、模块b和模块c的数据。
54.s402、基于预设排序,根据多个模块的数据依次加载多个模块,得到第一内核。
55.示例性的,基于预设排序,依次根据用于加载模块a、模块b和模块c的数据,首先加载模块a,再加载模块b,最后加载模块c。当模块c加载完成时,第一内核加载完成。
56.s403、将第一内核包括的多个模块的数据存储在本地。
57.第一内核包括的多个模块的数据,即为用于加载第一内核中各个模块的数据。
58.示例性的,将用于加载模块a、模块b和模块c的数据存储在计算设备的存储器中。
59.本技术提供的方法通过为多个模块配置预设排序,在内核加载过程中出现错误时,只需对当前出现错误的模块重新加载,无需对整个内核进行重新加载,能够节约内核加载时间,提升内核加载效率。
60.s302、确定第二模块。
61.具体的,第二模块为预设排序位于第一模块之后的模块。其中,第二模块的数量可以为任意数量。例如,第二模块的数量可以为0个、1个或5个。
62.示例性的,参见图5,图5为本技术实施例示出的一种第一内核升级示意图。如图5中的(a)所示,第一内核包括模块a、模块b1、模块c和模块d,三个模块的预设排序依次为模块a

模块b1

模块c

模块d。当第一模块为模块b1时,第二模块为模块c和模块d。
63.s303、依次以与预设排序相反的顺序卸载第二模块和第一模块;
64.结合上述示例,结合图5,图5中的(b)为已完成对第一模块和第二模块的卸载的第一内核。由于预设排序为模块a、模块b1、模块c和模块d。因此,以与预设排序相反的顺序,首先卸载模块d。当模块d卸载完成时,接着卸载模块c。当模块c卸载完成时,最后卸载模块b1,此时第一内核只有模块a未卸载。
65.s304、以预设排序,根据第一升级文件加载升级后的第一模块,以及根据用于加载第二模块的数据加载第二模块,以得到第二内核。
66.结合上述示例,如图5中(c),图5中(c)为本技术实施例示出的第二内核的加载过程。在图5中(b)的基础上,加载第一升级文件,得到模块b2,需要说明的是,模块b2为模块b1升级后的模块。作为示例,与模块b1相比,模块b2能够使得操作系统实现更多的功能,或对计算设备的操作系统进行优化。当模块b2加载完成后,计算设备再根据用于加载模块c和模块d(即第二模块)的数据分别加载模块c和模块d,当模块d加载完成时,即得到第二内核。其中,参见图5中(c),图5中的(c)为本技术实施例示出的第二内核,该第二内核包括模块a、模
块b2、模块c和模块d,与第一内核相比,第二内核在模块a、模块c和模块d未做更改的情况下,完成了由模块b1至模块b2的升级。
67.由s301-s304可知,本技术提供的方法通过将内核划分为多个模块,并为多个模块配置预设排序,在第一内核的任一模块升级的过程中,无需将第一内核的所有模块卸载,只需要将待升级模块和预设排序位于待升级模块之后的模块进行卸载,再按照预设排序依次加载待升级模块的升级后的模块以及被卸载但无需升级的模块,能够节约内核升级时间,提升内核升级效率。
68.在一种可能的实现方式中,第一内核的多个模块中至少包括芯片适配模块和第一控制模块,芯片适配模块用于实现操作系统和芯片寄存器之间的映射和建链,第一控制模块用于实现计算设备的指令控制和数据流控制;第一控制模块的加载顺序位于芯片适配模块之后。
69.在第一模块为第一控制模块的情况下,上述s301之后,本技术实施例提供的方法还包括以下步骤:确定预设排序位于第一控制模块之后的模块。依次以与预设排序相反的顺序卸载预设排序位于第一控制模块之后的模块和第一控制模块。根据第一控制模块的升级文件加载第一控制模块。然后依次加载预设排序位于第一控制模块之后的模块,以完成对第一控制模块的升级,进而完成对第一内核的升级,得到第二内核。
70.本技术提供的方法通过将第一控制模块的加载顺序位于芯片适配模块之后,当第一控制模块进行升级时,无需卸载芯片适配模块,也就是无需解除操作系统和芯片寄存器之间的映射和建链,也无需在内核升级时重新再次建立操作系统和芯片寄存器之间的映射和建链,能够节约内核升级时间,提升内核升级效率。
71.计算设备的存储器中包括只读分区和可读写分区。顾名思义,只读分区只能读取数据而无法写入数据。可读写分区既可读取数据,也可以写入数据。当用于加载内核的每个模块的数据存储在只读分区时,由于只读分区无法写入数据,因此,当对计算设备的内核进行升级时,需要在重启操作系统时对整个只读分区进行刷新,以更新存储在只读分区的数据。存在内核升级时间长,内核升级效率低的问题。当用于加载内核的数据存储在可读写分区时,由于存储在可读写分区的数据容易被恶意篡改,因此,导致计算设备的安全性和稳定性受到影响。
72.为了提高计算设备的安全性和稳定性,在一种可能的实现方式中,多个模块中包括芯片适配模块、第一控制模块、第二控制模块和设备适配模块。其中,用于加载第一控制模块、芯片适配模块和设备适配模块的数据存储在存储器的只读分区,用于加载第二控制模块的数据存储在存储器的可读写分区。四个模块的预设排序依次为芯片适配模块

第二控制模块

第一控制模块和设备适配模块。
73.其中,芯片适配模块用于实现操作系统和芯片寄存器之间的映射和建链,第一控制模块用于实现计算设备的指令控制和数据流控制,设备适配模块用于将芯片控制和数据流进行封装,以便于计算设备的应用层进行访问。第二控制模块为第一控制模块的备用模块,在计算设备正常工作时,第一内核的控制和数据流向依次为芯片适配模块、第一控制模块和设备适配模块。第二控制模块处于闲置状态,即此时第二控制模块并未发挥任何作用。
74.基于安全考虑,由于第一控制模块存储于只读分区,用于加载第一控制模块的数据无法更改。参见图6,在上述s301之后,还包括以下步骤:
75.s601、根据第一升级文件对第二控制模块进行升级。
76.具体的,由于用于加载第一控制模块的数据存储在只读分区,用于加载第二控制模块的数据存储在可读写分区。因此,根据第一升级文件对第二控制模块升级。
77.例如,基于第一内核的第一控制模块,计算设备操作系统当前能够实现的功能为x,根据第一升级文件对第二控制模块升级,以使得计算设备的操作系统基于第二控制模块,能够实现的功能为y。其中,x和y为操作系统能够实现的功能集合。与x相比较,y具有目标功能。
78.s602、置起第一标志位,第一标志位用于指示将实现计算设备的指令控制和数据流控制的第一控制模块,切换为第二控制模块。
79.在一种可能的实现方式中,上述第一升级文件配置有可信签名,s602包括:
80.对第二升级文件的可信签名进行验证,在签名验证成功的情况下,确定第三模块。
81.需要说明的是,可信签名用于确定第一升级文件来源可信。
82.本技术提供的方法通过为第一升级文件配置可信签名,能够使得计算设备验证第一升级文件的可信性,进而根据可信的第一升级文件对内核进行升级,提升操作系统的安全性和稳定性。
83.具体的,由于此时根据第二升级文件完成了第二控制模块的升级,第一控制模块并未升级,因此,需要置起第一标志位,以使得计算设备的操作系统基于第二控制模块实现升级后的目标功能。
84.示例性的,参见图7,图7为本技术实施例提供的一种内核升级前后对比图,图7中的(a)为升级前的第一内核,图7中的(b)为升级后的第一内核。如图所示,第一内核升级前,操作系统实现功能的控制和数据流向依次为芯片适配模块、第一控制模块和设备适配模块,此时操作系统无法实现目标功能,此时第二控制模块处于闲置状态。第一内核升级后,置起第一标志位,以使得实现计算设备的指令控制和数据流控制的第一控制模块,切换为第二控制模块。操作系统实现功能的控制和数据流向依次为芯片适配模块、第二控制模块和设备适配模块,此时第一控制模块处于闲置状态。操作系统能够实现目标功能。
85.本技术提供的方法通过将除第二控制模块外的其他模块的升级文件存储在只读分区,在内核升级过程中,只对存储在可读写分区的第二控制模块进行升级,并置起第一标志位,将实现计算设备的指令控制和数据流控制的第一控制模块,切换为第二控制模块。即可完成内核升级,使得计算设备的操作系统能够实现目标功能。有效提升内核升级的安全性,避免其他模块被恶意篡改,造成损失。同时,在升级过程中,无需对内核进行重启,只需对存储在可读写分区的第二控制模块进行升级,并置起第一标志位,且升级过程中,内核无需与芯片寄存器之间进行解链和建链,即可完成第一内核的升级,能够提升内核升级效率。在一种可能的实现方式中,上述第一升级文件配置有可信签名,s602包括:
86.对第二升级文件的可信签名进行验证,在签名验证成功的情况下,确定第三模块。
87.需要说明的是,可信签名用于确定第一升级文件来源可信。
88.本技术提供的方法通过为第一升级文件配置可信签名,能够使得计算设备验证第一升级文件的可信性,进而根据可信的第一升级文件对内核进行升级,提升操作系统的安全性和稳定性。
89.然而,应理解的是,基于第二升级文件对第二控制模块进行升级,在第二控制模块
升级完成后,虽然此时计算设备的操作系统基于升级后的第二控制模块实现了目标功能,当仍存在一些问题。例如,计算设备的操作系统重启后,若不再次置起第一标志位,那么实现计算设备的指令控制和数据流控制的第二控制模块,会切换为第一控制模块。由于第一控制模块并未升级,所以,在计算设备的操作系统重启后,计算设备的操作系统基于第一控制模块无法实现目标功能。
90.为了避免由于计算设备的操作系统重启,导致计算设备的操作系统无法实现目标功能,以及出于安全考虑。在一种可能的实现方式中,参见图8,在上述s602之后,上述方法还包括:
91.s801、获取第二升级文件;
92.具体的,第二升级文件包括第一升级文件和用于加载第二内核的数据;根据第二升级文件对存储在只读分区的数据进行刷新。也就是说,根据第一升级文件升级第一控制模块,根据用于加载第二内核的数据得到除第一控制模块外的其他模块,进而使得计算设备的操作系统基于第一控制模块实现目标功能。
93.s802、响应于输入的重启操作系统的操作,根据第二升级文件得到第二内核。
94.s803、置起第二标志位,第二标志位用于指示将实现计算设备的指令控制和数据流控制的第二控制模块,切换为第一控制模块。
95.具体的,在第二内核加载完成时,第一控制模块完成升级,此时计算设备的操作系统基于第一控制模块能够实现目标功能。此时第二控制模块再次作为第一控制模块的备用模块,在计算设备正常工作时,第二控制模块处于空闲状态。
96.可选的,在响应于输入的重启操作系统的操作,根据第二升级文件得到第二内核后,也可以不置起第二标志位,计算设备被配置为在未置起任一标志位的情况下,将实现计算设备的指令控制和数据流控制的第二控制模块,切换为第一控制模块。
97.本技术提供的方法通过响应于输入的重启操作系统的操作,将当前运行的内核刷新为第二内核,即对存储在只读分区的第一控制模块进行升级,以使得计算设备的操作系统基于第一控制模块能够实现目标功能。这样一来,当用户想要对第二内核进行升级时,只需升级第二控制模块,并置起第一标志位,即可完成第二内核的升级,以使得计算设备的操作系统基于第二控制模块实现对应的待升级功能。无需重启操作系统,能够节约内核升级时间,进而提升内核升级效率。同时,在重启时,基于第二升级文件对存储在只读分区的数据进行刷新,并置起第二标志位,能够使得实现功能的模块对应的数据存储在只读分区,提升计算设备的操作系统的安全性和稳定性。
98.上述主要从方法的角度对本技术实施例的方案进行了介绍。可以理解的是,内核升级装置为了实现上述功能,其包含了执行各个功能相应的硬件结构和软件模块中的至少一个。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本技术能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
99.本技术实施例可以根据上述方法示例对内核升级装置进行功能单元的划分,例如,可以对应各个功能划分各个功能单元,也可以将两个或两个以上的功能集成在一个处
理单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。需要说明的是,本技术实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
100.示例性的,图9示出了本技术实施例提供的一种内核升级装置的结构框图。应用于计算设备,计算设备运行有操作系统,操作系统包括第一内核,第一内核划分为多个模块,多个模块分别用于实现不同的功能,计算设备配置有存储器,存储器存储有用于加载多个模块中每个模块的数据,多个模块配置有预设排序,预设排序用于指示加载第一内核时的多个模块的加载顺序,该装置包括获取单元910和升级单元920。获取单元,被配置为执行响应于对第一内核的第一模块的升级请求,获取第一模块对应的第一升级文件,其中,第一模块为多个模块中的至少一个。升级单元,被配置为执行确定第二模块,第二模块包括预设排序位于第一模块之后的模块;依次以与预设排序相反的顺序卸载第二模块和第一模块;根据第一升级文件以及第二模块的数据,以预设排序加载第一模块和第二模块,以得到第二内核。例如,结合图3,获取单元910可以用于执行如图3所示的s301,升级单元920可以用于执行如图3所示的s302-s304。
101.可选的,计算设备配置有芯片寄存器,多个模块至少包括芯片适配模块和第一控制模块,芯片适配模块用于实现操作系统和芯片寄存器之间的映射和建链,第一控制模块用于实现计算设备的指令控制和数据流控制;第一控制模块的加载顺序位于芯片适配模块之后。
102.可选的,多个模块中还包括第二控制模块,第二控制模块的加载顺序位于芯片适配模块和第一控制模块之间,加载第一控制模块和芯片适配模块的数据存储在存储器的只读分区,加载第二控制模块的数据存储在存储器的可读写分区,第二控制模块为第一控制模块的备用模块;在第一模块为第一控制模块的情况下,升级单元920具体被配置为根据第一升级文件对第二控制模块进行升级。例如,结合图6,升级单元920可以用于执行如图6所示的s601。
103.可选的,升级单元920还被配置为执行置起第一标志位,第一标志位用于指示将实现计算设备的指令控制和数据流控制的第一控制模块,切换为第二控制模块。例如,结合图6,升级单元920可以用于执行如图6所示的s602。
104.可选的,在置起第一标志位之后,升级单元920还被配置为执行获取目标功能对应的第二升级文件,第二升级文件包括第一升级文件和用于加载第二内核的数据;响应于输入的重启操作系统的操作,根据第二升级文件得到第二内核。例如,结合图8,升级单元920可以用于执行如图8所示的s801-s802。
105.可选的,升级单元920还被配置为执行置起第二标志位,第二标志位用于指示将实现计算设备的指令控制和数据流控制的第二控制模块,切换为第一控制模块。例如,结合图8,升级单元920可以用于执行如图8所示的s803。
106.作为示例,结合图1,上述装置中的获取单元910和升级单元920中的部分或全部实现的功能可以通过图1中的处理器110执行图1中的存储器120中的程序代码实现。
107.关于上述可选方式的具体描述可以参见前述的方法实施例,此处不再赘述。此外,上述提供的任一种内核升级装置的解释以及有益效果的描述均可参考上述对应的方法实施例,不再赘述。
108.本技术实施例还提供了一种计算设备,包括:处理器、存储器和存储模块,处理器分别与存储器和存储模块连接;存储器用于存储计算机执行指令,处理器执行存储器存储的计算机执行指令,从而实现如上各个实施例的方法,以在计算设备的存储模块中进行数据读写。关于上述提供的任一种计算设备中相关内容的解释及有益效果的描述,均可以参考上述对应的实施例,此处不再赘述。
109.本技术实施例还提供了一种硬盘,该硬盘中集成有第一存储介质和第二存储介质,第一存储介质的读写速率大于第二存储介质的读写速率,硬盘配置于计算设备,计算设备用于实现如上各个实施例的方法,以在对硬盘进行数据读写。关于上述提供的任一种计算机可读存储介质中相关内容的解释及有益效果的描述,均可以参考上述对应的实施例,此处不再赘述。
110.本技术实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有至少一条计算机指令,该至少一条计算机指令由处理器加载并执行以实现如上各个实施例的方法。关于上述提供的任一种计算机可读存储介质中相关内容的解释及有益效果的描述,均可以参考上述对应的实施例,此处不再赘述。
111.本技术实施例还提供了一种芯片。该芯片中集成了用于实现上述故障注入内核升级装置的功能的控制电路和一个或者多个端口。可选的,该芯片支持的功能可以参考上文,此处不再赘述。本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可通过程序来指令相关的硬件完成。的程序可以存储于一种计算机可读存储介质中。上述提到的存储介质可以是只读存储器,随机接入存储器等。上述处理单元或处理器可以是中央处理器,通用处理器、特定电路结构(application specific integrated circuit,asic)、微处理器(digital signal processor,dsp),现场可编程门阵列(field programmable gate array,fpga)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。
112.本技术实施例还提供了一种包含指令的计算机程序产品,当该指令在计算机上运行时,使得计算机执行上述实施例中的任意一种方法。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本技术实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可以用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质(例如,软盘、硬盘、磁带),光介质(例如,dvd),或者半导体介质(例如ssd)等。
113.应注意,本技术实施例提供的上述用于存储计算机指令或者计算机程序的器件,例如但不限于,上述存储器、计算机可读存储介质和通信芯片等,均具有非易失性(non-transitory)。本领域技术人员应该可以意识到,在上述一个或多个示例中,本技术实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读存储介质中或者作为计算机可读存储介质上的一个或多个指令或代码进行传输。计算机可读存储介质包括计算机存储介质和通信介质,其中通信介
质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。以上所述仅为本技术的可选实施例,并不用以限制本技术,凡在本技术的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。

技术特征:


1.一种内核升级方法,其特征在于,应用于计算设备,所述计算设备运行有操作系统,所述操作系统包括第一内核,所述第一内核划分为多个模块,所述多个模块分别用于实现不同的功能,所述计算设备配置有存储器,所述存储器存储有用于加载所述多个模块中每个模块的数据,所述多个模块配置有预设排序,所述预设排序用于指示加载所述第一内核时的所述多个模块的加载顺序;所述方法包括:响应于对所述第一内核的第一模块的升级请求,获取所述第一模块对应的第一升级文件,其中,所述第一模块为所述多个模块中的至少一个;确定第二模块,所述第二模块包括所述预设排序位于所述第一模块之后的模块;依次以与所述预设排序相反的顺序卸载所述第二模块和所述第一模块;根据所述第一升级文件以及所述第二模块的数据,以所述预设排序加载所述第一模块和所述第二模块,以得到第二内核。2.根据权利要求1所述的方法,其特征在于,所述计算设备配置有芯片寄存器,所述多个模块至少包括芯片适配模块和第一控制模块,所述芯片适配模块用于实现所述操作系统和所述芯片寄存器之间的映射和建链,所述第一控制模块用于实现所述计算设备的指令控制和数据流控制;所述第一控制模块的加载顺序位于所述芯片适配模块之后。3.根据权利要求2所述的方法,其特征在于,所述多个模块中还包括第二控制模块,所述第二控制模块的加载顺序位于所述芯片适配模块和所述第一控制模块之间,加载所述第一控制模块和所述芯片适配模块的数据存储在所述存储器的只读分区,加载所述第二控制模块的数据存储在所述存储器的可读写分区,所述第二控制模块为所述第一控制模块的备用模块;在所述第一模块为所述第一控制模块的情况下,在所述响应于对所述第一内核的第一模块的升级请求,获取所述第一模块对应的第一升级文件之后,所述方法还包括:根据所述第一升级文件对所述第二控制模块进行升级。4.根据权利要求3所述的方法,其特征在于,所述方法还包括:置起第一标志位,所述第一标志位用于指示将实现所述计算设备的指令控制和数据流控制的所述第一控制模块,切换为所述第二控制模块。5.根据权利要求4所述的方法,其特征在于,在所述置起第一标志位之后,所述方法还包括:获取第二升级文件,所述第二升级文件包括第一升级文件和用于加载所述第二内核的数据;响应于输入的重启操作系统的操作,根据所述第二升级文件得到所述第二内核。6.根据权利要求5所述的方法,其特征在于,所述方法还包括:置起第二标志位,所述第二标志位用于指示将实现所述计算设备的指令控制和数据流控制的所述第二控制模块,切换为所述第一控制模块。7.一种内核升级装置,其特征在于,应用于计算设备,所述计算设备运行有操作系统,所述操作系统包括第一内核,所述第一内核划分为多个模块,所述多个模块分别用于实现不同的功能,所述计算设备配置有存储器,所述存储器存储有用于加载所述多个模块中每个模块的数据,所述多个模块配置有预设排序,所述预设排序用于指示加载所述第一内核时的所述多个模块的加载顺序,所述装置包括:
获取单元,被配置为执行响应于对所述第一内核的第一模块的升级请求,获取所述第一模块对应的第一升级文件,其中,所述第一模块为所述多个模块中的至少一个;升级单元,被配置为执行确定第二模块,所述第二模块包括所述预设排序位于所述第一模块之后的模块;依次以与所述预设排序相反的顺序卸载所述第二模块和所述第一模块;根据所述第一升级文件以及所述第二模块的数据,以所述预设排序加载所述第一模块和所述第二模块,以得到第二内核。8.一种计算设备,其特征在于,包括:基板管理控制器bmc和存储器,基板管理控制器bmc与存储器连接;存储器用于存储计算机执行指令,基板管理控制器bmc执行存储器存储的计算机执行指令,从而实现如权利要求1-6中任一项所述的方法。

技术总结


本申请关于一种内核升级方法、装置以及计算设备,涉及操作系统升级技术领域,应用于计算设备,计算设备运行有操作系统,操作系统包括第一内核,第一内核划分为配置有预设排序的多个模块,多个模块分别用于实现不同的功能。在本申请中,通过将内核划分为配置有预设排序的多个模块,在任一模块升级的过程中,无需将第一内核的所有模块卸载,只需要将待升级模块和预设排序位于待升级模块之后的模块进行卸载,再按照预设排序进行加载,能够节约内核升级时间,提升内核升级效率。提升内核升级效率。提升内核升级效率。


技术研发人员:

万侃然

受保护的技术使用者:

超聚变数字技术有限公司

技术研发日:

2022.10.19

技术公布日:

2023/2/23

本文发布于:2023-02-27 05:15:17,感谢您对本站的认可!

本文链接:https://patent.en369.cn/patent/3/57766.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:模块   内核   所述   多个
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图