Những khía cạnh nào của Kế hoạch 9 đã được đưa vào Unix?


28

Kế hoạch 9 được phát triển bởi Bell Labs với tư cách là người kế thừa cho Unix. Mặc dù vì nhiều lý do khác nhau, nó chưa bao giờ được cụ thể hóa như vậy, một lượng phát triển hợp lý vẫn đi vào Kế hoạch 9.

Câu hỏi của tôi là, cái gì - nếu có gì - từ Kế hoạch 9 đã đi vào Unix hiện đại?



1
từ bài báo: "kẻ thù nguy hiểm nhất của một giải pháp tốt hơn là một cơ sở mã hiện có, chỉ đủ tốt."
rahmu

Câu trả lời:


18

Cuộc clonegọi hệ thống (2) trong linux được cho là đã được mô hình hóa sau Kế hoạch 9 rfork(). (Cá nhân tôi không thấy thời gian diễn ra như thế nào.)

Bài viết này tuyên bố rằng Kế hoạch 9 đã truyền cảm hứng cho "không gian tên mount / filesystem".

Hệ /procthống tập tin dường như đã đến với Kế hoạch 9 từ Unix phiên bản 8, thay vì cách khác.


Có vẻ như ngày càng có nhiều phần tiếp tục xuất hiện nhưng không đủ để chuyển các ứng dụng plan9 gốc với chức năng gốc 100%.
Joe

17

Một điều hiển nhiên có lẽ là UTF-8. Nhưng điều đó có lẽ quá rõ ràng.

Kiến trúc tái cấu trúc lớn của Al Viro của Linux VFS được lấy cảm hứng rất nhiều từ Plan9. Đặc biệt là sự thay đổi từ "Mọi thứ là một tập tin" sang "Tập tin và mọi tập tin là một điểm gắn kết".


4
Bạn có thể giải thích ngắn gọn (hoặc chỉ cho tôi một tài nguyên giải thích) ý nghĩa của "... và mỗi tệp là một điểm gắn kết" không?
Ông Shickadance

3
@Ông. Shickadance: Theo truyền thống, bạn chỉ có thể gắn kết hệ thống tập tin và bạn chỉ có thể gắn kết chúng trên các thư mục. Trên Linux, bạn cũng có thể gắn thư mục vào thư mục và tệp trên tệp. Vì vậy, theo một nghĩa nào đó, mọi thư mục và mọi tệp là một hệ thống tệp và mọi tệp (và không chỉ mỗi thư mục) là một điểm gắn kết. Ví dụ:cd /tmp; echo a > a; echo b > b; sudo mount --bind a b; cat b # => a
Jörg W Mittag


8

Các hệ thống tệp liên minh, chẳng hạn như unionfsaufs , được lấy cảm hứng từ các thư mục gắn kết của Plan9 .

Ví dụ: chúng được sử dụng trên các đĩa CD trực tiếp để hợp nhất /usr/bintừ đĩa CD với một hệ thống tệp có thể ghi, để bạn có thể thay đổi /usr/bin, ngay cả khi đĩa CD chỉ đọc.

Hệ thống tập tin liên minh: Triển khai, Phần I trên lwn.net

Ví dụ: nếu tôi hiểu tài liệu chính xác, trên Plan9, bạn có thể làm:

bind -b /usr/bin /bin
bind -b /usr/local/bin /bin
bind -b /home/username/bin /bin

Và tất cả các tệp trong cả ba thư mục sẽ xuất hiện /bin(trong trường hợp tên trùng lặp, thư mục được chỉ định cuối cùng sẽ thắng, do -btùy chọn).

Tôi không chắc đây có phải ý nghĩa của Bruce bởi "không gian tên mount / tập tin hệ thống" hay là một cái gì đó khác biệt.


Bạn có thể cũng có thể nói rằng sshfs được lấy cảm hứng từ ftpfs của Plan9 .


3

Trong Kế hoạch 9, mọi "hệ thống tập tin" được thực hiện bởi trình nền không gian người dùng. (Hãy suy nghĩ FUSE.) Các trình tiện ích này đều nói về 9P (cụ thể là 9P2000, phiên bản thứ hai của giao thức). 9P về cơ bản là những gì giữ các phần khác nhau của hệ thống với nhau.

Các v9fs dự án cụ một trình điều khiển hạt nhân Linux cho các giao thức 9P. Theo trang wiki Plan 9 trên đó , nó nằm trong kernel chính như kernel 2.6,14.

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.