[发明专利]系统日志获取方法和装置有效
申请号: | 201310201549.2 | 申请日: | 2013-05-27 |
公开(公告)号: | CN103336736B | 公开(公告)日: | 2017-04-12 |
发明(设计)人: | 杨建平;祁德春 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F11/34 | 分类号: | G06F11/34 |
代理公司: | 北京同立钧成知识产权代理有限公司11205 | 代理人: | 刘芳 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 系统 日志 获取 方法 装置 | ||
技术领域
本发明实施例涉及计算机系统应用技术领域,尤其涉及一种系统日志获取方法和装置。
背景技术
为使计算机的可靠性不断提高,各类系统通常配设有记录系统中硬件、软件和系统问题的系统日志,同时该系统日志还可以记录系统中发生的事件,则当计算机系统出现故障,用户可以通过系统日志来检查故障原因,为了在系统运行时可及时记录系统的运行状况,上述用于存储系统日志的存储空间所对应的存储地址被配置在内核镜像文件中,具体的,图1为现有技术中内核镜像文件的结构示意图。如图1所示,内核镜像文件包括代码段(.text),初始化数据段(.date)和未初始化的数据段(.bss),上述存储地址在内核镜像文件初始配置时被编译至内核镜像文件的未初始化数据段内,则系统运行时,可根据内核镜像文件中系统日志的存储地址将系统的运行状况,即系统日志存储在存储地址对应的存储空间中,由此也可以理解为系统日志放置在内核镜像文件的未初始化数据段内。
系统的启动是通过加载内核镜像文件至系统内存并运行该内核镜像文件,以完成系统的启动。图2为现有技术中系统内存加载内核镜像文件的示意图。如图2所示,在由系统的重启时刻开始的启动过程中,是将内核镜像文件以压缩文件的形式加载到系统内存的镜像文件区,该压缩文件中仅包括内核镜像文件的代码段和初始化数据段,而内核镜像文件的未初始化数据段直接加载至系统内存中镜像文件区的对应位置;在系统内存中,用于加载未初始化数据段的位置之前,存在一段用于加载解压后的内核镜像文件的加载空间,即解压文件加载区;该解压文件加载区用于放置解压后的代码段和初始化数据段,即当上述压缩文件被解压后,则在系统内存中便存在如图1所示的内核镜像文件,此时在系统内存中完整的内核镜像文件占用的存储空间为镜像文件区。假设压缩文件直接被加载至解压文件加载区,则解压缩后的代码段和初始化数据段便与压缩文件在解压文件加载区中发生重叠现象,因此在系统的启动过程中,先使压缩文件加载至未初始化数据段所在的位置处,随后将对压缩文件解压后得到的代码段和初始化数据段加载至解压文件加载区,避免了解压缩后的代码段和初始化数据段与压缩文件在解压文件加载区中发生重叠现象,但如此一来,未初始化数据段中的系统日志的存储地址被压缩文件覆盖,且未初始化数据段在系统重启过程中被清零处理,也就是说系统日志会被清除,无法获知当前重启时刻之前系统的运行状况。
为获取系统日志,现有技术中通常在用户态(即系统启动过程结束后进入的面向用户的应用空间)时开启守护进程,即在系统正常运行中,该守护进程从系统内存中的内核镜像文件中读取并保存了系统日志,从而即使系统发生重启并且启动过程结束后,用户依然可以查看该守护进程保存的、在系统重启时刻之前的系统日志。但是在用户态时开启守护进程增加了CPU(Central Processing Unit,中央处理器)的进程管理负担,加大了系统功耗,降低了计算机的工作性能。
发明内容
本发明实施例提供一种系统日志获取方法和装置,用于在不增加系统功耗的情况下获取系统日志。
第一方面,本发明实施例提供一种系统日志获取方法,在系统的当前重启时刻,将内核镜像文件加载到系统内存中的镜像文件区;其中,所述内核镜像文件与系统日志之间具有关联性;
在所述当前重启时刻之后的预设时刻,判断所述当前重启是否为非正常重启,若是,则根据所述内核镜像文件与所述系统日志之间的关联性获取所述系统日志,并将所述系统日志存储至系统的预留内存。
结合第一方面,在第一实施方式中,在所述系统的当前重启时刻之前,所述方法还包括:
在配置所述内核镜像文件时,将所述系统日志的存储地址关联至所述内核镜像文件的初始化数据段;
则所述根据内核镜像文件与系统日志之间的关联性获取所述系统日志,包括:
从所述内核镜像文件的初始化数据段中获取所述系统日志的存储地址,根据所述系统日志的存储地址从与所述系统日志的存储地址对应的存储空间中获取所述系统日志。
结合第一方面,在第二实施方式中,所述预留内存位于系统内存中的非镜像文件区。
结合第一方面的第二实施方式,在第三实施方式中,所述判断所述重启是否为非正常重启,包括:
识别所述预留内存中的复位标识变量的值;
根据所述复位标识变量的值判断所述当前重启是否为非正常重启。
结合第一方面至第一方面的第三实施方式,在第四实施方式中,所述将所述系统日志存储至系统的预留内存之后,所述方法还包括:
运行所述内核镜像文件以启动内核的空间;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310201549.2/2.html,转载请声明来源钻瓜专利网。