CN109669723A - 硬件访问方法、装置、设备和机器可读介质 - Google Patents
硬件访问方法、装置、设备和机器可读介质 Download PDFInfo
- Publication number
- CN109669723A CN109669723A CN201710954603.9A CN201710954603A CN109669723A CN 109669723 A CN109669723 A CN 109669723A CN 201710954603 A CN201710954603 A CN 201710954603A CN 109669723 A CN109669723 A CN 109669723A
- Authority
- CN
- China
- Prior art keywords
- hardware
- operating system
- control
- state
- mode information
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 125
- 230000004044 response Effects 0.000 claims description 69
- 230000005540 biological transmission Effects 0.000 claims description 31
- 238000012512 characterization method Methods 0.000 claims description 23
- 230000008859 change Effects 0.000 claims description 8
- 235000013399 edible fruits Nutrition 0.000 claims description 5
- 230000008569 process Effects 0.000 description 29
- 230000015654 memory Effects 0.000 description 27
- 238000012545 processing Methods 0.000 description 23
- 238000010586 diagram Methods 0.000 description 22
- 238000004891 communication Methods 0.000 description 19
- 238000006243 chemical reaction Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 11
- 238000003860 storage Methods 0.000 description 11
- 230000006399 behavior Effects 0.000 description 9
- 238000004590 computer program Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 238000009434 installation Methods 0.000 description 5
- 230000006835 compression Effects 0.000 description 4
- 238000007906 compression Methods 0.000 description 4
- 238000003032 molecular docking Methods 0.000 description 4
- 230000005236 sound signal Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000002829 reductive effect Effects 0.000 description 3
- 230000000717 retained effect Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000000712 assembly Effects 0.000 description 2
- 238000000429 assembly Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 210000003127 knee Anatomy 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- KLDZYURQCUYZBL-UHFFFAOYSA-N 2-[3-[(2-hydroxyphenyl)methylideneamino]propyliminomethyl]phenol Chemical compound OC1=CC=CC=C1C=NCCCN=CC1=CC=CC=C1O KLDZYURQCUYZBL-UHFFFAOYSA-N 0.000 description 1
- 241001269238 Data Species 0.000 description 1
- 241000196324 Embryophyta Species 0.000 description 1
- 241000209140 Triticum Species 0.000 description 1
- 235000021307 Triticum Nutrition 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 201000001098 delayed sleep phase syndrome Diseases 0.000 description 1
- 208000033921 delayed sleep phase type circadian rhythm sleep disease Diseases 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3889—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Telephonic Communication Services (AREA)
- Hardware Redundancy (AREA)
Abstract
本申请实施例提供了一种硬件访问方法、装置、设备和机器可读介质,其中的方法具体包括:第一操作系统接收第二操作系统发送的控制指令,所述控制指令包括硬件的信息以及控制方式信息;根据所述控制方式信息、所述第一操作系统针对所述硬件的控制状态、以及所述第二操作系统针对所述硬件的控制状态,对所述控制指令进行响应。本申请实施例可以实现多个操作系统对于硬件的互斥访问。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种硬件访问方法、一种硬件访问装置、一种设备、以及一种机器可读介质。
背景技术
OS(操作系统,Operating System)是管理和控制计算机硬件与软件资源的计算机程序,位于底层硬件与用户之间,是两者沟通的桥梁。访问硬件的响应时间是判断操作系统性能的一个重要指标。
现有的操作系统通过底层提供对于硬件资源的访问接口,上层封装成API(应用程序编程接口,Application Programming Interface)供用户程序调用。例如,可以通过HAL(硬件抽象层,Hardware Abstraction Layer)提供对于硬件资源的HAL接口,上层的框架(Framework)层封装成Framework API供应用程序调用。
在多个操作系统同时运行的环境中,可能存在对于硬件资源的并行访问需求。然而,目前的HAL层通常考虑单一操作系统独占使用硬件资源的情况,而无法满足多操作系统并行访问硬件资源的需求。具体地,在多操作系统环境中,对HAL层的加载和使用通常由一个操作系统进行,而其他操作系统将无法直接加载HAL层。
发明内容
本申请实施例所要解决的技术问题是提供一种硬件访问方法,可以实现多个操作系统对于硬件的互斥访问。
相应的,本申请实施例还提供了一种硬件访问装置、一种设备、以及一种机器可读介质,用以保证上述方法的实现及应用。
为了解决上述问题,本申请实施例公开了一种硬件访问方法,包括:
第一操作系统接收第二操作系统发送的控制指令,所述控制指令包括硬件的信息以及控制方式信息;
根据所述控制方式信息、所述第一操作系统针对所述硬件的控制状态、以及所述第二操作系统针对所述硬件的控制状态,对所述控制指令进行响应。
另一方面,本申请实施例公开了一种硬件访问方法,包括:
第二操作系统截获控制指令;所述控制指令包括:硬件的信息以及控制方式信息;
第二操作系统向第一操作系统发送所述控制指令,以使所述第一操作系统根据所述控制方式信息、所述第一操作系统针对所述硬件的控制状态、以及所述第二操作系统针对所述硬件的控制状态,对所述控制指令进行响应。
再一方面,本申请实施例还公开了一种硬件访问装置,包括:
控制指令接收模块,用于接收第二操作系统发送的控制指令,所述控制指令包括:硬件的信息以及控制方式信息;以及
控制指令响应模块,用于根据所述控制方式信息、所述第一操作系统针对所述硬件的控制状态、以及所述第二操作系统针对所述硬件的控制状态,对所述控制指令进行响应。
又一方面,本申请实施例还公开了一种硬件访问装置,包括:
控制指令截获模块,用于截获控制指令;所述控制指令包括:硬件的信息以及控制方式信息;以及
控制指令发送模块,用于向第一操作系统发送所述控制指令,以使所述第一操作系统根据所述控制方式信息、所述第一操作系统针对所述硬件的控制状态、以及所述第二操作系统针对所述硬件的控制状态,对所述控制指令进行响应。
另一方面,本申请实施例还公开了一种设备,包括:一个或多个处理器;和其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述设备执行前述一个或多个所述的方法。
再一方面,本申请实施例还公开了一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得设备执行前述一个或多个所述的方法。
又一方面,本申请实施例还公开了一种用于设备的操作系统,包括:
控制指令接收单元,用于接收第二操作系统发送的控制指令,所述控制指令包括:硬件的信息以及控制方式信息;以及
控制指令响应单元,用于根据所述控制方式信息、所述第一操作系统针对所述硬件的控制状态、以及所述第二操作系统针对所述硬件的控制状态,对所述控制指令进行响应。
又一方面,本申请实施例还公开了一种用于设备的操作系统,包括:
控制指令截获单元,用于截获控制指令;所述控制指令包括:硬件的信息以及控制方式信息;以及
控制指令发送单元,用于向第一操作系统发送所述控制指令,以使所述第一操作系统根据所述控制方式信息、所述第一操作系统针对所述硬件的控制状态、以及所述第二操作系统针对所述硬件的控制状态,对所述控制指令进行响应。
与现有方案相比,本申请实施例包括以下优点:
本申请实施例通过第一操作系统对来自第二操作系统的控制指令进行响应,故可通过第一操作系统实现第二操作系统对于硬件的访问,因此可以实现多操作系统对于硬件的并行访问。
并且,由于本申请实施例在对所述控制指令进行响应的过程中,考虑了第一操作系统针对所述硬件的控制状态、以及第二操作系统针对所述硬件的控制状态,故可以实现多个操作系统对于硬件的互斥访问。
附图说明
图1是本申请的一种硬件访问方法实施例的步骤流程图;
图2是本申请实施例的一种操作系统的结构示意图;
图3是本申请实施例的一种多操作系统的结构示意图;
图4是本申请的另一种硬件访问方法实施例的步骤流程图;
图5是本申请实施例的另一种操作系统的结构示意图;
图6是本申请的再一种硬件访问方法实施例的步骤流程图;
图7是本申请的又一种硬件访问方法实施例的步骤流程图;
图8是本申请的一种硬件访问装置实施例的结构框图;
图9是本申请的另一种硬件访问装置实施例的结构框图;
图10是本申请一实施例提供的设备的硬件结构示意图;
图11是本申请另一实施例提供的设备的硬件结构示意图;
图12是本申请一实施例提供的操作系统示意图;
图13是本申请另一实施例提供的操作系统示意图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
本申请实施例基于多操作系统之间的通信,实现多操作系统对于硬件的并行访问,具体地,可通过第一操作系统实现第二操作系统对于硬件的访问,通过第一操作系统实现第二操作系统对于硬件的访问的过程可以包括:第一操作系统接收第二操作系统发送的控制指令,所述控制指令可以包括硬件的信息以及控制方式信息;根据所述控制方式信息、所述第一操作系统针对所述硬件的控制状态、以及所述第二操作系统针对所述硬件的控制状态,对所述控制指令进行响应。
由于本申请实施例通过第一操作系统对来自第二操作系统的控制指令进行响应,故可通过第一操作系统实现第二操作系统对于硬件的访问,因此可以实现多操作系统对于硬件的并行访问。
并且,由于本申请实施例在对所述控制指令进行响应的过程中,考虑了第一操作系统针对所述硬件的控制状态、以及第二操作系统针对所述硬件的控制状态,故可以实现多个操作系统对于硬件的互斥访问。
本申请实施例可以用于访问设备中的任意硬件,并可以适用于任意的设备。上述设备可以包括但不限于:智能手机、平板电脑、电子书阅读器、MP3(动态影像专家压缩标准音频层面3,Moving Picture Experts Group Audio Layer III)播放器、MP4(动态影像专家压缩标准音频层面4,Moving Picture Experts Group Audio Layer IV)播放器、膝上型便携计算机、车载电脑、台式计算机、机顶盒、智能电视机、可穿戴设备等等。上述设备中的硬件可以包括但不限于:蓝牙、WIFI(无线保真,Wireless Fidelity)、摄像头、定位装置、传感器、闪光灯等。对于设备中硬件的访问操作可以包括:打开操作、关闭操作、配置操作和回调操作等。其中,打开操作可用于打开硬件,关闭操作可用于关闭硬件,配置操作可用于对硬件的参数进行配置,回调操作可用于注册相应的回调事件,如上报硬件对应的事件,如定位装置的定位结果等。可以理解,本申请实施例对于具体的设备、具体硬件及对应的具体访问操作不加以限制。
方法实施例一
参照图1,示出了本申请的一种硬件访问方法实施例的步骤流程图,该方法具体可以包括如下步骤:
步骤101、第一操作系统接收第二操作系统发送的控制指令,所述控制指令可以包括:硬件的信息以及控制方式信息;
步骤102、根据所述控制方式信息、所述第一操作系统针对所述硬件的控制状态、以及所述第二操作系统针对所述硬件的控制状态,对所述控制指令进行响应。
在实际应用中,第一操作系统和第二操作系统可以不同;或者,第一操作系统和第二操作系统可以相同,但第一操作系统的服务(service)和第二操作系统的服务不同。也即,本申请实施例可以实现多操作系统对于硬件的并行访问,或者可以实现同一个操作系统的多个服务对于硬件的并行访问。等。其中,服务为操作系统(例如安卓)的组件,其用于在后台处理一些耗时的逻辑,或者去执行某些需要长期运行的任务,甚至可以在程序退出的情况下,让服务在后台继续保持运行状态。
本申请实施例主要以第一操作系统和第二操作系统不同的情形为例对本申请实施例的硬件访问方法进行说明,第一操作系统和第二操作系统相同的情形对应的硬件访问方法相互参照即可。
在第一操作系统和第二操作系统不同的情况下,第二操作系统可以指不同于第一操作系统的任意操作系统。
本申请实施例可通过第一操作系统实现不同于第一操作系统的任意操作系统对于硬件的访问。例如,第一操作系统还可以接收第三操作系统、第四操作系统甚至第五操作系统发送的控制指令,并根据多个操作系统针对所述硬件的控制状态,对所述控制指令进行响应。对于第三操作系统、第四操作系统甚至第五操作系统发送的控制指令对应的响应过程而言,可以参照第二操作系统发送的控制指令对应的响应过程,在此不作赘述。
本申请实施例中,第一操作系统、或者第二操作系统的例子可以包括:安卓、IOS、YunOS、安卓仿真器、Tizen、Jolla等,可以理解,本申请实施例对于具体的第一操作系统和第二操作系统不加以限制。第一操作系统可以为为具备加载和使用HAL层的权限的操作系统,如主控操作系统,第二操作系统、第三操作系统、第四操作系统等可以为不具备加载和使用HAL层的权限的操作系统,如客户操作系统。
在实际应用中,第一操作系统和第二操作系统之间的通信方式可以包括:IPC(进程间通信,Inter-Process Communication)方式。具体地,可以通过内核层提供的IPC技术,在第一操作系统和第二操作系统之间建立传输通道,并通过。IPC技术可以包括:消息传递、同步、共享内存、或者RPC(远程过程调用,Remote Process call)等。
在实际应用中,硬件的信息可用于标识硬件,硬件的信息可以包括:硬件的ID(标识,Identity)等信息,如摄像头的ID等,本申请实施例对于硬件的具体信息不加以限制。
本申请实施例中,所述控制方式信息用于表征针对硬件的操作,所述针对硬件的操作具体可以包括如下操作中的至少一种:针对硬件的打开操作、关闭操作、配置操作和回调操作。
本申请实施例中,所述针对所述硬件的控制状态,具体可以包括:针对所述硬件的打开状态、关闭状态和配置状态中的至少一种。
根据一种实施例,一个操作系统针对硬件的控制状态可以为依据这个操作系统对于所述硬件的操作记录得到。在实际应用中,第一操作系统可以对一个操作系统对于硬件的操作进行记录,以得到这个操作系统对于所述硬件的操作记录。该操作记录可以反映一个操作系统针对硬件进行过哪些操作,如针对硬件1进行过打开操作,针对硬件2进行过关闭操作,或者针对硬件3进行过配置操作等。可选地,本申请实施例可以依据一个操作系统针对一个硬件的最近一次的操作记录,得到这个操作系统针对硬件的控制状态。例如,在第一操作系统启动后,针对某个硬件进行过多次操作,产生了多次操作记录,由于最近一次的操作记录为最新的操作记录,故可以将最近一次的操作记录作为一个操作系统针对硬件的控制状态的依据。
根据另一种实施例,一个操作系统针对硬件的控制状态可以为依据上述控制方式信息表征的针对硬件的操作得到。具体地,若上述控制方式信息表征的针对硬件的操作为打开操作,则上述第二操作系统针对硬件的打开状态可以为打开。或者,若上述控制方式信息表征的针对硬件的操作为关闭操作,则上述第二操作系统针对硬件的关闭状态可以为打开。或者,若上述控制方式信息表征的针对硬件的操作为配置操作,则上述第二操作系统针对硬件的配置状态可以包括:上述配置操作对应的配置信息。可以理解,可以结合操作系统对于所述硬件的操作记录和上述控制方式信息表征的针对硬件的操作,得到一个操作系统针对硬件的控制状态。
在实际应用中,可以为操作系统或者操作系统的服务分配唯一的标识,并针对操作系统的标识,维护其针对硬件的控制状态。
在本申请的一种实施例中,可以对于针对所述硬件的一种控制状态设置一个标志位,该标志位可以有两个值:真和假。例如,针对所述硬件的打开状态为真,说明处于硬件的打开状态,反之,针对所述硬件的打开状态为假,说明不处于硬件的打开状态,也即处于硬件的关闭状态。当然,本领域技术人员还可以采用控制状态的其他表述方式,例如,还可以针对所述硬件的两种控制状态设置一个标志位,例如,针对打开状态和关闭状态设置一个标志位,该标志位有两个值:1和0,1说明处于硬件的打开状态,0说明处于硬件的关闭状态,本申请实施例对于针对所述硬件的控制状态的具体表述方式不加以限制。
本申请实施例对所述控制指令进行响应,具体可以包括:对所述硬件执行所述控制方式信息所指示的操作,或者,拒绝所述控制方式信息所指示的操作等,本申请实施例可以在所述控制方式信息所指示的操作符合要求的情况下,对所述硬件执行所述控制方式信息所指示的操作,或者,可以在所述控制方式信息所指示的操作不符合要求的情况下,拒绝所述控制方式信息所指示的操作等,由此可以实现多操作系统对于硬件的互斥访问。例如,在所述控制方式信息所指示的操作为配置操作、但配置的信息有误的情况下,可以拒绝所述控制方式信息所指示的配置操作。又如,在硬件1已经关闭的情况下,某个操作系统又发起了关闭操作,或者在硬件2已经打开的情况下,某个操作系统又发起了打开操作,为了避免重复响应,可以拒绝所述控制方式信息所指示的关闭或者打开操作。
HAL层屏蔽了不同硬件的差异,为操作系统提供了统一的访问硬件的标准接口,不同的硬件厂商可以遵循HAL标准来实现自身的硬件控制逻辑。HAL层帮助硬件厂商隐藏了硬件相关模块的核心细节。硬件厂商出于利益考虑,不希望公开硬件相关的实现细节;有了HAL层之后,硬件厂商可以把一些核心的算法之类的实现(如有关HAL的类库等)放在HAL层,而HAL层位于用户空间,不属于操作系统的内核(如Linux内核Kernel),故HAL层可以开源或者不开源。本申请实施例中,HAL层提供的访问硬件的标准接口可被称为HAL接口,简称HAL接口。
本申请实施例中,第一操作系统可以具备加载和使用HAL层的权限,故其可以通过HAL层提供的HAL接口,对所述硬件执行所述控制方式信息所指示的操作。
在本申请的一种可选实施例中,所述对所述控制指令进行响应的过程,可以包括:根据所述第一操作系统针对所述硬件的控制状态、以及所述第二操作系统针对所述硬件的控制状态,确定所述控制方式信息所指示的操作对应的确定结果;所述确定结果用于表征所述控制方式信息所指示的操作对应的响应方式,所述响应方式包括:执行、或者拒绝;依据所述确定结果进行响应。其中,在确定结果为执行的情况下,可以对所述硬件执行所述控制方式信息所指示的操作;在确定结果为拒绝的情况下,可以拒绝所述控制方式信息所指示的操作。需要说明的是,执行可以包括:所述控制方式信息所指示的操作的具体信息,如打开操作和关闭操作对应的HAL接口信息,或者配置操作对应的具体配置信息,或者回调操作对应的操作系统标识信息等。
本申请实施例可以提供确定所述控制方式信息所指示的操作对应的确定结果的如下技术方案:
技术方案1
技术方案1中,所述控制方式信息所指示的操作可以包括:针对硬件的打开操作,所述确定所述控制方式信息所指示的操作对应的确定结果的过程,可以包括:对所述第一操作系统和所述第二操作系统针对所述硬件的打开状态进行第一运算;依据对应的第一运算结果,得到所述控制方式信息所指示的打开操作对应的确定结果。
技术方案1可用于避免不同操作系统对于硬件的打开状态的冲突。一个操作系统针对所述硬件的打开状态可以包括:真、或者假。可选地,上述第一运算可以为或运算,在任一操作系统针对硬件的打开状态为真的情况下,对应的或运算结果为真,则对应的确定结果表征的响应方式可以为执行:调用所述硬件对应的HAL打开接口,故通过调用该HAL打开接口,对所述控制方式信息所指示的打开操作进行响应。
在本申请的一种应用示例中,假设第一操作系统针对硬件1的打开状态为真(也即第一操作系统打开了硬件2),第二操作系统的控制指令中控制方式信息所指示的操作为针对硬件1的打开操作,这表明第二操作系统针对硬件1的打开状态为真,由于对应的或运算结果为真,故可以调用硬件1对应的HAL打开接口。
技术方案2
技术方案2中,所述控制方式信息所指示的操作可以包括:针对硬件的打开操作;相对于技术方案1根据第一运算结果得到确定结果,技术方案2可以直接依据所述第一操作系统和所述第二操作系统针对硬件的打开状态得到确定结果。
具体地,若所述第一操作系统和所述第二操作系统中任一针对硬件的控制状态为打开,也即任一操作系统打开了硬件,则对应确定结果表征的响应方式为执行。
技术方案3
技术方案3中,所述控制方式信息所指示的操作可以包括:针对硬件的关闭操作,所述确定所述控制方式信息所指示的操作对应的确定结果的过程,可以包括:对所述第一操作系统和所述第二操作系统针对所述硬件的关闭状态进行第二运算;依据对应的第二运算结果,得到所述控制方式信息所指示的关闭操作对应的确定结果。
技术方案3可用于避免不同操作系统对于硬件的关闭状态的冲突。一个操作系统针对硬件的关闭状态可以包括:真、或者假。可选地,上述第二运算可以为与运算,在任一操作系统针对硬件的关闭状态为假的情况下,对应的与运算结果为假,则对应的确定结果表征的响应方式可以为拒绝;或者,在所有操作系统针对硬件的关闭状态为真的情况下,对应的与运算结果为真,则对应的确定结果表征的响应方式可以为执行:调用所述硬件对应的HAL关闭接口。
在本申请的一种应用示例中,假设第一操作系统针对硬件2的关闭状态为假(也即第一操作系统打开了硬件2),第二操作系统的控制指令中控制方式信息所指示的操作为针对硬件2的关闭操作,这表明第二操作系统针对硬件2的关闭状态为真,由于对应的与运算结果为假,故可以拒绝第二操作系统的控制指令中控制方式信息所指示的针对硬件2的关闭操作。
技术方案4
技术方案4中,所述控制方式信息所指示的操作可以包括:针对硬件的关闭操作;相对于技术方案3根据第二运算结果得到确定结果,技术方案4可以直接依据所述第一操作系统和所述第二操作系统针对硬件的关闭状态得到确定结果。
具体地,若所述第一操作系统和所述第二操作系统针对硬件的控制状态均为关闭,也即所述第一操作系统和第二操作系统均关闭了硬件,则对应确定结果表征的响应方式为执行;或者
若所述第一操作系统和所述第二操作系统中任一针对硬件的控制状态为打开,也即,任一操作系统打开了硬件,则对应确定结果表征的响应方式为拒绝。
技术方案5
技术方案5中,所述控制方式信息所指示的操作可以包括:针对硬件的配置操作,对应确定结果表征的响应方式可以为,依据所述第一操作系统和所述第二操作系统针对所述硬件的最优配置信息,针对所述硬件执行所述控制方式信息所指示的配置操作。
对于一个操作系统而言,其可以通过控制指令中携带的配置信息,实现对于硬件的配置,由此可以得到一个操作系统针对所述硬件的配置信息。其中,一个操作系统针对所述硬件的配置信息可以是操作系统针对硬件进行主动配置得到的配置信息,也可以是操作系统未对硬件进行主动配置、而是硬件的默认配置信息,本申请实施例对于一个操作系统针对所述硬件的配置信息的具体来源不加以限制。
技术方案5可以从所述第一操作系统和所述第二操作系统针对所述硬件的配置信息中获取最优配置信息,并依据所述最优配置信息得到确定结果,以实现配置操作的最优。例如,可以从所有操作系统针对硬件的配置信息中获取精度最高、延时最小的配置信息,作为最优配置信息。可以理解,本申请实施例对于具体的最优配置信息不加以限制。
在本申请的一种应用示例中,假设第一操作系统针对硬件3的配置信息为配置信息1,第三操作系统针对硬件3的配置信息为配置信息2,第二操作系统的控制指令中控制方式信息所指示的操作为针对硬件3的配置操作,该配置操作对应有配置信息3,故可以从配置信息1、配置信息2和配置信息3中获取精度最高、延时最小的配置信息,作为最优配置信息,并在对第二操作系统的控制指令的响应过程中,将硬件3的配置信息设置为最优配置信息,当然,若硬件3的当前配置信息已经为最优配置信息,故可以拒绝所述控制方式信息所指示的操作。
技术方案6
技术方案6中,所述控制方式信息所指示的操作可以包括:针对硬件的回调操作,若所述第二操作系统针对硬件的控制状态为打开,也即第二操作系统打开了硬件,则对应确定结果表征的响应方式为执行;或者,若所述第二操作系统针对硬件的控制状态为关闭,也即第二操作系统关闭了硬件,则对应确定结果表征的响应方式为拒绝。
由于处于硬件的关闭状态的操作系统并不存在对于回调事件数据的需求,因此,回调操作对应的确定结果可以为针对处于硬件的打开状态的操作系统执行回调操作。
以上通过技术方案1至技术方案6对确定所述控制方式信息所指示的操作对应的确定结果的过程进行了详细介绍,可以理解,本领域技术人员可以根据实际应用需求,采用上述技术方案1至技术方案6中的任一或者组合。
可以理解,技术方案1至技术方案6被用于作为确定所述控制方式信息所指示的操作对应的确定结果的过程的示例,本领域技术人员根据实际应用需求采用其他技术方案。例如,可以根据对硬件的控制要求,采用确定所述控制方式信息所指示的打开操作、关闭操作、配置操作、或者回调操作操作对应的确定结果的其他过程。又如,针对不同于打开操作、关闭操作、配置操作和回调操作的操作(如数据请求操作等)确定对应的确定结果等,本申请实施例对于对应的确定结果的具体过程不加以限制。
在本申请的一种可选实施例中,上述方法还可以包括:
向所述第二操作系统返回所述控制方式信息所指示的操作对应的响应结果;和/或
向所述第二操作系统发送所述硬件对应的状态数据。
例如,该控制方式信息所指示的操作用于请求某硬件如传感器的数据,则可以通过HAL层获取传感器的数据,并向第二传感器发送传感器的数据。又如,该控制方式信息所指示的回调操作可以注册某硬件如定位装置的回调事件,则可以通过HAL层监测该回调事件,并在该回调事件发生时,向客户端发送对应的回调事件数据。其中,回调是一种事件机制,当被调用方在接收到调用方注册的事件时,可以主动调用调用方的接口,其中,被调用方和调用方可以分别为第一操作系统和第二操作系统。
可选地,上述向所述第二操作系统发送所述硬件对应的状态数据所采用的发送方式可以包括:
发送方式1、周期性向所述第二操作系统发送所述硬件对应的状态数据;和/或
发送方式2、在所述硬件对应的状态数据发生变化时,向所述第二操作系统发送所述硬件对应的状态数据;和/或
发送方式3、在所述硬件对应的状态数据的变化情况符合预置条件时,向所述第二操作系统发送所述硬件对应的状态数据。
本领域技术人员可以根据实际应用需求,确定向所述第二操作系统发送所述硬件对应的状态数据的发送时机。发送方式1可以按照预设周期进行状态数据的推送;发送方式2可以在状态数据发生变化时进行状态数据的推送,发送方式3可以在状态数据的变化情况符合预置条件时进行状态数据的推送,例如,该预置条件可以包括:状态数据的变化量(相邻时间单位对应的状态数据的差值)超过第一阈值、和/或状态数据的变化率(例如变化量与变化时间的比值,或者变化率与变化前状态数据的比值)超过第二阈值等。以硬件为温度传感器为例,可以在温度参数的变化量超过5度时进行状态数据的推送等。可以理解,上述状态数据可以为用户定制的数据,上述状态数据的发送时机也可由用户设置得到,例如用户可以设置上述预置周期,或者用户可以通过回调操作注册需要推送的状态数据,或者用户可以设置上述预置条件等。
本申请实施例中,所述硬件对应的状态数据可以包括:所述硬件内部的状态数据、或者所述硬件外部的状态数据。以硬件为传感器为例,硬件内部的状态数据可以为传感器内部的状态数据。以硬件为控制器为例,硬件外部的状态数据可以为控制器从受控设备(如传感器、家居设备等)接收到的状态数据等。
在本申请的一种可选实施例中,上述向所述第二操作系统发送所述硬件对应的状态数据的过程,具体可以包括:针对处于硬件的打开状态的第二操作系统,向所述第二操作系统发送所述硬件对应的状态数据。处于硬件的打开状态可以指硬件的打开状态为真,处于硬件的关闭状态可以指硬件的打开状态为假。处于硬件的打开状态的第二操作系统存在状态数据的获取需求,因此可以向其发送状态数据。而处于硬件的关闭状态的第二操作系统不存在状态数据的需求,因此可以不向其发送状态数据。
由于不同操作系统之间的数据结构(如HAL数据结构)可能存在一定的差异,故本申请实施例可以对第二操作系统发送的控制指令进行结构转换,以使转换后的控制指令符合第一操作系统对应的数据结构。或者,可以对向第二操作系统发送的响应结果或者状态数据进行结构转换,以使转换后的响应结果或者状态数据符合第二操作系统对应的数据结构,也即,所述响应结果和/或所述状态数据可以与所述第二操作系统对应的数据结构相匹配。
综上,本申请实施例通过第一操作系统对来自第二操作系统的控制指令进行响应,故可通过第一操作系统实现第二操作系统对于硬件的访问,因此可以实现多操作系统对于硬件的并行访问。
并且,由于本申请实施例在对所述控制指令进行响应的过程中,考虑了第一操作系统针对所述硬件的控制状态、以及第二操作系统针对所述硬件的控制状态,故可以实现多个操作系统对于硬件的互斥访问。
方法实施例二
方法实施例二中,图1所示方法实施例一的至少一个步骤可以通过所述第一操作系统的服务执行,所述服务可以位于所述第一操作系统的框架层中。
对于应用程序而言,其可通过框架层的Framework API实现硬件访问服务,具体地,应用程序调用Framework API,服务在接收到对于Framework API的调用请求后,可以调用HAL接口,HAL接口调用操作系统的内核的接口,最终实现硬件访问服务。
本申请实施例中,操作系统可以包括:HAL层和位于该HAL层之上的框架(Framework)层,其中,该服务可以位于框架层中,其可以截获上层(如应用程序层)对于Framework API的调用请求,产生对于HAL接口的调用请求,并将该对于HAL接口的调用请求交由HAL层进行响应。
参照图2,示出了本申请实施例的一种操作系统的结构示意图,其自上到下依次包括:应用程序层201、框架层202、HAL层203和内核层204(如Linux提供的内核kernel),其中,应用程序层201包括系统自带的应用程序集合;框架层202提供开发应用程序所需的一系列API,应用程序通常通过框架层202来与操作系统的底层进行交互;HAL层203可以提供HAL接口供调用,框架层可以包括服务221,服务221可以截获上层对于Framework API的调用请求,产生对于HAL接口的调用请求并将该对于HAL接口的调用请求交由HAL层203处理。可以理解,图1所示操作系统只是作为本申请实施例中操作系统的示例,本申请实施例对于操作系统的具体结构不加以限制。
本申请实施例可以通过虚拟HAL机制实现多操作系统对于硬件的并行访问,具体地,可以通过服务实现两个操作系统的对接,其中,对于第二操作系统而言,其第二服务对应的硬件访问服务可通过第一操作系统的第一服务来提供。
在本申请的一种可选实施例中,可以分别在第一操作系统的第一服务和第二操作系统的第二服务中部署服务端和客户端,通过该服务端和客户端实现第一操作系统和第二操作系统之间的通信。
参照图3,示出了本申请实施例的一种多操作系统的结构示意图,其中,多操作系统具体可以包括:第一操作系统301和第二操作系统302,其中,第一操作系统301可以为主控操作系统,第二操作系统302可以为客户操作系统,第二操作系统的数量可以等于1或者大于1;第一操作系统301可以包括:第一框架层311和第一HAL层312,第一框架层311的第一服务3111上部署有服务端31111;第二操作系统302可以包括:第二框架层321,第二框架层321的服务3211上部署有客户端32111。
服务端31111可以向客户端32111提供硬件访问服务。具体地,客户端32111可以截获对于HAL接口的调用请求,依据所述调用请求得到对应的控制指令,并向服务端31111发送所述控制指令;服务端31111可以接收客户端32111发送的控制指令,并通过第一HAL层312对所述控制指令进行响应,以实现所述第二操作系统对于硬件的访问,例如,服务端31111可以向第一HAL层312发送该控制指令,并接收该第一HAL层312对于该控制指令的响应结果。可选地,该控制指令中控制方式信息表征的针对硬件对象的操作可以包括:打开操作、关闭操作、配置操作和回调操作中的至少一种。
在实际应用中,服务端31111可以与客户端32111建立传输通道,以通过该传输通道进行传输。可选地,可以通过内核层提供的IPC技术,建立传输通道。例如,客户端32111可以将第二操作系统对于HAL接口的调用请求作为控制指令,通过RPC通信方式,交由服务端31111进行响应。服务端31111则响应该控制指令,在对应的响应方式为执行时,将控制指令直接交由底层的第一HAL层处理;或者,底层的第一HAL层312产生的状态数据,也可以发送给客户端32111。可以理解,本申请实施例对于服务端31111与客户端32111之间的具体通信方式不加以限制。
在实际应用中,上述传输通道可以包括:命令传输通道、或者数据传输通道。命令传输通道可用于传输命令,如控制指令;数据传输通道可用于传输数据,如控制指令所对应硬件的状态数据等。可以理解,本申请实施例对于具体的传输通道不加以限制。
参照图4,示出了本申请的一种硬件访问方法实施例的步骤流程图,该方法具体可以包括如下步骤:
步骤401、第一操作系统的服务端接收第二操作系统的客户端发送的控制指令;所述控制指令可以包括:硬件的信息以及控制方式信息;
所述服务端可以位于第一操作系统的第一服务,所述客户端可以位于第二操作系统的第二服务;
步骤402、第一操作系统根据所述控制方式信息、所述第一操作系统针对所述硬件的控制状态、以及所述第二操作系统针对所述硬件的控制状态,对所述控制指令进行响应。
在实际应用中,步骤401可由服务端执行,步骤402可由服务端或者第一服务中设置的其他模块执行,可以理解,本申请实施例对于图4所示硬件访问方法包括的步骤对应的具体执行主体不加以限制。
本申请实施例对于所述服务端与所述客户端之间的通信方式不加以限制,例如,该通信方式可以包括:进程间通信方式。可选地,该调用请求可以为RPC请求,客户端可以将第二操作系统对于HAL接口的调用请求作为控制指令,通过RPC通信方式,交由服务端进行响应。服务端则响应该控制指令,在对应的响应方式为执行时,将控制指令直接交由底层的第一HAL层处理。
参照图5,示出了本申请实施例的一种操作系统的结构示意图,其自上到下依次可以包括:应用程序层501、框架层502、HAL层503、多路复用层504和内核层505(如Linux提供的内核kernel);相对于图2所示操作系统,图5所示操作系统可以为主控操作系统,框架层502可以包括服务521,服务521上可以部署有服务端5211,该服务端5211可以为其他操作系统的服务或者同一操作系统的服务提供硬件访问服务,具体地,其他操作系统的服务或者同一操作系统的服务上可以部署有客户端,服务器5211与客户端建立传输通道,通过该传输通道与客户端进行通信。
相对于图2所示操作系统,图5所示操作系统在框架层502和HAL层504之间设置了多路复用层503,该多路复用器503可以包括:响应方式确定模块531、信息管理模块532、分发模块533和转换模块534。
其中,信息管理模块532可用于针对不同的操作系统,创建操作系统对于所述硬件对象的操作记录。该操作记录可以反映一个操作系统针对硬件进行过哪些操作,如针对硬件1进行过打开操作,针对硬件2进行过关闭操作,或者针对硬件3进行过配置操作等。可选地,本申请实施例可以依据一个操作系统针对一个硬件的最近一次的操作记录,得到这个操作系统针对硬件的控制状态。例如,在第一操作系统启动后,针对某个硬件进行过多次操作,产生了多次操作记录,由于最近一次的操作记录为最新的操作记录,故可以将最近一次的操作记录作为一个操作系统针对硬件的控制状态的依据。
响应方式确定模块531可用于根据所述第一操作系统针对所述硬件对象的控制状态、以及所述第二操作系统针对所述硬件对象的控制状态,确定所述控制方式信息所指示的操作对应的确定结果。
分发模块533,可用于根据响应方式确定模块531得到的确定结果,对控制指令、控制指令对应的响应结果或者状态数据进行分发。例如,在确定结果表征的响应方式为执行时,可以向HAL层505发送该控制指令,还可以向客户端发送该控制指令的执行结果;又如,在确定结果表征的响应方式为拒绝时,可以向客户端发送对应的提示;再如,在回调操作对应的确定结果表征的响应方式为执行时,可以向客户端发送对应的状态数据(回调事件数据)。
转换模块534,可用于服务端和客户端的HAL数据结构之间的相互转化,这样可以弥补不同操作系统之间的HAL数据结构的差异。可选地,转换模块534可以对客户端发送的控制指令进行结构转换,以使转换后的控制指令符合服务端所在第一操作系统对应的HAL数据结构;或者,可以对向客户端发送的响应结果或者状态数据进行结构转换,以使转换后的响应结果或者状态数据符合客户端所在第二操作系统对应的HAL数据结构。
响应方式确定模块531根据所述第一操作系统针对所述硬件对象的控制状态、以及所述第二操作系统针对所述硬件对象的控制状态,确定所述控制方式信息所指示的操作对应的确定结果;上述确定结果可以作为对所述控制指令进行响应的依据,因此可以实现多个服务或者多个操作系统对于硬件的互斥访问,且可以扩展HAL能力。
综上,本申请实施例的硬件访问方法,分别在第一操作系统的第一服务和第二操作系统的第二服务中部署服务端和客户端,也即,可以在服务实现两个操作系统的对接,其中,对于第二操作系统而言,其第二服务的硬件访问服务可通过第一操作系统的第一服务来提供。
首先,本申请实施例在服务实现两个操作系统的对接,通过第一操作系统对第二操作系统对于HAL接口的调用请求进行接收和处理,以实现第二操作系统的硬件访问服务,由于本申请实施例可以不修改第二操作系统的API(包括HAL接口、或者Framework API),故可以降低对于第二操作系统的API的语义的影响,因此可以保留第二操作系统的第二服务的功能,进而可以提供更好的兼容性。
其次,本申请实施例通过分别在第一操作系统的第一服务和第二操作系统的第二服务中部署的服务端和客户端,实现多操作系统或者多服务并行访问硬件资源的需求,由于不同操作系统或者不同服务的HAL接口的数据结构通常较为简单,能够相互进行转换,故本申请实施例可以降低开发的复杂度和工作量。
再者,现有方案中主控操作系统为客户操作系统提供硬件访问服务的过程,需要框架层及其之下的系统层对Framework API的调用请求进行响应,涉及的流程步骤较多;而本申请实施例通过第一服务及其之下的系统层对HAL接口的调用请求进行响应,由于不涉及Framework等上层的流程,故可以提高硬件访问服务的速率和频率等性能,因此可以应用于高频高速获取硬件数据的场景,例如有些应用程序(如游戏应用程序)需要快速地(例如存在100Hz/秒的速率需求)获取传感器的数据,本申请实施例可以满足这些应用程序的需求。
此外,HAL接口通常较为稳定,并且操作系统在演进过程中,也会考虑对旧版本的HAL接口的兼容性,因此本申请实施例易于在不同的操作系统版本上进行适配。
另外,本申请实施例可以不关注第二操作系统中有关硬件服务的代码,因此第二操作系统的开源与否可以不影响方案的适用性,也不会增加调试的成本和风险。
进一步,本申请实施例可以保持不同操作系统的服务之间的独立性,为操作系统中服务的演进提供便利。
方法实施例三
参照图6,示出了本申请的一种硬件访问方法实施例的步骤流程图,该方法具体可以包括如下步骤:
步骤601、第二操作系统截获控制指令;所述控制指令可以包括:硬件的信息以及控制方式信息;
步骤602、第二操作系统向第一操作系统发送所述控制指令,以使所述第一操作系统根据所述控制方式信息、所述第一操作系统针对所述硬件的控制状态、以及所述第二操作系统针对所述硬件的控制状态,对所述控制指令进行响应。
本申请实施例中,所述第一操作系统可以与所述第二操作系统不同;或者,所述第一操作系统与所述第二操作系统相同,所述第一服务与所述第二服务不同。
在实际应用中,所述方法的至少一个步骤可以通过所述第二操作系统的第二服务执行,所述第二服务位于所述第二操作系统的框架层之下。步骤601可由第二服务部署的客户端或者第二服务中设置的其他模块执行,可以理解,本申请实施例对于图6所示硬件访问方法包括的步骤对应的具体执行主体不加以限制。
对于应用程序而言,其可通过框架层的Framework API实现硬件访问服务,具体地,应用程序调用Framework API,服务在接收到对于Framework API的调用请求,可以产生对于HAL接口的调用请求,HAL接口调用操作系统的内核的接口,最终实现硬件访问服务。本申请实施例可以截获第二服务对于HAL接口的调用请求。
传统技术中,第二服务在产生对于HAL接口的调用请求后,可以从中获取对应的硬件相关数据,然后对这些硬件相关数据进行处理,把硬件相关数据发给需要这些硬件相关数据的应用程序。
本申请实施例中,可以通过第一操作系统来获取第二操作系统需求的硬件相关数据。因此,第二操作系统可以向第一操作系统发送控制指令。可选地,上述第二操作系统截获控制指令的过程,可以包括:第二操作系统截获对于硬件抽象层HAL接口的调用请求,依据所述调用请求得到对应的控制指令。例如,可以直接将该调用请求作为控制指令,又如,可以将该调用请求中的信息封装为符合要求的控制指令等。符合要求可以包括:符合传输要求,或者符合第一操作系统的数据结构等。
在本申请的一种可选实施例中,上述方法还可以包括:
接收所述第一操作系统返回的、所述控制方式信息所指示的操作对应的响应结果;和/或
接收所述第一操作系统发送的、所述硬件对应的状态数据。
可选地,所述硬件对应的状态数据可以包括:所述硬件内部的状态数据、或者所述硬件外部的状态数据。
可选地,所述响应结果和/或所述状态数据与所述第二操作系统对应的数据结构可以相匹配,这样,可以弥补不同服务之间的HAL数据结构可能存在一定的差异。
可选地,接收所述第一操作系统发送的、所述硬件对应的状态数据,所述第二操作系统针对所述硬件的打开状态可以为真。由于可以不向处于所述硬件的关闭状态的第二操作系统发送状态数据,故可以避免状态数据对于处于所述硬件的关闭状态的第二操作系统的打扰,提高硬件访问服务的智能性。
其中,上述状态数据可以为基于用户注册的回调事件得到的状态数据。对于回调事件,可以通过事件机制接收对应的事件通知。该事件机制的实现过程可以包括:第一操作系统监测到回调事件后,通知第二操作系统该回调事件,则第二操作系统可以获取得到对应的状态数据。可选地,第二操作系统可以对该状态数据进行响应,将其发送给对应的应用程序。
综上,本申请实施例的硬件访问方法,在服务实现两个操作系统的对接,通过第一操作系统对第二操作系统对于HAL接口的调用请求进行接收和处理,以实现第二操作系统的硬件访问服务,由于本申请实施例可以不修改第二操作系统的API(包括HAL接口、或者Framework API),故可以降低对于第二操作系统的API的语义的影响,因此可以保留第二操作系统的第二服务的功能,进而可以提供更好的兼容性。
其次,本申请实施例通过分别在第一操作系统的第一服务和第二操作系统的第二服务中部署的服务端和客户端,实现多操作系统或者多服务并行访问硬件资源的需求,由于不同操作系统或者不同服务的HAL接口的数据结构通常较为简单,能够相互进行转换,故本申请实施例可以降低开发的复杂度和工作量。
再者,现有方案中主控操作系统为客户操作系统提供硬件访问服务的过程,需要框架层及其之下的系统层对Framework API的调用请求进行响应,涉及的流程步骤较多;而本申请实施例通过第一服务及其之下的系统层对HAL接口的调用请求进行响应,由于不涉及Framework等上层的流程,故可以提高硬件访问服务的速率和频率等性能,因此可以应用于高频高速获取硬件数据的场景,例如有些应用程序(如游戏应用程序)需要快速地(例如存在100Hz/秒的速率需求)获取传感器的数据,本申请实施例可以满足这些应用程序的需求。
此外,HAL接口通常较为稳定,并且操作系统在演进过程中,也会考虑对旧版本的HAL接口的兼容性,因此本申请实施例易于在不同的操作系统版本上进行适配。
另外,本申请实施例可以不关注第二操作系统中有关硬件服务的代码,因此第二操作系统的开源与否可以不影响方案的适用性,也不会增加调试的成本和风险。
进一步,本申请实施例可以保持不同操作系统的服务之间的独立性,为操作系统中服务的演进提供便利。
方法实施例四
参照图7,示出了本申请的一种硬件访问方法实施例的步骤流程图,该方法具体可以包括如下步骤:
步骤701、第二操作系统截获对于HAL接口的调用请求;
步骤702、第二操作系统通过第二服务上部署的客户端,向服务端发送依据该调用请求得到的控制指令;
所述服务端位于第一操作系统的第一服务,所述调用请求被所述第一服务之下的第一HAL层处理;
步骤703、第一操作系统根据不同操作系统针对所述硬件对象的控制状态,确定所述控制指令中控制方式信息所指示的操作对应的确定结果;
所述确定结果用于表征所述控制方式信息所指示的操作对应的响应方式,所述响应方式包括:执行、或者拒绝;
步骤704、第一操作系统依据所述确定结果,通过第一HAL层对所述控制指令进行响应,以实现所述第二操作系统对于硬件的访问;
步骤705、第一操作系统通过服务端向所述客户端发送所述控制方式信息所指示的操作对应的响应结果、或者硬件对象对应的状态数据。
本申请实施例的硬件访问方法,由于本申请实施例可以不修改第二操作系统的API(包括HAL接口、或者Framework API),故可以降低对于第二操作系统的API的语义的影响,因此可以保留第二操作系统的第二服务的功能,进而可以提供更好的兼容性。
并且,由于本申请实施例可以不关注第二操作系统中有关硬件服务的代码,因此第二操作系统的开源与否可以不影响方案的适用性,也不会增加调试的成本和风险。
再者,本申请实施例通过第一服务及其之下的系统层对HAL接口的调用请求进行响应,由于不涉及Framework等上层的流程,故可以提高硬件访问服务的速率和频率等性能,因此可以应用于高频高速获取硬件数据的场景,例如有些应用程序(如游戏应用程序)需要快速地(例如存在100Hz/秒的速率需求)获取传感器的数据,本申请实施例可以满足这些应用程序的需求。
此外,HAL接口通常较为稳定,并且操作系统在演进过程中,也会考虑对旧版本的HAL接口的兼容性,因此本申请实施例易于在不同的操作系统版本上进行适配。
另外,本申请实施例可以保持不同操作系统的服务之间的独立性,为操作系统中服务的演进提供便利。
进一步,本申请实施例对于硬件提供的HAL(如HAL相关的类库)无特殊要求,这样可以节省对于HAL的修改和调试工作。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请实施例并不受所描述的动作顺序的限制,因为依据本申请实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请实施例所必须的。
本申请实施例还提供了一种硬件访问装置。
参照图8,示出了本申请的一种硬件访问装置实施例的结构框图,该装置可以应用于第一操作系统,该装置具体可以可以包括如下模块:
控制指令接收模块,用于接收第二操作系统发送的控制指令,所述控制指令包括:硬件的信息以及控制方式信息;以及
控制指令响应模块,用于根据所述控制方式信息、所述第一操作系统针对所述硬件的控制状态、以及所述第二操作系统针对所述硬件的控制状态,对所述控制指令进行响应。
可选地,所述控制方式信息用于表征针对硬件的操作,所述针对硬件的操作可以包括如下操作中的至少一种:
针对硬件的打开操作、关闭操作、配置操作和回调操作。
可选地,所述针对所述硬件的控制状态,可以包括:针对所述硬件的打开状态、关闭状态和配置状态中的至少一种。
可选地,所述控制指令响应模块可以包括:
确定子模块,用于根据所述第一操作系统针对所述硬件的控制状态、以及所述第二操作系统针对所述硬件的控制状态,确定所述控制方式信息所指示的操作对应的确定结果;所述确定结果用于表征所述控制方式信息所指示的操作对应的响应方式,所述响应方式可以包括:执行、或者拒绝;
响应子模块,用于依据所述确定结果进行响应。
可选地,所述控制方式信息所指示的操作可以包括:针对硬件的打开操作,所述确定子模块可以包括:
第一运算单元,用于对所述第一操作系统和所述第二操作系统针对所述硬件的打开状态进行第一运算;
第一确定结果获取单元,用于依据对应的第一运算结果,得到所述控制方式信息所指示的打开操作对应的确定结果。
可选地,所述控制方式信息所指示的操作可以包括:针对硬件的打开操作;
若所述第一操作系统和所述第二操作系统中任一针对硬件的控制状态为打开,则对应确定结果表征的响应方式可以为执行。
可选地,所述控制方式信息所指示的操作可以包括:针对硬件的关闭操作,所述确定子模块可以包括:
第二运算单元,用于对所述第一操作系统和所述第二操作系统针对所述硬件的关闭状态进行第二运算;
第二确定结果获取单元,用于依据对应的第二运算结果,得到所述控制方式信息所指示的关闭操作对应的确定结果。
可选地,所述控制方式信息所指示的操作可以包括:针对硬件的关闭操作;
若所述第一操作系统和所述第二操作系统针对硬件的控制状态均为关闭,则对应确定结果表征的响应方式可以为执行;或者
若所述第一操作系统和所述第二操作系统中任一针对硬件的控制状态为打开,则对应确定结果表征的响应方式可以为拒绝。
可选地,所述控制方式信息所指示的操作可以包括:针对硬件的配置操作,对应确定结果表征的响应方式为,依据所述第一操作系统和所述第二操作系统针对所述硬件的最优配置信息,针对所述硬件执行所述控制方式信息所指示的配置操作。
可选地,所述控制方式信息所指示的操作可以包括:针对硬件的回调操作;
若所述第二操作系统针对硬件的控制状态为打开,则对应确定结果表征的响应方式为执行;或者
若所述第二操作系统针对硬件的控制状态为关闭,则对应确定结果表征的响应方式为拒绝。
可选地,操作系统针对硬件的控制状态可以依据所述操作系统对于所述硬件的操作记录得到。
可选地,所述装置还可以包括:
返回模块,用于向所述第二操作系统返回所述控制方式信息所指示的操作对应的响应结果;和/或
状态数据发送模块,用于向所述第二操作系统发送所述硬件对应的状态数据。
可选地,所述状态数据发送模块可以包括:
第一发送子模块,用于周期性向所述第二操作系统发送所述硬件对应的状态数据;和/或
第二发送子模块,用于在所述硬件对应的状态数据发生变化时,向所述第二操作系统发送所述硬件对应的状态数据;和/或
第三发送子模块,用于在所述硬件对应的状态数据的变化情况符合预置条件时,向所述第二操作系统发送所述硬件对应的状态数据。
可选地,所述硬件对应的状态数据可以包括:所述硬件内部的状态数据、或者所述硬件外部的状态数据。
可选地,所述响应结果和/或所述状态数据可以与所述第二操作系统对应的数据结构相匹配。
可选地,所述装置的至少一个模块可以作为所述第一操作系统的服务,位于所述第一操作系统的框架层。
参照图9,示出了本申请的一种硬件访问装置实施例的结构框图,该装置可以应用于第二操作系统,该装置具体可以可以包括如下模块:
控制指令截获模块901,用于截获控制指令;所述控制指令包括:硬件的信息以及控制方式信息;以及
控制指令发送模块902,用于向第一操作系统发送所述控制指令,以使所述第一操作系统根据所述控制方式信息、所述第一操作系统针对所述硬件的控制状态、以及所述第二操作系统针对所述硬件的控制状态,对所述控制指令进行响应。
可选地,所述装置还可以包括:
第一接收模块,用于接收所述第一操作系统返回的、所述控制方式信息所指示的操作对应的响应结果;和/或
第二接收模块,用于接收所述第一操作系统发送的、所述硬件对应的状态数据。
可选地,所述硬件对应的状态数据包括:所述硬件内部的状态数据、或者所述硬件外部的状态数据。
可选地,所述响应结果和/或所述状态数据可以与所述第二操作系统对应的数据结构相匹配。
可选地,在接收所述第一操作系统发送的、所述硬件对应的状态数据时,所述第二操作系统针对所述硬件的打开状态为真。
可选地,控制指令截获模块901,具体用于截获对于硬件抽象层接口的调用请求,依据所述调用请求得到对应的控制指令。
可选地,所述装置的至少一个模块可以作为所述第二操作系统的服务,位于所述第二操作系统的框架层。
本申请实施例还提供了一种设备,该设备可以包括:一个或多个处理器;和其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述设备执行图1至图7所述的方法。在实际应用中,该设备的例子可以包括:智能手机、平板电脑、电子书阅读器、MP3(动态影像专家压缩标准音频层面3,Moving Picture Experts GroupAudio Layer III)播放器、MP4(动态影像专家压缩标准音频层面4,Moving PictureExperts Group Audio Layer IV)播放器、膝上型便携计算机、车载电脑、台式计算机、机顶盒、智能电视机、可穿戴设备等等,本申请实施例对于具体的设备不加以限制。
本申请实施例还提供了一种非易失性可读存储介质,该存储介质中存储有一个或多个模块(programs),该一个或多个模块被应用在设备时,可以使得该设备执行本申请实施例的图1至图7所示方法所包含步骤的指令(instructions)。
图10为本申请一实施例提供的设备的硬件结构示意图。如图10所示,该设备可以包括:输入设备1600、处理器1601、输出设备1602、存储器1603和至少一个通信总线1604。通信总线1604用于实现元件之间的通信连接。存储器1603可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器,存储器1603中可以存储各种程序,用于完成各种处理功能以及实现本实施例的方法步骤。
可选的,上述处理器1601例如可以为中央处理器(Central Processing Unit,简称CPU)、应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,该处理器1601通过有线或无线连接耦合到上述输入设备1600和输出设备1602。
可选的,上述输入设备1600可以包括多种输入设备,例如可以包括面向用户的用户接口、面向设备的设备接口、软件的可编程接口、摄像头、传感器中至少一种。可选的,该面向设备的设备接口可以是用于设备与设备之间进行数据传输的有线接口、还可以是用于设备与设备之间进行数据传输的硬件插入接口(例如USB接口、串口等);可选的,该面向用户的用户接口例如可以是面向用户的控制按键、用于接收语音输入的语音输入设备以及用户接收用户触摸输入的触摸感知设备(例如具有触摸感应功能的触摸屏、触控板等);可选的,上述软件的可编程接口例如可以是供用户编辑或者修改程序的入口,例如芯片的输入引脚接口或者输入接口等;可选的,上述收发信机可以是具有通信功能的射频收发芯片、基带处理芯片以及收发天线等。麦克风等音频输入设备可以接收语音数据。输出设备1602可以包括显示器、音响等输出设备。
在本实施例中,该设备的处理器包括用于执行各设备中数据处理装置各模块的功能,具体功能和技术效果参照上述实施例即可,此处不再赘述。
图11为本申请的一个实施例提供的设备的硬件结构示意图。图11是对图10在实现过程中的一个具体的实施例。如图11所示,本实施例的设备可以包括处理器1701以及存储器1702。
处理器1701执行存储器1702所存放的计算机程序代码,实现上述实施例中图1至图7所示的方法。
存储器1702被配置为存储各种类型的数据以支持在设备的操作。这些数据的示例包括用于在设备上操作的任何应用程序或方法的指令,例如消息,图片,视频等。存储器1702可能包含随机存取存储器(random access memory,简称RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
可选地,处理器1701设置在处理组件1700中。该设备还可以包括:通信组件1703,电源组件1704,多媒体组件1705,音频组件1706,输入/输出接口1707和/或传感器组件1708。设备具体所包含的组件等依据实际需求设定,本实施例对此不作限定。
处理组件1700通常控制设备的整体操作。处理组件1700可以包括一个或多个处理器1701来执行指令,以完成上述图1至图7所示方法的全部或部分步骤。此外,处理组件1700可以包括一个或多个模块,便于处理组件1700和其他组件之间的交互。例如,处理组件1700可以包括多媒体模块,以方便多媒体组件1705和处理组件1700之间的交互。
电源组件1704为设备的各种组件提供电力。电源组件1704可以包括电源管理系统,一个或多个电源,及其他与为设备生成、管理和分配电力相关联的组件。
多媒体组件1705包括在设备和用户之间的提供一个输出接口的显示屏。在一些实施例中,显示屏可以包括液晶显示器(LCD)和触摸面板(TP)。如果显示屏包括触摸面板,显示屏可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。
音频组件1706被配置为输出和/或输入音频信号。例如,音频组件1706包括一个麦克风(MIC),当设备处于操作模式,如语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器1702或经由通信组件1703发送。在一些实施例中,音频组件1706还包括一个扬声器,用于输出音频信号。
输入/输出接口1707为处理组件1700和外围接口模块之间提供接口,上述外围接口模块可以是点击轮,按钮等。这些按钮可包括但不限于:音量按钮、启动按钮和锁定按钮。
传感器组件1708包括一个或多个传感器,用于为设备提供各个方面的状态评估。例如,传感器组件1708可以检测到设备的打开/关闭状态,组件的相对定位,用户与设备接触的存在或不存在。传感器组件1708可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在,包括检测用户与设备间的距离。在一些实施例中,该传感器组件1708还可以包括摄像头等。
通信组件1703被配置为便于设备和其他设备之间有线或无线方式的通信。设备可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个实施例中,该设备中可以包括SIM卡插槽,该SIM卡插槽用于插入SIM卡,使得设备可以登录GPRS网络,通过互联网与服务器建立通信。
由上可知,在图11对应实施例中所涉及的通信组件1703、音频组件1706以及输入/输出接口1707、传感器组件1708均可以作为图10实施例中的输入设备的实现方式。
本申请实施例还提供了一种用于设备的操作系统,如图12所示,该操作系统可以包括:控制指令接收单元1201和控制指令响应单元1202。
其中,控制指令接收单元1201,用于接收第二操作系统发送的控制指令,所述控制指令包括:硬件的信息以及控制方式信息;以及
控制指令响应单元1202,用于根据所述控制方式信息、所述第一操作系统针对所述硬件的控制状态、以及所述第二操作系统针对所述硬件的控制状态,对所述控制指令进行响应。
在实际应用中,控制指令接收单元1201和控制指令响应单元1202可以作为服务,位于操作系统的框架层。
本申请实施例还提供了一种用于设备的操作系统,如图13所示,该操作系统可以包括:控制指令截获单元1301和控制指令发送单元1302。
其中,控制指令截获单元1301,用于截获控制指令;所述控制指令包括:硬件的信息以及控制方式信息;以及
控制指令发送单元1302,用于向第一操作系统发送所述控制指令,以使所述第一操作系统根据所述控制方式信息、所述第一操作系统针对所述硬件的控制状态、以及所述第二操作系统针对所述硬件的控制状态,对所述控制指令进行响应。
在实际应用中,控制指令截获单元1301和控制指令发送单元1302可以作为服务,位于操作系统的框架层。
对于装置实施例、设备实施例和用于设备的操作系统实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
在一个典型的配置中,所述计算机设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被设备访问的信息。按照本文中的界定,计算机可读介质不包括非持续性的电脑可读媒体(transitory media),如调制的数据信号和载波。
本申请实施例是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本申请所提供的一种硬件访问方法、一种硬件访问装置、一种设备、及一种机器可读介质,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (31)
1.一种硬件访问方法,其特征在于,包括:。
第一操作系统接收第二操作系统发送的控制指令,所述控制指令包括硬件的信息以及控制方式信息;
根据所述控制方式信息、所述第一操作系统针对所述硬件的控制状态、以及所述第二操作系统针对所述硬件的控制状态,对所述控制指令进行响应。
2.根据权利要求1所述的方法,其特征在于,所述控制方式信息用于表征针对硬件的操作,所述针对硬件的操作包括如下操作中的至少一种:
针对硬件的打开操作、关闭操作、配置操作和回调操作。
3.根据权利要求1所述的方法,其特征在于,所述针对所述硬件的控制状态,包括:针对所述硬件的打开状态、关闭状态和配置状态中的至少一种。
4.根据权利要求1或2或3所述的方法,其特征在于,所述对所述控制指令进行响应,包括:
根据所述第一操作系统针对所述硬件的控制状态、以及所述第二操作系统针对所述硬件的控制状态,确定所述控制方式信息所指示的操作对应的确定结果;所述确定结果用于表征所述控制方式信息所指示的操作对应的响应方式,所述响应方式包括:执行、或者拒绝;
依据所述确定结果进行响应。
5.根据权利要求4所述的方法,其特征在于,所述控制方式信息所指示的操作包括:针对硬件的打开操作,所述确定所述控制方式信息所指示的操作对应的确定结果,包括:
对所述第一操作系统和所述第二操作系统针对所述硬件的打开状态进行第一运算;
依据对应的第一运算结果,得到所述控制方式信息所指示的打开操作对应的确定结果。
6.根据权利要求4所述的方法,其特征在于,所述控制方式信息所指示的操作包括:针对硬件的打开操作;
若所述第一操作系统和所述第二操作系统中任一针对硬件的控制状态为打开,则对应确定结果表征的响应方式为执行。
7.根据权利要求4所述的方法,其特征在于,所述控制方式信息所指示的操作包括:针对硬件的关闭操作,所述确定所述控制方式信息所指示的操作对应的确定结果,包括:
对所述第一操作系统和所述第二操作系统针对所述硬件的关闭状态进行第二运算;
依据对应的第二运算结果,得到所述控制方式信息所指示的关闭操作对应的确定结果。
8.根据权利要求4所述的方法,其特征在于,所述控制方式信息所指示的操作包括:针对硬件的关闭操作;
若所述第一操作系统和所述第二操作系统针对硬件的控制状态均为关闭,则对应确定结果表征的响应方式为执行;或者
若所述第一操作系统和所述第二操作系统中任一针对硬件的控制状态为打开,则对应确定结果表征的响应方式为拒绝。
9.根据权利要求4所述的方法,其特征在于,所述控制方式信息所指示的操作包括:针对硬件的配置操作,对应确定结果表征的响应方式为,依据所述第一操作系统和所述第二操作系统针对所述硬件的最优配置信息,针对所述硬件执行所述控制方式信息所指示的配置操作。
10.根据权利要求4所述的方法,其特征在于,所述控制方式信息所指示的操作包括:针对硬件的回调操作;
若所述第二操作系统针对硬件的控制状态为打开,则对应确定结果表征的响应方式为执行;或者
若所述第二操作系统针对硬件的控制状态为关闭,则对应确定结果表征的响应方式为拒绝。
11.根据权利要求1或2或3所述的方法,其特征在于,操作系统针对硬件的控制状态依据所述操作系统对于所述硬件的操作记录得到。
12.根据权利要求1或2或3所述的方法,其特征在于,所述方法还包括:
向所述第二操作系统返回所述控制方式信息所指示的操作对应的响应结果;和/或
向所述第二操作系统发送所述硬件对应的状态数据。
13.根据权利要求12所述的方法,其特征在于,所述向所述第二操作系统发送所述硬件对应的状态数据,包括:
周期性向所述第二操作系统发送所述硬件对应的状态数据;和/或
在所述硬件对应的状态数据发生变化时,向所述第二操作系统发送所述硬件对应的状态数据;和/或
在所述硬件对应的状态数据的变化情况符合预置条件时,向所述第二操作系统发送所述硬件对应的状态数据。
14.根据权利要求12所述的方法,其特征在于,所述硬件对应的状态数据包括:所述硬件内部的状态数据、或者所述硬件外部的状态数据。
15.根据权利要求12所述的方法,其特征在于,所述响应结果和/或所述状态数据与所述第二操作系统对应的数据结构相匹配。
16.一种硬件访问方法,其特征在于,包括:
第二操作系统截获控制指令;所述控制指令包括:硬件的信息以及控制方式信息;
第二操作系统向第一操作系统发送所述控制指令,以使所述第一操作系统根据所述控制方式信息、所述第一操作系统针对所述硬件的控制状态、以及所述第二操作系统针对所述硬件的控制状态,对所述控制指令进行响应。
17.根据权利要求16所述的方法,其特征在于,所述方法还包括:
接收所述第一操作系统返回的、所述控制方式信息所指示的操作对应的响应结果;和/或
接收所述第一操作系统发送的、所述硬件对应的状态数据。
18.根据权利要求17所述的方法,其特征在于,所述硬件对应的状态数据包括:所述硬件内部的状态数据、或者所述硬件外部的状态数据。
19.根据权利要求17所述的方法,其特征在于,所述响应结果和/或所述状态数据与所述第二操作系统对应的数据结构相匹配。
20.根据权利要求17所述的方法,其特征在于,在接收所述第一操作系统发送的、所述硬件对应的状态数据时,所述第二操作系统针对所述硬件的控制状态为打开。
21.根据权利要求16至20中任一所述的方法,其特征在于,第二操作系统截获控制指令,包括:
第二操作系统截获对于硬件抽象层接口的调用请求,依据所述调用请求得到对应的控制指令。
22.一种硬件访问装置,其特征在于,应用于第一操作系统,包括:
控制指令接收模块,用于接收第二操作系统发送的控制指令,所述控制指令包括:硬件的信息以及控制方式信息;以及
控制指令响应模块,用于根据所述控制方式信息、所述第一操作系统针对所述硬件的控制状态、以及所述第二操作系统针对所述硬件的控制状态,对所述控制指令进行响应。
23.根据权利要求22所述的装置,其特征在于,所述控制指令响应模块包括:
确定子模块,用于根据所述第一操作系统针对所述硬件的控制状态、以及所述第二操作系统针对所述硬件的控制状态,确定所述控制方式信息所指示的操作对应的确定结果;所述确定结果用于表征所述控制方式信息所指示的操作对应的响应方式,所述响应方式包括:执行、或者拒绝;
响应子模块,用于依据所述确定结果进行响应。
24.一种硬件访问装置,其特征在于,应用于第二操作系统,所述装置包括:
控制指令截获模块,用于截获控制指令;所述控制指令包括:硬件的信息以及控制方式信息;以及
控制指令发送模块,用于向第一操作系统发送所述控制指令,以使所述第一操作系统根据所述控制方式信息、所述第一操作系统针对所述硬件的控制状态、以及所述第二操作系统针对所述硬件的控制状态,对所述控制指令进行响应。
25.根据权利要求24所述的装置,其特征在于,所述装置还包括:
第一接收模块,用于接收所述第一操作系统返回的、所述控制方式信息所指示的操作对应的响应结果;和/或
第二接收模块,用于接收所述第一操作系统发送的、所述硬件对应的状态数据。
26.一种设备,其特征在于,包括:
一个或多个处理器;和
其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述设备执行如权利要求1-15中一个或多个所述的方法。
27.一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得设备执行如权利要求1-15中一个或多个所述的方法。
28.一种用于设备的操作系统,其特征在于,包括:
控制指令接收单元,用于接收第二操作系统发送的控制指令,所述控制指令包括:硬件的信息以及控制方式信息;以及
控制指令响应单元,用于根据所述控制方式信息、所述第一操作系统针对所述硬件的控制状态、以及所述第二操作系统针对所述硬件的控制状态,对所述控制指令进行响应。
29.一种设备,其特征在于,包括:
一个或多个处理器;和
其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述设备执行如权利要求16-21中一个或多个所述的方法。
30.一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得设备执行如权利要求16-21中一个或多个所述的方法。
31.一种用于设备的操作系统,其特征在于,包括:
控制指令截获单元,用于截获控制指令;所述控制指令包括:硬件的信息以及控制方式信息;以及
控制指令发送单元,用于向第一操作系统发送所述控制指令,以使所述第一操作系统根据所述控制方式信息、所述第一操作系统针对所述硬件的控制状态、以及所述第二操作系统针对所述硬件的控制状态,对所述控制指令进行响应。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710954603.9A CN109669723B (zh) | 2017-10-13 | 2017-10-13 | 硬件访问方法、装置、设备和机器可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710954603.9A CN109669723B (zh) | 2017-10-13 | 2017-10-13 | 硬件访问方法、装置、设备和机器可读介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109669723A true CN109669723A (zh) | 2019-04-23 |
CN109669723B CN109669723B (zh) | 2023-06-13 |
Family
ID=66138973
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710954603.9A Active CN109669723B (zh) | 2017-10-13 | 2017-10-13 | 硬件访问方法、装置、设备和机器可读介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109669723B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112068988A (zh) * | 2019-06-10 | 2020-12-11 | 海信视像科技股份有限公司 | 一种双系统并行恢复出厂设置的方法及系统 |
CN112099978A (zh) * | 2020-11-12 | 2020-12-18 | 南京创维信息技术研究院有限公司 | 位于硬件抽象层的通用唤醒识别算法管理装置及管理方法 |
CN113127215A (zh) * | 2019-12-30 | 2021-07-16 | 成都鼎桥通信技术有限公司 | 一种双操作系统智能终端中管理传感器的方法和设备 |
CN113286280A (zh) * | 2021-04-12 | 2021-08-20 | 沈阳中科创达软件有限公司 | 音频数据处理方法、装置、电子设备和计算机可读介质 |
CN113608898A (zh) * | 2021-07-12 | 2021-11-05 | 北京鲸鲮信息系统技术有限公司 | 指纹访问方法、装置、设备及存储介质 |
CN113792280A (zh) * | 2021-09-24 | 2021-12-14 | 北京鲸鲮信息系统技术有限公司 | 指纹访问方法、装置、设备及存储介质 |
CN115460257A (zh) * | 2021-06-07 | 2022-12-09 | 中移(成都)信息通信科技有限公司 | 一种信号的处理方法、服务器和校园设备 |
CN115562765A (zh) * | 2022-12-05 | 2023-01-03 | 北京小米移动软件有限公司 | 定位组件的控制方法、装置、电子设备及存储介质 |
WO2023024589A1 (zh) * | 2021-08-25 | 2023-03-02 | 荣耀终端有限公司 | 请求的处理方法及相关装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060206904A1 (en) * | 2005-03-11 | 2006-09-14 | Microsoft Corporation | Systems and methods for supporting device access from multiple operating systems |
CN105940375A (zh) * | 2014-03-06 | 2016-09-14 | 英特尔公司 | 针对多操作系统设备的动态再分配 |
CN109669782A (zh) * | 2017-10-13 | 2019-04-23 | 阿里巴巴集团控股有限公司 | 硬件抽象层复用方法、装置、操作系统和设备 |
-
2017
- 2017-10-13 CN CN201710954603.9A patent/CN109669723B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060206904A1 (en) * | 2005-03-11 | 2006-09-14 | Microsoft Corporation | Systems and methods for supporting device access from multiple operating systems |
CN105940375A (zh) * | 2014-03-06 | 2016-09-14 | 英特尔公司 | 针对多操作系统设备的动态再分配 |
CN109669782A (zh) * | 2017-10-13 | 2019-04-23 | 阿里巴巴集团控股有限公司 | 硬件抽象层复用方法、装置、操作系统和设备 |
Non-Patent Citations (2)
Title |
---|
戴月华等: "Trochilidae:面向众核平台的高性能轻量级虚拟机监控器", 《计算机科学与探索》 * |
石岩等: "面向并行图像处理的实时分布式操作系统的设计与实现", 《小型微型计算机系统》 * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112068988A (zh) * | 2019-06-10 | 2020-12-11 | 海信视像科技股份有限公司 | 一种双系统并行恢复出厂设置的方法及系统 |
CN112068988B (zh) * | 2019-06-10 | 2024-05-10 | 海信视像科技股份有限公司 | 一种双系统并行恢复出厂设置的方法及系统 |
CN113127215A (zh) * | 2019-12-30 | 2021-07-16 | 成都鼎桥通信技术有限公司 | 一种双操作系统智能终端中管理传感器的方法和设备 |
CN113127215B (zh) * | 2019-12-30 | 2024-01-26 | 成都鼎桥通信技术有限公司 | 一种双操作系统智能终端中管理传感器的方法和设备 |
CN112099978A (zh) * | 2020-11-12 | 2020-12-18 | 南京创维信息技术研究院有限公司 | 位于硬件抽象层的通用唤醒识别算法管理装置及管理方法 |
CN113286280A (zh) * | 2021-04-12 | 2021-08-20 | 沈阳中科创达软件有限公司 | 音频数据处理方法、装置、电子设备和计算机可读介质 |
CN115460257A (zh) * | 2021-06-07 | 2022-12-09 | 中移(成都)信息通信科技有限公司 | 一种信号的处理方法、服务器和校园设备 |
CN113608898A (zh) * | 2021-07-12 | 2021-11-05 | 北京鲸鲮信息系统技术有限公司 | 指纹访问方法、装置、设备及存储介质 |
WO2023024589A1 (zh) * | 2021-08-25 | 2023-03-02 | 荣耀终端有限公司 | 请求的处理方法及相关装置 |
CN113792280A (zh) * | 2021-09-24 | 2021-12-14 | 北京鲸鲮信息系统技术有限公司 | 指纹访问方法、装置、设备及存储介质 |
CN115562765A (zh) * | 2022-12-05 | 2023-01-03 | 北京小米移动软件有限公司 | 定位组件的控制方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109669723B (zh) | 2023-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109669723A (zh) | 硬件访问方法、装置、设备和机器可读介质 | |
da Cruz et al. | A reference model for internet of things middleware | |
CN109428911A (zh) | 设备控制方法、装置、终端设备和操作系统 | |
CN108289110A (zh) | 设备关联方法、装置、终端设备和操作系统 | |
CN104426967B (zh) | 一种跨平台和跨设备的移动应用开发系统 | |
CN104756080B (zh) | 扩展主机设备的功能 | |
CN104903863B (zh) | 用于虚拟环境的控制反转组件服务模型系统 | |
CN105940409A (zh) | 网络服务沙箱系统 | |
CN108959864B (zh) | 功能调用鉴权、调用功能的方法和装置及权限信息建立方法 | |
WO2017167121A1 (zh) | 确定及运用应用程序之间的关系关联的方法及装置 | |
CN110007952A (zh) | 数据处理方法、装置、设备和机器可读介质 | |
JP6258475B2 (ja) | クライアントデバイスにメディアアセットを提供するための方法 | |
CN104317648B (zh) | 一种监测广告的方法和装置 | |
WO2020181814A1 (zh) | 应用程序升级方法、装置、终端及计算机可读存储介质 | |
KR20120089125A (ko) | 어플리케이션을 원격으로 실행하는 방법 및 장치 | |
CN110399578A (zh) | 页面访问方法及装置 | |
WO2021169466A1 (zh) | 信息收藏方法、电子设备及计算机可读存储介质 | |
CN109271211A (zh) | 应用程序的分身方法、装置、设备和介质 | |
CN110069919A (zh) | 信息获取方法和装置 | |
CN106649488A (zh) | 多数据源交互接口的调用方法及装置 | |
US20230259548A1 (en) | Virtual file library | |
WO2022253158A1 (zh) | 一种用户隐私保护方法及装置 | |
CN109254781A (zh) | 一种用于在用户设备上安装应用的方法与设备 | |
CN109194706A (zh) | 网络资源拨测方法及终端 | |
CN103917951B (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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20201217 Address after: Room 603, 6 / F, Roche Plaza, 788 Cheung Sha Wan Road, Kowloon, China Applicant after: Zebra smart travel network (Hong Kong) Ltd. Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands Applicant before: Alibaba Group Holding Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |