fuchsia coordinator及devhost

Devmgr进程包含Coordinator(设备协调器)用于跟踪驱动程序和设备,进行驱动程序的发现、设备主机进程的创建和走向的管理,以及维护设备文件系统(devfs)。

Devmgr进程是zircon继内核加载的第一个用户态进程—userboot(类似linux的init进程)和userboot加载的第一个进程—bootsvc(保存启动相关信息,并提供bootfs等服务)之后的非常重要的一个程序。后续的zircon-drivers相关进程、zircon-services相关进程以及appmgr都是devmgr来启动。

Coordinator中的设备类型为struct Device,其继承自AsyncLoopRefCountedRpcHandler类,所以coordinator中的设备自带wait属性,属于可等待对象;而devhost中的设备则是struct zx_device类型是不可等待的,所以devhost中设备提供服务需要额外借助于“conn”对象,这里conn对象主要包括三种:DevhostControllerConnection、DeviceControllerConnection和DevfsConnection。

 

DevhostControllerConnection主要用于coordinator通知devhost创建设备(主要是总线类设备的创建,如platform bus);DeviceControllerConnection则是建立起devhost与coordinator的双向通信链路,既可以由devhost发送ipc通知coordinator添加设备、绑定驱动等,也可以有coordinator通知devhost绑定驱动、连接proxy等;DevfsConnection用于应用程序利用open获取设备句柄后的文件系统服务,详见“设备文件系统”章节。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值