CN108304200A - 一种驱动程序升级的方法、装置以及电子设备 - Google Patents

一种驱动程序升级的方法、装置以及电子设备 Download PDF

Info

Publication number
CN108304200A
CN108304200A CN201710022230.1A CN201710022230A CN108304200A CN 108304200 A CN108304200 A CN 108304200A CN 201710022230 A CN201710022230 A CN 201710022230A CN 108304200 A CN108304200 A CN 108304200A
Authority
CN
China
Prior art keywords
driver
driving
son
request
upgrade
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.)
Granted
Application number
CN201710022230.1A
Other languages
English (en)
Other versions
CN108304200B (zh
Inventor
肖全举
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Cloud Computing Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201710022230.1A priority Critical patent/CN108304200B/zh
Publication of CN108304200A publication Critical patent/CN108304200A/zh
Application granted granted Critical
Publication of CN108304200B publication Critical patent/CN108304200B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44536Selecting among different versions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

本申请公开了一种驱动程序升级的方法,包括:在驱动程序的第一子驱动的控制下将第二子驱动加载到内存当中并启动;将所述第一子驱动向第三子驱动发送接收到的请求切换为向所述第二子驱动发送;卸载所述第三子驱动。所述驱动程序升级的方法,在升级驱动程序时,通过驱动程序的旧版本子驱动向新版本子驱动的平滑过度,实现了驱动程序的热升级,从而使驱动程序升级过程中能够维持正常工作状态,不会中断对外提供的数据服务,可靠性更高。

Description

一种驱动程序升级的方法、装置以及电子设备
技术领域
本申请涉及驱动程序领域,具体涉及一种驱动程序升级的方法。本申请同时涉及一种驱动程序升级的装置,以及一种电子设备。
背景技术
驱动程序是处于硬件与软件之间的功能程序,是一种可以使硬件和软件通信的特殊程序,用于提供软件访问硬件的接口,软件只有通过这个接口才能控制硬件设备的工作。在实际当中,为满足应用等方面的需求,还会对相应的驱动程序进行升级。
目前,在对驱动程序进行升级时,通知应用软件停止使用驱动程序,然后通过调用系统函数卸载当前的驱动程序,然后加载新版本的驱动程序,并根据新版本的驱动程序对硬件进行复位和初始化,复位和初始化操作完成之后应用软件便可以使用新版本的驱动程序进行工作。然而,在驱动程序的升级过程中,在旧版本驱动程序被卸载并且新版本驱动程序尚未加载的这段时间内,驱动程序相应的应用软件的运行过程会被中断,中断意味着可靠性降低,对于可靠性要求比较高的场景,这种中断是无法被接受的。
发明内容
本申请提供一种驱动程序升级的方法,以解决现有技术存在的可靠性比较低的缺陷。本申请另外提供一种驱动程序升级的装置,以及一种电子设备。
本申请提供一种驱动程序升级的方法,包括:
在驱动程序的第一子驱动的控制下将第二子驱动加载到内存当中并启动;
将所述第一子驱动向第三子驱动发送接收到的请求切换为向所述第二子驱动发送;
卸载所述第三子驱动。
可选的,所述将所述第一子驱动向第三子驱动发送接收到的请求切换为向所述第二子驱动发送步骤执行后,且所述卸载所述第三子驱动步骤执行前,执行下述步骤:
判断所述第三子驱动的处理队列中是否存在未处理的请求,若是,执行所述卸载所述第三子驱动步骤;其中,所述第一子驱动发送至所述第三子驱动的请求被加入所述第三子驱动的处理队列。
可选的,若所述判断所述第三子驱动处理队列中的请求是否处理完成步骤的判断结果为否,继续处理所述第三子驱动的处理队列中未处理的请求。
可选的,所述在驱动程序的第一子驱动的控制下将第二子驱动加载到内存当中并启动步骤执行前,执行下述步骤:
所述第一子驱动接收针对所述第三子驱动进行升级的升级指令。
可选的,所述在驱动程序的第一子驱动的控制下将第二子驱动加载到内存当中并启动,采用如下方式实现:
所述第一子驱动根据所述升级指令将所述第二子驱动加载到内存当中,并启动所述第二子驱动。
可选的,所述第一子驱动接收到的请求包括:操作系统发送的与所述驱动程序相关的数据请求。
可选的,所述第一子驱动通过调用所述第三子驱动提供的接口向所述第三子驱动发送请求;相应的,所述第一子驱动通过调用所述第二子驱动提供的接口向所述第二子驱动发送请求。
可选的,所述将所述第一子驱动向第三子驱动发送接收到的请求切换为向所述第二子驱动发送,采用如下方式实现:
所述第一子驱动将当前调用所述第三子驱动提供的接口切换为调用所述第二子驱动提供的接口,将向所述第三子驱动发送请求切换为向所述第二子驱动发送。
可选的,所述将所述第一子驱动向第三子驱动发送接收到的请求切换为向所述第二子驱动发送步骤执行后,所述第一子驱动将接收到的请求发送至所述第二子驱动,所述第二子驱动从自身的处理队列中读取请求进行处理,并将处理结果返回给所述第一子驱动。
可选的,所述第三子驱动通过调用操作系统提供的系统函数卸载。
可选的,所述驱动程序升级方法在云计算环境中实施。
可选的,所述驱动程序包括:用于控制并使用云计算环境中网络资源的网络驱动程序,以及用于访问云计算环境中存储资源的存储驱动程序。
可选的,所述网络驱动程序包括:网卡驱动程序。
可选的,所述存储驱动程序包括:块设备驱动程序。
本申请还提供一种驱动程序升级装置,包括:
加载启动单元,用于在驱动程序的第一子驱动的控制下将第二子驱动加载到内存当中并启动;
切换单元,用于将所述第一子驱动向第三子驱动发送接收到的请求切换为向所述第二子驱动发送;
卸载单元,用于卸载所述第三子驱动。
可选的,所述驱动程序升级装置在云计算环境中运行。
本申请另外提供一种电子设备,包括:
存储器,以及处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令:
在驱动程序的第一子驱动的控制下将第二子驱动加载到内存当中并启动;
将所述第一子驱动向第三子驱动发送接收到的请求切换为向所述第二子驱动发送;
卸载所述第三子驱动。
本申请提供的所述驱动程序升级的方法,在驱动程序的第一子驱动的控制下将第二子驱动加载到内存当中并启动;将所述第一子驱动向第三子驱动发送接收到的请求切换为向所述第二子驱动发送;卸载所述第三子驱动。
本申请提供的所述驱动程序升级的方法,在对驱动程序进行升级时,需要将驱动程序的旧版本第三子驱动升级为新版本第二子驱动,首先通过驱动程序的第一子驱动将驱动程序的新版本第二子驱动加载到内存当中,并启动新版本第二子驱动,将第一子驱动向旧版本第三子驱动发送请求切换为向新版本第二子驱动发送,使新版本第二子驱动进入工作状态,最后卸载旧版本第三子驱动,完成驱动程序的升级。所述驱动程序升级的方法,在升级驱动程序时,通过驱动程序的旧版本子驱动向新版本子驱动的平滑过度,实现了驱动程序的热升级,从而使驱动程序升级过程中能够维持正常工作状态,不会中断对外提供的数据服务,可靠性更高。
附图说明
附图1是本申请提供的一种驱动程序升级的方法实施例的处理流程图;
附图2是本申请提供的一种驱动程序升级过程的示意图;
附图3是本申请提供的一种驱动程序升级的装置实施例的示意图;
附图4是本申请提供的一种电子设备实施例的示意图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
本申请提供一种驱动程序升级的方法,本申请另外提供一种驱动程序升级的装置,以及一种电子设备。以下分别结合本申请提供的实施例的附图逐一进行详细说明,并且对方法的各个步骤进行说明。
本申请提供的驱动程序升级的方法实施例如下:
参照附图1,其示出了本申请提供的一种驱动程序升级的方法实施例的处理流程图,参照附图2,其示出了本申请提供的一种驱动程序升级过程的示意图。此外,本申请提供的所述驱动程序升级的方法实施例的各个步骤之间的关系,请根据附图1确定。
步骤S101,在驱动程序的第一子驱动的控制下将第二子驱动加载到内存当中并启动。
本申请提供驱动程序升级的方法,通过将驱动程序拆分为两部分:向操作系统提供调用驱动程序的接口模块和处理业务逻辑的逻辑模块。在加载驱动程序时,接口模块和逻辑模块分别作为单独的部分加载到操作系统,通过二者在运行时的相互配合使操作系统能够通过调用驱动程序控制并和使用相应硬件设备。从操作系统的角度来看,接口模块就是一个普通驱动程序,操作系统并不能感知到接口模块与其他驱动程序的区别;但是从逻辑处理的角度看,接口模块与普通驱动程序又有很大的不同,因为接口模块并不实现具体的逻辑,接口模块用于接收操作系统发送的与驱动程序相关的请求,并将接收到的请求发送给逻辑模块进行处理,逻辑模块对请求进行处理并生成处理结果,将处理结果返回给接口模块,最后由接口模块将处理结果返回给操作系统。同时,在进行驱动程序升级时,只需对逻辑模块进行升级,无需度接口模块进行升级,将驱动程序的旧版本逻辑模块升级为旧版本逻辑模块,从而实现驱动程序的升级。
在实际应用中,可以采用多种具体的实现方式来拆分驱动程序,比如将驱动程序拆分为一个接口模块和至少两个逻辑模块,或者拆分为至少两个接口模块和一个逻辑模块,或者拆分为至少两个接口模块和至少两个逻辑模块。实现拆分驱动程序的各种形式的变化,都只是具体实现方式的变更,在进行驱动程序升级时,均采用驱动程序的接口模块保持不变、升级逻辑模块的方式实现对驱动程序的升级,都不偏离本申请的核心,因此都在本申请的保护范围之内。
在可用性要求比较高的场景中,比如云计算环境中,需要对外提供实时的数据服务,数据服务一般无法中断,当云计算环境中部署的硬件设备驱动程序需要升级时,需要提供一种用于实现驱动程序热升级的实现方式,在对驱动程序进行升级的过程中对外提供的数据服务不受影响。因此,本申请提供驱动程序升级的方法,可对云计算环境中的驱动程序进行热升级,无需进行重启操作或者中断对外提供的数据服务。因此,本申请提供驱动程序升级方法优选在云计算环境中实施。同时,由于云计算环境中存储和网络都需要专门的驱动程序来支持,因此所述驱动程包括:用于控制并使用云计算环境中网络资源的网络驱动程序,以及用于访问云计算环境中存储资源的存储驱动程序。所述网络驱动程序包括:网卡驱动程序;所述存储驱动程序包括:块设备驱动程序。
需要说明的是,本申请提供驱动程序升级方法不仅可以在云计算环境中实施,还可以在其他场景中实现,比如提供在线数据服务的场景中同样可以实现驱动程序的热升级;除此之外,本申请提供驱动程序升级方法还可以在常规场景中,比如对硬件设备的驱动程序进行热升级,避免通过重启操作或者驱动程序升级过程中无法使用硬件设备,对驱动程序的升级更加简单方便。
本申请实施例所述第一子驱动,是指驱动程序提供接口的接口模块,所述第二子驱动是指驱动程序用于处理业务逻辑的逻辑模块,并且是指驱动程序的旧版本逻辑模块,第三子驱动同样是指驱动程序用于处理业务逻辑的逻辑模块,但第三子驱动是指驱动程序的旧版本逻辑模块。在对驱动程序进行升级时,驱动程序的接口模块保持不变,保持持续运行状态,将驱动程序的旧版本逻辑模块升级为新版本逻辑模块,将驱动程序的逻辑模块从所述旧版本逻辑模块升级为所述新版本逻辑模板,加载并运行所述新版本逻辑模板,并卸载所述旧版本逻辑模板。
本步骤中,在驱动程序的接口模块的控制下将新版本逻辑模板加载到内存当中,并在内存当中启动加载的所述新版本逻辑模板,使所述新版本逻辑模板处于工作状态。
在具体实施时,在本步骤执行前,将所述新版本逻辑模板加载到内存之前,还可以执行如下步骤:所述接口模块接收针对所述旧版本逻辑模板进行升级的升级指令。在此基础上,所述接口模块接收到所述升级指令后,还可以基于所述接口模块加载和启动所述新版本逻辑模板,由所述接口模块根据所述升级指令将所述新版本逻辑模板加载到内存当中,并启动所述新版本逻辑模板。
例如,如附图2所示,驱动程序的接口模块接收操作系统发送的对逻辑模块进行升级的升级指令,接口模块接收到升级指令之后,根据升级指令将新版本逻辑模块加载到内存当中,并启动加载的新版本逻辑模块。
步骤S102,将所述第一子驱动向第三子驱动发送接收到的请求切换为向所述第二子驱动发送。
上述步骤S101将所述新版本逻辑模板加载到内存当中并启动,即:将驱动程序的新版本逻辑模块加载到内存当中,并启动加载的新版本逻辑模块;本步骤在上述步骤S101的基础上,将所述接口模块向旧版本逻辑模板发送接收到的请求切换为向所述新版本逻辑模板发送。例如,如附图2所示,将驱动程序的接口模块向旧版本逻辑模块发送请求切换为向新版本逻辑模块发送。
本申请实施例中,所述接口模块接收到的请求是指操作系统发送的与所述驱动程序相关的数据请求。比如,操作系统向网卡驱动程序发送的与网络相关的请求,或者,操作系统向块设备驱动程序发送的与存储相关的请求。
在具体实施时,所述接口模块可通过调用所述旧版本逻辑模板提供的接口向所述旧版本逻辑模板发送请求;类似的,所述接口模块可通过调用所述新版本逻辑模板提供的接口向所述新版本逻辑模板发送请求。在此基础上,本步骤将所述接口模块向旧版本逻辑模板发送请求切换为向所述新版本逻辑模板发送,可以采用如下方式实现:所述接口模块将当前调用所述旧版本逻辑模板提供的接口切换为调用所述新版本逻辑模板提供的接口,将向所述旧版本逻辑模板发送请求切换为向所述新版本逻辑模板发送。
上述将所述接口模块向旧版本逻辑模板发送请求切换为向所述新版本逻辑模板发送之后,所述接口模块将接收到的请求发送至所述新版本逻辑模板,所述新版本逻辑模板从自身的处理队列中读取请求进行处理,并将处理结果返回给所述接口模块。例如,驱动程序的接口模块将接收到的请求发送新版本逻辑模块,由新版本逻辑模块从自身的处理队列中读取请求进行处理,并将处理结果返回给接口模块,最终由接口模块将处理结果反馈给操作系统。
如上所述,在本步骤执行后,将所述接口模块向旧版本逻辑模板发送接收到的请求切换为向所述新版本逻辑模板发送之后,所述接口模块接收到的请求被切换为向所述新版本逻辑模板发送,由所述新版本逻辑模板进行处理并返回处理结果,但在这一切换操作执行之前,所述接口模块接收到的请求向所述旧版本逻辑模板发送,发送至所述旧版本逻辑模板后被置于所述旧版本逻辑模板的处理队列中;基于此,在将所述接口模块向旧版本逻辑模板发送接收到的请求切换为向所述新版本逻辑模板发送之后,所述旧版本逻辑模板的处理队列中还可能存在未处理完的请求,因此,在下述步骤S103卸载所述旧版本逻辑模板之前,有必要判断所述接口模块发送至所述旧版本逻辑模板的请求是否全部处理完成,避免由于发送至所述旧版本逻辑模板的请求未处理完成卸载所述旧版本逻辑模板导致的请求丢失,具体采用如下方式实现:
判断所述旧版本逻辑模板的处理队列中是否存在未处理的请求,若是,执行下述步骤S103,卸载所述旧版本逻辑模板;其中,所述接口模块发送至所述旧版本逻辑模板的请求被加入所述旧版本逻辑模板的处理队列;若否,继续处理所述旧版本逻辑模板的处理队列中未处理的请求,待所述旧版本逻辑模板的处理队列中请求全部处理完成时,执行下述步骤S103,卸载所述旧版本逻辑模板。
步骤S103,卸载所述第三子驱动。
上述步骤S102将所述接口模块向旧版本逻辑模板发送请求切换为向所述新版本逻辑模板发送,在此基础上,本步骤卸载所述旧版本逻辑模板,完成驱动程序的升级。此外,如果上述步骤S102步骤执行后,执行了上述判断所述旧版本逻辑模板的处理队列中是否存在未处理的请求步骤,则本步骤得以实施的前提是所述旧版本逻辑模板的处理队列中的请求全部处理完成。例如,如附图2所示,卸载驱动程序的旧版本逻辑模块,由新版本逻辑模块代替旧版本逻辑模块工作。
在具体实施时,本步骤卸载所述旧版本逻辑模板可通过调用操作系统提供的系统函数进行卸载,比如调用操作系统系统提供的卸载应用程序和驱动程序的卸载函数卸载驱动程序的旧版本逻辑模块。
综上所述,本申请提供的所述驱动程序升级的方法,在对驱动程序进行升级时,需要将驱动程序的旧版本逻辑模板升级为新版本逻辑模板,首先通过驱动程序的接口模块将驱动程序的新版本逻辑模板加载到内存当中,并启动新版本逻辑模板,将接口模块向旧版本逻辑模板发送请求切换为向新版本逻辑模板发送,使新版本逻辑模板进入工作状态,最后卸载旧版本逻辑模板,完成驱动程序的升级。所述驱动程序升级的方法,在升级驱动程序时,通过驱动程序的旧版本子驱动向新版本子驱动的平滑过度,实现了驱动程序的热升级,从而使驱动程序升级过程中能够维持正常工作状态,不会中断对外提供的数据服务,可靠性更高。
本申请提供的一种驱动程序升级的装置实施例如下:
在上述的实施例中,提供了一种驱动程序升级的方法,与之相对应的,本申请还提供了一种驱动程序升级的装置,下面结合附图进行说明。
参照附图3,其示出了本申请提供的一种驱动程序升级的装置实施例的示意图。
由于装置实施例与上述提供的方法实施例相互对应,阅读本实施例的内容请参照上述方法实施例的对应说明。下述描述的装置实施例仅仅是示意性的。
本申请提供一种驱动程序升级的装置,包括:
加载启动单元301,用于在驱动程序的第一子驱动的控制下将第二子驱动加载到内存当中并启动;
切换单元302,用于将所述第一子驱动向第三子驱动发送接收到的请求切换为向所述第二子驱动发送;
卸载单元303,用于卸载所述第三子驱动;
其中,驱动程序的所述第一子驱动包括驱动程序的接口模块;所述第二子驱动包括新版本逻辑模块;所述第三子驱动包括旧版本逻辑模块。
可选的,所述驱动程序升级装置,包括:
请求判断单元,用于判断所述旧版本逻辑模块的处理队列中是否存在未处理的请求,若是,运行所述卸载单元303;其中,所述接口模块发送至所述旧版本逻辑模块的请求被加入所述旧版本逻辑模块的处理队列。
可选的,若所述请求判断单元输出的判断结果为旧版本逻辑模块的处理队列中存在未处理的请求,运行请求继续处理单元;所述请求继续处理单元,用于继续处理所述旧版本逻辑模块的处理队列中未处理的请求。
可选的,所述驱动程序升级的装置,包括:
升级指令接收单元,用于通过所述接口模块接收针对所述旧版本逻辑模块进行升级的升级指令。
可选的,所述加载启动单元301,具体用于通过所述接口模块根据所述升级指令将所述新版本逻辑模块加载到内存当中,并启动所述新版本逻辑模块。
可选的,所述接口模块接收到的请求包括:操作系统发送的与所述驱动程序相关的数据请求。
可选的,所述接口模块通过调用所述旧版本逻辑模块提供的接口向所述旧版本逻辑模块发送请求;相应的,所述接口模块通过调用所述新版本逻辑模块提供的接口向所述新版本逻辑模块发送请求。
可选的,所述切换单元302,具体用于通过所述接口模块将当前调用所述旧版本逻辑模块提供的接口切换为调用所述新版本逻辑模块提供的接口,将向所述旧版本逻辑模块发送请求切换为向所述新版本逻辑模块发送。
可选的,所述切换单元302运行后,所述接口模块将接收到的请求发送至所述新版本逻辑模块,所述新版本逻辑模块从自身的处理队列中读取请求进行处理,并将处理结果返回给所述接口模块。
可选的,所述旧版本逻辑模块通过调用操作系统提供的系统函数卸载。
可选的,所述驱动程序升级装置在云计算环境中运行。
可选的,所述驱动程序包括:用于控制并使用云计算环境中网络资源的网络驱动程序,以及用于访问云计算环境中存储资源的存储驱动程序。
可选的,所述网络驱动程序包括:网卡驱动程序。
可选的,所述存储驱动程序包括:块设备驱动程序。
本申请提供的一种电子设备实施例如下:
在上述的实施例中,提供了一种驱动程序升级的方法,此外,本申请还提供了一种用于实现所述驱动程序升级的方法的电子设备,下面结合附图进行说明。
参照附图4,其示出了本实施例提供的一种电子设备的示意图。
本申请提供的所述电子设备用于实现本申请提供的所述驱动程序升级的方法,本实施例与上述提供的驱动程序升级的方法实施例相对应,阅读本实施例的内容请参照上述提供的驱动程序升级的方法实施例的对应说明。下述描述的实施例仅仅是示意性的。
本申请提供一种电子设备,包括:
存储器401,以及处理器402;
所述存储器401用于存储计算机可执行指令,所述处理器402用于执行所述计算机可执行指令:
在驱动程序的第一子驱动的控制下将第二子驱动加载到内存当中并启动;
将所述第一子驱动向第三子驱动发送接收到的请求切换为向所述第二子驱动发送;
卸载所述第三子驱动;
其中,驱动程序的所述第一子驱动包括驱动程序的接口模块;所述第二子驱动包括新版本逻辑模块;所述第三子驱动包括旧版本逻辑模块。
可选的,所述将所述接口模块向旧版本逻辑模块发送接收到的请求切换为向所述新版本逻辑模块发送指令执行后,且所述卸载所述旧版本逻辑模块指令执行前,所述处理器402还用于执行下述计算机可执行指令:
判断所述旧版本逻辑模块的处理队列中是否存在未处理的请求,若是,执行所述卸载所述旧版本逻辑模块指令;
其中,所述接口模块发送至所述旧版本逻辑模块的请求被加入所述旧版本逻辑模块的处理队列。
可选的,若所述判断所述旧版本逻辑模块处理队列中的请求是否处理完成步骤的判断结果为否,继续处理所述旧版本逻辑模块的处理队列中未处理的请求。
可选的,所述在驱动程序的接口模块的控制下将新版本逻辑模块加载到内存当中并启动指令执行前,所述处理器402还用于执行下述计算机可执行指令:
所述接口模块接收针对所述旧版本逻辑模块进行升级的升级指令。
可选的,所述在驱动程序的接口模块的控制下将新版本逻辑模块加载到内存当中并启动,采用如下方式实现:
所述接口模块根据所述升级指令将所述新版本逻辑模块加载到内存当中,并启动所述新版本逻辑模块。
可选的,所述接口模块接收到的请求包括:操作系统发送的与所述驱动程序相关的数据请求。
可选的,所述接口模块通过调用所述旧版本逻辑模块提供的接口向所述旧版本逻辑模块发送请求;相应的,所述接口模块通过调用所述新版本逻辑模块提供的接口向所述新版本逻辑模块发送请求。
可选的,所述将所述接口模块向旧版本逻辑模块发送接收到的请求切换为向所述新版本逻辑模块发送,采用如下方式实现:
所述接口模块将当前调用所述旧版本逻辑模块提供的接口切换为调用所述新版本逻辑模块提供的接口,将向所述旧版本逻辑模块发送请求切换为向所述新版本逻辑模块发送。
可选的,所述将所述接口模块向旧版本逻辑模块发送接收到的请求切换为向所述新版本逻辑模块发送指令执行后,所述接口模块将接收到的请求发送至所述新版本逻辑模块,所述新版本逻辑模块从自身的处理队列中读取请求进行处理,并将处理结果返回给所述接口模块。
可选的,所述旧版本逻辑模块通过调用操作系统提供的系统函数卸载。
可选的,所述电子设备中包含的处理器402在云计算环境中执行所述计算机可执行指令。
可选的,所述驱动程序包括:用于控制并使用云计算环境中网络资源的网络驱动程序,以及用于访问云计算环境中存储资源的存储驱动程序。
可选的,所述网络驱动程序包括:网卡驱动程序。
可选的,所述存储驱动程序包括:块设备驱动程序。
本申请虽然以较佳实施例公开如上,但其并不是用来限定本申请,任何本领域技术人员在不脱离本申请的精神和范围内,都可以做出可能的变动和修改,因此本申请的保护范围应当以本申请权利要求所界定的范围为准。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

Claims (17)

1.一种驱动程序升级的方法,其特征在于,包括:
在驱动程序的第一子驱动的控制下将第二子驱动加载到内存当中并启动;
将所述第一子驱动向第三子驱动发送接收到的请求切换为向所述第二子驱动发送;
卸载所述第三子驱动。
2.根据权利要求1所述的驱动程序升级的方法,其特征在于,所述将所述第一子驱动向第三子驱动发送接收到的请求切换为向所述第二子驱动发送步骤执行后,且所述卸载所述第三子驱动步骤执行前,执行下述步骤:
判断所述第三子驱动的处理队列中是否存在未处理的请求,若是,执行所述卸载所述第三子驱动步骤;
其中,所述第一子驱动发送至所述第三子驱动的请求被加入所述第三子驱动的处理队列。
3.根据权利要求2所述的驱动程序升级的方法,其特征在于,若所述判断所述第三子驱动处理队列中的请求是否处理完成步骤的判断结果为否,继续处理所述第三子驱动的处理队列中未处理的请求。
4.根据权利要求1所述的驱动程序升级的方法,其特征在于,所述在驱动程序的第一子驱动的控制下将第二子驱动加载到内存当中并启动步骤执行前,执行下述步骤:
所述第一子驱动接收针对所述第三子驱动进行升级的升级指令。
5.根据权利要求4所述的驱动程序升级的方法,其特征在于,所述在驱动程序的第一子驱动的控制下将第二子驱动加载到内存当中并启动,采用如下方式实现:
所述第一子驱动根据所述升级指令将所述第二子驱动加载到内存当中,并启动所述第二子驱动。
6.根据权利要求5所述的驱动程序升级的方法,其特征在于,所述第一子驱动接收到的请求包括:
操作系统发送的与所述驱动程序相关的数据请求。
7.根据权利要求6所述的驱动程序升级的方法,其特征在于,所述第一子驱动通过调用所述第三子驱动提供的接口向所述第三子驱动发送请求;
相应的,所述第一子驱动通过调用所述第二子驱动提供的接口向所述第二子驱动发送请求。
8.根据权利要求7所述的驱动程序升级的方法,其特征在于,所述将所述第一子驱动向第三子驱动发送接收到的请求切换为向所述第二子驱动发送,采用如下方式实现:
所述第一子驱动将当前调用所述第三子驱动提供的接口切换为调用所述第二子驱动提供的接口,将向所述第三子驱动发送请求切换为向所述第二子驱动发送。
9.根据权利要求8所述的驱动程序升级的方法,其特征在于,所述将所述第一子驱动向第三子驱动发送接收到的请求切换为向所述第二子驱动发送步骤执行后,所述第一子驱动将接收到的请求发送至所述第二子驱动,所述第二子驱动从自身的处理队列中读取请求进行处理,并将处理结果返回给所述第一子驱动。
10.根据权利要求9所述的驱动程序升级的方法,其特征在于,所述第三子驱动通过调用操作系统提供的系统函数卸载。
11.根据权利要求1至10任意一项所述的驱动程序升级的方法,其特征在于,所述驱动程序升级方法在云计算环境中实施。
12.根据权利要求11所述的驱动程序升级的方法,其特征在于,所述驱动程序包括:
用于控制并使用云计算环境中网络资源的网络驱动程序,以及用于访问云计算环境中存储资源的存储驱动程序。
13.根据权利要求12所述的驱动程序升级的方法,其特征在于,所述网络驱动程序包括:网卡驱动程序。
14.根据权利要求12所述的驱动程序升级的方法,其特征在于,所述存储驱动程序包括:块设备驱动程序。
15.一种驱动程序升级装置,其特征在于,包括:
加载启动单元,用于在驱动程序的第一子驱动的控制下将第二子驱动加载到内存当中并启动;
切换单元,用于将所述第一子驱动向第三子驱动发送接收到的请求切换为向所述第二子驱动发送;
卸载单元,用于卸载所述第三子驱动。
16.根据权利要求15所述的驱动程序升级装置,其特征在于,所述驱动程序升级装置在云计算环境中运行。
17.一种电子设备,其特征在于,包括:
存储器,以及处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令:
在驱动程序的第一子驱动的控制下将第二子驱动加载到内存当中并启动;
将所述第一子驱动向第三子驱动发送接收到的请求切换为向所述第二子驱动发送;
卸载所述第三子驱动。
CN201710022230.1A 2017-01-12 2017-01-12 一种驱动程序升级的方法、装置以及电子设备 Active CN108304200B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710022230.1A CN108304200B (zh) 2017-01-12 2017-01-12 一种驱动程序升级的方法、装置以及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710022230.1A CN108304200B (zh) 2017-01-12 2017-01-12 一种驱动程序升级的方法、装置以及电子设备

Publications (2)

Publication Number Publication Date
CN108304200A true CN108304200A (zh) 2018-07-20
CN108304200B CN108304200B (zh) 2022-02-22

Family

ID=62871834

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710022230.1A Active CN108304200B (zh) 2017-01-12 2017-01-12 一种驱动程序升级的方法、装置以及电子设备

Country Status (1)

Country Link
CN (1) CN108304200B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110780894A (zh) * 2018-07-31 2020-02-11 阿里巴巴集团控股有限公司 热升级处理方法、装置及电子设备

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1567195A (zh) * 2003-06-20 2005-01-19 华为技术有限公司 在嵌入式系统中实现引导程序热升级的方法
CN1912833A (zh) * 2006-08-29 2007-02-14 华南理工大学 一种嵌入式操作系统驱动程序动态升级方法
CN101398822A (zh) * 2007-09-26 2009-04-01 新奥特硅谷视频技术有限责任公司 利用虚拟文件系统技术实现动态扩展网络存储空间的方法
CN101488092A (zh) * 2008-01-07 2009-07-22 联想(新加坡)私人有限公司 不停止系统运行而使用系统管理程序环境更新设备驱动器或固件的系统和方法
CN101655801A (zh) * 2009-09-11 2010-02-24 华为技术有限公司 驱动软件升级的方法及装置
CN101770389A (zh) * 2008-12-29 2010-07-07 北京联想软件有限公司 一种计算机及管理硬件设备的方法
US20120096250A1 (en) * 2010-10-13 2012-04-19 International Business Machines Corporation Port throttling across an operating system restart during a hot upgrade
CN103677927A (zh) * 2013-12-16 2014-03-26 华为技术有限公司 软件升级的方法及装置
CN103970552A (zh) * 2013-01-30 2014-08-06 鸿富锦精密工业(深圳)有限公司 驱动ic及其驱动程序的升级方法
US20160098311A1 (en) * 2014-10-07 2016-04-07 International Business Machines Corporation Device driver error isolation on devices wired via fsi chained interface
CN106201566A (zh) * 2015-05-07 2016-12-07 阿里巴巴集团控股有限公司 利博伟特软件热升级方法及设备

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1567195A (zh) * 2003-06-20 2005-01-19 华为技术有限公司 在嵌入式系统中实现引导程序热升级的方法
CN1912833A (zh) * 2006-08-29 2007-02-14 华南理工大学 一种嵌入式操作系统驱动程序动态升级方法
CN101398822A (zh) * 2007-09-26 2009-04-01 新奥特硅谷视频技术有限责任公司 利用虚拟文件系统技术实现动态扩展网络存储空间的方法
CN101488092A (zh) * 2008-01-07 2009-07-22 联想(新加坡)私人有限公司 不停止系统运行而使用系统管理程序环境更新设备驱动器或固件的系统和方法
CN101770389A (zh) * 2008-12-29 2010-07-07 北京联想软件有限公司 一种计算机及管理硬件设备的方法
CN101655801A (zh) * 2009-09-11 2010-02-24 华为技术有限公司 驱动软件升级的方法及装置
US20120096250A1 (en) * 2010-10-13 2012-04-19 International Business Machines Corporation Port throttling across an operating system restart during a hot upgrade
CN103970552A (zh) * 2013-01-30 2014-08-06 鸿富锦精密工业(深圳)有限公司 驱动ic及其驱动程序的升级方法
CN103677927A (zh) * 2013-12-16 2014-03-26 华为技术有限公司 软件升级的方法及装置
US20160098311A1 (en) * 2014-10-07 2016-04-07 International Business Machines Corporation Device driver error isolation on devices wired via fsi chained interface
CN106201566A (zh) * 2015-05-07 2016-12-07 阿里巴巴集团控股有限公司 利博伟特软件热升级方法及设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CHUNG-I LIN等: "H-SWD: Incorporating Hot Data Identification into Shingled Write Disks", 《2012 IEEE 20TH INTERNATIONAL SYMPOSIUM ON MODELING, ANALYSIS AND SIMULATION OF COMPUTER AND TELECOMMUNICATION SYSTEMS》 *
周青: "基于NAPI的嵌入式Linux网络设备驱动的研究与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110780894A (zh) * 2018-07-31 2020-02-11 阿里巴巴集团控股有限公司 热升级处理方法、装置及电子设备
CN110780894B (zh) * 2018-07-31 2023-04-28 阿里巴巴集团控股有限公司 热升级处理方法、装置及电子设备

Also Published As

Publication number Publication date
CN108304200B (zh) 2022-02-22

Similar Documents

Publication Publication Date Title
US10466999B2 (en) Software hot upgrading method and device
US10419524B2 (en) System and method for workflow orchestration for use with a cloud computing environment
EP2925080B1 (en) Creating method and device for virtual base station
US9996331B1 (en) Customized application state transition
CN112822272B (zh) 微服务灰度发布方法及装置、计算机设备及存储介质
CN106155759B (zh) 虚拟机批量创建方法及装置
US10592312B2 (en) Message oriented middleware with integrated rules engine
CN108207008A (zh) 一种虚拟化网元的管理方法和装置
CN103503404A (zh) 资源调度方法、装置和系统
CN109960579B (zh) 一种调整业务容器的方法及装置
CN111143031A (zh) 一种虚拟机的容量更改方法及装置
CN111143034A (zh) 一种控制网络数据转发平面的方法、装置及系统
US10509688B1 (en) System and method for migrating virtual machines between servers
CN113360893B (zh) 基于容器的智能合约执行方法、装置及存储介质
US11321109B2 (en) Container engine for selecting driver based on container metadata
CN108255735A (zh) 关联环境测试方法、电子装置及计算机可读存储介质
CN108664343B (zh) 一种微服务的有状态调用方法及装置
CN108304200A (zh) 一种驱动程序升级的方法、装置以及电子设备
CN106576068A (zh) 一种软件安全验证方法、设备及系统
CN110875888B (zh) 实现网络资源按需处理的方法、装置和云管理系统
US11997170B2 (en) Automated migration of monolithic applications to container platforms
US11507437B2 (en) Deploying multiple different applications into a single short-lived container along with a master runtime
CN108712298A (zh) 网络设备升级方法、装置、网络设备及存储介质
CN114546648A (zh) 任务处理方法及任务处理平台
WO2017206092A1 (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
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20230531

Address after: Room 1-2-A06, Yungu Park, No. 1008 Dengcai Street, Sandun Town, Xihu District, Hangzhou City, Zhejiang Province

Patentee after: Aliyun Computing Co.,Ltd.

Address before: Box 847, four, Grand Cayman capital, Cayman Islands, UK

Patentee before: ALIBABA GROUP HOLDING Ltd.

TR01 Transfer of patent right