【技术实现步骤摘要】
内核启动方法、装置、电子设备、存储介质及程序产品
[0001]本申请涉及操作系统技术,尤其涉及一种内核启动方法、装置、电子设备、存储介质及程序产品。
技术介绍
[0002]内核是Linux操作系统的基本组成部分,是基于硬件的第一层软件扩充,提供操作系统的最基本的功能,例如管理系统的进程、内存、设备驱动程序等,决定着系统的性能和稳定性。为了保证可同时运行多个可执行文件,避免不同可执行文件在执行过程中相互影响,加快运行速度,需要将可执行文件加载至虚拟地址对应的虚拟内存运行,而非直接加载至物理地址对应的物理内存运行。同样的,当要运行被编译成可执行文件的内核时,需要将其加载至虚拟地址对应的虚拟内存运行。
[0003]现有技术中,在编译Linux操作系统的内核时,会将该内核以固定的链接地址编译、链接,这样,内核启动时会被加载至固定的虚拟地址对应的虚拟内存运行。
[0004]然而,若操作系统内核按照固定的虚拟地址运行,攻击者将很容易通过缓冲区溢出攻击获取内核的运行地址(即前述所说的固定的虚拟地址),进而破坏操作系统的内核 ...
【技术保护点】
【技术特征摘要】
1.一种内核启动方法,其特征在于,所述方法应用于运行有可信操作系统的电子设备,所述可信操作系统的内核为位置无关的可执行程序,所述方法包括:接收开机指令;响应于所述开机指令,生成随机数,并将所述随机数存储至第一内存空间中;所述第一内存空间为硬件隔离保护的内存空间;在启动所述内核时,从所述第一内存空间读取所述随机数,并根据所述随机数获取随机偏移地址;根据所述随机偏移地址,以及,内核的链接地址,获取所述内核的实际虚拟地址;所述随机偏移地址位于第一取值范围内,所述链接地址位于第二取值范围内,所述第一取值范围的最大值和所述第二取值范围的最大值之和小于或等于所述内核的虚拟地址空间的最大值,所述第一取值范围的最小值和所述第二取值范围的最小值之和大于或等于所述虚拟地址空间的最小值;在所述内核的实际虚拟地址对应的第二内存空间运行所述内核。2.根据权利要求1所述的方法,其特征在于,所述随机数包括第一数量的字节;所述根据所述随机数获取随机偏移地址,包括:从所述随机数中选取第二数量的字节,构成用于生成所述随机偏移地址的种子,所述第二数量小于所述第一数量;根据内核的一级页表粒度,以及,所述第二取值范围,确定掩码地址;将所述掩码地址,与所述种子进行与运算,得到所述随机偏移地址。3.根据权利要求1或2所述的方法,其特征在于,所述内核包括全局偏移表,以及,第一代码段,所述第一代码段保存有所述全局偏移表中待重定位的符号的描述信息;所述在所述内核的实际虚拟地址对应的第二内存空间运行所述内核,包括:从所述第一代码段获取所述全局偏移表中待重定位的符号的描述信息;根据所述全局偏移表中待重定位的符号的描述信息,以及,所述随机偏移地址,对所述全局偏移表中待重定位的符号的链接地址进行重定位处理,得到处理后的全局偏移表;根据所述处理后的全局偏移表,在所述内核的实际虚拟地址对应的第二内存空间运行所述内核。4.根据权利要求3所述的方法,其特征在于,所述第一代码段为经过加扰处理后的代码段;所述从所述第一代码段获取所述全局偏移表中待重定位的符号的描述信息,包括:对所述第一代码段进行解扰处理;从解扰处理后的第一代码段获取所述全局偏移表中待重定位的符号的描述信息。5.根据权利要求3或4所述的方法,其特征在于,所述根据所述全局偏移表中待重定位的符号的描述信息,以及,所述随机偏移地址,对所述全局偏移表中待重定位的符号的链接地址进行重定位处理,得到处理后的全局偏移表,包括:根据所述全局偏移表中待重定位的符号的描述信息,从所述全局偏移表中获取待重定位的符号的链接地址;将所述待重定位的符号的链接地址与所述随机偏移地址相加,得到所述符号重定位处理后的链接地址;
将所述符号重定位处理后的链接地址更新至所述全局偏移表中,得到处理后的全局偏移表。6.根据权利要求1
‑
5任一项所述的方法,其特征在于,所述方法还包括:利用一次性可编程存储器中的密钥,以及,所述一次性可编程存储器的标识,生成加密密钥...
【专利技术属性】
技术研发人员:朱站清,曲洪丽,
申请(专利权)人:北京紫光展锐通信技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。