一种linux系统自愈方法、装置及自愈系统的制作方法

文档序号:6486464阅读:254来源:国知局
一种linux系统自愈方法、装置及自愈系统的制作方法
【专利摘要】本发明公开了一种linux系统自愈方法、装置及自愈系统,用以解决现有技术中当根文件系统加载出现异常时,linux系统启动挂死的问题。该方法自愈装置接收CPU在linux系统启动时发送的启动信号,当在接收到该启动信号后的设定时间长度内未接收到CPU发送的启动成功信号时,控制该CPU复位。由于本发明实施例中CPU在linux系统不能正常启动时不发送启动成功信号,因此自愈装置在接收到启动信号后的设定时间长度内如果未接收到启动成功信号,则确定linux系统启动失败,控制CPU复位以重启linux系统,从而在根文件系统的加载出现异常时,仍然能够实现linux系统的自愈。
【专利说明】一种I inux系统自愈方法、装置及自愈系统
【技术领域】
[0001]本发明涉及通信【技术领域】,尤其涉及一种Iinux系统自愈方法、装置及自愈系统。【背景技术】
[0002]目前,嵌入式系统中大量采用Iinux操作系统作为核心系统软件。在Iinux系统启动时,首先中央处理器(Central Processing Unit, CPU)运行加载启动程序(bootloader),在成功运行bootloader后,通过bootloader依次加载Iinux内核软件和根文件系统,在成功加载Iinux内核软件和根文件系统后,则可以运行Iinux启动脚本和应用程序。
[0003]但是,在Iinux系统启动时,如果CPU运行bootloader、加载Iinux内核软件、加载根文件系统中的任何一个步骤出现异常,都会导致Iinux系统启动挂死,不能正常启动。
[0004]为了解决Iinux系统启动挂死的问题,现有技术中一般在CPU中设置看门狗模块,通过看门狗模块监控bootloader的运行状态和Iinux内核软件的加载状态,以进行异常控制及自愈。
[0005]然而,现有技术中CPU中设置的看门狗模块并不能监控根文件系统的加载状态,这是因为在根文件系统被成功加载之前,看门狗模块与根文件系统之间并没有通信接口。要想通过看门狗模块监控根文件系统的状态,只能在根文件系统被成功加载之后,通过运行相应的应用程序,为看门狗模块和根文件系统之间提供通信接口。
[0006]因此,在现有技术中,当根文件系统加载出现异常时,由于看门狗模块并不能监控根文件系统的状态,仍然会导致Iinux系统启动挂死,不能正常启动。

【发明内容】

[0007]本发明实施例提供一种Iinux系统自愈方法、装置及自愈系统,用以解决现有技术中当根文件系统加载出现异常时,Iinux系统启动挂死的问题。
[0008]本发明实施例提供的一种Iinux系统自愈方法,包括:
[0009]自愈装置接收中央处理器CPU在Iinux系统启动时发送的启动信号;并
[0010]判断是否在接收到所述启动信号后的设定时间长度内接收到所述CPU发送的启动成功信号;以及
[0011]当判断结果为否时,控制所述CPU复似。
[0012]本发明实施例提供的一种Iinux系统自愈装置,通过复杂可编程逻辑器件CPLD或者现场可编程门阵列FPGA实现,包括:
[0013]接收模块,用于接收中央处理器CPU在Iinux系统启动时发送的启动信号;
[0014]判断模块,用于判断是否在接收到所述启动信号后的设定时间长度内接收到所述CPU发送的启动成功信号;
[0015]自愈模块,用于在所述判断模块的判断结果为否时,控制所述CPU复位。
[0016]本发明实施例提供的一种自愈系统,包括通过总线相连的自愈装置和中央处理器CPU ;[0017]所述自愈装置,用于接收所述CPU发送的启动信号,判断是否在接收到所述启动信号后的设定时间长度内接收到所述CPU发送的启动成功信号,当判断结果为否时,控制所述CPU复位;
[0018]所述CPU,用于在Iinux系统启动时向所述自愈装置发送启动信号,并在Iinux系统启动成功后,向所述自愈装置发送启动成功信号。
[0019]本发明实施例提供一种Iinux系统自愈方法、装置及自愈系统,该方法自愈装置接收CPU在Iinux系统启动时发送的启动信号,当在接收到该启动信号后的设定时间长度内未接收到CPU发送的启动成功信号时,控制该CPU复位。由于本发明实施例中CPU在Iinux系统不能正常启动时不发送启动成功信号,因此自愈装置在接收到启动信号后的设定时间长度内如果未接收到启动成功信号,则确定I inux系统启动失败,控制CPU复位以重启Iinux系统,从而在根文件系统的加载出现异常时,仍然能够实现Iinux系统的自愈。
【专利附图】

【附图说明】
[0020]图1为本发明实施例提供的Iinux系统自愈的过程;
[0021]图2为本发明实施例提供的Iinux系统自愈装置结构示意图;
[0022]图3为本发明实施例提供的自愈系统结构示意图。
【具体实施方式】
[0023]由于现有技术中根文件系统被成功加载之前,CPU中的看门狗模块与根文件系统之间没有通信接口,因此看门狗模块无法监控根文件系统的加载状态,从而当CPU启动Iinux系统时,如果加载根文件系统出现异常,就会导致Iinux系统启动挂死。本发明实施例摒弃现有技术中通过在CPU中设置看门狗模块实现Iinux系统自愈的方法,而在CPU外部设置自愈装置,通过自愈装置监控Iinux系统启动的时间长度,如果监控到Iinux系统启动超时,则确定Iinux系统启动失败,进而控制CPU复位,以重启Iinux系统,因此即使Iinux系统由于加载根文件系统出现异常而启动失败,仍然能够实现Iinux系统的自愈。
[0024]下面结合说明书附图,对本发明实施例进行详细描述。
[0025]图1为本发明实施例提供的Iinux系统自愈的过程,具体包括以下步骤:
[0026]SlOl:自愈装置接收CPU在Iinux系统启动时发送的启动信号。
[0027]在本发明实施例中,在CPU外部预置自愈装置,自愈装置和CPU通过总线相连。当CPU启动Iinux系统时,向该自愈装置发送启动信号。具体的,由于CPU启动Iinux系统时首先要运行bootloader,因此可以将bootloader稍作改动,使CPU在运行bootloader时,向该自愈装置发送启动信号。当然,也可以通过其他方法使CPU在启动Iinux系统时向自愈装置发送启动信号,例如在CPU上电或复位时向自愈装置发送启动信号。
[0028]S102:自愈装置判断是否在接收到该启动信号后的设定时间长度内接收到CPU发送的启动成功信号,若是,则执行步骤S103,否则执行步骤S104。
[0029]在本发明实施例中,CPU在成功启动Iinux系统后,向自愈装置发送启动成功信号。具体的,由于CPU启动Iinux系统时,先要运行bootloader,再通过10tloader依次加载Iinux内核软件和根文件系统,因此本发明实施例中CPU在成功加载根文件系统后,也即成功启动Iinux系统后,向自愈装置发送启动成功信号。[0030]对于自愈装置而言,由于自愈装置在步骤SlOl中接收到了 CPU在Iinux系统启动时发送的启动信号,因此可以以接收到的启动信号触发自身的定时器启动,监控是否在设定时间长度内接收到CPU发送的启动成功信号,也即监控是否在接收到启动信号后的设定时间长度内接收到启动成功信号。
[0031]S103:自愈装置确定CPU成功启动Iinux系统,关闭自身的定时器。
[0032]自愈装置启动定时器后,在设定时间长度内接收到了CPU发送的启动成功信号时,则确定CPU成功运行了 bootloader,并通过bootloader成功加载了 Iinux内核软件和根文件系统,进而确定CPU成功启动了 Iinux系统,并将自身的定时器关闭。
[0033]S104:自愈装置控制CPU复位,返回步骤SlOl。
[0034]自愈装置启动定时器后,在设定时间长度内未接收到CPU发送的启动成功信号,则确定CPU在启动Iinux系统时,运行bootloader、加载内核软件、加载根文件系统中的至少一个步骤出现了异常,进而确定CPU启动I inux系统超时,也即CPU启动I inux系统失败,因此控制CPU复位,使CPU重启Iinux系统。当然,自愈装置也要关闭自身的定时器,用以后续在CPU重启Iinux系统并发送启动信号时再次启动,以再次监控CPU重启Iinux系统的启动情况,也即返回步骤SlOl。
[0035]在上述过程中,CPU在Iinux系统不能正常启动时不发送启动成功信号,因此自愈装置在接收到启动信号后的设定时间长度内如果未接收到启动成功信号,则确定Iinux系统启动失败,控制CPU复位以重启Iinux系统,从而在根文件系统的加载出现异常时,仍然能够实现Iinux系统的自愈,减少了由于根文件系统的加载异常而导致Iinux系统启动挂死的现象,提高了 Iinux系统的稳定性和可靠性。
[0036]在本发明实施例中,上述自愈装置可以通过复杂可编程逻辑器件(ComplexProgrammable Logic Device, CPLD)实现,也可以通过现场可编程门阵列(FieldProgrammable Gate Array, FPGA)实现,也即该自愈装置可以包括CPLD或者FPGA。当然,也可以通过其他方法实现。
[0037]由于CPU启动Iinux系统时,要经过运行bootloader、通过bootloader加载Iinux内核软件、通过bootloader加载根文件系统这三个步骤,因此,在上述图1所示的步骤S102中,该设定时间长度应不小于CPU执行这三个步骤的时间长度之和,也即设定时间长度不小于CPU运行bootloader的时间长度、通过bootloader加载Iinux内核软件的时间长度、通过bootloader加载根文件系统的时间长度的和值。
[0038]例如,在实际应用中,CPU启动Iinux系统时,运行bootloader、加载Iinux内核软件、加载根文件系统总共需要耗时大概30秒到I分钟,因此该设定时间长度可以设定为3分钟,也即自愈装置在接收到CPU发送的启动信号时启动自身的定时器,当定时器计时超过3分钟而仍未接收到CPU发送的启动成功信号时,确定CPU启动Iinux系统失败,从而控制CPU复位,以重启Iinux系统。
[0039]在本发明实施例中,由于CPU在成功启动Iinux系统后,紧接着的就是运彳丁 Iinux启动脚本,然后再运行应用程序,因此可以将Iinux启动脚本稍作改动,使得CPU在成功启动Iinux系统后,通过运行Iinux启动脚本向自愈装置发送启动成功信号。具体的,CPU在成功运行bootloader,并在成功通过bootloader加载Iinux内核软件和根文件系统后,通过运行I inux启动脚本向自愈装置发送启动成功信号。自愈装置则接收CPU通过运行I inux启动脚本发送的启动成功信号。
[0040]在本申请实施例中,可以在CPU外部再预置复位芯片,该复位芯片与CPU和自愈装置相连,则在图1所示的步骤S104中,当自愈装置接收到启动信号后的设定时间长度内未接收到CPU发送的启动成功信号时,可以向复位芯片发送触发信号,触发连接的该复位芯片向CPU发送复位信号,以控制CPU复位。
[0041]图2为本发明实施例提供的Iinux系统自愈装置结构示意图,该自愈装置可以通过CPLD或者FPGA实现,具体包括:
[0042]接收模块201,用于接收中央处理器CPU在Iinux系统启动时发送的启动信号;
[0043]判断模块202,用于判断是否在接收到所述启动信号后的设定时间长度内接收到所述CPU发送的启动成功信号;
[0044]自愈模块203,用于在所述判断模块202的判断结果为否时,控制所述CPU复位。
[0045]所述自愈模块203具体用于,触发连接的复位芯片向所述CPU发送复位信号,以控制所述CPU复位。
[0046]图3为本发明实施例提供的自愈系统结构示意图,该自愈系统包括通过总线相连的自愈装置301和CPU302,其中:
[0047]所述自愈装置301,用于接收所述CPU302发送的启动信号,判断是否在接收到所述启动信号后的设定时间长度内接收到所述CPU302发送的启动成功信号,当判断结果为否时,控制所述CPU302复位;
[0048]所述CPU302,用于在Iinux系统启动时向所述自愈装置301发送启动信号,并在Iinux系统启动成功后,向所述自愈装置301发送启动成功信号。
[0049]所述CPU302具体用于,在成功运行加载启动程序bootloader,并在成功通过bootloader加载Iinux内核软件和根文件系统后,通过运行Iinux启动脚本向所述自愈装置301发送启动成功信号。
[0050]所述自愈系统还包括:
[0051 ] 与所述自愈装置301连接的复位芯片303,用于接收所述自愈装置301发送的触发信号,并向所述CPU302发送复位信号;
[0052]所述自愈装置301具体用于,触发所述复位芯片303向所述CPU302发送复位信号;
[0053]所述CPU302具体用于,接收所述复位芯片303发送的复位信号,并复位。
[0054]本发明实施例提供一种Iinux系统自愈方法、装置及自愈系统,该方法自愈装置接收CPU在Iinux系统启动时发送的启动信号,当在接收到该启动信号后的设定时间长度内未接收到CPU发送的启动成功信号时,控制该CPU复位。由于本发明实施例中CPU在Iinux系统不能正常启动时不发送启动成功信号,因此自愈装置在接收到启动信号后的设定时间长度内如果未接收到启动成功信号,则确定I inux系统启动失败,控制CPU复位以重启Iinux系统,从而在根文件系统的加载出现异常时,仍然能够实现Iinux系统的自愈。
[0055]显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
【权利要求】
1.一种Iinux系统自愈方法,其特征在于,包括: 自愈装置接收中央处理器CPU在Iinux系统启动时发送的启动信号;并判断是否在接收到所述启动信号后的设定时间长度内接收到所述CPU发送的启动成功信号;以及 当判断结果为否时,控制所述CPU复位。
2.如权利要求1所述的方法,其特征在于,所述自愈装置具体包括: 复杂可编程逻辑器件CPLD ;或者 现场可编程门阵列FPGA。
3.如权利要求1所述的方法,其特征在于,所述设定时间长度不小于所述CPU运行加载启动程序bootloader的时间长度、通过bootloader加载Iinux内核软件的时间长度、通过bootloader加载根文件系统的时间长度的和值。
4.如权利要求1所述的方法,其特征在于,接收所述CPU发送的启动成功信号具体包括: 接收所述CPU在成功运行加载启动程序bootloader,并在成功通过bootloader加载Iinux内核软件和根文件系统后,通过运行Iinux启动脚本发送的启动成功信号。
5.如权利要求1所述的方法,其特征在于,控制所述CPU复位,具体包括: 所述自愈装置触发连接的复位芯片向所述CPU发送复位信号,以控制所述CPU复位。
6.一种Iinux系统自愈装置,其特征在于,通过复杂可编程逻辑器件CPLD或者现场可编程门阵列FPGA实现,包括: 接收模块,用于接收中央处理器CPU在Iinux系统启动时发送的启动信号; 判断模块,用于判断是否在接收到所述启动信号后的设定时间长度内接收到所述CPU发送的启动成功信号; 自愈模块,用于在所述判断模块的判断结果为否时,控制所述CPU复位。
7.如权利要求6所述的装置,其特征在于,所述自愈模块具体用于,触发连接的复位芯片向所述CPU发送复位信号,以控制所述CPU复位。
8.一种自愈系统,其特征在于,包括通过总线相连的自愈装置和中央处理器CPU ; 所述自愈装置,用于接收所述CPU发送的启动信号,判断是否在接收到所述启动信号后的设定时间长度内接收到所述CPU发送的启动成功信号,当判断结果为否时,控制所述CPU复位; 所述CPU,用于在I inux系统启动时向所述自愈装置发送启动信号,并在I inux系统启动成功后,向所述自愈装置发送启动成功信号。
9.如权利要求8所述的自愈系统,其特征在于,所述CPU具体用于,在成功运行加载启动程序bootloader,并在成功通过bootloader加载Iinux内核软件和根文件系统后,通过运行Iinux启动脚本向所述自愈装置发送启动成功信号。
10.如权利要求8所述的自愈系统,其特征在于,所述自愈系统还包括: 与所述自愈装置连接的复位芯片,用于接收所述自愈装置发送的触发信号,并向所述CPU发送复位信号; 所述自愈装置具体用于,触发所述复位芯片向所述CPU发送复位信号; 所述CPU具体用于,接收所述复位芯片发送的复位信号,并复位。
【文档编号】G06F11/07GK103514057SQ201210213742
【公开日】2014年1月15日 申请日期:2012年6月26日 优先权日:2012年6月26日
【发明者】左延麟, 武玉鹏, 罗晟 申请人:京信通信技术(广州)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1