【技术实现步骤摘要】
一种内核崩溃恢复方法、装置、设备及存储介质
[0001]本申请实施例涉及但不限于计算机领域,尤其涉及一种内核崩溃恢复方法、装置、设备及存储介质。
技术介绍
[0002]现代的操作系统越来越复杂,就不可避免的会出现各种错误,而操作系统的内核错误是比较严重的一种。一旦内核出现严重错误,比如内核崩溃时,操作系统默认的操作都是重启整个系统,而重启系统会导致:1)业务中断;2)可能会丢失数据。
技术实现思路
[0003]有鉴于此,本申请实施例提供一种内核崩溃恢复方法、装置、设备及存储介质。
[0004]本申请实施例的技术方案是这样实现的:
[0005]一方面,本申请实施例提供一种内核崩溃恢复方法,所述方法包括:
[0006]当主内核崩溃时,所述主内核控制处理器保存正在执行的正常线程的上下文;
[0007]当所述正常线程的上下文保存完成后,所述主内核在第一内存区域中初始化已加载的备用内核;其中,所述第一内存区域为所述主内核在物理内存中预留的内存区域;
[0008]当初始化完成后,所 ...
【技术保护点】
【技术特征摘要】
1.一种内核崩溃恢复方法,其特征在于,所述方法包括:当主内核崩溃时,所述主内核控制处理器保存正在执行的正常线程的上下文;当所述正常线程的上下文保存完成后,所述主内核在第一内存区域中初始化已加载的备用内核;其中,所述第一内存区域为所述主内核在物理内存中预留的内存区域;当初始化完成后,所述备用内核通过访问所述主内核的内核数据结构,获得所述正常线程的上下文;所述备用内核根据所述正常线程的上下文,恢复全部进程的运行状态。2.根据权利要求1所述的方法,其特征在于,所述主内核控制处理器保存正在执行的正常线程的上下文之前,所述方法还包括:处理器上电后,引导程序基于主内核文件,加载并初始化主内核;所述主内核基于备用内核文件,在所述第一内存区域中加载备用内核;其中,所述主内核文件与所述备用内核文件中的内存偏移量不同。3.根据权利要求2所述的方法,其特征在于,所述方法还包括:当所述全部进程的运行状态恢复后,所述备用内核作为新的主内核运行,回收可用的物理内存;所述新的主内核在物理内存中预留第二内存区域,并轮流基于所述主内核文件和所述备用内核文件二者之一,在所述第二内存区域中加载新的备用内核;其中,所述新的主内核对应的内核文件与所述新的备用内核对应的内核文件不同。4.根据权利要求1所述的方法,其特征在于,所述处理器包括正常处理器和由主内核崩溃导致崩溃的处理器;对应地,所述当主内核崩溃时,所述主内核控制处理器保存正在执行的正常线程的上下文,包括:当主内核崩溃时,所述主内核通过错误处理机制,控制所述崩溃的处理器向正常处理器发送不可屏蔽中断;所述主内核控制每一所述正常处理器接收所述不可屏蔽中断后,保存正在执行的线程的上下文;所述当所述正常线程的上下文保存完成后,所述主内核在第一内存区域中初始化已加载的备用内核,包括:所述主内核控制每一所述正常处理器在保存完正在执行的线程的上下文后停止运行;所述主内核检测到全部正常处理器停止后,控制所述崩溃的处理器执行所述备用内核的初始化程序,在第一内存区域中初始化已加载的备用内核。5.根据权利要求1所述的方法,其特征在于,所述正常线程的上下文包括所述主内核的进程描述符链表、内存区域描述符表、虚拟内存页、文件描述符表;对应地,所述备用内核根据所述正常线程的上下文,恢复全部进程的运行状态,包括:所述备用内核访问所述主内核的进程描述符链表,读取待恢复的进程列表;所述备用内核为所述待恢复的进程列表中的每一待恢复进程,创建一个新进程;所述备用内核根据所述主内核的内存区域描述符列表的内容,在每一所述新进程中分别恢复对应的待恢复进程的用户内存空间;所述备用内核根据所述主内核的每个虚拟内存页的内容,在每一所述新进程中分别恢
复对应的待恢复进程的硬件页表和交换页表;所述备用内核根据所述主内核的文件描述符表的内容,在每一所述新进程中恢复打开的文件。6.根据权利要求5所述的方法,其特征在于,所述备用内核根据所述主内核的内存区域描述符列表的内容,在每一所述新进程中分别恢复对应的待恢复进程的用户内存空间,包括:所述备用内核访问所述主内核中每一所述待恢复进...
【专利技术属性】
技术研发人员:丁翔,
申请(专利权)人:中国移动通信集团有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。