CN103399775A - 一种热补丁方法及设备 - Google Patents
一种热补丁方法及设备 Download PDFInfo
- Publication number
- CN103399775A CN103399775A CN2013103374613A CN201310337461A CN103399775A CN 103399775 A CN103399775 A CN 103399775A CN 2013103374613 A CN2013103374613 A CN 2013103374613A CN 201310337461 A CN201310337461 A CN 201310337461A CN 103399775 A CN103399775 A CN 103399775A
- Authority
- CN
- China
- Prior art keywords
- instruction
- instruction sequence
- custom
- function
- jump instruction
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/656—Updates while running
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本发明属于通信领域,尤其涉及热补丁方法及设备,该方法包括:对编译器进行扩展,新增编译选项;当进行编译时,通过扩展编译器的所述新增编译选项为函数***自定义指令序列;当进行热补丁处理时,先修改所述自定义指令序列的长跳转指令,使长跳转指令指向跳转的补丁区,之后修改短跳转指令使所述短跳转指令指向修改后的所述长跳转指令。本发明提供的技术方案通过扩展编译器对函数插桩自定义指令序列,以实现软、硬件架构通用的热补丁机制,同时也与现有成熟的跳转岛热补丁方式实现兼容,并能对存在并发处理情况进行有效的控制。
Description
技术领域
本发明实施例属于通信领域,尤其涉及一种热补丁方法及设备。
背景技术
热补丁技术是一种能够在不中断业务运行的情况下,完成产品软件缺陷修复的技术。在热补丁中常用的跳转指令有短跳转指令,短跳转指令一条指令能够完成跳转动作,但是短跳转指令跳转的可跨越空间存储位置小于32兆字节,与短跳转相对的有长跳转指令,长跳转指令需要借助寄存器辅助完成跳转动作,长跳转指令需要多条指令来完成。
由于热补丁的实现需要进行指令的替换,指令的替换是指将位于函数开头的指令替换成跳转指令,跳转到补丁区,而在具体的指令替换中,指令的替换跟操作***、CPU(Central Processing Unit)中央处理器的体系结构强密切相关。
早期的设备主要选型VXWORKS嵌入式实时操作***,PPC(PowerPC)精简指令集计算机微处理器架构的单核处理器。在这种硬件条件下进行热补丁处理时,不需要过多的考虑并发性及不同软、硬件架构带来的差异。然而随着软、硬件技术的发展,LINUX等操作***更多的开始应用,处理器也从单核发展到多核,同时包含如MIPS(Microprocessor without Interlocked Pipeline Stages)精简指令集处理器架构、X86等多种指令集架构。这时候,热补丁处理面临多操作***、多硬件***架构、大量任务并发处理的问题。
发明内容
本发明实施例的目的在于提供一种热补丁方法,旨在解决现有的技术方案在多种处理器架构、不同操作***情况下无法提供统一的热补丁解决方案的问题。
第一方面,本发明提供了一种热补丁方法,所述方法包括:
对编译器进行扩展,新增编译选项;
当进行编译时,通过扩展编译器的新增编译选项为函数***自定义指令序列;
当进行热补丁处理时,先修改自定义指令序列的长跳转指令,使长跳转指令指向跳转的补丁区,之后修改短跳转指令使短跳转指令指向修改后的长跳转指令。
在第一方面的第一种实现方式中,所述通过扩展编译器为函数***自定义指令序列包括:
在紧临所述函数头部之前***自定义指令序列;或
在所述函数头部***所述自定义指令序列。
结合第一方面,在第一方面的第二种实现方式中,所述自定义指令序列包括:
空指令或所述长跳转指令。
结合第一方面,在第一方面的第三种实现方式中,所述修改短跳转指令包括:
修改在所述函数中所述自定义指令序列内的短跳转指令;或
修改在所述函数中所述自定义指令序列外的短跳转指令。
第二方面,本发明提供了一种热补丁设备,所述设备包括:
编译器扩展单元,用于对编译器进行扩展;
编译单元,用于当进行编译时,通过扩展的所述编译器为函数***自定义指令序列;
热补丁单元,用于当进行热补丁处理时,先修改所述自定义指令序列的长跳转指令,使所述长跳转指令指向跳转的补丁区,之后修改短跳转指令使所述短跳转指令指向修改后的所述长跳转指令。
在第二方面的第一种实现方式中,所述编译单元***自定义指令序列包括:
在紧临所述函数头部之前***所述自定义指令序列;或
在所述函数头部***所述自定义指令序列。
结合第二方面,在第二方面的第二种实现方式中,所述编译单元***的自定义指令序列包括:
空指令或所述长跳转指令。
结合第二方面,在第二方面的第三种实现方式中,修改短跳转指令具体包括修改;
修改在所述函数中自定义指令序列内的短跳转指令;或
修改在所述函数中自定义指令序列外的短跳转指令。
在本发明提供的技术方案中,通过扩展编译器对函数***自定义指令序列,以实现软、硬件架构通用的热补丁机制,同时也与现有成熟的跳转岛热补丁方式实现兼容,并能对存在并发处理情况进行有效的控制。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一提供的一种热补丁方法的流程图;
图2是本发明实施例二提供的一种热补丁方法的流程图;
图3是本发明实施例三提供的一种热补丁设备的结构框图;
图4是本发明实施例四提供的一种热补丁设备的结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
实施例一:
本发明实施例一提供的一种热补丁方法,如图1所示,详述如下:
S101,对编译器进行扩展,新增编译选项。
对编译器进行扩展,为编译器增加扩展的编译选项。如:gcc-O2-c foo.c-ffunc_entry_insns=function_entry.S,其中ffunc_entry_insns为编译器扩展后新增的编译选项,其中function_entry.S为自定义***的汇编指令,汇编指令既不控制机器的操作也不被汇编成机器代码,只能为汇编程序所识别并指导汇编如何进行。
S102,当进行编译时,通过扩展编译器的所述新增编译选项为函数***自定义指令序列。
具体实施过程中通过扩展编译器的新增编译选项为函数***的自定义指令序列,***自定义指令序列可以根据应用场景的需要灵活进行定义,如:在紧临函数头部之前自动***自定义指令序列,具体的可以为通过扩展的编译器对foo函数进行编译***自定义指令序列,在函数头之前***一段长跳转指令:
gcc-O2-c foo.c-ffunc_entry_insns=foo_opt.S
其中foo_opt.S为自定义***的自定义指令序列,其中需要***的指令如下:
1.lis r11,0 -----------给r11寄存器的高16位赋值
2.ori r11,r11,0 -----------给r11寄存器的低16位赋值
3.mtctr r11 -----------把r11寄存器的值赋值给ctr寄存器
4.bctr -----------根据ctr寄存器的值跳转到指定地址执行
对foo函数编译后的指令如下:
1.lis r11,0
2.ori r11,r11,0
3.mtctr r11
4.bctr
5.stwu r1,-160(r1) -------------foo函数入口
6.mflr r0
7.bcl- 20,4*cr7
8.li r4,0
需要说明的是,***的自定义指令序列在函数头之前,即第5条指令之前,正常情况下函数运行中***前4条指令是不进行执行的。
S103,当进行热补丁处理时,先修改所述自定义指令序列的长跳转指令,使所述长跳转指令指向跳转的补丁区,之后修改短跳转指令使所述短跳转指令指向修改后的所述长跳转指令。
在具体的实施过程中即可以先短跳转到自定义指令序列中再通过自定义指令序列中的长跳转指令进行跳转,具体如下:
进行热补丁时,先修改自定义指令序列中的前两条指令,让其指向目的补丁区
1.lis r11,19068
2.ori r11,r11,40960
3.mtctr r11
4.bctr
5.stwu r1,-160(r1) -------------foo函数入口
6.mflr r0
7.bcl- 20,4*cr7
8.li r4,0
此时已将函数前两条指令进行修改,修改后的第一条和第二条指令构成长跳转指令指向跳转的补丁区,最后修改函数头的第一条指令为短跳转指令,跳转到自定义的长跳转指令,此时短跳转指令设置在函数中自定义指令序列外。
1.lis r11,19068
2.ori r11,r11,40960
3.mtctr r11
4.bctr
5.b 1 --------------foo函数入口,跳转到第1条指令执行
6.mflr r0
7.bcl- 20,4*cr7
8.li r4,0
通过修改第五跳指令为短跳转指令,使第五条指令指向第一条指令,然后执行自定义指令序列中的长跳转指令。
上述实施例基于函数在紧临函数头部之前***自定义指令序列,在进行热补丁时,由于进行热补丁操作始终是在一个线程中进行,此时即使出现并发情况只是会延后此进程的实施,这种情况下逐个对单条指令进行修改可以保证其原子性,不受***并发的干扰,同时由于***的自定义指令序列在正常运行时不会执行,只有在最后修改了短跳转指令的情况下才会跳转到自定义指令序列,最终通过自定义指令序列跳转到补丁区,从而解决了对于***并发下热补丁原子性的难题,由于通过扩展编译器进行热补丁能够在多种处理器架构如:PPC、MIPS、X86等上进行,也可以在不同操作***上如:linux、vxworks进行,因此可以提供一种统一的热补丁技术解决方案。并能实现与原有成熟的跳转岛热补丁方式的兼容。
实施例二:
本发明实施例二提供的一种热补丁方法,如图2所示,详述如下:
S201,对编译器进行扩展,新增编译选项。
对编译器进行扩展,为编译器增加扩展的编译选项。如:gcc-O2-c foo.c-ffunc_entry_insns=function_entry.S其中ffunc_entry_insns为编译器扩展后新增的编译选项,function_entry.S为自定义的***的汇编指令。
S202,当进行编译时,通过扩展编译器的所述新增编译选项在函数头部为函数***自定义指令序列。
具体实施过程中通过扩展编译器的新增编译选项为函数***的自定义指令序列,***自定义指令序列在函数头部,具体的通过扩展的编译器对foo函数进行编译***自定义指令序列,在函数头部***一段长跳转指令:
gcc-O2-c foo.c-ffunc_entry_insns=foo_opt.S
其中foo_opt.S为自定义***的自定义指令序列,其中需要***的指令如下:
1.j7------------函数入口 ------------跳转到第7条指令执行
2.nop -----------空指令
3.lui t1,0 -----------给t1寄存器赋值
4.lw t1,0(t1) ----------获取t1寄存器地址对应的内存数据,并赋值给t1寄存器
5.jalr t1 ----------根据t1寄存器跳转到指定地址运行
6.nop ----------空指令
对foo函数编译后的指令如下:
1.j7------------函数入口
2.nop
3.lui t1,0
4.lw t1,0(t1)
5.jalr t1
6.nop
7.Lbut1,0(a1)
需要说明的是,***的自定义指令序列在函数头部,即前六条指令,正常情况下第一条指令为跳转到第7条指令执行,因此后续的五条指令并不进行执行,其中在***的自定义指令序列中还可以***空指令,如第二条和第六条指令。
S203,当进行热补丁处理时,先修改所述自定义指令序列的长跳转指令,使所述长跳转指令指向跳转的补丁区,之后修改短跳转指令使所述短跳转指令指向修改后的所述长跳转指令。
在具体的实施过程中即可以直接通过自定义指令序列进行长跳转,具体如下:
进行热补丁时,先修改自定义指令序列中的3、4条指令,让其指向目的补丁区
1j 7 ------------函数入口
2nop
3lui t1,0x6e3
4lw t1,968(t1)
5jalr t1
6nop
7Lbut1,0(a1)
最后修改函数头的第一条指令为短跳转指令,跳转到自定义指令中的长跳转指令区域,此时短跳转指令设置在函数中自定义指令序列内。
1j 3 ------------函数入口
2nop
3lui t1,0x6e3
4lw t1,968(t1)
5jalr t1
6nop
7Lbut1,0(a1)
通过修改第一跳指令为短跳转指令,使第一条指令指向第三条指令,然后执行自定义指令序列中的长跳转指令,最终跳转到补丁区。
上述实施例基于函数在紧临函数头部***自定义指令序列,在进行热补丁时,由于进行热补丁操作始终是在一个线程中进行,此时即使出现并发情况只是会延后此进程的实施,这种情况下逐个对单条指令进行修改可以保证其原子性,不受***并发的干扰,同时由于***的自定义指令序列在正常运行时不会执行,只有在最后修改了短跳转指令的情况下才会跳转到自定义指令序列,最终通过自定义指令序列跳转到补丁区,从而解决了对于***并发下热补丁原子性的难题,由于通过扩展编译器进行热补丁能够在多种处理器架构如:PPC、MIPS、X86等上进行,也可以在不同操作***上如:linux、vxworks进行,因此可以提供一种统一的热补丁技术解决方案。并能实现与原有成熟的跳转岛热补丁方式的兼容。
实施例三:
本发明实施例三提供的一种热补丁设备,如图3所示,详述如下:
编译器扩展单元31,用于对编译器进行扩展,新增编译选项。
编译器扩展单元对编译器进行扩展,为编译器增加扩展的编译选项。使扩展后的编译器进行编译以后对编译的函数新增的编译选项。
编译单元32,用于当进行编译时,通过扩展编译器的所述新增编译选项为函数***自定义指令序列。
具体实施过程中通过编译器的新增编译选项为函数***的自定义指令序列,***自定义指令序列可以根据应用场景的需要灵活进行定义,在紧临函数头部之前***自定义指令序列;或在函数头部***自定义指令序列。***的自定义指令序列具体包括:空指令或长跳转指令。
热补丁单元33,用于当进行热补丁处理时,先修改所述自定义指令序列的长跳转指令,使所述长跳转指令指向跳转的补丁区,之后修改短跳转指令使短跳转指令指向修改后的所述长跳转指令。
具体实施过程中热补丁单元修改短跳转指令使短跳转指令指向修改后的长跳转指令的短跳转指令包括:设置在函数中自定义指令序列内的短跳转指令;或设置在函数中自定义指令序列外的短跳转指令。
上述实施例的热补丁设备基于函数***自定义指令序列,在进行热补丁时,由于进行热补丁操作始终是在一个线程中进行,此时即使出现并发情况只是会延后此进程的实施,这种情况下热补丁设备逐个对单条指令进行修改可以保证其原子性,不受热补丁设备***并发的干扰,同时由于***的自定义指令序列在正常运行时不会进行实质内容上的执行,只有在最后修改了短跳转指令的情况下才会跳转到自定义指令序列的长跳转指令上,最终通过自定义指令序列中的长跳转指令跳转到补丁区,从而解决了对于***并发下热补丁原子性的难题,由于通过扩展编译器进行热补丁能够在多种处理器架构如:PPC、MIPS、X86等上进行,也可以在不同操作***上如:linux、vxworks进行,因此可以提供一种统一的热补丁技术解决方案。并能实现与原有成熟的跳转岛热补丁方式的兼容。
实施例四:
本发明实施例三提供的一种热补丁设备的结构图,如图4所示,详述如下:
热补丁设备包括:
处理器(英文:processor)41,通信接口(Communications Interface)42,存储器(memory)43,总线44。
处理器41,通信接口42,存储器43通过总线44完成相互间的通信。
通信接口42,用于与路由处理服务器进行通信;
处理器41,用于执行程序。
具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。
处理器41可能是一个中央处理器(英文:central processing unit,缩写:CPU),或者是特定集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成本发明实施例的一个或多个集成电路。
存储器43,用于存储程序。存储器43可以是易失性存储器(英文:volatilememory),例如随机存取存储器(英文:random-access memory,缩写:RAM),或者非易失性存储器(英文:non-volatile memory),例如只读存储器(英文:read-only memory,缩写:ROM),快闪存储器(英文:flash memory),硬盘(英文:hard disk drive,缩写:HDD)或固态硬盘(英文:solid-state drive,缩写:SSD)。处理器41根据存储器43存储的程序指令,执行以下方法:
对编译器进行扩展,新增编译选项;
当进行编译时,通过扩展编译器的新增编译选项为函数***自定义指令序列;
当进行热补丁处理时,先修改自定义指令序列的长跳转指令,使长跳转指令指向跳转的补丁区,之后修改短跳转指令使短跳转指令指向修改后的长跳转指令。
上述实施例的热补丁设备通过处理器执行热补丁操作,通过存储器存储热补丁操作的数据信息,在进行热补丁时,由于进行热补丁操作的处理器在执行时始终是在一个线程中进行,此时即使出现并发情况只是会延后此进程的实施,这种情况下热补丁设备的处理器逐个对单条指令进行修改也可以保证其原子性,不受热补丁设备处理器并发的干扰,同时由于***的自定义指令序列在正常运行时不会进行实质内容上的执行,只有在最后修改了短跳转指令的情况下才会跳转到自定义指令序列的长跳转指令上,最终通过自定义指令序列中的长跳转指令跳转到补丁区,从而解决了对于处理器并发下热补丁原子性的难题,实现了在多种处理器架构下如:PPC、MIPS、X86等的进行,也可以在不同操作***平台如:linux、vxworks上进行,因此可以提供一种统一的热补丁技术解决方案。并能实现与原有成熟的跳转岛热补丁方式的兼容。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种热补丁方法,其特征在于,所述方法包括:
对编译器进行扩展,新增编译选项;
当进行编译时,通过扩展编译器的所述新增编译选项为函数***自定义指令序列;
当进行热补丁处理时,先修改所述自定义指令序列的长跳转指令,使所述长跳转指令指向跳转的补丁区,之后修改短跳转指令,使所述短跳转指令指向修改后的所述长跳转指令。
2.根据权利要求1所述的方法,其特征在于,所述通过扩展编译器为函数***自定义指令序列包括:
在紧临所述函数头部之前***所述自定义指令序列;或
在所述函数头部***所述自定义指令序列。
3.根据权利要求1或2所述的方法,其特征在于,所述自定义指令序列包括:
空指令或所述长跳转指令。
4.根据权利要求1至3任一权利要求所述的方法,其特征在于,所述修改短跳转指令包括:
修改在所述函数中所述自定义指令序列内的短跳转指令;或
修改在所述函数中自定义指令序列外的短跳转指令。
5.一种热补丁设备,其特征在于,所述设备包括:
编译器扩展单元,用于对编译器进行扩展,新增编译选项;
编译单元,用于当进行编译时,通过扩展编译器的所述新增编译选项为函数***自定义指令序列;
热补丁单元,用于当进行热补丁处理时,先修改所述自定义指令序列的长跳转指令,使所述长跳转指令指向跳转的补丁区,之后修改短跳转指令使所述短跳转指令指向修改后的所述长跳转指令。
6.根据权利要求5所述的热补丁设备,其特征在于,所述编译单元为函数***自定义指令序列包括:
在紧临所述函数头部之前***所述自定义指令序列;或
在所述函数头部***所述自定义指令序列。
7.根据权利要求5或6所述的热补丁设备,其特征在于,所述编译单元***的自定义指令序列包括:
空指令或所述长跳转指令。
8.根据权利要求5至7任一权利要求所述的热补丁设备,其特征在于,所述修改短跳转指令包括:
修改在所述函数中所述自定义指令序列内的短跳转指令;或
修改在所述函数中自定义指令序列外的短跳转指令。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013103374613A CN103399775A (zh) | 2013-08-05 | 2013-08-05 | 一种热补丁方法及设备 |
PCT/CN2014/083616 WO2015018302A1 (zh) | 2013-08-05 | 2014-08-04 | 一种热补丁方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013103374613A CN103399775A (zh) | 2013-08-05 | 2013-08-05 | 一种热补丁方法及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103399775A true CN103399775A (zh) | 2013-11-20 |
Family
ID=49563409
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2013103374613A Pending CN103399775A (zh) | 2013-08-05 | 2013-08-05 | 一种热补丁方法及设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN103399775A (zh) |
WO (1) | WO2015018302A1 (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103955354A (zh) * | 2014-05-09 | 2014-07-30 | 龙芯中科技术有限公司 | 重定位方法和装置 |
WO2015018302A1 (zh) * | 2013-08-05 | 2015-02-12 | 华为技术有限公司 | 一种热补丁方法及设备 |
CN104461625A (zh) * | 2014-12-04 | 2015-03-25 | 上海斐讯数据通信技术有限公司 | 一种热补丁实现方法和*** |
CN104809018A (zh) * | 2015-05-18 | 2015-07-29 | 烽火通信科技股份有限公司 | 一种嵌入式***软件注入热补丁的方法及*** |
CN105138341A (zh) * | 2015-09-24 | 2015-12-09 | 上海斐讯数据通信技术有限公司 | 基于MIPS架构和vxworks***实现热补丁长跳转的方法 |
CN105630557A (zh) * | 2015-12-24 | 2016-06-01 | 迈普通信技术股份有限公司 | 热补丁方法和装置 |
WO2016115975A1 (zh) * | 2015-01-20 | 2016-07-28 | 中兴通讯股份有限公司 | 一种用于mips架构cpu的热补丁的方法和设备 |
CN107239309A (zh) * | 2017-06-06 | 2017-10-10 | 网易(杭州)网络有限公司 | 补丁生成方法及装置、更新方法、电子设备、存储介质 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112988182A (zh) * | 2019-12-13 | 2021-06-18 | 中兴通讯股份有限公司 | Linux内核热补丁实现方法、电子设备及计算机可读介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101004681A (zh) * | 2006-12-22 | 2007-07-25 | 中兴通讯股份有限公司 | 嵌入式***动态补丁长跳转的实现方法 |
US20100205587A1 (en) * | 2009-02-10 | 2010-08-12 | Huafei Dai | Method, device and system for realizing kernel online patching |
CN102156661A (zh) * | 2010-02-11 | 2011-08-17 | 华为技术有限公司 | 在线补丁的激活方法、装置及*** |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103218262B (zh) * | 2010-02-11 | 2017-03-15 | 华为技术有限公司 | 在线补丁的激活方法、装置及*** |
CN102609241B (zh) * | 2012-01-19 | 2018-04-27 | 中兴通讯股份有限公司 | 热补丁方法及装置 |
CN103399775A (zh) * | 2013-08-05 | 2013-11-20 | 北京华为数字技术有限公司 | 一种热补丁方法及设备 |
-
2013
- 2013-08-05 CN CN2013103374613A patent/CN103399775A/zh active Pending
-
2014
- 2014-08-04 WO PCT/CN2014/083616 patent/WO2015018302A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101004681A (zh) * | 2006-12-22 | 2007-07-25 | 中兴通讯股份有限公司 | 嵌入式***动态补丁长跳转的实现方法 |
US20100205587A1 (en) * | 2009-02-10 | 2010-08-12 | Huafei Dai | Method, device and system for realizing kernel online patching |
CN102156661A (zh) * | 2010-02-11 | 2011-08-17 | 华为技术有限公司 | 在线补丁的激活方法、装置及*** |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015018302A1 (zh) * | 2013-08-05 | 2015-02-12 | 华为技术有限公司 | 一种热补丁方法及设备 |
CN103955354A (zh) * | 2014-05-09 | 2014-07-30 | 龙芯中科技术有限公司 | 重定位方法和装置 |
CN103955354B (zh) * | 2014-05-09 | 2017-03-15 | 龙芯中科技术有限公司 | 重定位方法和装置 |
CN104461625A (zh) * | 2014-12-04 | 2015-03-25 | 上海斐讯数据通信技术有限公司 | 一种热补丁实现方法和*** |
WO2016115975A1 (zh) * | 2015-01-20 | 2016-07-28 | 中兴通讯股份有限公司 | 一种用于mips架构cpu的热补丁的方法和设备 |
CN105868094A (zh) * | 2015-01-20 | 2016-08-17 | 中兴通讯股份有限公司 | 一种用于mips架构cpu的热补丁的方法和设备 |
CN104809018A (zh) * | 2015-05-18 | 2015-07-29 | 烽火通信科技股份有限公司 | 一种嵌入式***软件注入热补丁的方法及*** |
CN104809018B (zh) * | 2015-05-18 | 2018-01-02 | 烽火通信科技股份有限公司 | 一种嵌入式***软件注入热补丁的方法及*** |
CN105138341A (zh) * | 2015-09-24 | 2015-12-09 | 上海斐讯数据通信技术有限公司 | 基于MIPS架构和vxworks***实现热补丁长跳转的方法 |
CN105630557A (zh) * | 2015-12-24 | 2016-06-01 | 迈普通信技术股份有限公司 | 热补丁方法和装置 |
CN105630557B (zh) * | 2015-12-24 | 2018-12-28 | 迈普通信技术股份有限公司 | 热补丁方法和装置 |
CN107239309A (zh) * | 2017-06-06 | 2017-10-10 | 网易(杭州)网络有限公司 | 补丁生成方法及装置、更新方法、电子设备、存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2015018302A1 (zh) | 2015-02-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103399775A (zh) | 一种热补丁方法及设备 | |
US9021512B1 (en) | Runtime management of TOC pointer save and restore commands | |
CN101799763B (zh) | 内核在线补丁的方法、装置和*** | |
US9075692B2 (en) | Method, device and system for activating on-line patch | |
CN106095620B (zh) | 一种嵌入式Linux存储分区的开发方法 | |
CN108874438B (zh) | 补丁生成方法、装置、电子设备及计算机存储介质 | |
JP4006337B2 (ja) | 共有ライブラリを使用して実行可能ファイルの実行を修正する方法 | |
CN106951289A (zh) | 一种在线升级方法、dsp控制器及升级*** | |
BR112013019824A2 (pt) | aparelho e método de processamento de dados, método para compilar um aplicativo para execução por um processador de dados, produto de programa de computador, e, máquina virtual | |
US9367306B2 (en) | Method for transforming a multithreaded program for general execution | |
CN103927187A (zh) | 嵌入式***程序执行方法 | |
KR101812912B1 (ko) | 자율 메모리를 위한 방법 및 시스템 | |
JP6257506B2 (ja) | 電子制御装置のメモリ内のソフトウェアを変更する方法 | |
CN103324503A (zh) | 一种数据烧录***及方法 | |
CN112487092B (zh) | 一种基于区块链的智能合约调用方法及装置 | |
US7269828B2 (en) | Method for safely instrumenting large binary code | |
US10747514B2 (en) | Reduced save and restore instructions for call-clobbered registers | |
CN101334737A (zh) | 一种嵌入式设备的启动或复位方法 | |
EP3540598A1 (en) | Method, device and server for checking a defective function | |
US9262301B2 (en) | Observability control with observability information file | |
CN104407852A (zh) | 一种基于代码隔离的嵌入式软件构建方法和调用方法 | |
US20140013312A1 (en) | Source level debugging apparatus and method for a reconfigurable processor | |
CN112882753A (zh) | 程序运行方法及装置 | |
CN113467797A (zh) | 程序更新方法、装置和***以及计算机可读存储介质 | |
US10671397B2 (en) | Reduced save and restore instructions for call-clobbered registers |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20131120 |
|
RJ01 | Rejection of invention patent application after publication |