[發明專利]一種Linux系統實施獲取設備熱插拔信息的系統在審
| 申請號: | 201711473244.1 | 申請日: | 2017-12-29 |
| 公開(公告)號: | CN108228425A | 公開(公告)日: | 2018-06-29 |
| 發明(設計)人: | 馬資道;謝演;魏貴鵬 | 申請(專利權)人: | 成都三零嘉微電子有限公司 |
| 主分類號: | G06F11/30 | 分類號: | G06F11/30;G06F11/34;G06F13/40 |
| 代理公司: | 成都九鼎天元知識產權代理有限公司 51214 | 代理人: | 錢成岑 |
| 地址: | 610041 四川省成都市高新區云華*** | 國省代碼: | 四川;51 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 熱插拔事件 熱插拔 信息獲取模塊 處理模塊 獲取設備 監聽模塊 列表信息 熱拔插 進程管理單元 設備管理單元 事件信息更新 有效防止數據 安全處理 發生設備 實時獲取 事件時刻 系統崩潰 套接字 主機端 監聽 插拔 進程 | ||
本發明公開了一種Linux系統實施獲取設備熱插拔信息的系統,包括熱插拔事件監聽模塊、熱插拔信息獲取模塊和熱插拔事件處理模塊,所述熱插拔事件監聽模塊用于監聽Linux的Netlink套接字發來的熱插拔事件;所述熱插拔信息獲取模塊用于在監聽到新的熱插拔事件時獲取該熱拔插事件的信息;所述熱插拔事件處理模塊包括設備管理單元和進程管理單元,用于根據熱拔插事件信息更新設備列表信息和進程列表信息。在發生設備插拔事件時刻,Linux主機端可以實時獲取設備熱插拔信息,并進行及時安全處理,可以有效防止數據丟失和系統崩潰。
技術領域
本發明涉及Linux系統技術領域,尤其是一種Linux系統實施獲取設備熱插拔信息的系統。
背景技術
多數用戶空間的進程是需要和Linux內核態交換數據的,但Linux內核態無法對傳統的Linux進程間同步和通信的方法提供足夠的支持。Linux傳統的進程間通信有管道、消息隊列、內存共享、信號量等等。但它們都無法介于內核態與用戶態使用,管道局限于父子進程間的通信;消息隊列在硬、軟中斷中無法無阻塞地接收數據;信號量,無法介于內核態和用戶態使用;內存共享,需要信號量輔助,而信號量又無法使用。Linux內核提供copy_from_user()/copy_to_user()函數來實現內核態與用戶態數據的拷貝,但這兩個函數會引發阻塞,所以不能應用于硬、軟中斷中,一般將這兩個特殊拷貝函數用在類似于系統調用一類的函數中,其中相關的系統調用是需要用戶自行編寫并載入內核。
Linux的設備驅動處于內核態,需要編譯進內核,使用open,read,write,close,ioctl等系統調用接口與用戶應用層進行通信,所以傳統方法中設備的名稱是由驅動層和應用層雙方約定好,設備訪問時直接進行調用,該種方法比較死板固定。另有,在使用通用標準驅動情況下,根據某些關鍵字來遍歷查詢該設備是否存在,從而進行數據通信,這種方法效率較低。在多設備場合,或是一些特殊設備上,若要實時探測設備狀態,并在應用層實現與內核驅動層的交互,傳統的這些方法就顯得不實用了。對于熱插拔設備事件來說,由于存在人為因素干擾,主機端很難準確有效判斷設備的插入和斷開操作,所以這類信息的交互和事件處理就需要用到Netlink機制。
Netlink是一種Linux特有的套接字,用于實現用戶進程與內核進程之間通信的一種特殊的進程間通信方式(IPC),是一種異步通信機制,也是網絡應用程序與內核通信的最常用的接口。Netlink是一種在內核和用戶應用間進行雙向數據傳輸的良好方式,用戶態應用使用標準的套接字應用程序接口就能使用Netlink提供的強大功能,內核態需要使用專門的內核應用程序接口來使用Netlink。目前在Linux2.6.14之后使用Netlink和內核通信的應用非常多,新的Linux內核使用udev代替了hotplug作為熱拔插管理,雖然有udevd進行熱拔插管理,但有時我們還是需要在應用程序中檢測熱拔插事件以便快速地處理,比如在讀寫SD卡時拔下SD卡,需要立即檢測出該情況,然后結束讀寫線程,防止VFS(virtual FileSystem虛擬文件系統)崩潰。Netlink是面向數據包的服務,為內核與用戶層搭建了一個高速通道,是udev的實現基礎,其異步工作方式允許用戶空間程序不必使用輪詢等技術來檢測熱拔插事件。
發明內容
基于現有技術的上述缺陷,本發明提供一種通過采用Netlink機制實現Linux主機端實施獲取設備熱插拔信息的系統。
本發明能夠以多種方式實現,包括方法、系統、設備、裝置或計算機可讀介質,在下面論述本發明的幾個實施例。
一種Linux系統實施獲取設備熱插拔信息的系統,包括熱插拔事件監聽模塊、熱插拔信息獲取模塊和熱插拔事件處理模塊,所述熱插拔事件監聽模塊用于監聽Linux的Netlink套接字發來的熱插拔事件;所述熱插拔信息獲取模塊用于在監聽到新的熱插拔事件時獲取該熱拔插事件的信息;所述熱插拔事件處理模塊包括設備管理單元和進程管理單元,用于根據熱拔插事件信息更新設備列表信息和進程列表信息。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于成都三零嘉微電子有限公司,未經成都三零嘉微電子有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201711473244.1/2.html,轉載請聲明來源鉆瓜專利網。





