我正在爲我正在製作的項目製作一個自定義文件系統。目前我正在用Python和fusepy編寫它,但它讓我想知道如何在Linux中編譯非用戶空間文件系統。是否有需要使用的特定庫或需要執行的函數才能使mount命令正常工作。總的來說,我不確定整個過程是如何工作的。製作一個新的文件系統
1
A
回答
2
是的,你會編程到內核接口,特別是至少the VFS layer
。 編輯Better link [1]
'全' 的文件是在內核樹:http://www.mjmwired.net/kernel/Documentation/filesystems/vfs.txt。當然,熔絲內核模塊被編程爲完全相同的接口
但是,這不是你所說的庫。它是一個內核組件,它本質上是內核組件,所以內核不必知道文件系統是如何實現與其中一個協同工作的。
[1] 谷歌錯了:先打是不是最好的:)
1
如果你想用Python編寫它,保險絲是一個不錯的選擇。有很多的教程,例如這裏:http://sourceforge.net/apps/mediawiki/fuse/index.php?title=FUSE_Python_tutorial
1
總之:Linux是單內核的一些模塊的裝載能力。這意味着每個內核功能(文件系統,調度程序,驅動程序,內存管理等)都是稱爲Linux的一個大型程序的一部分。可加載模塊只是運行時鏈接的一種特殊方式,它允許用戶根據需要選擇這些功能,但它們大多仍作爲單個程序開發。
因此,要創建一個新的文件系統,只需將新的C源代碼文件添加到內核代碼中,定義文件系統必須執行的操作。然後,創建一個初始化函數,分配一個新的VFS結構實例,用適當的函數指針填充它並向VFS註冊。
請注意,FUSE只不過是一個用戶級可訪問的API來執行相同的操作,所以FUSE掛鉤對應於(大致)VFS操作。
相關問題
- 1. 製作一個鏈接到文件系統的文檔庫
- 2. 將rpm從一個操作系統複製到另一個操作系統
- 3. 新文件系統的mkfs
- 4. 文件系統操作確實「刷新」
- 5. 操作系統如何控制文件?
- 6. 二進制文件和操作系統
- 7. 原型製作文件系統
- 8. 製作一個小於系統最小值的窗口(無系統控件)?
- 9. 製作一個網站評論系統
- 10. 製作另一個CRM系統
- 11. 製作一個facebook通知系統
- 12. 複製一個文件並用AppleScript替換系統文件
- 13. 如何製作一個基本的插件系統/ modloader?
- 14. 從System.Drawing.Image的文件系統上創建一個新的圖像?
- 15. 操作文件系統
- 16. FUSE文件系統操作
- 17. 把一個完整的文件系統到版本控制
- 18. c從一個系統到另一個系統的文件傳輸#
- 19. 在另一個系統的網絡系統中創建一個文件夾
- 20. Python製作系統
- 21. 製作一個WPF系統上下文菜單項可切換
- 22. Android操作系統更新系統
- 23. 試圖製作一個插件系統在C++/Qt
- 24. Commons-vfs嘲諷一個文件系統
- 25. 是否有一個低級prepend操作的文件系統?
- 26. 另一個版本控制系統是否具有類似ClearCase的文件系統訪問文件版本?
- 27. 在iPhone文件系統中製作和編輯.psd文件
- 28. 的Hadoop文件系統是物理文件系統或虛擬文件系統
- 29. 製作一個隨機數罕見的系統,它不工作
- 30. 如何將文件從本地文件系統複製到HDFS文件系統?
我很好奇你爲什麼選擇這樣做。 :)有沒有需要現有的文件系統不符合? – corsiKa 2011-05-06 21:21:47