The present invention provides a heat patch loading method and apparatus, hot patch loading method comprises the steps of: obtaining and recording the kernel conflict process and hot patch conflicts; tracking kernel conflict process, when the kernel conflict process exit kernel mode, the kernel in the process of the conflict to stop operation; reload hot patch; judgment reload the hot patch results, if the result is not successful, since the loop is executed to acquire and record the kernel conflict process and hot patch conflict steps to reload the hot patch steps; when the results reload the hot patch for success, to restore all the kernel state conflict process. The kernel conflict process by recording and hot patch conflicts, and exit the kernel in the kernel state conflict process, stop the kernel conflict process, effectively reducing the conflict hot patches and process kernel function call stack, so as to improve the success rate of hot patch loading.
【技术实现步骤摘要】
一种热补丁加载方法以及装置
本专利技术涉及软件更新领域,尤其涉及一种热补丁加载方法及装置。
技术介绍
随着近年来计算技术的迅猛发展,计算机产品的更新换代速度也随之增快。目前,在软件开发过程中,难免存在一些软件设计方面的漏洞或用户对该软件的新的需求,为了不影响软件的使用,一般以热补丁的方式对该软件进行漏洞修复或更新,即在不中止软件的情况下对该软件进行修复或更新。内核热补丁技术是一种对运行中的内核加载热补丁的技术,以避免对操作系统的重启,从而减少重启带来的宕机时间,提高可用性。内核热补丁技术的处理方式基本是以函数为单位的,即可通过对出现漏洞或需要更新的函数进行修复,以实现对内核的修复或更新。当对内核热补丁进行加载时,由于处于内核态的进程需要调用热补丁所涉及的函数,从而与热补丁加载产生冲突,进而导致内核热补丁加载失败。
技术实现思路
针对以上问题,本专利技术的目的在于提供一种热补丁加载方法以及装置,能够有效减少加载内核热补丁的冲突,提高加载成功率。根据本专利技术的第一个方面,提供一种热补丁加载方法,包括步骤:获取并记录与热补丁冲突的内核态冲突进程;跟踪内核态冲突进程,当内核态冲突进程退出内核态时,停止内核态冲突进程的运行;重新加载热补丁;判断重新加载热补丁的结果,当结果为不成功时,循环执行自获取并记录与热补丁冲突的内核态冲突进程的步骤起至重新加载热补丁的步骤;当重新加载热补丁的结果为成功时,恢复所有内核态冲突进程的运行。优选地,所述获取并记录与所述热补丁冲突的内核态冲突进程的步骤包括:在每次循环中获取本次循环中与所述热补丁冲突的所述内核态冲突进程,并持续记录所有循环 ...
【技术保护点】
一种热补丁加载方法,其特征在于包括步骤:获取并记录与所述热补丁冲突的内核态冲突进程;跟踪所述内核态冲突进程,当所述内核态冲突进程退出内核态时,停止所述内核态冲突进程的运行;重新加载所述热补丁;判断所述重新加载所述热补丁的结果,当结果为不成功时,循环执行自所述获取并记录与所述热补丁冲突的内核态冲突进程的步骤起至所述重新加载所述热补丁的步骤;当所述重新加载所述热补丁的结果为成功时,恢复所有所述内核态冲突进程的运行。
【技术特征摘要】
1.一种热补丁加载方法,其特征在于包括步骤:获取并记录与所述热补丁冲突的内核态冲突进程;跟踪所述内核态冲突进程,当所述内核态冲突进程退出内核态时,停止所述内核态冲突进程的运行;重新加载所述热补丁;判断所述重新加载所述热补丁的结果,当结果为不成功时,循环执行自所述获取并记录与所述热补丁冲突的内核态冲突进程的步骤起至所述重新加载所述热补丁的步骤;当所述重新加载所述热补丁的结果为成功时,恢复所有所述内核态冲突进程的运行。2.如权利要求1所述的热补丁加载方法,其特征在于,所述获取并记录与所述热补丁冲突的内核态冲突进程的步骤包括:在每次循环中获取本次循环中与所述热补丁冲突的所述内核态冲突进程,并持续记录所有循环中的所述内核态冲突进程。3.如权利要求1或2所述的热补丁加载方法,其特征在于,在多个进程的内核态函数调用栈中查找所述热补丁函数,获取包括所述热补丁函数的内核态函数调用栈对应的进程的进程标识符,以获取与所述热补丁冲突的内核态冲突进程,记录所述进程标识符,以记录所述内核态冲突进程。4.如权利要求1所述的热补丁加载方法,其特征在于,所述跟踪所述内核态冲突进程,当所述内核态冲突进程退出内核态时,停止所述内核态冲突进程的运行的步骤包括:跟踪多个所述内核态冲突进程,停止退出内核态的所述内核态冲突进程的运行,直至停止所有所述内核态冲突进程的运行。5.如权利要求1或4所述的热补丁加载方法,其特征在于,通过ptrace函数跟踪所述内核态冲突进程。6.如权利要求1所述的热补丁加载方法,其特征在于,对所有停止的所述内核态冲突进程使用ptrace函数,以使所有所述内核态冲突进程恢复运行。7.如权利要求1所述的热补丁加载方法,其特征在于,还包括步骤:计算重新加载所述热补丁的次数,当重新加载所述热补丁的次数达到预设次数时,停止循环执行自所述获取并记录与所述热补丁冲突的内核态冲突进程的步骤起至所述重新加载所述热补丁的步骤,并恢复运行所有...
【专利技术属性】
技术研发人员:王超,邱模炯,
申请(专利权)人:上海优刻得信息科技有限公司,
类型:发明
国别省市:上海,31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。