[发明专利]一种在Linux系统下共享热插拔设备的方法与装置有效
申请号: | 201310492970.3 | 申请日: | 2013-10-18 |
公开(公告)号: | CN103530124B | 公开(公告)日: | 2017-01-25 |
发明(设计)人: | 杨将来 | 申请(专利权)人: | 中安消技术有限公司 |
主分类号: | G06F9/44 | 分类号: | G06F9/44;G06F13/40 |
代理公司: | 广东广和律师事务所44298 | 代理人: | 章小燕 |
地址: | 100086 北京市海淀区科学院*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 linux 系统 共享 热插拔 设备 方法 装置 | ||
技术领域
本发明涉及设备共享领域,尤其涉及一种在Linux系统下共享热插拔设备的方法与装置。
背景技术
为了对系统功能进行实时扩展,当前的计算机系统都支持设备热插拔操作。热插拔即“带电插拔”,是指可以在计算机系统运行期间,不切断系统电源的情况下安装或者移除外部设备。热插拔设备这个过程可以是插入USB无线网卡、添加新的SATA硬盘或者移除已损坏的SATA硬盘、添加或移除板卡等等,从而达到对系统功能进行实时扩展的目的。
当前Linux操作系统对热插拔操作提供了完善的支持。如图1所示,Linux操作系统下的热插拔系统包括内核空间驱动模块和用户空间处理模块。当发生热插拔设备事件时,内核空间驱动模块会产生热插拔信息用于指示当前热插拔操作,热插拔信息主要包括:动作信息(即ACTION),用于指示当前是插入动作还是拔出动作;设备所属子系统信息(即SUBSYSTEM),用于指示设备分类;设备路径(即DEVPATH),用于指示具体设备位置。Linux内核通过两种方法通知设备热插拔事件,第一种:内核将热插拔信息设置为系统环境变量,并运行
“/proc/sys/kernel/hotplug”文件所指定的用户空间处理模块,用户空间处理模块被调用而获取热插拔信息;第二种:内核通过名为NETLINK的套接字将热插拔信息广播出去,用户空间处理模块通过监听NETLINK套接字来获取热插拔信息,即用户空间处理模块主动获取热插拔信息。现有技术在管理热插拔设备时存在以下3个问题:
1.周期性执行检测热插拔设备造成系统负载增大。
如中国专利CN1877550A提出的电视机嵌入式Linux系统下USB存储设备实现实时热插拔的方法中,守护进程周期性地执行检测任务,为了达到实时检测热插拔事件的目的,势必会缩短检测周期从而使处理器大部分时间被守护进程占 用,造成系统负载增大。因为守护进程采取主动周期性地检测来识别设备热插拔,在没有真正发生设备热插拔事件时,该守护进程同样会周期性地执行检测任务从而占用处理器,所以即使缩短检测周期该方法依然会占用额外的处理器资源。
2.热插拔检测模块常驻内存,浪费内存空间。
如中国专利CN1757021A提出的设备管理方法及设备管理系统中,热插拔端口监督模块常驻内存运行,它依据来自挂钩模块的信息来收集并保存热插拔设备信息,同时用户应用模块通过热插拔类库与端口监督模块进行进程间通信获取热插拔设备信息。热插拔端口监督模块以常驻内存的方式运行,意味着在没有设备热插拔事件发生时该模块依然会在后台运行并驻留在内存中,这种方式显然会浪费内存空间。
3.存储热插拔设备信息的内存在进程地址空间内,容易造成系统不稳定。
如中国专利CN1757021A提出的《设备管理方法及设备管理系统》中,用于存储热插拔设备信息的内存在热插拔驱动模块的进程地址空间内,用户应用模块通过热插拔类库与热插拔驱动模块进行进程间通信获取热插拔设备信息。该方法的问题在于热插拔驱动模块异常崩溃,因为热插拔设备信息存储在热插拔驱动模块的进程地址空间内,所以热插拔设备信息将会全部丢失,因此当用户空间应用模块无法获取有效的热插拔设备信息时,可能会出现以下的异常情况:用户空间应用模块操作一个已经被卸载的热插拔设备时系统将崩溃;用户空间应用模块无法获取已经安装的热插拔设备信息时将无法使用该热插拔设备。
发明内容
有鉴于此,本发明要解决的技术问题是提供Linux系统下共享热插拔设备的方法与装置,以解决热插拔检测模块常驻内存造成内存空间浪费,执行周期性地检测造成系统负载增大,以及热插拔设备信息保存在进程地址空间内造成系统不稳定的问题。
本发明解决上述技术问题所采用的技术方案如下:
根据本发明的一个方面,提供了一种在Linux系统下共享热插拔设备的方法,该方法包括以下步骤:
系统启动时初始化共享设备,并将热插拔设备检测模块注册为Linux热插拔 系统的用户空间处理模块;
检测到热插拔事件后,内核将热插拔信息设置为系统环境变量,并通过调用用户空间处理模块来调用热插拔设备检测模块;
热插拔设备检测模块从系统环境变量中获取热插拔信息;
根据热插拔信息获取热插拔的设备信息和动作信息;
根据热插拔的动作信息和设备信息调用共享设备维护接口对共享设备进行相应地处理。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中安消技术有限公司,未经中安消技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310492970.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:网络切换方法和设备
- 下一篇:数据传输方法、基站及用户设备