Bất kỳ triển khai nào của unix với các hệ thống tập tin dựa trên thẻ, phẳng?


7

Theo tôi hiểu, các tệp trong Unix đều được lưu trữ theo cấu trúc "phẳng" trong ổ cứng - hệ thống tệp chỉ đơn thuần là liên kết từ các thư mục đến các thư mục khác và cuối cùng là lá / nút / tệp. Nhiều liên kết cứng có thể trỏ đến cùng một tệp (nhưng không phải cùng thư mục / nhánh)

Đã có bất kỳ cách tiếp cận nào trong đó về cơ bản không có thư mục nào cả - tất cả các tệp nằm trong một thư mục khổng lồ và thay vì các thư mục bạn có thẻ? Thư mục chính của bạn sau đó có thể không phải là tệp trong thư mục mà thay vào đó chỉ là danh sách các thẻ / thư mục, trong đó một tệp có thể được tìm thấy trong nhiều hơn một?

Và cũng có một số loại giảng viên phần mềm để thực hiện các truy vấn thẻ phức tạp hơn, như lọc.


MS-DOS 2.0 đã giới thiệu các thư mục vào tháng 3 năm 1983. Mac OS 2.1 đã giới thiệu hỗ trợ thư mục phù hợp vào tháng 9 năm 1985 cùng với hỗ trợ đĩa cứng. Các hệ thống Unix đã hỗ trợ các thư mục cho tôi không biết bao lâu, nhưng hỗ trợ thư mục DOS 2 dựa trên mẫu Unix. Giống như @BruceEdiger chỉ ra , việc có thể sắp xếp các tệp vào các thư mục là một tính năng khá hữu ích. Thật dễ dàng hơn nhiều để tạo ra một hệ thống tệp hoạt động tốt trong đó số lượng tệp trên mỗi thư mục tương đối nhỏ.
một CVn

Lý do chúng ta vẫn có các hệ thống tệp phân cấp trái ngược với các hệ thống tệp ngữ nghĩa là hệ thống phân cấp (cây) vì tìm kiếm nhanh hơn danh sách. Một hệ thống tập tin dựa trên thẻ thường sẽ yêu cầu nhiều danh sách được tìm kiếm.
Zaz

Câu trả lời:


6

Đúng là dữ liệu của tệp là "phẳng" trên ổ đĩa thực. Hầu hết (tất cả?) Các ổ đĩa hiện đại đều có "LBA" (Địa chỉ khối logic), có nghĩa là ngay cả với kernel, một đĩa là một khối lớn rất lớn. Các khối chứa dữ liệu của tệp có thể bị gián đoạn, vì các nút, v.v., được đặt cách nhau trong toàn bộ dòng của các khối đĩa. Vì vậy, "phẳng" là một chút lừa đảo như một mô tả.

Cũng đúng là phần "phân cấp" chỉ là hư cấu: thư mục (được gọi tốt hơn là "thư mục") và tư cách thành viên của họ có được sự sắp xếp từ hạt nhân "làm cho nó" bằng cách đọc tên tệp và khớp số inode từ dữ liệu của thư mục .

Nhưng một sự sắp xếp thứ bậc của dữ liệu là khá hữu ích. Ngay từ năm 1991, mọi người đã tranh cãi về điều đó và bị bác bỏ một cách rõ ràng. Xem Hệ thống tệp của Brent Welch thuộc về hạt nhân để có một đối số tốt hơn tôi có thể sáng tác.

Tôi cũng cảm thấy bắt buộc phải lưu ý rằng Microsoft đã bắt tay vào cơ sở dữ liệu hệ thống tệp ít nhất hai lần trong 20 năm qua và từ bỏ nó cả hai lần, nhưng có lẽ tôi đang hiểu những gì Google nói không chính xác.


2

Có các hệ thống tệp FUSE cung cấp các chế độ xem thẻ hoặc dựa trên truy vấn của hệ thống tệp phân cấp hiện có, nhưng không có hệ thống nào tôi biết về điều đó cho phép bạn làm việc hoàn toàn trong chế độ xem không phân cấp.

Tagfs cung cấp chế độ xem dựa trên thẻ, nhưng bạn cần thiết lập các thẻ theo cách thủ công. Điều tương tự cũng xảy ra với các Tagsistant trưởng thành hơn . QueryFS có một bằng chứng về khái niệm để truy cập các tệp thông qua các truy vấn cơ sở dữ liệu tùy ý.

Các mục khác trong danh sách hệ thống tập tin FUSE có thể bạn quan tâm. (Cảnh báo: danh sách này không đầy đủ cũng không cập nhật.)


1

Bạn đã có thể làm điều đó ngay hôm nay: Ít nhiều tất cả các hệ thống tệp Linux đều hỗ trợ các thuộc tính mở rộng. Bạn có thể sử dụng EA cho các thẻ của bạn. Nhưng: Có lẽ không có hệ thống tập tin nào được tối ưu hóa cho cấu trúc phẳng như vậy nên nó có thể trở nên khá chậm. Và, tất nhiên, không đủ để có một hệ thống tệp hỗ trợ điều này: Bạn cũng cần một ứng dụng hỗ trợ này.

Trong KDE (và có lẽ cả các môi trường máy tính để bàn khác nữa), bạn có thể gắn thẻ các tệp với các từ khóa. Nhưng chúng dường như không được lưu trữ trong EA. Tôi không biết làm thế nào họ làm điều đó, có lẽ với một công cụ cơ sở dữ liệu riêng biệt vì đây là một nhiệm vụ cơ sở dữ liệu cổ điển.


1

BeOS là một trong những thử nghiệm hứa hẹn hơn trong các hệ điều hành máy tính để bàn, mặc dù nó thực sự không phải là một biến thể Unix. Hoặc một thành công thương mại. Nhưng nó chắc chắn có một số ý tưởng thú vị, một trong số đó là hệ thống tệp BeOS, BFS .

BFS không hoàn toàn từ bỏ cấu trúc phân cấp, khá hữu ích về mặt tổ chức, nhưng nó đã tăng cường nó với một hệ thống các thuộc tính rất linh hoạt, với các chỉ mục được duy trì dưới dạng B + -trees và móc nối để có thể xác định các truy vấn trực tiếp (nghĩa là được duy trì liên tục), mà có thể được sử dụng để áp đặt các cấu trúc tổ chức thay thế.

Tôi nghĩ đã có BFS triển khai lại cho Linux.

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.