FUSE 使用者空間檔案系統

2022-07-04 00:00:15 字數 1293 閱讀 4286

使用者空間檔案系統(filesystem in userspace,簡稱fuse)是作業系統中的概念,指完全在使用者態實現的檔案系統。目前linux通過核心模組對此進行支援。一些檔案系統如zfs,glusterfs和moosefs使用fuse實現。           

linux用於支援使用者空間檔案系統的核心模組名叫fuse,fuse一詞有時特指linux下的使用者空間檔案系統。檔案系統是乙個通用作業系統重要的組成部分。傳統上作業系統在核心層面上對檔案系統提供支援。而通常核心態的**難以除錯,生產率較低。        

linux從2.6.14版本開始通過fuse模組支援在使用者空間實現檔案系統。在使用者空間實現檔案系統能夠大幅提高生產率,簡化了為作業系統提供新的檔案系統的工作量,特別適用於各種虛擬檔案系統和網路檔案系統。zfs和 glusterfs都屬於網路檔案系統。但是,在使用者態實現檔案系統必然會引入額外的核心態/使用者態切換帶來的開銷,對效能會產生一定影響。     

使用 fuse 您可以開發功能完備的檔案系統:其具有簡單的 api 庫,可以被非特權使用者訪問,並可以安全的實施。更重要的是,fuse 以往的表現充分證明了其穩定性。使用 fuse,您可以像可執行二進位制檔案一樣來開發檔案系統,它們需要鏈結到 fuse 庫上 —— 換言之,這個檔案系統框架並不需要您了解檔案系統的內幕和核心模組程式設計的知識。

瀏覽了下sourceforge,知道fuse支援kernel2.4.x和2.6.x,就直接把latest stable release下下來了2.8.2,

tar -xzvf fuse-2.8.5.tar.gz

cd fuse-2.8.5/./configure;

make

make install

echo 'exportpkg_config_path=/usr/local/lib/pkgconfig:$pkg_config_path' >>/etc/profile

source /etc/profile

modprobe fuse

可能出現的問題:

之後跑了下example裡的hello,出現device not found error,用modprobe fuse檢視,cannot locate fuse module.果然,fuse雖說是支援2.4.x,不過該版本kernel裡面沒有fuse核心模組。查了下wiki,kernel 2.6.14之後才開始有自帶fuse。

有2種解決方案:

一種是將fuse編譯進current kernel module中,

另一種將fuse source code配置好放於相應目錄中recompile kernel。

使用者空間檔案系統 fuse

使用者空間檔案系統 fuse 2010 08 16 22 16 10 分類 伺服器與儲存 fuse是filesystem in user space,它是乙個使用者空間的檔案系統框架,通過fuse,程式設計師可以再使用者態實現檔案系統,並且不需要特權使用者的支援。fuse包括三個模組 核心模組,使用...

FUSE 使用者空間檔案系統

使用者空間檔案系統 filesystem in userspace,簡稱fuse 是作業系統中的概念,指完全在使用者態實現的檔案系統。目前linux通過核心模組對此進行支援。一些檔案系統如zfs,glusterfs和moosefs使用fuse實現。linux用於支援使用者空間檔案系統的核心模組名叫f...

FUSE 使用者空間檔案系統

fuse是file system in user space,它是乙個使用者空間的檔案系統框架,通過fuse,程式設計師可以再使用者態實現檔案系統,並且不需要特權使用者的支援。fuse包括三個模組 核心模組,使用者空間庫以及mount工具。l 核心模組實現了乙個完整檔案系統的框架,但具體操作沒有實現...