[發明專利]Linux平臺上使用FUSE的文件移動方法在審
| 申請號: | 201610064269.5 | 申請日: | 2016-01-29 |
| 公開(公告)號: | CN105740413A | 公開(公告)日: | 2016-07-06 |
| 發明(設計)人: | 李良 | 申請(專利權)人: | 珠海全志科技股份有限公司 |
| 主分類號: | G06F17/30 | 分類號: | G06F17/30 |
| 代理公司: | 深圳市君盈知識產權事務所(普通合伙) 44315 | 代理人: | 葉志頻 |
| 地址: | 519000 廣東省*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | linux 平臺 使用 fuse 文件 移動 方法 | ||
1.一種Linux平臺上使用FUSE的文件移動方法,其特征在于,包括:
使用FUSE在內核空間中獲取用戶空間讀寫進程的頁面指針;
通過所獲取的頁面指針,在所述用戶空間讀寫進程與相應的內核空間守護進程之間共享內存;
在所述守護進程中,將所述用戶空間讀寫進程的頁面指針改寫為需要移動的文件所在的頁面指針,以實現內存空間零拷貝的文件移動。
2.根據權利要求1所述的Linux平臺上使用FUSE的文件移動方法,其特征在于,所述在內核空間獲取用戶空間頁面指針過程包括如下步驟:
用戶應用程序開啟讀寫FUSE的進程,通過系統調用后進入內核空間;
在內核空間中,FUSE獲取用戶空間傳遞過來的參數和數據緩沖區對應的頁面指針,并將所述頁面指針封裝成請求后投遞到FUSE的請求隊列中;
FUSE的服務對象開啟與用戶應用程序所在讀寫進程相對應的守護進程,從內核空間獲取由所述讀寫進程生成的并已加入所述FUSE隊列中待執行的請求;
所述守護進程通過隊列等待機制獲取到所需對應請求。
3.根據權利要求2所述的Linux平臺上使用FUSE的文件移動方法,其特征在于,使用“get_user_pages”操作在內核態中獲取所述用戶空間的頁面指針,將用戶空間進程中的頁面指針寫入所述FUSE隊列中。
4.根據權利要求2所述的Linux平臺上使用FUSE的文件移動方法,其特征在于,所述共享內存的步驟包括:
在內核態調用“mmap”操作進行內存數據共享,并按照所述請求的目的直接將待移動的數據填充至所述讀寫進程與所述守護進程共享的內存數據緩沖區,實現內存數據零拷貝的文件移動。
5.根據權利要求4所述的Linux平臺上使用FUSE的文件移動方法,其特征在于,所述共享內存的步驟還包括:將數據頭也進行數據共享,以進一步減少拷貝的數據量。
6.根據權利要求4所述的Linux平臺上使用FUSE的文件移動方法,其特征在于,所述共享內存的步驟還包括:
所述守護進程在請求完成執行以后,將執行結果返回給所述用戶空間中的讀寫進程。
7.根據權利要求1所述的Linux平臺上使用FUSE的文件移動方法,其特征在于,使用“mmap”操作在所述用戶進程和守護進程之間實現內存共享。
8.根據權利要求7所述的Linux平臺上使用FUSE的文件移動方法,其特征在于,利用“remap_pfn_range”操作或是缺頁中斷實現所述“mmap”操作。
9.根據權利要求1所述的Linux平臺上使用FUSE的文件移動方法,其特征在于,FUSE請求的最大數據長度由FUSE設置,默認為128KB。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于珠海全志科技股份有限公司,未經珠海全志科技股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201610064269.5/1.html,轉載請聲明來源鉆瓜專利網。





