操作系统内核的加载方法和装置与流程

文档序号:12304934阅读:168来源:国知局
本发明涉及计算机技术,尤其涉及一种操作系统内核的加载方法和装置。
背景技术
::现有技术中,对于无内部互锁流水级的微处理器(microprocessorwithoutinterlockedpipedstages,简称:mips)架构的计算机系统,开发人员开发该计算机系统的操作系统时,会在该操作系统内核中写入系统信息,以使得计算机系统在运行过程中,其操作系统内核可以根据上述系统信息,为各应用程序提供对计算机硬件的正确的访问。其中,上述所说的系统信息可以包括cpu信息(例如:cpu频率、cpu型号等)、中断号信息(例如:每个中断源对应的中断号等)、内存信息(例如:内存的地址空间信息等)。然而,由于上述系统信息与计算机系统主板上的各芯片的类型、以及各芯片之间的连接方式有关,也就是说,当计算机系统主板上的芯片的类型或者芯片之间的连接方式发生变化时(即计算机系统主板发生变化时),该主板对应的系统信息也就不同,即开发人员写入操作系统内核中系统信息也就不同,使得操作系统内核无法适配不同的计算机系统主板,导致操作系统内核兼容性较差。技术实现要素:本发明提供一种操作系统内核的加载方法和装置,用以解决现有技术中mips架构的计算机系统在使用操作系统内核为应用程序提供对计算机硬件的访问时,因操作系统内核无法适配不同的计算机系统主板,导致操作系统兼容性较差的问题。本发明第一方面提供一种操作系统内核的加载方法,所述方法适用于无内部互锁流水级的微处理器mips架构的计算机系统,所述方法包括:获取基本输入输出系统bios中的系统信息,所述系统信息包括计算机 系统的功能信息;根据所述系统信息,加载操作系统内核。如上所述,所述系统信息在所述bios中以至少一个第一结构体变量的形式存在;所述获取基本输入输出系统bios中的系统信息,具体包括:根据所述操作系统内核中预设的第一寄存器的地址,访问所述第一寄存器,以获取通过所述bios写入所述第一寄存器中的第二结构体的指针;所述第一寄存器为中央处理器的寄存器;所述第二结构体为所述至少一个第一结构体中的一个第一结构体,所述第二结构体包括所述至少一个第一结构体中除所述第二结构体之外的其他第一结构体的指针;根据所述第二结构体的指针,访问所述内存,以获取通过所述bios写入所述内存中的所述至少一个第一结构体变量的值。则所述根据所述系统信息,加载操作系统内核,具体包括:将所述至少一个第一结构体变量的值赋值给所述操作系统内核中的至少一个第三结构体。如上所述,在所述根据所述操作系统内核中预设的第一寄存器的地址,访问所述第一寄存器之前,所述方法还包括:通过运行所述bios,将所述bios中的所述至少一个第一结构体写入内存中,并根据所述bios中预设的第一寄存器的地址,将所述第二结构体的指针写入所述第一寄存器中。如上所述,所述第一寄存器为a2寄存器。如上所述,所述获取通过所述bios写入所述内存中的所述至少一个第一结构体变量的值,具体包括:根据所述操作系统内核中预设的每个第一结构体的类型,从所述内存中获取所述每个第一结构体变量的值。如上所述,所述至少一个第一结构体包括:包括启动参数的结构体、包括所述至少一个第一结构体信息的结构体、包括内存地址空间信息的结构体、包括计算机系统的信息的结构体、包括中央处理器cpu信息的结构体、包括中断信息的结构体、包括板载设备信息的结构体。如上所述,所述包括启动参数的结构体为所述第二结构体。如上所述,所述包括启动参数结构体包括:包括可扩展固件接口efi的结构体。如上所述,所述包括启动参数结构体还包括:包括屏幕信息的结构体、包括系统描述符表的结构体、包括所述efi信息的结构体。如上所述,所述包括efi的结构体包括:包括系统管理基本输入输出系统smbios信息的结构体。如上所述,所述包括efi的结构体还包括:所述efi系统表、多处理器规范mps信息、高级配置电源管理接口acpi的接口信息、所述acpi的补充信息、系统抽象层sal表的信息、所述包括启动参数结构体的信息。如上所述,所述包括smbios信息的结构体包括:所述smbios的版本信息、视频传输标准vga的基地址、包括所述其他第一结构体指针的结构体。如上所述,所述包括所述其他第一结构体指针的结构体包括:所述包括所述至少一个第一结构体信息的结构体的偏移地址、所述包括内存地址空间信息的结构体的偏移地址、所述包括计算机系统的信息的结构体的偏移地址、所述包括中央处理器cpu信息的结构体的偏移地址、所述包括中断信息的结构体的偏移地址、所述包括板载设备信息的结构体的偏移地址。如上所述,所述包括所述至少一个第一结构体信息的结构体包括:所述至少一个第一结构体的版本信息、用于标识所述操作系统内核和所述bios是否设置所述至少一个第一结构体的信息。如上所述,所述包括所述至少一个第一结构体信息的结构体还包括:所述至少一个第一结构体的大小、所述至少一个第一结构体的描述信息。如上所述,所述包括内存地址空间信息的结构体包括:所述包括内存地址空间信息的结构体的版本信息、内存表的数量、内存的频率、包括当前内存表的信息的结构体。如上所述,所述包括当前内存表的信息的结构体包括:所述当前内存表所在的节点、所述当前内存表的类型、所述当前内存表的起始地址、所述当前内存表的大小。如上所述,所述包括计算机系统的信息的结构体包括:系统类型、处理器的数量。如上所述,所述包括计算机系统的信息的结构体还包括:所述计算机系 统的版本信息、串口设备数量、传感器设备数量、用于标识是否存在嵌入式控制器ec的信息、平台设备的ec名字、所述ec寄存器的基地址、用于标识是否存在可信密码模块tcm的信息、平台设备的tcm名字、所述tcm寄存器的基地址、所述计算机系统的缺陷。如上所述,所述包括计算机系统的信息的结构体还包括:包括串口设备信息的结构体,和/或,包括传感器设备信息的结构体。如上所述,所述包括串口设备信息的结构体包括:输入/输出i/o类型、所述串口设备的时钟频率、所述串口设备的中断请求号的偏移量、所述串口设备寄存器的基地址。如上所述,所述包括传感器设备信息的结构体包括:平台设备的名字、传感器设备的描述、传感器设备的类型、传感器设备的标识、风扇转速的策略、风扇转速的百分比、传感器控制寄存器的基地址。如上所述,所述包括中央处理器cpu信息的结构体包括:所述cpu的类型、所述cpu的频率、所述cpu的核数、所述cpu的总节点数。如上所述,所述包括中央处理器cpu信息的结构体还包括:所述包括中央处理器cpu信息的结构体的版本信息、所述cpu的型号、所述cpu的启动核的标识、所述cpu的保留核的标识。如上所述,所述包括中断信息的结构体包括:外设部件互连标准pci设备存储空间的起始地址、所述pci设备存储空间的结束地址、所述pci设备输入/输出空间的起始地址、所述pci设备输入/输出空间的结束地址。如上所述,所述包括中断信息的结构体还包括:所述包括中断信息的结构体的版本信息、中断控制器的使能位、中断路由所在的总线号、所述中断控制器的厂商号、所述中断控制器的设备号、中断控制器的类型、超传输ht中断控制器的中断线、所述ht中断控制器使能的中断位、所述中断控制器连接的cpu核的信息、直接内存存取dma的位数、所述pci设备配置空间的起始地址。如上所述,所述包括板载设备信息的结构体包括:所述板载设备的名称、所述板载设备的资源个数、所述板载设备的资源信息、所述板载设备的数据信息。如上所述,所述至少一个第一结构体还包括:包括特殊应用信息的结构 体。如上所述,所述包括特殊应用信息的结构体包括:所述包括特殊应用信息的结构体的版本信息、所述特殊应用的名称、所述特殊应用的类型、所述特殊应用的资源、所述特殊应用的属性。本发明第二方面提供一种操作系统内核的加载装置,所述装置包括:获取模块,用于获取基本输入输出系统bios中的系统信息,所述系统信息包括计算机系统的功能信息;加载模块,用于根据所述获取模块获取的系统信息,加载操作系统内核。如上所述,所述系统信息在所述bios中以至少一个第一结构体变量的形式存在;所述获取模块,具体用于根据所述操作系统内核中预设的第一寄存器的地址,访问所述第一寄存器,以获取通过所述bios写入所述第一寄存器中的第二结构体的指针,并根据所述第二结构体的指针,访问所述内存,以获取通过所述bios写入所述内存中的所述至少一个第一结构体变量的值;所述第一寄存器为中央处理器的寄存器;所述第二结构体为所述至少一个第一结构体中的一个第一结构体,所述第二结构体包括所述至少一个第一结构体中除所述第二结构体之外的其他第一结构体的指针;则所述加载模块,具体用于将所述至少一个第一结构体变量的值赋值给所述操作系统内核中的至少一个第三结构体。如上所述,所述装置还包括:处理模块,用于在所述获取模块根据所述操作系统内核中预设的第一寄存器的地址,访问所述第一寄存器之前,通过运行所述bios,将所述bios中的所述至少一个第一结构体写入内存中,并根据所述bios中预设的第一寄存器的地址,将所述第二结构体的指针写入所述第一寄存器中。如上所述,所述第一寄存器为a2寄存器。如上所述,所述获取模块,用于获取通过所述bios写入所述内存中的所述至少一个第一结构体变量的值,具体为:所述获取模块,具体用于根据所述操作系统内核中预设的每个第一结构体的类型,从所述内存中获取所述每个第一结构体变量的值。本发明提供的操作系统内核的加载方法和装置,在mips架构的计算机 系统中,将原本设置在操作系统内核中适配该计算机系统的系统信息设置在bios中,使得计算机系统可以通过bios中的系统信息,正常加载操作系统内核,从而在计算机系统运行的过程中,操作系统内核可以根据该系统信息,为各应用程序提供对计算机硬件的正确的访问,而不需要再在操作系统内核中专门预设适配该计算机系统的系统信息,即操作系统内核中可以不再包括不具有通用性的系统信息,使得任一计算机系统都可以使用该操作系统内核,提高了操作系统内核的兼容性。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本发明提供的操作系统内核的加载方法实施例一的流程示意图;图2为本发明提供的操作系统内核的加载方法实施例二的流程示意图;图3为本发明提供的操作系统内核的加载装置实施例一的结构示意图;图4为本发明提供的操作系统内核的加载装置实施例二的结构示意图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。本发明提供的操作系统内核的加载方法和装置,适用于mips架构的计算机系统,旨在解决现有技术中mips架构的计算机系统在使用操作系统内核为应用程序提供对计算机硬件的访问时,因操作系统内核无法适配不同的计算机系统主板,导致操作系统兼容性较差的问题。需要说明的是,本发明提供的操作系统内核的加载方法的执行主体可以为操作系统内核的加载装置,还可以为集成了操作系统内核的加载装置的mips架构的计算机系统,下面本发明以集成了操作系统内核的加载装置的 mips架构的计算机系统(简称:计算机系统)为执行主体来介绍本发明各实施例。本发明中涉及的基本输入输出系统(basicinputoutputsystem,简称:bios),还可以称为固件。下面以具体地实施例对本发明的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。图1为本发明提供的操作系统内核的加载方法实施例一的流程示意图,本实施例涉及的是计算机系统根据bios中的系统信息,加载操作系统内核的具体过程。本实施例的方法适用于任一待加载操作系统内核的计算机系统,可以提高操作系统内核的兼容性。如图1所示,该方法可以包括:s101、获取bios中的系统信息,该系统信息包括计算机系统的功能信息。具体的,当上述计算机系统需要加载其操作系统内核时,就可以先获取预设在bios中的系统信息,其中,该系统信息为与该计算机系统主板适配的系统信息,该系统信息可以包括该计算机系统的所有功能信息,具体与计算机主板的结构和操作系统内核的设计等有关,本发明对此不进行限定,例如:该系统信息可以包括cpu信息(例如:cpu频率、cpu型号等)、中断号信息(例如:每个中断源对应的中断号等)、内存信息(例如:内存的地址空间信息等)等信息。可选的,上述计算机系统可以直接在bios中读取上述系统信息,还可以通过执行bios获取上述系统信息等。s102、根据上述系统信息,加载操作系统内核。具体的,上述计算机系统可以将上述获取到的系统信息写入其操作系统内核中,以对其操作系统内核进行加载,从而使得计算机系统在运行的过程中,其操作系统内核可以根据其上的系统信息,为各应用程序提供对计算机硬件的正确的访问。现有技术中,上述系统信息预设在计算机系统的操作系统内核中,由于系统信息与计算机系统主板一一对应,因此,不同的计算机系统主板对应的系统信息也就不同,使得任意两个具有不同计算机主板的计算机系统对应的系统信息不同,从而使得任意两个具有不同计算机主板的计算机系统上操作 系统内核中预设的系统信息也就不同,进而使得任意两个具有不同计算机主板的计算机系统无法使用同一操作系统内核,操作系统兼容性较差。而在本实施例中,计算机系统的系统信息不再预设在操作系统内核中,而是预设在bios中,因此,对于任意两个具有不同计算机主板的计算机系统,仅需要在每个计算机系统的bios中设置适配于其计算机系统主板的系统信息即可,即为每个计算机系统配置适配其计算机系统主板的bios,即对于任意两个具有不同计算机主板的计算机系统,仅需要简单为该两个计算机系统更换承载bios的芯片即可,而不需要再去操作系统内核中单独设置适配于其计算机系统主板的系统信息,这样,操作系统内核可以仅包括适配于所有计算机系统主板的程序和功能,以使得任意两个具有不同计算机主板的计算机系统可以使用同一操作系统内核,使得操作系统内核可以适配具有不同计算机主板的任一计算机系统,提高了操作系统内核的兼容性。本发明提供的操作系统内核的加载方法,在mips架构的计算机系统中,将原本设置在操作系统内核中适配该计算机系统的系统信息设置在bios中,使得计算机系统可以通过bios中的系统信息,正常加载操作系统内核,从而在计算机系统运行的过程中,操作系统内核可以根据该系统信息,为各应用程序提供对计算机硬件的正确的访问,而不需要再在操作系统内核中专门预设适配该计算机系统的系统信息,即操作系统内核中可以不再包括不具有通用性的系统信息,使得任一计算机系统都可以使用该操作系统内核,提高了操作系统内核的兼容性。图2为本发明提供的操作系统内核的加载方法实施例二的流程示意图,在本实施例中,系统信息作为至少一个第一结构体变量预设在bios中,第一寄存器作为bios与操作系统内核之间的接口,其中,bios中和操作系统内核中均预设有第一寄存器的地址,本实施例涉及的是计算机系统根据bios中的至少一个第一结构体,加载操作系统内核的具体过程。具体实施该方法之前,还可以包括下述步骤:通过运行bios,将bios中的至少一个第一结构体写入内存中,并根据bios中预设的第一寄存器的地址,将第二结构体的指针写入第一寄存器中。其中,该第二结构体为上述至少一个第一结构体中的一个第一结构体,该第二结构体除了包括计算机系统的一些功能信息之外,还可以包括上述至少一个第一结构体中除第二结构 体之外的其他第一结构体的指针,其中,这里所说的其他第一结构体的指针可以为其他第一结构体在内存中的存储地址,还可以为其他第一结构体相对于第二结构体的偏移地址。示例性的,假定系统信息作为3个第一结构体变量预设在bios中,分别为第一结构体a、第一结构体b、第一结构体c,其中,第一结构体a除了包括一部分系统信息之外,还包括了第一结构体b相对于第一结构体a的偏移地址、第一结构体c相对于第一结构体a的偏移地址,该第一结构体a即为上述所说的第二结构体。具体的,当上述计算机系统初始上电时,计算机系统就可以运行bios,初始化计算机系统的同时,还可以将预设在bios中的至少一个第一结构体写入内存中,并根据预设在bios中的第一寄存器的地址,将第二结构体在内存中的地址写入第一寄存器中,即将第二结构体的指针写入第一寄存器中。其中,上述第一寄存器可以为中央处理器(centralprocessingunit,简称:cpu)中的任一寄存器,例如:a2寄存器、a3寄存器等,具体可以根据用户的需求设定。如图2所示,该方法可以包括:s201、根据操作系统内核中预设的第一寄存器的地址,访问第一寄存器,以获取通过bios写入第一寄存器中的第二结构体的指针。具体的,上述作为bios与操作系统内核之间的接口的第一寄存器,用于在计算机系统加载操作系统内核时,将通过运行bios所写入内存中的第二结构体的指针传递给操作系统内核,即将第二结构体在内存中的地址传递给操作系统内核,以使得上述计算机系统可以根据操作系统内核中预设的第一寄存器的地址,访问到第一寄存器,从而在第一寄存器中获取到该第二结构体在内存中的地址。s202、根据第二结构体的指针,访问内存,以获取通过bios写入内存中的至少一个第一结构体变量的值。具体的,如上述所说,上述第二结构体中除了包括计算机系统的一些功能信息之外,还可以包括其他第一结构体的指针,以使得上述计算机系统在获取到第二结构体的指针之后,就可以根据该第二结构体的指针,在内存中获取到第二结构体变量的值,同时还可以获取到其他第一结构体的指针,进而根据这些其他第一结构体的指针,在内存中进一步地获取到通过运行bios 写入到内存中的其他第一结构体变量的值,从而就达到了获取bios中的系统信息的目的。相比较于将写入内存中的所有第一结构体的指针都写入到第一寄存器中的方式,上述仅将第二结构体的指针写入第一寄存器的方式,可以降低第一寄存器的存储空间的占用率。s203、将至少一个第一结构体变量的值赋值给操作系统内核中的至少一个第三结构体。具体的,在本实施例中,操作系统内核中预设有至少一个第三结构体,该至少一个第三结构体与上述至少一个第一结构体一一对应,即操作系统内核中的每个第三结构体对应bios中的一个第一结构体,即该第三结构体与第一结构体对应的功能信息相同,区别仅在于上述至少一个第一结构体变量已赋值,而该至少一个第三结构体变量没有赋值,这样,当计算机系统获取到上述至少一个第一结构体之后,就可以通过将上述至少一个第一结构体变量的值赋值给该至少一个第三结构体变量的方式,将系统信息写入操作系统内核中,从而完成对操作系统内核的加载,进而使得计算机系统在运行的过程中,其操作系统内核可以根据其上的系统信息,为各应用程序提供对计算机硬件的正确的访问。本发明提供的操作系统内核的加载方法,在mips架构的计算机系统中,将原本设置在操作系统内核中适配该计算机系统的系统信息设置在bios中,使得计算机系统可以通过bios中的系统信息,正常加载操作系统内核,从而在计算机系统运行的过程中,操作系统内核可以根据该系统信息,为各应用程序提供对计算机硬件的正确的访问,而不需要再在操作系统内核中专门预设适配该计算机系统的系统信息,即操作系统内核中可以不再包括不具有通用性的系统信息,使得任一计算机系统都可以使用该操作系统内核,提高了操作系统内核的兼容性。如上述实施例所说,上述系统信息可以以至少一个第一结构体变量的形式设置在bios中,该至少一个第一结构体中的每个第一结构体的类型可以相同,也可以不同,具体与每个第一结构体的类型定义有关。例如:上述各第一结构体的类型定义可以分为如下几种:#defineu64phys_t、#defineu64unsignedlonglong、#defineu32unsignedint、#defineu16unsignedshort、#defineu8unsignedchar等,具体实现时,可以根据用户的需求进行上述第一结构体 的类型的定义。则在这种情况下,上述获取通过bios写入内存中的至少一个第一结构体变量的值,具体可以包括:根据操作系统内核中预设的每个第一结构体的类型,从内存中获取每个第一结构体变量的值,从而使得计算机系统可以根据写入内存中的每个第一结构体变量的值,分别为操作系统内核中与该第一结构体对应的第三结构体的变量赋值,以完成对操作系统内核的加载。下面,以一个示例来详细描述上述预设在bios中的至少一个第一结构体,则在本发明的一种实现方式中,上述至少一个第一结构体可以包括:包括启动参数的结构体、包括所述至少一个第一结构体信息的结构体、包括内存地址空间信息的结构体、包括计算机系统的信息的结构体、包括中央处理器cpu信息的结构体、包括中断信息的结构体、包括板载设备信息的结构体、包括特殊应用信息的结构体等。其中,每个第一结构体对应的功能信息可以如下述表1所示:表1需要说明的是,上述表1所示的第一结构体仅为一种示例,具体实现时,bios中可以包括上述表1所示的所有第一结构体,还可以包括上述表1所示的部分第一结构体,还可以包括未在表1中所示的第一结构体,具体可以根据计算机系统上的主板结构以及操作系统内核的设计选择所需设置在bios中的各第一结构体,本发明对此不进行限定。在本示例中,上述第一结构体structboot_params(即包括启动参数的结构体)为第二结构体,即structboot_params中包括上述表1中除struct boot_params之外的其他所有第一结构体的指针(在本示例中,其他第一结构体的指针为其他第一结构体相对于structboot_params的偏移地址,具体内容将在后文中进行详细描述。上述第一结构体structboot_params(即包括启动参数的结构体)的代码可以如下:如上述代码所示,上述第一结构体structboot_params所包括的功能信息可以如下述表2所示:表2需要说明的是,上述第一结构体structboot_params(即包括启动参数的结构体)包括的:包括屏幕信息的结构体、包括系统描述符表的结构体、包括efi信息的结构体,具体可以根据计算机系统上的主板结构以及操作系统内核的设计选择赋值或者保留。其中,上述第一结构体structboot_params所包括的structefi(即包括efi的结构体)的代码可以如下:如上述代码所示,上述structefi(即包括efi的结构体)所包括的功能信息可以如下述表3所示:表3需要说明的是,上述structefi(即包括efi的结构体)所包括的:efi系统表、mps信息、acpi的接口信息、acpi的补充信息、sal表的信息、structboot_params(即包括启动参数结构体)的信息,具体可以根据计算机 系统上的主板结构以及操作系统内核的设计选择赋值或者保留。其中,上述structsmbios_tables(即包括smbios信息的结构体)的代码可以如下:如上述代码所示,上述structsmbios_tables(即包括smbios信息的结构体)所包括的功能信息可以如下述表4所示:表4其中,上述structparam(即包括其他第一结构体指针的结构体)的代码可以如下:在本实施例中,上述第一结构体structboot_params为第二结构体,也就是说,在该structboot_params中包括有表1中除structboot_params之外的其他第一结构体的偏移地址,在本示例中,这些其他第一结构体的偏 移地址包括在structparam中,当然,这些其他第一结构体的偏移地址在structboot_params中也可以以其他的形式存在,本发明对此不进行限定。如上述代码所示,上述structparam(即包括其他第一结构体指针的结构体)所包括的功能信息可以如下述表5所示:表5上述所说的第一结构体structinterface_info(即包括至少一个第一结构体信息的结构体)的代码可以如下:如上述代码所示,上述第一结构体structinterface_info(即包括所述至少一个第一结构体信息的结构体)所包括的功能信息可以如下述表6所示:表6需要说明的是,上述第一结构体structinterface_info(即包括至少一个第一结构体信息的结构体)包括的:至少一个第一结构体的大小、至少一个第一结构体的描述信息,具体可以根据计算机系统上的主板结构以及操作系统内核的设计选择赋值或者保留。上述所说的第一结构体structefi_memory_map(即包括内存地址空间信息的结构体)的代码可以如下:如上述代码所示,上述第一结构体structefi_memory_map(即包括内存地址空间信息的结构体)所包括的功能信息可以如下述表7所示:表7上述所说的第一结构体structsystem(即包括计算机系统的信息的结构体)的代码可以如下:如上述代码所示,上述第一结构体structsystem(即包括计算机系统的信息的结构体)所包括的功能信息可以如下述表8所示:表8需要说明的是,上述第一结构体structsystem(即包括计算机系统的信息的结构体)包括的:计算机系统的版本信息、串口设备数量、传感器设备数量、用于标识是否存在ec的信息、平台设备的ec名字、ec寄存器的基地址、用于标识是否存在tcm的信息、平台设备的tcm名字、tcm寄存器的基地址、计算机系统的缺陷、包括串口设备信息的结构体、包括传感器设备信息的结构体,具体可以根据计算机系统上的主板结构以及操作系统内核的设计选择赋值或者保留。其中,上述structsystem所包括的structuart_device(即包括串口设备信息的结构体)的代码可以如下:需要说明的是,上述代码中的max_uarts用于表示计算机系统的串口设备的最大数量。如上述代码所示,该structuart_device(即包括串口设备信息的结构体)所包括的功能信息可以如下述表9所示:表9其中,上述structsystem所包括的structsensor_device(即包括传感器设备信息的结构体)的代码可以如下:需要说明的是,上述代码中的max_sensors可以用于标识计算机系统中传感器设备的最大数量。如上述代码所示,该structsensor_device(即包括传感器设备信息的结构体)所包括的功能信息可以如下述表10所示:表10上述所说的第一结构体structefi_cpuinfo(即包括中央处理器cpu信息的结构体)的代码可以如下:如上述代码所示,该第一结构体structefi_cpuinfo(即包括中央处理器cpu信息的结构体)所包括的功能信息可以如下述表11所示:表11其中,上述第一结构体structefi_cpuinfo(即包括cpu信息的结构体)所包括的cpu信息的结构体的版本信息、cpu的型号、cpu的启动核的标 识、cpu的保留核的标识,具体可以根据计算机系统上的主板结构以及操作系统内核的设计选择赋值或者保留。上述所说的第一结构体structirq_source_routing_table(即包括中断信息的结构体)的代码可以如下:如上述代码所示,该第一结构体structirq_source_routing_table(即包括中断信息的结构体)所包括的功能信息可以如下述表12所示:表12其中,上述第一结构体structirq_source_routing_table(即包括中断信息的结构体)包括的:包括中断信息的结构体的版本信息、中断控制器的使能位、中断路由所在的总线号、中断控制器的厂商号、中断控制器的设备号、中断控制器的类型、ht中断控制器的中断线、ht中断控制器使能的中断位、中断控制器连接的cpu核的信息、dma的位数、pci设备配置空间的起始地址,具体可以根据计算机系统上的主板结构以及操作系统内核的设计选择赋值或者保留。上述所说的第一结构体structboard_devices(即包括板载设备信息的结构体)的代码可以如下:如上述代码所示,该第一结构体structboard_devices(即包括板载设备信息的结构体)所包括的功能信息可以如下述表13所示:表13需要说明的是,在本示例中,上述第一结构体structboard_devices(即包括板载设备信息的结构体)所包括的structresource的代码可以如下:上述所说的第一结构体structspecial_attribute(即包括特殊应用信息的结构体)的代码可以如下:如上述代码所示,该第一结构体structspecial_attribute(即包括特殊应用信息的结构体)所包括的功能信息可以如下述表14所示:表14需要说明的是,上述所述的至少一个第一结构体形式的系统信息、以及各第一结构体所对应的功能信息仅为一种示意,具体实现时,可以根据计算机系统主板以及计算机系统上的操作系统内核的设计对上述至少一个第一结 构体和每个第一结构体所包括的内容以及相互之间的关系进行适应性的修改或调整。本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。图3为本发明提供的操作系统内核的加载装置实施例一的结构示意图,如图3所示,该操作系统内核的加载装置可以包括:获取模块11和加载模块12;其中,获取模块11,用于获取bios中的系统信息,其中,上述系统信息可以包括计算机系统的功能信息;加载模块12,用于根据获取模块11获取的系统信息,加载操作系统内核。本发明提供的操作系统内核的加载装置,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。图4为本发明提供的操作系统内核的加载装置实施例二的结构示意图,如图4所示,进一步地,在上述实施例的基础上,上述系统信息在bios中可以以至少一个第一结构体变量的形式存在,则上述装置还可以包括:处理模块13,用于在获取模块11根据操作系统内核中预设的第一寄存器的地址,访问第一寄存器之前,通过运行bios,将bios中的至少一个第一结构体写入内存中,并根据bios中预设的第一寄存器的地址,将第二结构体的指针写入第一寄存器中。其中,上述第一寄存器可以为a2寄存器。则在这种情况下,上述获取模块11,具体用于根据操作系统内核中预设的第一寄存器的地址,访问第一寄存器,以获取通过bios写入第一寄存器中的第二结构体的指针,并根据第二结构体的指针,访问内存,以获取通过bios写入内存中的至少一个第一结构体变量的值;第一寄存器为中央处理器的寄存器;上述第二结构体为至少一个第一结构体中的一个第一结构体,该第二结构体包括至少一个第一结构体中除第二结构体之外的其他第一结构体的指针;则加载模块12,具体用于将至少一个第一结构体变量的值赋值给操作系统内核中的至少一个第三结构体。本发明提供的操作系统内核的加载装置,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。进一步地,上述获取模块11,用于获取通过bios写入内存中的至少一个第一结构体变量的值,具体可以为:获取模块11,具体用于根据操作系统内核中预设的每个第一结构体的类型,从内存中获取每个第一结构体变量的值。本发明提供的操作系统内核的加载装置,可以执行上述方法实施例,其实现原理和技术效果类似,在此不再赘述。最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1