一种混合内核镜像的加载方法、系统、服务器及存储介质与流程

文档序号:37260806发布日期:2024-03-12 20:39阅读:12来源:国知局
一种混合内核镜像的加载方法、系统、服务器及存储介质与流程

本发明涉及,尤其涉及一种混合内核镜像的加载方法、系统、服务器及存储介质。


背景技术:

1、相关技术在cpu上电加载内核镜像时,内核镜像是单独的一个镜像,并且只服务于一种服务器,但是对于用户或操作系统供应商来说,服务器可能有很多种类,包括:x86的服务器、高级精简指令集架构的处理器(advanced risc machine,arm)的服务器、基于增强型精简指令集架构的性能优化和计算(performance optimization with enhanced risc-performance computing,powerpc)的服务器和龙芯(loong arch)的服务器;同时,相同平台的服务器还有不同型号的cpu。

2、相关技术提供各种方法来屏蔽服务器硬件差异,包括:固件通过高级配置与电源接口(advanced configuration power interface,acpi)和数据转换服务(datatransformation services,dts)传参内核选择不通硬件初始化,以及通过内核config命令进行配置,或者直接从镜像库中现场下载,使一个内核尽量支持多的平台。但是,不管是通过acpi和dts传参,还是通过内核config配置,都无法使一个内核镜像支持多个硬件平台,用户必须为不同平台提供和维护多个内核镜像。


技术实现思路

1、本发明的目的是针对上述相关技术的不足,提出一种混合内核镜像的加载方法、系统、服务器及存储介质,能够通过一个内核镜像支持多个硬件平台,从而使得用户无需维护多个内核镜像,提高用户体验感。

2、第一方面,本发明提供了一种混合内核镜像的加载方法,应用于闪存中的固件,包括:

3、加载含有多种内核镜像的镜像文件,同时根据对固件代码的运行,对硬件平台种类进行识别,得到目标硬件平台编号;

4、将所述目标硬件平台编号作为参数在内核启动时传输给所述内核,以使所述内核根据接收到的所述目标硬件平台编号,在所述镜像文件中查找到目标内核镜像后进行加载;其中,所述镜像文件存储在所述固件和所述内核中。

5、本发明采用通过运行固件代码对硬件平台种类进行识别,并根据硬件平台编号在含有多种混合架构的内核镜像的镜像文件中查找目标内核镜像后进行加载,无需不同用户的硬件平台对各自镜像文件进行维护,只需从存储了多种内核镜像的镜像文件中查询,即可快速读取到目标内核镜像,本发明将镜像文件存储在固件和内核中,以闪存空间换取加载速度和支持多硬件平台,能够提高用户加载内核镜像的体验感。

6、结合第一方面,在一些实施例中,所述含有多种内核镜像的镜像文件,包括:

7、构建由所述多个硬件平台编号和多个第一镜像地址组成的镜像列表,并根据初始化镜像、所述镜像列表和多个内核镜像进行布局,得到镜像文件;其中,一个硬件平台编号对应一个第一镜像地址。

8、本发明通过构建特定格式的镜像文件,能够便于固件从镜像文件中的镜像列表中快速查询硬件平台种类,便于内核根据硬件平台种类的硬件平台编号从镜像文件中快速查询目标内核镜像,即本发明构建的镜像文件不仅便于固件进行硬件平台种类识别,还便于内核快速加载目标内核镜像,能够为多个硬件平台和多个型号的cpu同时进行服务,进而提高内核对镜像文件的复用率,从而为不同用户的硬件平台支持多种内核镜像,并以闪存空间换取加载速度,能够提高用户加载内核镜像的体验感。

9、结合第一方面,在一些实施例中,所述根据初始化镜像、所述镜像列表和多个内核镜像进行布局,得到镜像文件,包括:

10、在文件起始处存放所述初始化镜像,并在所述初始化镜像后存放所述镜像列表,在所述镜像列表后按照一个内核镜像和所述一个内核镜像的第一镜像地址标识依次存放所述多个内核镜像,得到所述镜像文件。

11、本发明采用先存放初始化镜像,再存放镜像列表,最后存放内核镜像的特定布局方式,获取到镜像文件,能够便于不同用户的固件直接从第二个位置的镜像列表识别出硬件平台种类,并便于不同用户的内核直接从第一个位置获取初始化镜像,并根据硬件平台编号对应的镜像地址从多个内核镜像中,快速找到目标内核镜像,从而提高用户加载内核镜像的效率和提高内核对镜像文件的复用率。

12、结合第一方面,在一些实施例中,所述在所述镜像列表后按照一个内核镜像和所述一个内核镜像的第一镜像地址标识依次存放所述多个内核镜像,包括:

13、在所述镜像列表后存放一个默认内核镜像和所述默认内核镜像的第二镜像地址标识,并在所述第二镜像地址标识后,按照一个内核镜像和所述一个内核镜像的第一镜像地址标识依次存放所述多个内核镜像。

14、结合第一方面,在一些实施例中,所述以使所述内核根据接收到的所述目标硬件平台编号,在所述镜像文件中查找到目标内核镜像后进行加载,包括:

15、进入初始化镜像入口,并根据接收的所述目标硬件平台编号,从所述镜像文件的镜像列表中查找到目标内核镜像的第二镜像地址;

16、根据所述第二镜像地址从所述镜像文件中加载所述目标内核镜像,直到读取到所述目标内核镜像的第三镜像地址标识时,停止读取。

17、结合第一方面,在一些实施例中,除了根据接收的所述目标硬件平台编号,从所述镜像文件的镜像列表中查找到目标内核镜像的第二镜像地址外,还包括:

18、当根据接收的所述目标硬件平台编号,没有从所述镜像文件的镜像列表中查找到目标内核镜像的第二镜像地址时,从所述镜像文件中直接加载默认内核镜像,直到读取到所述默认内核镜像的第二镜像地址标识时,停止读取。

19、本发明还提供了当没有识别出目标硬件平台编号时,则采用默认内核镜像进行加载,能够为不同用户提供的多种内核镜像均硬件平台种类匹配失败时进行兜底,避免内核无内核镜像运行导致系统启动失败的情况发生。

20、结合第一方面,在一些实施例中,在所述停止读取后,还包括:

21、切换到内核入口依次运行加载的镜像,并依次初始化系统和启动用户态进程,以使完成系统启动;其中,所述加载的镜像包括:目标内核镜像或默认内核镜像。

22、第二方面,本发明提供了一种混合内核镜像的加载系统,应用于闪存中的固件,包括:硬件识别模块和传参模块;其中,

23、所述硬件识别模块,用于加载含有多种内核镜像的镜像文件,同时根据对固件代码的运行,对硬件平台种类进行识别,得到目标硬件平台编号;

24、所述传参模块,用于将所述目标硬件平台编号作为参数在内核启动时传输给所述内核,以使所述内核根据接收到的所述目标硬件平台编号,在所述镜像文件中查找到目标内核镜像后进行加载。

25、第三方面,本发明提供了一种服务器,包括:闪存和闪存中的固件及内核;其中,

26、所述固件,用于加载含有多种内核镜像的镜像文件,同时根据对固件代码的运行,对硬件平台种类进行识别,得到目标硬件平台编号,并将所述目标硬件平台编号传输给所述内核;

27、所述内核,用于将所述目标硬件平台编号作为参数在内核启动时传输给所述内核,以使所述内核根据接收到的所述目标硬件平台编号,在所述镜像文件中查找到目标内核镜像后进行加载。

28、本发明提供的服务器预先构建多种内核镜像混合的镜像文件,并在闪存的空间内通过一个镜像文件为不同架构的用户和操作系统供应商都能提供统一的镜像文件,即以闪存空间换取加载速度和支持多硬件平台,从而无需不同架构的用户对内核镜像进行维护,能够为多个硬件平台和多个型号的cpu同时进行服务,进而提高内核对镜像文件的复用率,提高用户加载内核镜像的体验感,操作系统供应商也能够为不同硬件平台和不同型号的cpu提供统一的镜像文件进行统一生产,进而提高生产统一服务器的效率。

29、第四方面,本发明提供了一种计算机可读存储介质,用于存储计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如第一方面所述的混合内核镜像的加载方法。

30、本发明通过将第一方面中所述的混合内核镜像的加载方法以程序的形式存储在存储介质中时,能够通过运行或者读取存储介质中的可执行程序,可以对多种内核镜像的镜像文件进行内核镜像复用等操作,适用更多操作系统以及不同应用平台,可扩展性更强。

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