CN107908537A - 一种基于内核模块异常信息处理的系统及方法 - Google Patents
一种基于内核模块异常信息处理的系统及方法 Download PDFInfo
- Publication number
- CN107908537A CN107908537A CN201711204038.0A CN201711204038A CN107908537A CN 107908537 A CN107908537 A CN 107908537A CN 201711204038 A CN201711204038 A CN 201711204038A CN 107908537 A CN107908537 A CN 107908537A
- Authority
- CN
- China
- Prior art keywords
- module
- kernel
- exception
- information
- deadlock
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 24
- 238000012545 processing Methods 0.000 title abstract description 7
- 230000002159 abnormal effect Effects 0.000 claims description 35
- 230000010365 information processing Effects 0.000 claims description 15
- 238000004891 communication Methods 0.000 claims description 8
- 230000007246 mechanism Effects 0.000 claims description 7
- 230000009471 action Effects 0.000 claims description 6
- 230000008569 process Effects 0.000 claims description 6
- 230000005856 abnormality Effects 0.000 claims 3
- 230000007547 defect Effects 0.000 abstract description 2
- 238000005516 engineering process Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3476—Data logging
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种基于内核模块异常信息处理的系统及方法,包括核心模块,用于提供并注册回调函数;异常信息收集模块,用于系统出现内核异常时收集该异常信息,并通过上述回调函数返回收集的信息,核心模块将返回的信息保存。本发明的一种基于内核模块异常信息处理的系统及方法与现有技术相比,通过向内核注册不同的异常信息回调函数,分类记录异常信息,信息搜集完毕后保存信息,供后续系统分析使用,解决现有技术中无法很好的保存异常信息的缺陷,实现异常信息的可追溯性,实用性强,适用范围广泛,易于推广。
Description
技术领域
本发明涉及计算机技术领域,具体地说是一种实用性强的基于内核模块异常信息处理的系统及方法。
背景技术
随着计算机技术的高速发展,数据量的剧增,计算机得到广泛的有应用。在linux系统中,计算机出现异常时,linux内核部分会记录详细的异常信息,异常就是可以打断CPU正常运行的事件,比如,外部中断、未定义的指令、软中断等。当这些异常发生时,就打断CPU的正常运行,跳到相应的异常处理程序去处理这些异常要求的一些操作。
但用户空间不能直接获取内核空间信息,因而需要捕获异常信息,并保存异常信息,增强系统宕机状态的可追溯性。但是在现在的技术方案中,没有很好的异常信息保存方法。
基于此,亟需一种内核模块异常信息处理技术,来解决该问题。
发明内容
本发明的技术任务是针对以上不足之处,提供一种实用性强的基于内核模块异常信息处理的系统及方法。
一种基于内核模块异常信息处理的系统,包括:
核心模块,用于提供并注册回调函数;
异常信息收集模块,用于系统出现内核异常时收集该异常信息,并通过上述回调函数返回收集的信息,核心模块将返回的信息保存。
所述异常信息收集模块包括panic模块、死锁模块,用于根据内核异常信息的不同类型,分类收集内核异常信息。
所述核心模块与异常信息收集模块之间的通信采用内核通知链机制,相对应的,核心模块注册回调函数是通过向panic模块、死锁模块的通知链注册实现的。
在异常信息收集模块中,当内核异常发生时,核心模块的回调函数被调用,核心模块首先确定异常信息类型,根据内核错误或内核死锁调用panic模块或死锁模块收集信息,并保存异常信息。
所述内核异常的不同类型包括与panic模块对应的异常,该异常为操作系统在监测到内部的致命错误,无法安全处理此错误时采取的动作,包括外部中断、未定义的指令、软中断;与死锁模块对应的异常,即内核死锁。
一种基于内核模块异常信息处理的方法,基于上述系统,其实现过程为:首先向内核注册不同的异常信息回调函数,即通过核心模块向异常信息收集模块完成注册,然后在系统内核发生异常时,通过该回调函数获取并分类记录异常信息,信息搜集完毕后保存信息。
所述注册不同的异常信息回调函数通过异常信息收集模块中的panic模块、死锁模块实现,该panic模块、死锁模块用于根据内核异常信息的不同类型,分类收集内核异常信息。
在进行回调函数注册步骤中,核心模块与异常信息收集模块之间的通信采用内核通知链机制,即:核心模块注册回调函数是通过向panic模块、死锁模块的通知链注册实现的。
当内核异常发生时,核心模块的回调函数被调用,核心模块首先确定异常信息类型,根据内核错误或内核死锁调用panic模块或死锁模块收集信息,并保存异常信息。
分类记录异常信息的步骤是指将内核异常分为:
与panic模块对应的异常,该异常为操作系统在监测到内部的致命错误,无法安全处理此错误时采取的动作,包括外部中断、未定义的指令、软中断;
与死锁模块对应的异常,即内核死锁。
本发明的一种基于内核模块异常信息处理的系统及方法和现有技术相比,具有以下有益效果:
本发明的一种基于内核模块异常信息处理的系统及方法,通过向内核注册不同的异常信息回调函数,分类记录异常信息,信息搜集完毕后保存信息,供后续系统分析使用,解决现有技术中无法很好的保存异常信息的缺陷,实现异常信息的可追溯性,实用性强,适用范围广泛,易于推广。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
附图1是本发明的系统示意图。
附图2为本发明的方法实现流程图。
具体实施方式
为了使本技术领域的人员更好地理解本发明的方案,下面结合具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如附图1所示,一种基于内核模块异常信息处理的系统,包括:
核心模块,用于提供并注册回调函数;
异常信息收集模块,用于系统出现内核异常时收集该异常信息,并通过上述回调函数返回收集的信息,核心模块将返回的信息保存。
所述异常信息收集模块包括panic模块、死锁模块,用于根据内核异常信息的不同类型,分类收集内核异常信息。
panic模块一般是指Panic()函数,是当系统发现无法继续运行下去的故障时将调用它,会导致程序中止,然后由系统显示错误号。内核的panic函数(即panic())的程序代码,就放在内核源码树里的kernel/panic.c 文件中。
死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。
所述核心模块与异常信息收集模块之间的通信采用内核通知链机制,相对应的,核心模块注册回调函数是通过向panic模块、死锁模块的通知链注册实现的。
在异常信息收集模块中,当内核异常发生时,核心模块的回调函数被调用,核心模块首先确定异常信息类型,根据内核错误或内核死锁调用panic模块或死锁模块收集信息,并保存异常信息。
所述内核异常的不同类型包括与panic模块对应的异常,该异常为操作系统在监测到内部的致命错误,无法安全处理此错误时采取的动作,包括外部中断、未定义的指令、软中断;与死锁模块对应的异常,即内核死锁。
如附图2所示,一种基于内核模块异常信息处理的方法,基于上述系统,核心模块和内核异常场景通信采用内核通知链机制。核心模块向panic模块,死锁模块的通知链注册callback函数(notifier_call),当panic发生时,异常核心模块的callback函数被调用;异常核心模块根据异常信息类型调用panic模块或死锁模块收集信息,并保存异常信息。
具体的实现过程为:首先向内核注册不同的异常信息回调函数,即通过核心模块向异常信息收集模块完成注册,然后在系统内核发生异常时,通过该回调函数获取并分类记录异常信息,信息搜集完毕后保存信息。
所述注册不同的异常信息回调函数通过异常信息收集模块中的panic模块、死锁模块实现,该panic模块、死锁模块用于根据内核异常信息的不同类型,分类收集内核异常信息。
在进行回调函数注册步骤中,核心模块与异常信息收集模块之间的通信采用内核通知链机制,即:核心模块注册回调函数是通过向panic模块、死锁模块的通知链注册实现的。
当内核异常发生时,核心模块的回调函数被调用,核心模块首先确定异常信息类型,根据内核错误或内核死锁调用panic模块或死锁模块收集信息,并保存异常信息。
分类记录异常信息的步骤是指将内核异常分为:
与panic模块对应的异常,该异常为操作系统在监测到内部的致命错误,无法安全处理此错误时采取的动作,包括外部中断、未定义的指令、软中断;
与死锁模块对应的异常,即内核死锁。
通过上面具体实施方式,所述技术领域的技术人员可容易的实现本发明。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
Claims (10)
1.一种基于内核模块异常信息处理的系统,其特征在于,包括:
核心模块,用于提供并注册回调函数;
异常信息收集模块,用于系统出现内核异常时收集该异常信息,并通过上述回调函数返回收集的信息,核心模块将返回的信息保存。
2.根据权利要求1所述的一种基于内核模块异常信息处理的系统,其特征在于,所述异常信息收集模块包括panic模块、死锁模块,用于根据内核异常信息的不同类型,分类收集内核异常信息。
3.根据权利要求2所述的一种基于内核模块异常信息处理的系统,其特征在于,所述核心模块与异常信息收集模块之间的通信采用内核通知链机制,相对应的,核心模块注册回调函数是通过向panic模块、死锁模块的通知链注册实现的。
4.根据权利要求2所述的一种基于内核模块异常信息处理的系统,其特征在于,在异常信息收集模块中,当内核异常发生时,核心模块的回调函数被调用,核心模块首先确定异常信息类型,根据内核错误或内核死锁调用panic模块或死锁模块收集信息,并保存异常信息。
5.根据权利要求2所述的一种基于内核模块异常信息处理的系统,其特征在于,所述内核异常的不同类型包括与panic模块对应的异常,该异常为操作系统在监测到内部的致命错误,无法安全处理此错误时采取的动作,包括外部中断、未定义的指令、软中断;与死锁模块对应的异常,即内核死锁。
6.一种基于内核模块异常信息处理的方法,其特征在于,基于上述系统,其实现过程为:首先向内核注册不同的异常信息回调函数,即通过核心模块向异常信息收集模块完成注册,然后在系统内核发生异常时,通过该回调函数获取并分类记录异常信息,信息搜集完毕后保存信息。
7.根据权利要求6所述的一种基于内核模块异常信息处理的方法,其特征在于,所述注册不同的异常信息回调函数通过异常信息收集模块中的panic模块、死锁模块实现,该panic模块、死锁模块用于根据内核异常信息的不同类型,分类收集内核异常信息。
8.根据权利要求7所述的一种基于内核模块异常信息处理的方法,其特征在于,在进行回调函数注册步骤中,核心模块与异常信息收集模块之间的通信采用内核通知链机制,即:核心模块注册回调函数是通过向panic模块、死锁模块的通知链注册实现的。
9.根据权利要求7所述的一种基于内核模块异常信息处理的方法,其特征在于,当内核异常发生时,核心模块的回调函数被调用,核心模块首先确定异常信息类型,根据内核错误或内核死锁调用panic模块或死锁模块收集信息,并保存异常信息。
10.根据权利要求7所述的一种基于内核模块异常信息处理的方法,其特征在于,分类记录异常信息的步骤是指将内核异常分为:
与panic模块对应的异常,该异常为操作系统在监测到内部的致命错误,无法安全处理此错误时采取的动作,包括外部中断、未定义的指令、软中断;
与死锁模块对应的异常,即内核死锁。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711204038.0A CN107908537A (zh) | 2017-11-27 | 2017-11-27 | 一种基于内核模块异常信息处理的系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711204038.0A CN107908537A (zh) | 2017-11-27 | 2017-11-27 | 一种基于内核模块异常信息处理的系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107908537A true CN107908537A (zh) | 2018-04-13 |
Family
ID=61848596
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711204038.0A Pending CN107908537A (zh) | 2017-11-27 | 2017-11-27 | 一种基于内核模块异常信息处理的系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107908537A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109784054A (zh) * | 2018-12-29 | 2019-05-21 | 360企业安全技术(珠海)有限公司 | 行为堆栈信息获取方法及装置 |
CN111338914A (zh) * | 2020-02-10 | 2020-06-26 | 华为技术有限公司 | 故障通知方法及相关设备 |
CN112860529A (zh) * | 2019-11-28 | 2021-05-28 | 瑞昱半导体股份有限公司 | 通用分析装置与方法 |
CN113900914A (zh) * | 2020-06-22 | 2022-01-07 | 阿里巴巴集团控股有限公司 | 异常处理方法、装置、电子设备及计算机存储介质 |
CN115292260A (zh) * | 2022-10-10 | 2022-11-04 | 深圳市广和通无线通信软件有限公司 | 一种系统运行维护处理方法、装置、设备及介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20020063044A (ko) * | 2001-01-26 | 2002-08-01 | 안원수 | 원격교육시스템 |
CN101788949A (zh) * | 2010-03-10 | 2010-07-28 | 中兴通讯股份有限公司 | 一种实现嵌入式系统函数监控的方法及装置 |
CN102063344A (zh) * | 2009-11-18 | 2011-05-18 | 中兴通讯股份有限公司 | 一种系统故障信息转储的方法与系统 |
-
2017
- 2017-11-27 CN CN201711204038.0A patent/CN107908537A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20020063044A (ko) * | 2001-01-26 | 2002-08-01 | 안원수 | 원격교육시스템 |
CN102063344A (zh) * | 2009-11-18 | 2011-05-18 | 中兴通讯股份有限公司 | 一种系统故障信息转储的方法与系统 |
CN101788949A (zh) * | 2010-03-10 | 2010-07-28 | 中兴通讯股份有限公司 | 一种实现嵌入式系统函数监控的方法及装置 |
Non-Patent Citations (1)
Title |
---|
STEVIN_LIANG: ""捕获内核的异常事件"", 《CSDN博客 HTTPS://BLOG.CSDN.NET/LIANGZHENLIANG/ARTICLE/DETAILS/49382461》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109784054A (zh) * | 2018-12-29 | 2019-05-21 | 360企业安全技术(珠海)有限公司 | 行为堆栈信息获取方法及装置 |
CN109784054B (zh) * | 2018-12-29 | 2021-01-15 | 360企业安全技术(珠海)有限公司 | 行为堆栈信息获取方法及装置 |
CN112860529A (zh) * | 2019-11-28 | 2021-05-28 | 瑞昱半导体股份有限公司 | 通用分析装置与方法 |
CN112860529B (zh) * | 2019-11-28 | 2022-11-08 | 瑞昱半导体股份有限公司 | 通用分析装置与方法 |
CN111338914A (zh) * | 2020-02-10 | 2020-06-26 | 华为技术有限公司 | 故障通知方法及相关设备 |
WO2021159897A1 (zh) * | 2020-02-10 | 2021-08-19 | 华为技术有限公司 | 故障通知方法及相关设备 |
CN113900914A (zh) * | 2020-06-22 | 2022-01-07 | 阿里巴巴集团控股有限公司 | 异常处理方法、装置、电子设备及计算机存储介质 |
CN115292260A (zh) * | 2022-10-10 | 2022-11-04 | 深圳市广和通无线通信软件有限公司 | 一种系统运行维护处理方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107908537A (zh) | 一种基于内核模块异常信息处理的系统及方法 | |
EP3120247B1 (en) | Framework for user-mode crash reporting | |
CN100535879C (zh) | 一种嵌入式实时系统中断处理装置及方法 | |
CN100543683C (zh) | 对进程进行监控的方法和系统 | |
US8266395B2 (en) | Detecting attempts to change memory | |
EP2859459B1 (en) | Recovery after input/ouput error-containment events | |
CN105072115B (zh) | 一种基于Docker虚拟化的信息系统入侵检测方法 | |
CN113094240B (zh) | 应用程序的异常监控方法、移动终端和存储介质 | |
US20180165584A1 (en) | Predicting application response time based on metrics | |
US20190050279A1 (en) | Functional safety error reporting and handling infrastructure | |
CN109766196A (zh) | 一种任务调度方法、装置及设备 | |
CN113821257B (zh) | 处理器内核调用栈信息查询方法及装置 | |
US20180136988A1 (en) | Devops management | |
CN114003416B (zh) | 内存错误动态处理方法、系统、终端及存储介质 | |
CN100449495C (zh) | 一种辅助cpu对芯片进行驱动的系统及方法 | |
CN107402806B (zh) | 分布式文件架构的任务处理方法和装置 | |
WO2013104964A1 (en) | Thread based dynamic data collection | |
CN107203454A (zh) | 一种动环监控主机的内核内存监控方法 | |
CN104050051B (zh) | 一种星载计算机的故障诊断方法 | |
CN109739675A (zh) | 一种利用硬件看门狗捕捉程序异常的方法 | |
CN104933161B (zh) | 一种获取来自输入设备的输入数据的方法及装置 | |
CN115185734A (zh) | 基于中断的固件异常诊断方法、装置、计算机设备及存储介质 | |
CN102446131A (zh) | 计算节点的定位方法、系统及管理节点 | |
CN116414632A (zh) | 片上系统的故障定位方法、片上系统、设备及存储介质 | |
CN113886490A (zh) | 分布式数据库中无状态计算实例高可用的实现方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180413 |