Những lợi ích và nhược điểm để sử dụng các hệ thống tập tin FuseFS là gì?


19

Tôi biết một số hệ thống tập tin tự trình bày thông qua Fuse và tôi đã tự hỏi về những ưu và nhược điểm của phương pháp này.

Câu trả lời:


16

Tôi không tích cực nếu bạn có nghĩa là hệ thống tập tin thực, trên đĩa hoặc bất kỳ hệ thống tập tin. Tôi chưa bao giờ thấy một hệ thống tập tin bình thường sử dụng FUSE, mặc dù tôi cho rằng nó có thể; lợi ích chính của FUSE là cho phép bạn trình bày một cái gì đó cho các ứng dụng (hoặc người dùng) trông giống như một hệ thống tệp, nhưng thực sự chỉ gọi các chức năng trong ứng dụng của bạn khi người dùng cố gắng thực hiện những việc như liệt kê các tệp trong thư mục hoặc tạo mới tập tin. Plan9 nổi tiếng với việc cố gắng làm cho mọi thứ có thể truy cập được thông qua hệ thống tệp và /prochệ thống tệp giả xuất phát từ chúng; FUSE là cách để các ứng dụng dễ dàng theo mô hình đó

Ví dụ: đây là ảnh chụp màn hình của hệ thống tệp FUSE (rất không liên tục) cho phép truy cập vào dữ liệu trang SE:

Ảnh chụp màn hình của hệ thống tập tin FUSE đang hoạt động

Đương nhiên không có tập tin nào trong số đó thực sự tồn tại; khi được lshỏi về danh sách các tệp trong thư mục FUSE đã gọi một hàm trong chương trình của tôi, nó đã yêu cầu API đến trang này để tải thông tin về người dùng 73 (tôi); catcố gắng đọc display_namewebsite_urlgọi thêm các hàm trả về dữ liệu được lưu trong bộ nhớ mà không có bất cứ thứ gì thực sự tồn tại trên đĩa


3
Có triển khai FUSE của FAT , NTFS , iso9660 , ext2 , và nhiều hơn nữa .
Gilles 'SO- ngừng trở nên xấu xa'

2
Bạn sẽ tìm thấy các hệ thống tập tin nhiệm vụ nặng nề được triển khai trong cầu chì: LessFS, GlusterFS, MooseFS. GFS của Google (không phải POSIX) cũng chạy trong không gian người dùng.
Tobu

Bạn đã tìm thấy ứng dụng đó ở đâu?!?!
Nathan Osman

4
@George Tôi đã viết nó khi tôi đang rối tung với API SO. Nó không sử dụng bất kỳ tuyến nào ngoại trừ / người dùng, vì vậy về cơ bản bạn sẽ thấy tất cả các tính năng được triển khai trong ảnh chụp màn hình đó; chỉ để xem nó khó đến mức nào
Michael Mrozek

5
@George Tôi đặt nó trên github
Michael Mrozek

19

Các hệ thống tập tin Unix được truyền thống thực hiện trong kernel. FUSE cho phép các hệ thống tập tin được thực hiện bởi một chương trình người dùng.

Các hệ thống tệp trong nhân phù hợp hơn với các hệ thống tệp chính cho các chương trình và dữ liệu:

  • Chúng có thể được sử dụng trên phương tiện khởi động (chương trình thực hiện hệ thống tập tin FUSE phải được tải từ đâu đó).
  • Chúng mạnh mẽ hơn, ở chỗ chúng sẽ không biến mất do quá trình sụp đổ hoặc bị giết do nhầm lẫn.
  • Chúng có phần nhanh hơn.

Hệ thống tập tin FUSE có những lợi thế khác, chủ yếu xoay quanh tính linh hoạt của chúng:

  • Chúng có thể được tải và gắn kết bởi người dùng thông thường, vì vậy chúng thuận tiện cho các hệ thống tệp mà người dùng có xu hướng tự lắp: để truy cập mạng, để đi qua các tệp lưu trữ, cho phương tiện lưu động, v.v.
  • Nếu trình điều khiển hệ thống tập tin FUSE gặp sự cố, nó sẽ không khiến nhân của bạn hoảng sợ: bạn sẽ không thấy gì tệ hơn lỗi I / O trong các ứng dụng đang truy cập hệ thống tập tin.
  • Chúng có thể được lập trình rất nhanh; có các ràng buộc FUSE cho nhiều ngôn ngữ kịch bản trong đó trình điều khiển hệ thống tập tin FUSE hữu ích có thể được viết bằng vài trăm dòng mã.
  • Chúng có thể được triển khai rất nhanh, vì cả hai đều không cần sự can thiệp của quản trị viên để cài đặt chúng và bởi vì chúng có thể được chuyển dễ dàng giữa các HĐH được hỗ trợ .
  • Không có vấn đề cấp phép liên quan đến việc được liên kết tĩnh với kernel (điều này ảnh hưởng đến zfs ).

7

FUSE không thực sự là một hệ thống tệp mỗi se mà là mã cho phép các hệ thống tệp được triển khai như các quy trình thay vì các mô-đun hạt nhân.

Một trong những lợi ích hữu ích nhất của FUSE là cho phép mã GPL "trộn" với không phải GPL. Ví dụ: Gnu / Linux và ZFS http://zfs-fuse.net/ hoặc NTFS-3G trên nhiều hệ điều hành như OpenSolaris và * BSD http://www.tuxera.com/community/ntfs-3g-doad/

Hạn chế chính là tác động hiệu năng so với trình điều khiển gốc (kernel).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.