[发明专利]一种保存Linux内核打印信息的方法及装置有效
申请号: | 201410645609.4 | 申请日: | 2014-11-12 |
公开(公告)号: | CN105653247B | 公开(公告)日: | 2019-06-07 |
发明(设计)人: | 王胜华 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F9/4401 | 分类号: | G06F9/4401 |
代理公司: | 北京清源汇知识产权代理事务所(特殊普通合伙) 11644 | 代理人: | 冯德魁 |
地址: | 英属开曼群岛大开*** | 国省代码: | 开曼群岛;KY |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 保存 linux 内核 打印 信息 方法 装置 | ||
本申请公开了一种保存Linux内核打印信息的方法和装置。其中所述保存Linux内核打印信息的方法包括:接收内核打印信息;获取保留内存的环形缓冲区的使用状态数据;根据所述使用状态数据,将所述内核打印信息存储到所述保留内存的环形缓冲区。采用本申请提供的方法,能够在不断电的情况下记录多次启动的内核打印信息,避免了多进程处理和文件写操作,从而达到提高记录多次启动的内核打印信息的实时性的效果。
技术领域
本申请涉及Linux内核领域,具体涉及一种保存Linux内核打印信息的方法及装置。
背景技术
Linux是一个一体化内核系统,实质是一个提供硬件抽象层、磁盘及文件系统控制、多任务等功能的系统软件。一套基于Linux内核的完整操作系统被称为Linux操作系统。目前,Linux操作系统以其高效和灵活性日益得到广泛应用。在Linux操作系统实际运行过程中,为了增强操作系统的稳定性,需要查看日志记录区中的内核打印信息,以便分析系统异常时的状态信息,有效地定位发生系统异常的原因。Linux内核发生的系统异常包括操作系统在不知名的原因下重启,或是操作系统挂死导致的看门狗复位等异常。
一种常用的记录内核打印信息的方法是使用Linux自带的dmesg日志记录内核打印信息。该方法将printk函数的内核打印消息记录到长度为__LOG_BUF_LEN字节的环形缓冲区中,__LOG_BUF_LEN值从4KB到1MB,在配置内核时进行选择。如果环形缓存区被填满的话,printk将绕回环形缓存区的起始位置写入新的记录信息,同时覆盖掉老的记录信息。当需要获取内核打印信息时,可在Linux shell下调用dmesg命令。该命令将从环形缓冲区中读取内核打印信息,并显示在控制台上。采用这种方法的缺点是,只能记录本次启动的内核打印信息,即使在不断电的情况下,也不能实现记录系统前几次启动的内核打印信息。
另一种常用的记录内核打印信息的方法是通过守候进程klogd、syslogd将内核打印信息写入文件。该方法通过printk的环形队列和两个守候进程(syslogd和klogd)记录内核打印信息。Linux系统执行/etc/init.d/sysklogd启动两个守候进程klogd和syslogd。klogd进程通过系统调用syslog()或直接读取/proc/kmsg文件来获取环形缓冲区的内容,并将读取的内容传递给syslogd进程进行处理。syslogd进程根据/etc/syslog.conf中的配置,将内核打印信息写入到/var/log/下的不同文件中。相对上述dmesg日志方法,这种方法的优点是能够实现多次启动的内核打印信息的记录。然而,当系统出现异常后,printk的内核打印信息不但要写入到内存的环形缓冲区中,而且还要等待klogd和syslogd进程来处理新写入的信息。在这两个进程处理后,还要将处理结果写入到磁盘文件中,而磁盘文件的写入操作又是十分耗时的。由此,采用该方法可能导致系统重启前的大量内核打印信息无法被及时的记录下来。可见,由于该方法自身的处理流程过于复杂,而且涉及文件的写入操作,从而影响内核打印信息记录的实时性。
因此,现有技术存在记录多次启动的内核打印信息的处理流程过于复杂且涉及文件写操作的问题。
发明内容
本申请提供一种保存Linux内核打印信息的方法和装置,以解决现有技术存在记录多次启动的内核打印信息的处理流程过于复杂且涉及文件写操作的问题。
本申请提供一种保存Linux内核打印信息的方法,包括:
接收内核打印信息;
获取保留内存的环形缓冲区的使用状态数据;所述保留内存是指自加载引导程序开始即不对其再进行分配的内存,包括头区和环形缓冲区;所述头区存储所述环形缓冲区的使用状态数据,所述使用状态数据至少包括所述保留内存的环形缓冲区的头指针指向的内存地址、尾指针指向的内存地址、环形缓冲区的使用长度和环形缓冲区是否已满标志;所述保留内存的环形缓冲区存储所述内核打印信息;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410645609.4/2.html,转载请声明来源钻瓜专利网。