地址空间分配方法和装置制造方法及图纸

技术编号:20915547 阅读:19 留言:0更新日期:2019-04-20 09:30
本发明专利技术提供一种地址空间分配方法和装置,该方法包括:根据预设的规范,获取传递给内核的初始地址空间;初始地址空间中包括低端内存空间和高端内存空间;从低端内存空间中划分出预设大小的地址空间,作为固件保留空间;将高端内存空间以及低端内存空间中除去固件保留空间以外的剩余内存空间作为内核地址空间,并将内核地址空间传递给内核使用;将固件保留空间作为运行时服务的专用地址空间。从而可以在不对操作系统内核做修改的前提下,解决UEFI与Linux内核之间的参数传递问题,使得MIPS架构在Runtime Services支持不完善的情况下能够使用Runtime Services的相应功能。

Address Space Allocation Method and Device

The invention provides an address space allocation method and device, which includes: acquiring the initial address space passed to the kernel according to the preset specification; including low-end memory space and high-end memory space in the initial address space; dividing the preset size address space from low-end memory space as firmware reserved space; and taking high-end memory space and low-end memory space as firmware reserved space. Remaining memory space except firmware reserve space is used as the kernel address space, and the kernel address space is passed to the kernel for use; firmware reserve space is used as the dedicated address space of runtime services. Thus, the problem of parameter transfer between UEFI and Linux kernel can be solved without modifying the operating system kernel, so that the MIPS architecture can use the corresponding functions of Runtime Services when the support of Runtime Services is not perfect.

【技术实现步骤摘要】
地址空间分配方法和装置
本专利技术涉及计算机
,尤其涉及一种地址空间分配方法和装置。
技术介绍
UEFI作为操作系统和硬件之间的接口,最主要功能就是为操作系统加载器准备软件和硬件资源。目前,UEFI是以启动服务(BootServices)和运行时服务(RuntimeServices)的形式提供给操作系统和UEFI应用程序使用的。其中,RuntimeServices及其相关的数据结构从进入驱动执行环境(DriverExecutionEnvironment,DXE)阶段被初始化,直到操作系统结束,都存在并向上层(操作系统、操作系统加载器、UEFI应用程序或UEFI驱动)提供服务。为了使用RuntimeServices,需要操作系统添加相应的功能。而现有的Linux内核中并未添加相关无内部互锁流水级的微处理器(Microprocessorwithoutinterlockedpipedstages,MIPS)架构对RuntimeServices的支持功能,因此需要在内核下添加相应的架构,才能实现对RuntimeServices的支持。但是在内核下添加相应的架构,需要对操作系统的内核做修改,工作量很大,且容易影响内核的其他架构功能。
技术实现思路
本专利技术提供一种地址空间分配方法和装置,可以在不对操作系统内核做修改的前提下,解决UEFI与Linux内核之间的传参问题,使得MIPS架构在RuntimeServices支持不完善的情况下能够使用RuntimeServices的相应功能。第一方面,本专利技术实施例提供一种地址空间分配方法,包括:根据预设的规范,获取传递给内核的初始地址空间;所述初始地址空间中包括低端内存空间和高端内存空间;从所述低端内存空间中划分出预设大小的地址空间,作为固件保留空间;将所述高端内存空间,以及低端内存空间中除去固件保留空间以外的剩余内存空间作为内核地址空间,并将所述内核地址空间传递给内核使用;将所述固件保留空间作为运行时服务的专用地址空间。在一种可能的设计中,从所述低端内存空间中划分出预设大小的地址空间,作为固件保留空间,包括:确定所述低端内存空间的地址范围;将所述地址范围中的最高位地址作为起始地址,按照低位地址方向,划分出预设大小的地址空间作为固件保留空间。在一种可能的设计中,当所述低端内存空间为256MB,地址范围为0x0000_0000~0x0FFF_FFFF时;划分地址范围为0x0F00_0000~0x0FFF_FFFF的空间为固件保留空间。在一种可能的设计中,将所述固件保留空间作为运行时服务的专用地址空间,包括:将所述固件保留空间划分为多个子空间,所述子空间用于存储运行时服务所执行的功能代码,以及运行时服务的相关数据;所述相关数据包括:系统管理基本输入输出系统SMBIOS的相关结构列表、电源管理需要保存的数据、内核传递参数;所述功能代码包括:操作系统关机代码和重启代码。在一种可能的设计中,所述固件保留空间还包括:调试地址空间、功能扩展空间、共享地址空间;其中,所述共享地址空间接收内核和BIOS的访问。第二方面,本专利技术实施例提供一种地址空间分配装置,包括:获取模块,用于根据预设的规范,获取传递给内核的初始地址空间;所述初始地址空间中包括低端内存空间和高端内存空间;划分模块,用于从所述低端内存空间中划分出预设大小的地址空间,作为固件保留空间;处理模块,用于将所述高端内存空间,以及低端内存空间中除去固件保留空间以外的剩余内存空间作为内核地址空间,并将所述内核地址空间传递给内核使用;将所述固件保留空间作为运行时服务的专用地址空间。在一种可能的设计中,所述划分模块,具体用于:确定所述低端内存空间的地址范围;将所述地址范围中的最高位地址作为起始地址,按照低位地址方向,划分出预设大小的地址空间作为固件保留空间。在一种可能的设计中,当所述低端内存空间为256MB,地址范围为0x0000_0000~0x0FFF_FFFF时;划分地址范围为0x0F00_0000~0x0FFF_FFFF的空间为固件保留空间。在一种可能的设计中,所述处理模块,具体用于:将所述固件保留空间划分为多个子空间,所述子空间用于存储运行时服务所执行的功能代码,以及运行时服务的相关数据;所述相关数据包括:系统管理基本输入输出系统(SystemManagementBasicInputOutputSystem,SMBIOS)的相关结构列表、电源管理需要保存的数据、内核传递参数;所述功能代码包括:操作系统关机代码和重启代码。在一种可能的设计中,所述固件保留空间还包括:调试地址空间、功能扩展空间、共享地址空间;其中,所述共享地址空间接收内核和BIOS的访问。第三方面,本专利技术实施例提供一种地址空间分配系统,包括:存储器和处理器,存储器中存储有所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行第一方面中任一项所述的地址空间分配方法。第四方面,本专利技术实施例一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面中任一项所述的地址空间分配方法。本专利技术提供的地址空间分配方法和装置,通过根据预设的规范,获取传递给内核的初始地址空间;所述初始地址空间中包括低端内存空间和高端内存空间;从所述低端内存空间中划分出预设大小的地址空间,作为固件保留空间;将所述高端内存空间,以及低端内存空间中除去固件保留空间以外的剩余内存空间作为内核地址空间,并将所述内核地址空间传递给内核使用;将所述固件保留空间作为运行时服务的专用地址空间。从而可以在不对操作系统内核做修改的前提下,解决UEFI与Linux内核之间的传参问题,使得MIPS架构在RuntimeServices支持不完善的情况下能够使用RuntimeServices的相应功能。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术一应用场景中的地址空间分布示意图;图2为本专利技术实施例一提供的地址空间分配方法的流程图;图3为本专利技术实施例一中固件保留空间的分布示意图;图4为本专利技术实施例二提供的地址空间分配装置的结构示意图;图5为本专利技术实施例三提供的地址空间分配系统的结构示意图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。本专利技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本专利技术的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列本文档来自技高网...

【技术保护点】
1.一种地址空间分配方法,其特征在于,包括:根据预设的规范,获取传递给内核的初始地址空间;所述初始地址空间中包括低端内存空间和高端内存空间;从所述低端内存空间中划分出预设大小的地址空间,作为固件保留空间;将所述高端内存空间,以及低端内存空间中除去固件保留空间以外的剩余内存空间作为内核地址空间,并将所述内核地址空间传递给内核使用;将所述固件保留空间作为运行时服务的专用地址空间。

【技术特征摘要】
1.一种地址空间分配方法,其特征在于,包括:根据预设的规范,获取传递给内核的初始地址空间;所述初始地址空间中包括低端内存空间和高端内存空间;从所述低端内存空间中划分出预设大小的地址空间,作为固件保留空间;将所述高端内存空间,以及低端内存空间中除去固件保留空间以外的剩余内存空间作为内核地址空间,并将所述内核地址空间传递给内核使用;将所述固件保留空间作为运行时服务的专用地址空间。2.根据权利要求1所述的方法,其特征在于,从所述低端内存空间中划分出预设大小的地址空间,作为固件保留空间,包括:确定所述低端内存空间的地址范围;将所述地址范围中的最高位地址作为起始地址,按照低位地址方向,划分出预设大小的地址空间作为固件保留空间。3.根据权利要求1或2所述的方法,其特征在于,将所述固件保留空间作为运行时服务的专用地址空间,包括:将所述固件保留空间划分为多个子空间,所述子空间用于存储运行时服务所执行的功能代码,以及运行时服务的相关数据;所述相关数据包括:系统管理基本输入输出系统SMBIOS的相关结构列表、电源管理需要保存的数据、内核传递参数;所述功能代码包括:操作系统关机代码和重启代码。4.根据权利要求3所述的方法,其特征在于,所述固件保留空间还包括:调试地址空间、功能扩展空间、共享地址空间;其中,所述共享地址空间接收内核和BIOS的访问。5.一种地址空间分配装置,其特征在于,包括:获取模块,用于根据预设的规范,获取传递给内核的初始地址空间;所述初始地址空间中包括低端内存空间和高端内...

【专利技术属性】
技术研发人员:赵雪峰李强李超王玉龙
申请(专利权)人:龙芯中科技术有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1