一种运行驱动程序的方法及装置制造方法

文档序号:6516600阅读:145来源:国知局
一种运行驱动程序的方法及装置制造方法
【专利摘要】本发明涉及驱动【技术领域】,提供了一种运行驱动程序的方法。其中方法包括:终端识别需要运行的驱动线程的类型;在识别出需要运行的驱动线程的类型为非受信任类型时,终端在非受信任模式下开始运行该非受信任类型的驱动线程;终端监测在非受信任模式下运行的该非受信任类型驱动线程是否需要执行受控操作;如果监测到在非受信任模式下运行的该非受信任类型驱动线程需要执行受控操作,终端对受控操作进行鉴权,并根据鉴权的结果对受控操作进行处理。使用本发明提供的方法和装置,在保证驱动程序高效安全运行的前提下,提高了操作系统的稳定性。
【专利说明】—种运行驱动程序的方法及装置
【技术领域】
[0001]本发明涉及驱动运行技术,具体涉及一种运行驱动程序的方法及装置。
【背景技术】
[0002]随着科学技术的发展,终端上附加的硬件设备层出不穷,常见的硬件设备有声卡、网卡、显卡以及打印机等,这些硬件设备都有对应的驱动程序,操作系统通过驱动程序才能控制相应的硬件设备进行工作。
[0003]为了提升驱动程序的运行效率,操作系统在内核态运行驱动程序,使得驱动程序可快速高效的完成操作指令。运行于内核态的驱动程序可以自由地访问任何有效地址,直接进行端口访问。
[0004]由于驱动程序在内核态运行时,可以自由地访问任何有效地址,以及直接进行端口访问,而终端上需要运行的驱动程序越来越多,不同厂商或机构提供的驱动程序的稳定性和安全性也是良莠不齐,如果驱动程序运行时与操作系统所需要的资源发生冲突,会导致操作系统崩溃,降低了操作系统的稳定性。

【发明内容】

[0005]本发明实施例提供一种运行驱动程序的方法和装置,能够避免操作系统的崩溃,从而提高操作系统的稳定性。
[0006]第一方面,本发明提供了一种运行驱动程序的方法,包括:
[0007]终端识别需要运行的驱动线程的类型;在识别出所述需要运行的驱动线程的类型为非受信任类型时,所述终端在非受信任模式下开始运行所述非受信任类型的驱动线程;所述终端监测在非受信任模式下运行的所述非受信任类型驱动线程是否需要执行受控操作;如果监测到在非受信任模式下运行的所述非受信任类型驱动线程需要执行受控操作,所述终端对所述受控操作进行鉴权,并根据所述鉴权的结果对所述受控操作进行处理。
[0008]结合第一方面,在第一方面的第一种实现方式中,所述终端对所述受控操作进行鉴权包括:
[0009]所述终端识别所述受控操作是否为可信操作;
[0010]所述根据所述鉴权的结果对所述受控操作进行处理具体包括:
[0011]如果识别出所述受控操作是可信操作,所述终端在受信任模式下执行所述受控操作;
[0012]如果识别出所述受控操作是不可信操作,所述终端终止所述需要执行受控操作的驱动线程。
[0013]结合第一方面的第一种实现方式,在第一方面的第二种实现方式中,所述终端终止所述需要执行受控操作的驱动线程前还包括:
[0014]所述终端对所述受控操作的对象进行识别;
[0015]在识别出所述受控操作的对象是预留的受保护内容时,才终止所述需要执行受控操作的驱动线程;若识别出所述受控操作的对象不是预留的受保护内容,所述终端在受信任模式下执行所述受控操作。
[0016]结合第一方面或第一方面的第一种实现方式或第一方面的第二种实现方式,在第一方面的第三种实现方式中,在所述终端识别需要运行的驱动线程的类型前还包括:
[0017]所述终端为所述非受信任类型驱动程序的驱动线程增加非受信任类型标记;
[0018]所述终端识别需要运行的驱动线程的类型包括:
[0019]所述终端根据所述非受信任类型标记来识别需要运行的驱动线程的类型。
[0020]结合第一方面或第一方面的第一种实现方式或第一方面的第二种实现方式或第一方面的第三种实现方式,在第一方面的第四种实现方式中,在所述终端识别需要运行的驱动线程的类型前还包括:
[0021 ] 所述终端识别驱动程序的类型;
[0022]在识别出所述驱动程序的类型为非受信任类型时,所述终端在非受信任模式下创建非受信任类型驱动程序的驱动线程;
[0023]在识别出所述驱动程序的类型为受信任类型时,所述终端在受信任模式下创建受信任类型驱动程序的驱动线程。
[0024]结合第一方面的第四种实现方式,在第一方面的第五种实现方式中,在所述终端识别需要运行的驱动线程的类型前还包括:
[0025]所述终端为所述受信任类型驱动程序的驱动线程增加受信任类型标记;
[0026]所述终端识别需要运行的驱动线程的类型包括:
[0027]所述终端根据所述受信任类型标记来识别需要运行的驱动线程的类型。
[0028]结合第一方面的第四种实现方式或第一方面的第五种实现方式,在第一方面的第六种实现方式中,在所述终端识别需要运行的驱动线程的类型后还包括:
[0029]在识别出所述需要运行的驱动线程为受信任类型时,所述终端在受信任模式下开始运行所述受信任类型的驱动线程。
[0030]结合第一方面的第四种实现方式或第一方面的第五种实现方式或第一方面的第五种实现方式或第一方面的第六种实现方式,在第一方面的第七种实现方式中,所述终端识别驱动程序的类型具体为:所述终端在受信任模式下识别所述驱动程序的类型;
[0031]所述终端在非受信任模式下创建非受信任类型驱动程序的驱动线程前进一步包括:所述终端从受信任模式切换至非受信任模式;
[0032]所述终端在非受信任模式下创建非受信任类型驱动程序的驱动线程后还包括:
[0033]所述终端从非受信任模式切换至受信任模式。
[0034]结合第一方面或第一方面的第一种实现方式或第一方面的第二种实现方式或第一方面的第三种实现方式或第一方面的第四种实现方式或第一方面的第五种实现方式或第一方面的第六种实现方式或第一方面的第七种实现方式,在第一方面的第八种实现方式中,所述终端识别驱动线程的类型具体为:所述终端在受信任模式下识别所述驱动线程的类型;
[0035]所述终端在非受信任模式下运行非受信任类型的驱动线程前进一步包括:所述终端从受信任模式切换至非受信任模式;
[0036]所述终端在非受信任模式下运行非受信任类型的驱动线程后还包括:[0037]所述终端从非受信任模式切换至受信任模式。
[0038]第二方面,本发明提供了一种运行驱动程序的装置,包括:
[0039]识别单元,用于识别需要运行的驱动线程的类型;运行单元,用于在所述识别单元识别需要运行的驱动线程的类型为非受信任类型时,在非受信任模式下开始运行所述非受信任类型的驱动线程;监测单元,用于监测所述运行单元在非受信任模式下运行的所述非受信任类型的驱动线程是否需要执行受控操作;鉴权单元,用于在所述监测单元检测到所述非受信任类型的驱动线程需要执行受控操作时,对所述受控操作进行鉴权;处理单元,用于根据所述鉴权单元的鉴权结果,对所述受控操作进行处理。
[0040]结合第二方面,在第二方面的第一种实现方式中,所述鉴权单元具体用于:
[0041]在所述监测单元监测到所述非受信任类型的驱动线程需要执行受控操作时,识别所述受控操作是否为可信操作;在所述受控操作不是可信操作时,对所述受控操作的对象进行识别,识别所述受控操作的对象是否为预留的受保护内容;
[0042]所述处理单元具体用于:在所述鉴权单元识别所述受控操作是可信操作时,所述处理单元允许所述受控操作执行;在所述鉴权单元识别所述受控操作是不可信行为,所述处理单元终止所述需要执行受控操作的驱动线程。
[0043]结合第二方面的第一种实现方式,在第二方面的第二种实现方式中,所述处理单元还用于:
[0044]在所述鉴权单元识别所述受控操作是不可信操作时且所述受控操作的对象是预留的受保护内容时,所述处理单元终止所述需要执行受控操作的驱动线程;在所述鉴权单元识别所述受控操作是不可信行为且所述受控操作的对象不是预留的受保护内容时,所述处理单元允许所述运行单元在受信任模式下执行所述受控操作。
[0045]结合第二方面或第二方面的第一种实现方式或第二方面的第二种实现方式,在第二方面第三种实现方式中,还包括:
[0046]第一标记单元,用于为所述非受信任类型驱动程序的驱动线程增加非受信任类型标记;
[0047]所述识别单元,具体用于根据非受信任类型标记来识别需要运行的驱动线程的类型。
[0048]结合第二方面或第二方面的第一种实现方式或第二方面的第二种实现方式或第二方面的第三种实现方式,在第二方面第四种实现方式中,还包括:
[0049]所述识别单元还用于识别驱动程序的类型;
[0050]所述装置还包括:
[0051]创建单元,用于在所述识别单元识别出所述驱动程序的类型为非受信任类型时,在非受信任模式下创建非受信任类型驱动程序的驱动线程;在所述识别单元识别所述驱动程序的为受信任类型时,在受信任模式下创建受信任类型驱动程序的驱动线程。
[0052]结合第二方面的第四种实现方式,在第二方面的第五种实现方式中,还包括:
[0053]第二标记单元,用于为所述受信任类型驱动程序的驱动线程增加受信任类型标记。
[0054]所述识别单元,具体用于根据受信任类型标记来识别需要运行的驱动线程的类型。[0055]结合第二方面的第四种实现方式或第二方面的第五种实现方式,在第二方面的第六种实现方式中,
[0056]所述运行单元还用于:
[0057]在所述识别单元识别需要运行的驱动线程为受信任类型时,在受信任模式下运行所述受信任类型驱动线程。
[0058]结合第二方面的第四种实现方式或第二方面的第五种实现方式或第二方面的第六种实现方式,在第二方面的第七种实现方式中,所述识别单元,具体用于在受信任模式下识别所述驱动程序的类型;
[0059]所述装置还包括第一切换单元,用于在所述识别单元识别驱动程序为非受信任类型时,将处理模式从受信任模式切换至非受信任模式;在所述创建单元完成对非受信任类型驱动程序的驱动线程创建时,将所述处理模式从非受信任模式切换至受信任模式。
[0060]结合第二方面或第二方面的第一种实现方式或第二方面的第二种实现方式或第二方面的第三种实现方式或第二方面的第四种实现方式或第二方面的第五种实现方式或第二方面的第六种实现方式或第二方面的第七种实现方式,在第二方面的第八种实现方式中,
[0061]还包括第二切换单元,所述识别单元,具体用于在受信任模式下识别所述驱动线程的类型;
[0062]第二切换单元,在所述识别单元识别需要运行的驱动线程为非受信任类型时,将所述处理模式从受信任模式切换至非受信任模式;在所述运行单元完成非受信任类型驱动线程运行时,将所述处理模式从非受信任模式切换至受信任模式。
[0063]从本发明实施例提供的以上技术方案可以看出,使用本发明实施例提供的运行驱动程序的方法及装置,根据识别的驱动程序的类型,在受信任模式下创建受信任类型驱动程序的驱动线程,并在受信任模式下运行该受信任类型的驱动线程,在保证驱动程序安全运行的情况下,提高了操作系统的运行效率;进一步,在非受信任模式下创建非受信任类型驱动程序的驱动线程,在非受信任模式下运行该非受信任类型的驱动线程,并监测运行中非受信任类型的驱动线程是否发生受控操作,若发生受控操作,则对受控操作进行鉴权,并根据鉴权的结果进行处理,在保证驱动程序的高效运行的同时,也提高了操作系统的稳定性。
【专利附图】

【附图说明】
[0064]为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0065]图1为本发明一个实施例提供的运行驱动程序的方法流程图;
[0066]图2为本发明另一个实施例提供的运行驱动程序的方法流程图;
[0067]图3为本发明另一个实施例提供的运行驱动程序的方法流程图;
[0068]图4为本发明一个实施例提供的运行驱动程序的装置结构图;
[0069]图5为本发明另一个实施例提供的运行驱动程序的装置结构图;[0070]图6为本发明另一个实施例提供的运行驱动程序的装置结构图;
[0071]图7为本发明另一个实施例提供的运行驱动程序的装置结构图;
[0072]图8为本发明另一个实施例提供的运行驱动程序的装置结构图;
[0073]图9为本发明另一个实施例提供的运行驱动程序的装置结构图。
【具体实施方式】
[0074]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0075]图1描述了本发明实施例的一种运行驱动程序的方法,该方法描述的是终端运行驱动程序的过程,终端可以是计算机、手机、游戏机等设备,该方法具体包括:
[0076]101、终端识别需要运行的驱动线程的类型。
[0077]驱动程序的类型可以包括受信任类型和非受信任类型,对应的驱动线程的类型也可以包括受信任类型和非受信任类型。在本发明的一个实施例中,终端可以维护受信任类型的驱动程序的列表,从而可以根据该列表识别出驱动程序及其驱动线程的类型;终端也可以维护非受信任类型的驱动程序的列表,从而可以根据该列表识别出驱动程序及其驱动线程的类型。其中,受信任类型驱动程序可以是按照芯片厂商的设计研发出来的驱动程序、微软视窗硬件质量实验室(WHQL,Windows Hardware Quality Labs)认证的驱动程序、用户信任的驱动程序等;非受信任类型驱动程序可以是硬件产品厂商发布的驱动程序、测试版驱动程序、发烧友修改版驱动程序等。
[0078]需要运行的驱动线程是指在线程队列中等待获取CPU时间片的驱动线程或者是刚获得CPU时间片的驱动线程。
[0079]由于受信任类型的驱动线程和非受信任类型的驱动线程均在内存中,因此在运行驱动线程前,终端可以对需要运行的驱动线程的类型进行识别,以便根据驱动线程的类型进行相应的处理。
[0080]102、在识别出需要运行的驱动线程的类型为非受信任类型时,终端在非受信任模式下开始运行该非受信任类型的驱动线程。
[0081]在本发明的一个实施例中,操作系统在初始化时,利用硬件提供的页表映射机制,将受信任模式下的页表映射到非受信任模式下的页表上,使得受信任模式下的页表和非受信任模式下的页表内容相同,并将非受信任模式下页表中的受保护内容设置为只读,因此,受信任模式和非受信任模式上下文环境相同,但是权限不同,其中,非受信任模式权限较低。在受信任模式和非受信任模式之间切换时,可以进行权限的切换。由于在非受信任模式下设置了受保护的内容,驱动程序在非受信任模式下运行时,不能对受保护内容进行修改,提高了操作系统的稳定性。
[0082]在本发明的一个实施例中,受信任模式是指中央处理器(CPU,CentralProcessing Unit)中优先级较高的模式,拥有较高的权限,例如,受信任模式可以是复杂指令集x86架构类型CPU中的root模式,也可以是进阶精简指令集(ARM, Advanced RISCMachine)架构类型CPU的系统模式等;非受信任模式也是CPU中优先级较高的模式,但是由于将非受信任模式下的页表中受保护内容设置为只读,从而在非受信任模式下不能对受保护内容进行修改,例如,非受信任模式可以是x86架构类型CPU中的non-root模式,也可以是ARM架构类型CPU的hypervisor模式等。
[0083]在本发明的一个实施例中,加载驱动程序也可以被认为是运行驱动程序。
[0084]在本发明的一个实施例中,终端识别出需要运行的驱动线程的类型为非受信任类型时,终端从受信任模式切换到非受信任模式,在非受信任模式下开始运行该驱动线程,驱动线程根据驱动程序的代码会创建一些线程,这些线程也是在非受信任模式下运行的。在非受信任模式下运行非受信任类型的驱动线程,可以保证受保护内容不被修改,提高了操作系统的稳定性。
[0085]103、终端监测在非受信任模式下运行的该非受信任类型驱动线程是否发生受控操作。
[0086]在本发明的一个实施例中,当非受信任类型的驱动程序在非受信任模式下运行时,为了保证操作系统能够正常运行,监测驱动线程是否需要对受保护内容进行操作,如果驱动线程没有对受保护内容进行操作,则正常执行;如果驱动线程需要对受保护内容进行修改,则发生受控操作。监测在非受信任模式下运行的驱动线程是否发生受控操作,能够对可能产生的受控操作进行及时处理,提高操作系统的稳定性。
[0087]104、如果监测到在非受信任模式下运行的该非受信任类型驱动线程需要执行受控操作,终端对受控操作进行鉴权,并根据鉴权的结果对受控操作进行处理。
[0088]在本发明的一个实施例中,终端监测到在非受信任模式下运行的驱动线程需要对受保护内容进行修改,需要执行受控操作,终端从非受信任模式切换到受信任模式,对该受控操作进行鉴权识别,如果识别出该受控操作是可信行为,则允许该受控操作在受信任模式下继续执行;如果识别出该受控操作不是可信操作,终端对该受控操作的对象进行识别,若识别出受控操作的对象是预留的受保护内容,例如可以是预留的受保护内存或常用的内存,该受控操作可能会引起致命问题,例如会导致操作系统崩溃或者引起应用程序中断等,终端终止该需要执行受控操作的驱动线程;若识别出受控操作的对象是不是预留的受保护内容,终端在受信任模式下执行该受控操作。根据鉴权结果,对受控操作进行分类处理,提高了操作系统的稳定性。
[0089]从本发明实施例提供的以上技术方案可以看出,使用本发明实施例提供的运行驱动程序的方法及装置,在非受信任模式下运行该非受信任类型的驱动线程,并监测运行中的非受信任类型的驱动线程是否需要执行受控操作,若需要执行受控操作,则对受控操作进行鉴权,并根据鉴权结果进行处理,在保证驱动程序高效运行的同时,也提高了操作系统的稳定性。
[0090]如图2描述本发明实施例的一种运行驱动程序的方法。
[0091]201、终端识别驱动程序类型,在识别出该驱动程序的类型是非受信任类型时,则转入202,在识别出该驱动程序的类型是受信任类型时,则转入204。
[0092]具体地,驱动程序的类型可以包括受信任类型和非受信任类型。在本发明的一个实施例中,终端可以维护受信任类型的驱动程序的列表,从而可以根据该列表识别出驱动程序的类型。在本发明的另一个实施例中,终端可以通过驱动程序的数字签名识别出驱动程序的类型。识别驱动程序的类型,后续可以根据不同的驱动程序类型进行分类处理。[0093]其中,受信任类型驱动程序可以是按照芯片厂商的设计研发出来的驱动程序、WHQL认证的驱动程序、用户信任的驱动程序等;非受信任类型驱动程序可以是硬件产品厂商发布的驱动程序、测试版驱动程序、发烧友修改版驱动程序等。
[0094]202、终端在非受信任模式下创建非受信任类型驱动程序的驱动线程。
[0095]在本发明的一个实施例中,终端默认在受信任模式下运行,拥有较高权限,执行操作指令效率较高。驱动线程跟驱动程序的类型对应,包括受信任类型驱动线程和非受信任类型驱动线程。在识别驱动程序为非受信任类型驱动程序时,终端在非受信任模式下创建非受信任类型驱动程序的驱动线程时,会在非受信任模式的权限范围内分配驱动线程所需的资源,避免与操作系统所需资源发生冲突,提高操作系统安全性。其中,终端可以默认在非受信任模式下运行,安全性会提高。
[0096]在本发明的一个实施例中,操作系统在初始化时,利用硬件提供的页表映射机制,将受信任模式下的页表映射到非受信任模式下的页表上,使得受信任模式下的页表和非受信任模式下的页表内容相同,并将非受信任模式下页表中的受保护内容设置为只读,因此,受信任模式和非受信任模式上下文环境相同,但是权限不同,非受信任模式权限较低。进行受信任模式和非受信任模式切换时,可以进行权限的切换。由于在非受信任模式下设置了受保护的内容,驱动程序在非受信任模式运行时,若需要对受保护内容进行修改,便会发生受控操作。
[0097]在本发明的一个实施例中,受信任模式是指CPU中优先级较高的模式,拥有较高的权限,例如,受信任模式可以是复杂指令集x86架构类型CPU中的root模式,也可以是ARM架构类型CPU的系统模式等;非受信任模式也是CPU中优先级较高的模式,但是由于将非受信任模式下的页表中受保护内容设置为只读,从而在非受信任模式下不能对受保护内容进行修改,例如,非受信任模式可以是x86架构类型CPU中的non-root模式,也可以是ARM架构类型CPU的hypervisor模式等。
[0098]203、终端在非受信任模式下创建非受信任类型驱动程序的驱动线程时,为非受信任类型驱动程序的驱动线程增加非受信任类型标记,然后转入206。
[0099]终端在非受信任模式下创建非受信任类型驱动程序的驱动线程时,为非受信任类型驱动程序的驱动线程增加非受信任类型标记;终端也可以在非受信任模式下创建非受信任类型驱动程序的驱动线程后,为非受信任类型的驱动程序的驱动线程增加非受信任类型标记,以便终端可以通过识别驱动线程的标记识别出驱动线程的类型。
[0100]在为非受信任类型驱动程序的驱动线程增加非受信任类型标记前,终端通过非受信任驱动程序的列表识别非受信任类型的驱动程序及其驱动线程。
[0101]在本发明的一个实施例中,终端为了区分非受信任类型驱动程序的驱动线程和受信任类型驱动程序的驱动线程,可以为非受信任类型驱动程序的驱动线程增加标记,也可以为受信任类型驱动程序的驱动线程增加标记,也可以为受信任类型驱动程序的驱动线程和受信任类型驱动程序的驱动线程都增加标记以示区分。
[0102]204、终端在受信任模式下创建受信任类型驱动程序的驱动线程。
[0103]终端在识别驱动程序的类型为受信任类型时,由于受信任类型可以是按照芯片厂商的设计研发出来的驱动程序、WHQL认证的驱动程序或是用户信任的驱动程序,在受信任模式下创建该驱动程序的驱动线程不会对操作系统以及其他应用程序造成影响。[0104]其中,终端在受信任模式下拥有较高优先级,在受信任模式下创建受信任类型驱动程序的驱动线程效率较高。在本发明的另一个实施例中,在识别出声卡驱动程序为受信任驱动类型时,在受信任模式下创建该声卡驱动程序的驱动线程。
[0105]终端也可以在非受信任模式下创建受信任驱动程序的驱动线程,安全性会提高。
[0106]205、终端在受信任模式下创建受信任类型驱动程序的驱动线程时,为受信任类型驱动程序的驱动线程增加受信任类型标记。
[0107]终端在受信任模式下创建受信任类型驱动程序的驱动线程时,为受信任类型驱动程序的驱动线程增加受信任类型标记;终端也可以在受信任模式下创建受信任类型驱动程序的驱动线程后,为受信任类型驱动程序的驱动线程增加受信任类型标记,以便终端通过识别驱动线程的标记识别出驱动线程的类型。
[0108]在为受信任类型驱动程序的驱动线程增加受信任类型标记前,终端通过受信任驱动程序的列表识别受信任类型的驱动程序及其驱动线程。
[0109]206、终端识别需要运行的驱动线程的类型,若是受信任类型的驱动线程,则转入207 ;若是非受信任类型的驱动线程,则转入208。
[0110]需要运行的驱动线程是指在线程队列中等待获取CPU时间片的驱动线程或者是刚获得CPU时间片的驱动线程。在本发明的一个实施例中,终端识别刚获得CPU时间片的驱动线程或者在线程队列中等待获取CPU时间片的驱动线程。识别驱动线程的类型,后续可以根据驱动线程的类型进行分类处理。
[0111]207、终端在受信任模式下开始运行受信任类型的驱动线程。
[0112]受信任类型驱动程序可以是按照芯片厂商的设计研发出来的驱动程序、WHQL认证的驱动程序或是用户信任的驱动程序,运行时一般不会与操作系统所需资源发生冲突,受信任类型驱动程序自身也不会错误。
[0113]终端识别需要运行的驱动线程的类型为受信任类型时,在受信任模式下开始运行该驱动线程。由于终端在受信任模式下拥有较高权限,运行受信任类型的驱动线程效率较高。受信任类型的驱动线程也可以在非受信任模式下运行,安全性会提高。
[0114]208、终端在非受信任模式下运行该非受信任类型的驱动线程,运行完毕后,从非受信任模式切换至受信任模式。
[0115]终端在识别需要运行的驱动线程的类型为非受信任类型时,由于非受信任类型驱动程序可以是硬件产品厂商发布的驱动程序、测试版驱动程序、发烧友修改版驱动程序等,为了提高操作系统的安全性,终端从受信任模式切换到非受信任模式,在非受信任模式下运行非受信任类型驱动线程,运行完毕后从受信任模式切换至非受信任模式。在受信任模式下运行时,执行操作指令的效率较高。
[0116]209、终端监测在非受信任模式下运行的非受信任类型的驱动线程是否需要执行受控操作,若需要执行受控操作,对该受控操作进行鉴权,并根据该鉴权的结果对该受控操作进行处理。
[0117]终端监测在非受信任模式下运行的非受信任类型的驱动线程是否因需要修改受保护内容而发生受控操作,若发生受控操作,终端从非受信任模式切换至受信任模式,在受信任模式下对该受控操作进行鉴权。
[0118]在本发明的一个实施例中,终端对受控操作进行鉴权,识别该受控操作是否为可信操作,若识别出该受控操作是可信操作,则允许该受控操作继续执行;若识别出该受控操作是不可信操作,终端对该受控操作的对象进行识别,若识别出受控操作的对象是预留的受保护内容,例如可以是预留的受保护内存或常用的内存,该受控操作可能会引起致命问题,例如会导致操作系统崩溃或者引起应用程序中断等,终端终止该需要执行受控操作的驱动线程;若识别出受控操作的对象是不是预留的受保护内容,终端在受信任模式下执行该受控操作。根据鉴权结果,对受控操作进行分类处理,提高了操作系统的稳定性。
[0119]从本发明实施例提供的以上技术方案可以看出,使用本发明实施例提供的运行驱动程序的方法及装置,根据识别的驱动程序的类型,在受信任模式下创建受信任类型驱动程序的驱动线程,并在受信任模式下运行该受信任类型的驱动线程,在保证驱动程序安全运行的情况下,提高了操作系统的运行效率;进一步,在非受信任模式下创建非受信任类型驱动程序的驱动线程,在非受信任模式下运行该非受信任类型的驱动线程,并监测运行中非受信任类型的驱动线程是否需要执行受控操作,若需要执行受控操作,则对受控操作进行鉴权,并根据鉴权的结果进行处理,在保证驱动程序的高效运行的同时,也提高了操作系统的可靠性。
[0120]如图3描述本发明实施例的一种运行驱动程序的方法。
[0121]301、终端在受信任模式下识别驱动程序类型,在识别出该驱动程序的类型是非受信任类型时,则转入302,在识别出该驱动程序的类型是受信任类型时,则转入304。
[0122]在本发明的一个实施例中,终端默认在受信任模式下运行,拥有较高权限,执行操作指令效率较高。
[0123]具体地,驱动程序的类型可以包括受信任类型和非受信任类型。在本发明的一个实施例中,终端可以维护受信任类型的驱动程序的列表,从而可以根据该列表识别出驱动程序的类型。在本发明的另一个实施例中,终端可以通过驱动程序的数字签名识别出驱动程序的类型。识别驱动程序的类型,后续可以根据不同的驱动程序类型进行分类处理。
[0124]其中,受信任类型驱动程序可以是按照芯片厂商的设计研发出来的驱动程序、WHQL认证的驱动程序、用户信任的驱动程序等;非受信任类型驱动程序可以是硬件产品厂商发布的驱动程序、测试版驱动程序、发烧友修改版驱动程序等。
[0125]302、终端从受信任模式切换至非受信任模式,在非受信任模式下创建非受信任类型驱动程序的驱动线程。
[0126]驱动线程跟驱动程序的类型对应,包括受信任类型驱动线程和非受信任类型驱动线程。在识别驱动程序为非受信任类型驱动程序时,终端从受信任模式切换到非受信任模式,终端在非受信任模式下创建非受信任类型驱动程序的驱动线程时,会在非受信任模式的权限范围内分配驱动线程所需的资源,避免与操作系统所需资源发生冲突,提高操作系统安全性。其中,终端可以默认在非受信任模式下运行,安全性会提高。
[0127]在本发明的一个实施例中,操作系统在初始化时,利用硬件提供的页表映射机制,将受信任模式下的页表映射到非受信任模式下的页表上,使得受信任模式下的页表和非受信任模式下的页表内容相同,并将非受信任模式下页表中的受保护内容设置为只读,因此,受信任模式和非受信任模式上下文环境相同,但是权限不同,非受信任模式权限较低。进行受信任模式和非受信任模式切换时,可以进行权限的切换。由于在非受信任模式下设置了受保护的内容,驱动程序在非受信任模式运行时,若需要对受保护内容进行修改,便会发生受控操作。
[0128]在本发明的一个实施例中,受信任模式是CPU中优先级较高的模式,拥有较高的权限,例如,受信任模式可以是复杂指令集x86架构类型CPU中的root模式,也可以是ARM架构类型CPU的系统模式等;非受信任模式也是CPU中优先级较高的模式,但是由于将非受信任模式下的页表中受保护内容设置为只读,从而在非受信任模式下不能对受保护内容进行修改,例如,非受信任模式可以是x86架构类型CPU中的non-root模式,也可以是ARM架构类型CPU的hypervisor模式等。
[0129]303、终端在非受信任模式下创建非受信任类型驱动程序的驱动线程后,为非受信任类型驱动程序的驱动线程增加非受信任类型标记,并从非受信任模式切换至受信任模式,然后转入306。
[0130]终端在非受信任模式下创建非受信任类型驱动程序的驱动线程后,为非受信任类型驱动程序的驱动线程增加非受信任类型标记,以便终端可以通过识别驱动线程的标记识别出驱动线程的类型。
[0131 ] 在本发明的一个实施例中,终端为了区分非受信任类型驱动程序的驱动线程和受信任类型驱动程序的驱动线程,可以为非受信任类型驱动程序的驱动线程增加标记,也可以为受信任类型驱动程序的驱动线程增加标记,也可以为受信任类型驱动程序的驱动线程和受信任类型驱动程序的驱动线程都增加标记以示区分。
[0132]304、终端在受信任模式下创建受信任类型驱动程序的驱动线程。
[0133]终端在识别驱动程序的类型为受信任类型时,由于受信任类型可以是按照芯片厂商的设计研发出来的驱动程序、WHQL认证的驱动程序或是用户信任的驱动程序,在受信任模式下创建该驱动程序的驱动线程不会对操作系统以及其他应用程序造成影响。
[0134]其中,终端在受信任模式下拥有较高优先级,在受信任模式下创建受信任类型驱动程序的驱动线程效率较高。在本发明的另一个实施例中,在识别出声卡驱动程序为受信任驱动类型时,在受信任模式下创建该声卡驱动程序的驱动线程。
[0135]终端也可以在非受信任模式下创建受信任驱动程序的驱动线程,会提高操作系统的稳定性。
[0136]305、终端在受信任模式下创建受信任类型驱动程序的驱动线程后,为受信任类型驱动程序的驱动线程增加受信任类型标记。
[0137]终端在受信任模式下创建受信任类型驱动程序的驱动线程后,为受信任类型驱动程序的驱动线程增加受信任类型标记,以便终端通过识别驱动线程的标记识别出驱动线程的类型。
[0138]306、终端识别需要运行的驱动线程的类型,若是受信任类型的驱动线程,则转入307 ;若是非受信任类型的驱动线程,则转入308。
[0139]需要运行的驱动线程是指在线程队列中等待获取CPU时间片的驱动线程或者是刚获得CPU时间片的驱动线程。在本发明的一个实施例中,终端识别刚获得CPU时间片的驱动线程或者在线程队列中等待获取CPU时间片的驱动线程。识别驱动线程的类型,后续可以根据驱动线程的类型进行分类处理。
[0140]307、终端在受信任模式下开始运行受信任类型的驱动线程。
[0141]受信任类型驱动程序可以是按照芯片厂商的设计研发出来的驱动程序、WHQL认证的驱动程序或是用户信任的驱动程序,运行时一般不会与操作系统所需资源发生冲突,受信任类型驱动程序自身也不会错误。
[0142]终端识别需要运行的驱动线程的类型为受信任类型时,在受信任模式下开始运行该驱动线程。由于终端在受信任模式下拥有较高权限,运行受信任类型的驱动线程效率较高。受信任类型的驱动线程也可以在非受信任模式下运行,会提高操作系统的稳定性。
[0143]308、终端从受信任模式切换至非受信任模式,在非受信任模式下运行非受信任类型的驱动线程,运行完毕后,从非受信任模式切换至受信任模式。
[0144]终端在识别需要运行的驱动线程的类型为非受信任类型时,由于非受信任类型驱动程序可以是硬件产品厂商发布的驱动程序、测试版驱动程序、发烧友修改版驱动程序等,为了提高操作系统的安全性,终端从受信任模式切换到非受信任模式,在非受信任模式下运行非受信任类型驱动线程,运行完毕后从受信任模式切换至非受信任模式。
[0145]309、终端监测在非受信任模式下运行的非受信任类型的驱动线程是否需要执行受控操作,若需要执行受控操作,对该受控操作进行鉴权,并根据该鉴权的结果对该受控操作进行处理。
[0146]终端监测在非受信任模式下运行的非受信任类型的驱动线程是否因需要修改受保护内容而发生受控操作,若发生受控操作,终端从非受信任模式切换至受信任模式,在受信任模式下对该受控操作进行鉴权。
[0147]在本发明的一个实施例中,终端对受控操作进行鉴权,识别该受控操作是否为可信操作,若识别出该受控操作是可信操作,则允许该受控操作继续执行;若识别出该受控操作是不可信操作,终端对该受控操作的对象进行识别,若识别出受控操作的对象是预留的受保护内容,例如可以是预留的受保护内存或常用的内存,该受控操作可能会引起致命问题,例如会导致操作系统崩溃或者引起应用程序中断等,终端终止该需要执行受控操作的驱动线程;若识别出受控操作的对象是不是预留的受保护内容,终端在受信任模式下执行该受控操作。根据鉴权结果,对受控操作进行分类处理,提高了操作系统的稳定性。
[0148]从本发明实施例提供的以上技术方案可以看出,使用本发明实施例提供的运行驱动程序的方法及装置,根据识别的驱动程序的类型,在受信任模式下创建受信任类型驱动程序的驱动线程,并在受信任模式下运行该受信任类型的驱动线程,在保证驱动程序安全运行的情况下,提高了操作系统的运行效率;进一步,在非受信任模式下创建非受信任类型驱动程序的驱动线程,在非受信任模式下运行该非受信任类型的驱动线程,并监测运行中非受信任类型的驱动线程是否需要执行受控操作,若需要执行受控操作,则对受控操作进行鉴权,并根据鉴权的结果进行处理,在保证驱动程序的高效运行的同时,也提高了操作系统的稳定性。
[0149]下面根据图4描述本发明实施例的运行驱动程序的装置40。如图4所示,装置40包括:
[0150]识别单元401,运行单元402,监测单元403,鉴权单元404,处理单元405。
[0151]识别单元401,用于识别需要运行的驱动线程的类型。
[0152]在本发明的一个实施例中,识别单元401识别需要运行的驱动线程的类型。其中,识别单元401可以是通过对比非受信任类型驱动线程的列表,判断该需要运行的驱动线程是否为非受信任类型的驱动线程;也可以通过对比受信任类型驱动线程的列表,判断该需要运行的驱动线程是否为受信任类型的驱动线程。
[0153]运行单元402,用于在识别单元401识别需要运行的驱动线程为非受信任类型时,则在非受信任模式下运行该需要运行的驱动线程。
[0154]在本发明的一个实施例中,在识别单元401识别需要运行的驱动线程为非受信任类型时,运行单元402则在非受信任模式下根据非受信任模式对应的权限运行非受信任类型的驱动线程,驱动线程根据驱动程序的代码会创建一些线程,运行单元402在非受信任模式下运行这些线程。在非受信任模式下运行非受信任类型的驱动线程可以提高操作系统的稳定性。
[0155]监测单元403,用于监测运行单元403在非受信任模式下运行的非受信任类型的驱动线程是否发生受控操作。
[0156]在本发明的一个实施例中,非受信任类型的驱动线程在非受信任模式下运行时,监测单元403监测运行单元402运行的非受信任类型的驱动线程是否需要修改受保护内容,若需要修改受保护的内容则会发生受控操作。监测在非受信任模式下运行的驱动线程是否发生受控操作,能够对可能产生的受控操作进行及时处理,提高操作系统的稳定性。
[0157]鉴权单元404,用于在监测单元403监测到非受信任类型的驱动线程需要执行受控操作时,识别该受控操作是否为可信操作;在该受控操作不是可信操作时,对该受控操作的对象进行识别,识别该受控操作的对象是否为预留的受保护内容。
[0158]在本发明的一个实施例中,在监测单元403监测到在非受信任模式下运行的非受信任类型的驱动线程需要执行受控操作时,鉴权单元404识别该受控操作是否为可信操作,在该受控操作不是可信操作时,对该受控操作的对象进行识别,识别该受控操作的对象是否为预留的受保护内容。根据识别的结果,以便做出相应的处理。
[0159]处理单元405,用于根据鉴权单元404的鉴权结果,对受控操作进行处理。
[0160]在本发明的一个实施例中,在鉴权单元404识别出该受控操作是可信操作时,处理单元405允许受控操作继续执行;在鉴权单元404识别出该受控操作是不可信操作且该受控操作的对象是预留的受保护内容,例如可以是预留的受保护内存或常用的内存,该受控操作可能会引起致命问题,例如会导致操作系统崩溃或者引起应用程序中断等,处理单元405终止该需要执行受控操作的驱动线程;若识别出受控操作的对象是不是预留的受保护内容,处理单元405允许运行单元402在受信任模式下执行该受控操作。根据鉴权结果,对受控操作进行分类处理,提高了操作系统的稳定性。
[0161]从本发明实施例提供的以上技术方案可以看出,使用本发明实施例提供的运行驱动程序的方法及装置,根据识别的驱动程序的类型,在受信任模式下创建受信任类型驱动程序的驱动线程,并在受信任模式下运行该受信任类型的驱动线程,在保证驱动程序安全运行的情况下,提高了操作系统的运行效率;进一步,在非受信任模式下创建非受信任类型驱动程序的驱动线程,在非受信任模式下运行该非受信任类型的驱动线程,并监测运行中非受信任类型的驱动线程是否需要执行受控操作,若需要执行受控操作,则对受控操作进行鉴权,并根据鉴权结果进行处理,在保证驱动程序的高效运行的同时,也提高了操作系统的可靠性。
[0162]图5描述了本发明另一个实施例提供的运行驱动装置的结构,包括:
[0163]识别单元501,创建单元502,第一标记单元503,第二标记单元504,运行单元505,第一切换单元506,第二切换单元507,监测单元508,鉴权单元509,处理单元510。
[0164]识别单元501,用于识别驱动程序的类型;识别需要运行的驱动线程的类型。
[0165]在本发明的一个实施例中,识别单元501识别驱动程序类型是否为非受信任类型的驱动程序。其中,识别单元501可以是通过识别驱动程序的数字签名而识别出驱动程序的类型。根据识别出的驱动程序的类型,后续可以对不同类型的驱动程序进行相应的处理。
[0166]创建单元502,用于在识别单元501识别驱动程序为非受信任类型时,在非受信任模式下创建该非受信任类型驱动程序的驱动线程;用于在识别单元501识别驱动程序为受信任类型时,在受信任模式下创建该受信任类型驱动程序的驱动线程。
[0167]在本发明的一个实施例中,在识别单元501识别出驱动程序的类型为非受信任类型时,创建单元502在非受信任模式下将该驱动程序的代码加载到内存中,在非受信任模式对应的权限内给该驱动程序分配资源,创建非受信任类型驱动程序的驱动线程,可以避免与内核所需的资源发生冲突,提高操作系统的稳定性。
[0168]在本发明的另一个实施例中,在识别单元501识别出驱动程序的类型为受信任类型时,创建单元502在受信任模式下将该驱动程序的代码加载到内存中,在受信任模式对应的权限内给该驱动程序分配资源,由于在受信任模式下权限较高,创建受信任类型驱动程序的驱动线程的效率较高。
[0169]第一标记单元503,用于在创建单元502在非受信任模式下创建非受信任类型驱动程序的驱动线程时,为非受信任类型驱动程序的驱动线程增加非受信任类型的标记。
[0170]识别单元501可以通过识别驱动线程的标记识别非受信任类型驱动线程。
[0171]第二标记单元504,用于在创建单元502在受信任模式下创建受信任类型驱动程序的驱动线程时,为受信任类型驱动程序的驱动线程增加受信任类型的标记。
[0172]识别单元501通过识别驱动线程的标记识别受信任类型驱动线程。
[0173]运行单元505,用于在识别单元501识别驱动线程为非受信任类型时,在非受信任模式下开始运行非受信任类型的驱动线程;用于在识别单元501识别驱动线程为受信任类型时,在受信任模式下开始运行受信任类型的驱动线程。
[0174]在本发明的一个实施例中,在识别单元501识别创建单元502创建的驱动线程为非受信任类型时,运行单元505在非受信任模式下根据非受信任模式对应的权限运行非受信任类型的驱动线程,驱动线程根据驱动程序的代码会创建一些线程,运行单元505在非受信任模式下运行这些线程。在非受信任模式下运行非受信任类型的驱动线程会提高操作系统的稳定。
[0175]在本发明的另一个实施例中,在识别单元501识别创建单元502创建的驱动线程为受信任类型时,运行单元505在受信任模式下根据受信任模式对应的权限运行受信任类型的驱动线程,驱动线程根据驱动程序的代码会创建一些线程,运行单元505在受信任模式下运行这些线程。在受信任模式运行受信任类型的驱动程序,运行效率会很高。
[0176]第一切换单元506,用于在识别单元501识别驱动程序为非受信任类型时,将处理模式从受信任模式切换至非受信任模式;在创建单元502完成对非受信任类型驱动程序的驱动线程创建时,将该处理模式从非受信任模式切换至受信任模式。
[0177]在识别单元501识别驱动程序为非受信任类型时,将处理模式从受信任模式切换至非受信任模式,创建单元502在非受信任模式下创建非受信任类型驱动程序的驱动线程,会提高操作系统安全性。其中,处理模式包括受信任模式和非受信任模式。
[0178]在创建单元502完成对非受信任类型驱动程序的驱动线程创建时,将该处理模式从非受信任模式切换至受信任模式,在受信任模式下运行时,执行操作指令的效率较高。
[0179]第二切换单元507,在识别单元501识别需要运行的驱动线程为非受信任类型时,将该处理模式从受信任模式切换至非受信任模式;在运行单元505完成非受信任类型驱动线程运行时,将非受信任模式切换至受信任模式。
[0180]在识别单元501识别需要运行的驱动线程为非受信任类型时,将受信任模式切换至非受信任模式,在非受信任模式下运行非受信任驱动线程可以提高操作系统的可靠性。
[0181]在运行单元505完成非受信任类型驱动线程运行时,从非受信任模式切换至受信任模式,在受信任模式下运行时,执行操作指令的效率较高。
[0182]监测单元508,用于监测运行单元508在非受信任模式下运行的非受信任类型的驱动线程是否发生受控操作。
[0183]在本发明的一个实施例中,非受信任类型的驱动线程在非受信任模式下运行时,监测单元508监测非受信任类型的驱动线程是否需要修改受保护的内容而发生受控操作。监测在非受信任模式下运行的驱动线程是否发生受控操作,能够对可能产生的受控操作进行及时处理,提高操作系统的稳定性。
[0184]鉴权单元509,用于在监测单元508监测到非受信任类型的驱动线程需要执行受控操作时,识别该受控操作是否为可信操作;在该受控操作不是可信操作时,对该受控操作的对象进行识别,识别该受控操作的对象是否为预留的受保护内容。
[0185]在本发明的一个实施例中,监测单元508监测到非受信任类型的驱动线程需要执行受控操作时,鉴权单元509识别该受控操作是否为可信操作,在该受控操作不是可信操作时,对该受控操作的对象进行识别,识别该受控操作的对象是否为预留的受保护内容。根据识别的结果,以便做出相应的处理。
[0186]处理单元510,用于根据鉴权单元510的鉴权结果,对受控操作进行处理。
[0187]在本发明的一个实施例中,在鉴权单元509识别出该受控操作是可信操作时,处理单元510允许受控操作继续执行;在鉴权单元509识别出该受控操作是不可信操作且该受控操作的对象是预留的受保护内容,例如是预留的受保护的内存,处理单元510终止该需执行受控操作的驱动线程;若识别出该受控操作的对象不是预留的受保护的内容,处理单元510允许运行单元505在受信任模式下继续执行受控操作。根据鉴权结果,对受控操作进行分类处理,提高了操作系统的稳定性。
[0188]从本发明实施例提供的以上技术方案可以看出,使用本发明实施例提供的运行驱动程序的方法及装置,根据识别的驱动程序的类型,在受信任模式下创建受信任类型驱动程序的驱动线程,并在受信任模式下运行该受信任类型的驱动程序,在保证驱动程序安全运行的情况下,提高了操作系统的运行效率;进一步,在非受信任模式下创建非受信任类型驱动程序的驱动线程,在非受信任模式下运行该非受信任类型的驱动线程,并监测运行中非受信任类型的驱动线程是否需要执行受控操作,若需要执行受控操作,则对受控操作进行鉴权,并根据鉴权的结果进行处理,在保证驱动程序的高效运行的同时,也提高了操作系统的可靠性。
[0189]图6描述了本发明另一个实施例提供的运行驱动装置的结构,包括:[0190]识别单元601,创建单元602,第一标记单元603,第二标记单元604,运行单元605,第一切换单元606,第二切换单元607,监测单元608,鉴权单元609,处理单元610。
[0191]识别单元601,用于识别驱动程序的类型;识别需要运行的驱动线程的类型。
[0192]在本发明的一个实施例中,识别单元601识别驱动程序类型是否为非受信任类型的驱动程序。其中,识别单元601可以是通过识别驱动程序的数字签名而识别出驱动程序的类型。根据识别出的驱动程序的类型,后续可以对不同类型的驱动程序进行相应的处理。
[0193]创建单元602,用于在识别单元601识别驱动程序为非受信任类型时,在非受信任模式下创建该非受信任类型驱动程序的驱动线程;用于在识别单元601识别驱动程序为受信任类型时,在受信任模式下创建该受信任类型驱动程序的驱动线程。
[0194]在本发明的一个实施例中,在识别单元601识别出驱动程序的类型为非受信任类型时,创建单元602在非受信任模式下将该驱动程序的代码加载到内存中,在非受信任模式对应的权限内给该驱动程序分配资源,创建非受信任类型驱动程序的驱动线程,可以避免与内核所需的资源发生冲突,提高了操作系统的可靠性。
[0195]在本发明的另一个实施例中,在识别单元601识别出驱动程序的类型为受信任类型时,创建单元602在受信任模式下将该驱动程序的代码加载到内存中,在受信任模式对应的权限内给该驱动程序分配资源,由于在受信任模式下权限较高,创建受信任类型驱动程序的驱动线程的效率较高。
[0196]第一标记单元603,用于在创建单元602在非受信任模式下创建非受信任类型驱动程序的驱动线程创建后,为非受信任类型驱动程序的驱动线程增加非受信任类型的标记。
[0197]识别单元601可以通过识别驱动线程的标记识别非受信任类型驱动线程。
[0198]第二标记单元604,用于在创建单元602在受信任模式下创建受信任类型驱动程序的驱动线程创建后,为受信任类型驱动程序的驱动线程增加受信任类型的标记。
[0199]识别单元601通过识别驱动线程的标记识别受信任类型驱动线程。
[0200]运行单元606,用于在识别单元601识别创建单元602创建的驱动线程为非受信任类型时,在非受信任模式下开始运行非受信任类型的驱动线程;用于在识别单元601识别创建单元602创建的驱动线程为受信任类型时,在受信任模式下开始运行受信任类型的驱动线程。
[0201]在本发明的一个实施例中,在识别单元601识别创建单元602创建的驱动线程为非受信任类型时,运行单元605在非受信任模式下根据非受信任模式对应的权限运行非受信任类型的驱动线程,驱动线程根据驱动程序的代码会创建一些线程,运行单元605在非受信任模式下运行这些线程。在非受信任模式下运行非受信任类型的驱动线程会提高操作系统的稳定。
[0202]在本发明的另一个实施例中,在识别单元601识别创建单元602创建的驱动线程为受信任类型时,运行单元605在受信任模式下根据受信任模式对应的权限运行受信任类型的驱动线程,驱动线程根据驱动程序的代码会创建一些线程,运行单元605在受信任模式下运行这些线程。在受信任模式运行受信任类型的驱动程序,运行效率会很高。
[0203]第一切换单元606,用于在识别单元601识别驱动程序为非受信任类型时,将处理模式从受信任模式切换至非受信任模式;在创建单元602完成对非受信任类型驱动程序的驱动线程创建时,将处理模式从非受信任模式切换至受信任模式。
[0204]在识别单元601识别驱动程序为非受信任类型时,将处理模式从受信任模式切换至非受信任模式,创建单元602在非受信任模式下创建非受信任类型驱动程序的驱动线程,会提高操作系统可靠性。其中,处理模式包括受信任模式和非受信任模式。
[0205]在创建单元602完成对非受信任类型驱动程序的驱动线程创建时,将非受信任模式切换至受信任模式,在受信任模式下运行时,执行操作指令的效率较高。
[0206]第二切换单元607,在识别单元601识别需要运行的驱动线程为非受信任类型时,将处理模式从受信任模式切换至非受信任模式;在运行单元605完成非受信任类型驱动线程运行时,将处理模式从非受信任模式切换至受信任模式。
[0207]在识别单元601识别需要运行的驱动线程为非受信任类型时,将受信任模式切换至非受信任模式,在非受信任模式下运行非受信任驱动线程可以提高操作系统的可靠性。
[0208]在运行单元605完成非受信任类型驱动线程运行时,从非受信任模式切换至受信任模式,在受信任模式下运行时,执行操作指令的效率较高。
[0209]监测单元608,用于监测运行单元608在非受信任模式下运行的非受信任类型的驱动线程是否发生受控操作。
[0210]在本发明的一个实施例中,非受信任类型的驱动线程在非受信任模式下运行时,监测单元608监测非受信任类型的驱动线程是否需要修改受保护的内容而发生受控操作。监测在非受信任模式下运行的驱动线程是否发生受控操作,可以对可能产生的受控操作进行及时处理,提高操作系统的可靠性。
[0211]鉴权单元609,用于在监测单元608监测到非受信任类型的驱动线程需要执行受控操作时,对受控操作进行鉴权。
[0212]在本发明的一个实施例中,监测单元608监测到非受信任类型的驱动线程需要执行受控操作时,鉴权单元609识别该受控操作是否为可信操作,在该受控操作不是可信操作时,对该受控操作的对象进行识别,识别该受控操作的对象是否为预留的受保护内容。根据识别的结果,以便做出相应的处理。
[0213]处理单元610,用于根据鉴权单元610的鉴权结果,对受控操作进行处理。
[0214]在本发明的一个实施例中,在鉴权单元609识别出该受控操作是可信操作时,处理单元610允许受控操作继续执行;在鉴权单元609识别出该受控操作是不可信操作且该受控操作的对象是预留的受保护内容,例如是预留的受保护的内存或常用的内存,处理单元610终止该需执行受控操作的驱动线程;若识别出该受控操作的对象不是预留的受保护的内容,处理单元610允许运行单元605在受信任模式下继续执行受控操作。根据鉴权结果,对受控操作进行分类处理,提高了操作系统的稳定性。
[0215]从本发明实施例提供的以上技术方案可以看出,使用本发明实施例提供的运行驱动程序的方法及装置,根据识别的驱动程序的类型,在受信任模式下创建受信任类型驱动程序的驱动线程,并在受信任模式下运行该受信任类型的驱动程序,在保证驱动程序安全运行的情况下,提高了操作系统的运行效率;进一步,在非受信任模式下创建非受信任类型驱动程序的驱动线程,在非受信任模式下运行该非受信任类型的驱动线程,并监测运行中非受信任类型的驱动线程是否需要执行受控操作,若需要执行受控操作,则对受控操作进行鉴权,并根据鉴权的结果进行处理,在保证驱动程序的高效运行的同时,也提高了操作系统的可靠性。
[0216]图7描述了本发明另一个实施例提供的运行驱动设备的结构,包括至少一个处理器701 (例如CPU),存储器702,内存703和至少一个通信总线704,用于实现这些装置之间的连接通信。处理器701用于执行存储器702中存储的可执行模块,例如计算机程序。存储器702可能包含高速随机存取存储器(RAM:Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个处理器访问内存中的地址。
[0217]在一些实施方式中,存储器702存储了程序7021,程序7021可以被处理器701执行,这个程序包括:终端识别需要运行的驱动线程的类型;如果识别出需要运行的驱动线程的类型为非受信任类型,终端在非受信任模式下运行该非受信任类型的驱动线程;终端监测在非受信任模式下运行的驱动线程是否发生受控操作;如果监测到在非受信任模式下运行的驱动线程发生受控操作,终端对受控操作进行鉴权,并根据鉴权的结果对受控操作进行处理。具体的实施步骤与图1所示的实施例相同,此处不再赘述。
[0218]从本发明实施例提供的以上技术方案可以看出,使用本发明实施例提供的运行驱动程序的方法及装置,在非受信任模式下运行该非受信任类型的驱动线程,并监测运行中非受信任类型的驱动线程是否需要执行受控操作,若需要执行受控操作,则对受控操作进行鉴权,并根据鉴权的结果进行处理,在保证驱动程序的高效运行的同时,也提高了操作系统的可靠性。
[0219]图8描述了本发明另一个实施例提供的运行驱动设备的结构,包括至少一个处理器801 (例如CPU),存储器802,内存803和至少一个通信总线804,用于实现这些装置之间的连接通信。处理器801用于执行存储器802中存储的可执行模块,例如计算机程序。存储器802可能包含高速随机存取存储器(RAM:Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个处理器访问内存中的地址。
[0220]在一些实施方式中,存储器802存储了程序8021,程序8021可以被处理器801执行,这个程序包括:终端识别驱动程序的类型;在识别出驱动程序的类型为非受信任类型时,在非受信任模式下创建该非受信任类型驱动程序的驱动线程,在创建非受信任类型驱动程序的驱动线程时为该驱动线程增加非受信任类型标记;在识别出驱动程序的类型为受信任类型时,在受信任模式下创建受信任类型驱动程序的驱动线程,并为该线程增加受信任类型标记;终端识别需要运行的驱动线程的类型;如果识别出需要运行的驱动线程的类型为受信任类型,终端在受信任模式下运行受信任类型的驱动线程;如果识别出需要运行的驱动线程的类型为非受信任类型,在非受信任模式下运行非受信任类型的驱动线程;终端监测在非受信任模式下运行的该非受信任类型驱动线程是否发生受控操作;如果监测到在非受信任模式下运行的该非受信任类型驱动线程发生受控操作,终端对该受控操作进行鉴权,并根据鉴权的结果对受控操作进行处理。具体的实施步骤与图2所示的实施例相同,此处不再赘述。
[0221]从本发明实施例提供的以上技术方案可以看出,使用本发明实施例提供的运行驱动程序的方法及装置,根据识别的驱动程序的类型,在受信任模式下创建受信任类型驱动程序的驱动线程,并在受信任模式下运行该受信任类型的驱动程序,在保证驱动程序安全运行的情况下,提高了操作系统的运行效率;进一步,在非受信任模式下创建非受信任类型驱动程序的驱动线程,在非受信任模式下运行该非受信任类型的驱动线程,并监测运行中非受信任类型的驱动线程是否需要执行受控操作,若需要执行受控操作,则对受控操作进行鉴权,并根据鉴权的结果进行处理,在保证驱动程序的高效运行的同时,也提高了操作系统的可靠性。
[0222]图9描述了本发明另一个实施例提供的运行驱动设备的结构,包括至少一个处理器901 (例如CPU),存储器902,内903,和至少一个通信总线904,用于实现这些装置之间的连接通信。处理器901用于执行存储器902中存储的可执行模块,例如计算机程序。存储器902可能包含高速随机存取存储器(RAM:Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个处理器访问内存中的地址。
[0223]在一些实施方式中,存储器902存储了程序9021,程序9021可以被处理器901执行,这个程序包括:终端识别驱动程序的类型;在识别出驱动程序的类型为非受信任类型时,则终端从受信任模式切换至非受信任模式,在非受信任模式下创建该非受信任类型驱动程序的驱动线程,创建完毕后,为该驱动线程增加非受信任类型标记,并从非受信任模式切换至受信任模式;在识别出驱动程序的类型为受信任类型时,则终端在受信任模式下创建受信任类型驱动程序的驱动线程,并为该线程增加受信任类型标记;终端识别需要运行的驱动线程的类型;如果识别出需要运行的驱动线程的类型为受信任类型,终端在受信任模式下运行受信任类型的驱动线程;如果识别出需要运行的驱动线程的类型为非受信任类型,终端从受信任模式切换到非受信任模式,在非受信任模式下运行该非受信任类型的驱动线程;终端监测在非受信任模式下运行的该非受信任类型驱动线程是否发生受控操作;如果监测到在非受信任模式下运行的驱动线程发生受控操作,终端对该受控操作进行鉴权,并根据鉴权的结果对受控操作进行处理。具体的实施步骤与图3所示的实施例相同,此处不再赘述。
[0224]从本发明实施例提供的以上技术方案可以看出,使用本发明实施例提供的运行驱动程序的方法及装置,根据识别的驱动程序的类型,在受信任模式下创建受信任类型驱动程序的驱动线程,并在受信任模式下运行该受信任类型的驱动程序,在保证驱动程序安全运行的情况下,提高了操作系统的运行效率;进一步,在非受信任模式下创建非受信任类型驱动程序的驱动线程,在非受信任模式下运行该非受信任类型的驱动线程,并监测运行中非受信任类型的驱动线程是否需要执行受控操作,若需要执行受控操作,则对受控操作进行鉴权,并根据鉴权的结果进行处理,在保证驱动程序的高效运行的同时,也提高了操作系统的可靠性。
[0225]需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
[0226]本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,上述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,上述的存储介质可为磁碟、光盘、只读存储记忆体(ROM =Read-Only Memory)或随机存储记忆体(RAM =RandomAccess Memory)等。
[0227] 本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其思想;同时,对于本领域的一般技术人员,依据本发明的思想,在【具体实施方式】及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
【权利要求】
1.一种运行驱动程序的方法,其特征在于,所述方法包括: 终端识别需要运行的驱动线程的类型; 在识别出所述需要运行的驱动线程的类型为非受信任类型时,所述终端在非受信任模式下开始运行所述非受信任类型驱动线程; 所述终端监测在非受信任模式下运行的所述非受信任类型驱动线程是否需要执行受控操作; 如果监测到在非受信任模式下运行的所述非受信任类型驱动线程需要执行受控操作,所述终端对所述受控操作进行鉴权,并根据所述鉴权的结果对所述受控操作进行处理。
2.根据权利要求1所述的运行驱动程序的方法,其特征在于,所述终端对所述受控操作进行鉴权包括: 所述终端识别所述受控操作是否为可信操作; 所述根据所述鉴权的结果对所述受控操作进行处理具体包括: 如果识别出所述受控操作是可信操作,所述终端在受信任模式下执行所述受控操作;如果识别出所述受控操作是不可信操作所述终端终止所述需要执行受控操作的驱动线程。
3.如权利要求2所述的运行驱动程序的方法,其特征在于,所述终端终止所述需要执行受控操作的驱动线程前还包括: 所述终端对所述受控操作的对象进行识别; 在识别出所述受控操作的对象是预留的受保护内容时,才终止所述需要执行受控操作的驱动线程;若识别出所述受控操`作的对象不是预留的受保护内容,所述终端在受信任模式下执行所述受控操作。
4.根据权利要求1至3任一所述的运行驱动程序的方法,其特征在于,在所述终端识别需要运行的驱动线程的类型前还包括: 所述终端为所述非受信任类型驱动程序的驱动线程增加非受信任类型标记; 所述终端识别需要运行的驱动线程的类型包括: 所述终端根据所述非受信任类型标记来识别需要运行的驱动线程的类型。
5.根据权利要求1至4任一所述的运行驱动程序的方法,其特征在于,在所述终端识别需要运行的驱动线程的类型前还包括: 所述终端识别驱动程序的类型; 在识别出所述驱动程序的类型为非受信任类型时,所述终端在非受信任模式下创建非受信任类型驱动程序的驱动线程; 在识别出所述驱动程序的类型为受信任类型时,所述终端在受信任模式下创建受信任类型驱动程序的驱动线程。
6.根据权利要求5所述的运行驱动程序的方法,其特征在于,在所述终端识别需要运行的驱动线程的类型前还包括: 所述终端为所述受信任类型驱动程序的驱动线程增加受信任类型标记; 所述终端识别需要运行的驱动线程的类型包括: 所述终端根据所述受信任类型标记来识别需要运行的驱动线程的类型。
7.根据权利要求5或6所述的运行驱动程序的方法,其特征在于,在所述终端识别需要运行的驱动线程的类型后还包括: 在识别出所述需要运行的驱动线程为受信任类型时,所述终端在受信任模式下开始运行所述受信任类型驱动线程。
8.根据权利要求5至7任一所述的运行驱动程序的方法,其特征在于,所述终端识别需要运行的驱动程序的类型具体为:所述终端在受信任模式下识别所述驱动程序的类型; 所述终端在非受信任模式下创建非受信任类型驱动程序的驱动线程前进一步包括:所述终端从受信任模式切换至非受信任模式; 所述终端在非受信任模式下创建非受信任类型驱动程序的驱动线程后还包括: 所述终端从非受信任模式切换至受信任模式。
9.根据权利要求1至8任一所述的运行驱动程序的方法,其特征在于,所述终端识别需要运行的驱动线程的类型具体为:所述终端在受信任模式下识别所述驱动线程的类型; 所述终端在非受信任模式下运行非受信任类型的驱动线程前进一步包括:所述终端从受信任模式切换至非受信任模式; 所述终端在非受信任模式下运行非受信任类型的驱动线程后还包括: 所述终端从非受信任模式切换至受信任模式。
10.一种运行驱动程序的装置,其特征在于,包括: 识别单元,用于识别需要运行的驱动线程的类型; 运行单元,用于在所述识别单元识别需要运行的驱动线程的类型为非受信任类型时,在非受信任模式下开始运行所述非受信任类型驱动线程; 监测单元,用于监测所述运行单元在非受信任模式下运行的所述非受信任类型驱动线程是否需要执行受控操作; 鉴权单元,用于在所述监测单元监测到所述非受信任类型驱动线程需要执行受控操作时,对所述受控操作进行鉴权; 处理单元,用于根据所述鉴权单元的鉴权结果,对所述受控操作进行处理。
11.根据权利要求10所述的运行驱动程序的装置,其特征在于,所述鉴权单元具体用于: 在所述监测单元监测到所述非受信任类型驱动线程需要执行受控操作时,识别所述受控操作是否为可信操作; 所述处理单元具体用于:在所述鉴权单元识别所述受控操作是可信操作时,所述处理单元允许所述受控操作执行;在所述鉴权单元识别所述受控操作是不可信操作时,所述处理单元终止所述需要执行受控操作的驱动线程。
12.根据权利要求11所述的运行驱动程序的装置,其特征在于,所述处理单元还用于: 在所述鉴权单元识别所述受控操作是不可信操作时且所述受控操作的对象是预留的受保护内容时,所述处理单元终止所述需要执行受控操作的驱动线程;在所述鉴权单元识别所述受控操作是不可信行为且所述受控操作的对象不是预留的受保护内容时,所述处理单元允许所述运行单元在受信任模式下执行所述受控操作。
13.根据权利要求10至12任一所述的运行驱动程序的装置,其特征在于,还包括: 第一标记单元,用于为所述非受信任类型驱动程序的驱动线程增加非受信任类型标记;所述识别单元,具体用于根据非受信任类型标记来识别需要运行的驱动线程的类型。
14.根据权利要求10至13任一所述的运行驱动程序的装置,其特征在于,所述识别单元还用于识别驱动程序的类型; 所述装置还包括: 创建单元,用于在所述识别单元识别出所述驱动程序的类型为非受信任类型时,在非受信任模式下创建非受信任类型驱动程序的驱动线程;在所述识别单元识别所述驱动程序的为受信任类型时,在受信任模式下创建受信任类型驱动程序的驱动线程。
15.根据权利要求14所述的运行驱动程序的装置,其特征在于,还包括: 第二标记单元,用于为所述受信任类型驱动程序的驱动线程增加受信任类型标记。 所述识别单元,具体用于根据受信任类型标记来识别需要运行的驱动线程的类型。
16.根据权利要求14或15所述的运行驱动程序的装置,其特征在于,所述运行单元还用于: 在所述识别单元识别需要运行的驱动线程为受信任类型时,在受信任模式下运行所述受信任类型驱动线程。
17.根据权利要求14至16任一所述的运行驱动程序的装置,其特征在于,所述识别单元,具体用于在受信任模式 下识别所述驱动程序的类型; 所述装置还包括第一切换单元,用于在所述识别单元识别驱动程序为非受信任类型时,将处理模式从受信任模式切换至非受信任模式;在所述创建单元完成对非受信任类型驱动程序的驱动线程创建时,将所述处理模式从非受信任模式切换至受信任模式。
18.根据权利要求10至17任一所述的运行驱动程序的装置,其特征在于,还包括第二切换单元,所述识别单元,具体用于在受信任模式下识别所述驱动线程的类型; 第二切换单元,在所述识别单元识别需要运行的驱动线程为非受信任类型时,将所述处理模式从受信任模式切换至非受信任模式;在所述运行单元完成非受信任类型驱动线程运行时,将所述处理模式从非受信任模式切换至受信任模式。
【文档编号】G06F21/51GK103679006SQ201310511219
【公开日】2014年3月26日 申请日期:2013年10月25日 优先权日:2013年10月25日
【发明者】刘相斌, 罗站城, 侯海涛 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1