天天看點

利用FUSE編寫自定義的檔案系統

FUSE--使用者空間檔案系統(Filesystem in Userspace),具體可以度娘,反正是簡化了自定義檔案系統的複雜度,可以更友善地利用自定義檔案系統做一些事情。

一、使用 Python 編寫一個 FUSE 檔案系統

感覺用Python寫一個FUSE檔案系統挺簡單的。

1.安裝fuse的python庫

pip3 install fusepy

2.編寫後發現python的fuse性能過低,且檔案打開還可能存在編碼問題,實際可用度低。且python實作的fuse和overlay配合(fuse上面套overlay)有問題,具體原因不明。

二、C++版本fuse

1.下載下傳libfuse-master源碼,裡面帶了一個簡易fuse模闆passthrough,後面可以基于它進行修改。

連結:https://github.com/libfuse/libfuse

2.編譯環境搭建

pip3 install meson

apt-get install ninja-build

3.編譯

meson builder

cd builder

ninja

4.使用方式

./passthrough --src=/root/dzqabc/org /root/dzq/new 自定義的參數 -o ro -d

-d參數可以保持程式前台進行調試列印,-o ro可以限定挂在後通路方式,這樣也省掉了實作寫操作相關接口。