微内核架构的设备驱动方法、装置、电子设备和存储介质制造方法及图纸

技术编号:36194734 阅读:51 留言:0更新日期:2023-01-04 11:46
本公开实施例涉及微内核架构的设备驱动方法、装置、电子设备和存储介质。本公开的至少一个实施例中,采用驱动主线程和设备子线程的主从线程架构模式,在操作系统启动时,仅启动驱动主线程,而不启动设备子线程,减少设备子线程对系统资源的消耗;并且,驱动主线程和设备子线程通过RPC方式提供设备驱动服务,具体地,当驱动主线程接收到的第一RPC消息为设备启动请求后,驱动主线程再启动设备节点的设备子线程,进而由设备子线程确定接收到的第二RPC消息为设备操作请求后,对设备节点进行对应的操作,解决目前的微内核架构中,应用无法直接调用设备驱动的问题。直接调用设备驱动的问题。直接调用设备驱动的问题。

【技术实现步骤摘要】
微内核架构的设备驱动方法、装置、电子设备和存储介质


[0001]本公开实施例涉及计算机
,具体涉及一种微内核架构的设备驱动方法、装置、电子设备和非暂态计算机可读存储介质。

技术介绍

[0002]操作系统(Operation System,OS)是管理计算机硬件与软件资源的计算机程序。系统调用是操作系统的最小功能单位,系统调用将操作系统分为内核态(可以理解为内核空间)和用户态(可以理解为用户空间)。内核是操作系统的一种特殊的软件程序,直接运行在硬件上,可以理解为连接应用程序和硬件的桥梁,用于控制计算机的硬件资源,例如协调中央处理单元(Central Processing Unit,CPU)资源、分配内存资源并提供稳定的环境供应用程序运行。用户态可以理解为提供应用程序运行的空间。为了使应用程序访问到内核管理的资源,例如CPU资源、内存资源、I/O(Input/Output,输入/输出)资源,内核需提供一组通用的访问接口,这些接口即为系统调用。
[0003]目前,操作系统的内核架构有两种:宏内核架构和微内核架构。图1示出了宏内核的架构示意图和微内核架构示意图,由图1可见,在宏内核架构中组件、应用和设备驱动运行于内核态,因此,组件和应用可以直接调用设备驱动。而在微内核架构中,设备驱动运行于用户态,例如运行于进程1中,组件和应用运行于用户态的进程2中,这样,组件和应用无法直接调用设备驱动,为此,亟需提供一种微内核架构的设备驱动方案。

技术实现思路

[0004]为了解决现有技术存在的至少一个问题,本公开的至少一个实施例提供了一种微内核架构的设备驱动方法、装置、电子设备和非暂态计算机可读存储介质。
[0005]第一方面,本公开实施例提出一种微内核架构的设备驱动方法,其中,操作系统响应启动指令而启动驱动主线程,且不启动设备子线程,该设备驱动方法包括:
[0006]驱动主线程通过RPC服务接收第一RPC消息;
[0007]驱动主线程确定第一RPC消息为设备启动请求后,启动对应的设备节点的设备子线程;
[0008]设备子线程在启动后通过RPC服务接收第二RPC消息;
[0009]设备子线程确定第二RPC消息为设备操作请求后,对设备节点进行对应的设备操作。
[0010]在一些实施例中,驱动主线程通过RPC服务接收第一RPC消息之前,该设备驱动方法还包括:
[0011]驱动主线程注册并启动主线程RPC服务;
[0012]驱动主线程在启动主线程RPC服务后,注册一个或多个设备节点的RPC服务并将注册每个设备节点。
[0013]在一些实施例中,驱动主线程确定第一RPC消息为设备启动请求后,启动对应的设
备节点的设备子线程,包括:
[0014]驱动主线程确定第一RPC消息为设备启动请求后,打开设备启动请求对应的设备节点;
[0015]驱动主线程在打开设备节点后,启动设备节点的设备子线程。
[0016]在一些实施例中,驱动主线程确定第一RPC消息为设备启动请求后,启动对应的设备节点的设备子线程,包括:
[0017]驱动主线程确定第一RPC消息为设备启动请求后,调用操作系统提供的创建线程API,以创建设备启动请求对应的设备节点的设备子线程。
[0018]在一些实施例中,该设备驱动方法还包括:
[0019]设备子线程在启动后打开对应的设备节点;
[0020]设备子线程在打开设备节点后,且确定第二RPC消息为设备操作请求后,对设备节点进行对应的设备操作。
[0021]在一些实施例中,注册一个或多个设备节点的RPC服务并将注册每个设备节点,包括:
[0022]驱动主线程扫描驱动列表,得到一个或多个设备类型以及每个设备类型对应的设备节点;
[0023]驱动主线程注册每个设备节点的RPC服务;
[0024]驱动主线程在注册每个设备节点的RPC服务后注册每个设备节点。
[0025]在一些实施例中,注册每个设备节点包括:
[0026]向第一VFS库注册每个设备节点,其中,第一VFS库为驱动主线程所在进程的VFS库;或,向PM进程注册每个设备节点。
[0027]在一些实施例中,设备启动请求由应用进程通过如下方式发送:
[0028]应用进程在第二VFS库中查找待启动的设备节点是否已注册,其中,第二VFS库为应用进程的VFS库;若未注册,则应用进程查找主线程RPC服务;
[0029]应用进程基于主线程RPC服务向驱动主线程发送设备启动请求。
[0030]在一些实施例中,应用进程查找主线程RPC服务的同时还查找待启动的设备节点的RPC服务;
[0031]应用进程接收到驱动主线程反馈的设备启动结果后,若设备启动结果为成功,则应用进程基于待启动的设备节点的RPC服务向设备子线程发送设备操作请求。
[0032]在一些实施例中,驱动主线程在PM进程中注册并启动主线程RPC服务;应用进程在PM进程中查找主线程RPC服务。
[0033]在一些实施例中,该设备驱动方法还包括:
[0034]驱动主线程确定第一RPC消息为设备关闭请求后,结束对应的设备节点的设备子线程;
[0035]驱动主线程在结束对应的设备节点的设备子线程后,关闭设备节点。
[0036]第二方面,本公开实施例还提出一种微内核架构的设备驱动装置,其中,该设备驱动装置包括:驱动主线程和设备子线程;操作系统响应启动指令而启动驱动主线程,且不启动设备子线程;
[0037]驱动主线程,用于通过RPC服务接收第一RPC消息,并确定第一RPC消息为设备启动
请求后,启动对应的设备节点的设备子线程;
[0038]设备子线程,用于在启动后通过RPC服务接收第二RPC消息,并确定第二RPC消息为设备操作请求后,对设备节点进行对应的设备操作。
[0039]第三方面,本公开实施例还提出一种电子设备,包括:处理器和存储器;所述处理器通过调用所述存储器存储的程序或指令,用于执行如第一方面所述微内核架构的设备驱动方法的步骤。
[0040]第四方面,本公开实施例还提出一种非暂态计算机可读存储介质,用于存储程序或指令,所述程序或指令使计算机执行如第一方面所述微内核架构的设备驱动方法的步骤。
[0041]可见,本公开的至少一个实施例中,采用驱动主线程和设备子线程的主从线程架构模式,在操作系统启动时,仅启动驱动主线程,而不启动设备子线程,减少设备子线程对系统资源的消耗;并且,驱动主线程和设备子线程通过RPC方式提供设备驱动服务,具体地,当驱动主线程接收到的第一RPC消息为设备启动请求后,驱动主线程再启动设备节点的设备子线程,进而由设备子线程确定接收到的第二RPC消息为设备操作请求后,对设备节点进行对应的操作,解决目前的微内核架构中,应用无法直接调用设备驱动的问题。
附图说明
[0042]为了更清楚地说明本公开实施例的技术方案,下面将对实施本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种微内核架构的设备驱动方法,其中,操作系统响应启动指令而启动驱动主线程,且不启动设备子线程,所述方法包括:所述驱动主线程通过RPC服务接收第一RPC消息;所述驱动主线程确定所述第一RPC消息为设备启动请求后,启动对应的设备节点的设备子线程;所述设备子线程在启动后通过RPC服务接收第二RPC消息;所述设备子线程确定所述第二RPC消息为设备操作请求后,对所述设备节点进行对应的设备操作。2.根据权利要求1所述的方法,其中,所述驱动主线程通过RPC服务接收第一RPC消息之前,所述方法还包括:所述驱动主线程注册并启动主线程RPC服务;所述驱动主线程在启动所述主线程RPC服务后,注册一个或多个设备节点的RPC服务并将注册每个所述设备节点。3.根据权利要求1所述的方法,其中,所述驱动主线程确定所述第一RPC消息为设备启动请求后,启动对应的设备节点的设备子线程,包括:所述驱动主线程确定所述第一RPC消息为设备启动请求后,打开所述设备启动请求对应的设备节点;所述驱动主线程在打开所述设备节点后,启动所述设备节点的设备子线程。4.根据权利要求1所述的方法,其中,所述驱动主线程确定所述第一RPC消息为设备启动请求后,启动对应的设备节点的设备子线程,包括:所述驱动主线程确定所述第一RPC消息为设备启动请求后,调用所述操作系统提供的创建线程API,以创建所述设备启动请求对应的设备节点的设备子线程。5.根据权利要求4所述的方法,其中,所述方法还包括:所述设备子线程在启动后打开对应的设备节点;所述设备子线程在打开所述设备节点后,且确定所述第二RPC消息为设备操作请求后,对所述设备节点进行对应的设备操作。6.根据权利要求2所述的方法,其中,所述注册一个或多个设备节点的RPC服务并将注册每个所述设备节点,包括:所述驱动主线程扫描驱动列表,得到一个或多个设备类型以及每个所述设备类型对应的设备节点;所述驱动主线程注册每...

【专利技术属性】
技术研发人员:梁超众童武胜刘勇锋毛熠璐
申请(专利权)人:阿里云计算有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1