แง่มุมใดของแผน 9 ที่นำไปสู่ยูนิกซ์?


28

แผน 9ได้รับการพัฒนาโดย Bell Labs ในฐานะผู้สืบทอดของ Unix แม้ว่าจะด้วยเหตุผลหลายประการ แต่ก็ไม่เคยปรากฏเช่นนี้ แต่การพัฒนาที่เป็นธรรมยังคงเป็นแผน 9

คำถามของฉันคืออะไรถ้ามี - จาก Plan 9 ได้นำมาสู่ Unix ที่ทันสมัย?



1
จากกระดาษ: "ศัตรูที่อันตรายที่สุดของทางออกที่ดีกว่าคือ codebase ที่มีอยู่ซึ่งดีพอ"
rahmu

คำตอบ:


18

clone(2) สายระบบในลินุกซ์จะบอกว่าจะได้รับการถ่ายแบบแผน rfork()9 (โดยส่วนตัวแล้วฉันไม่เห็นว่าเวลาทำงานอย่างไร)

บทความนี้อ้างว่า Plan 9 เป็นแรงบันดาลใจให้ "mount / filesystem namespace"

/procระบบแฟ้มดูเหมือนจะได้มาจากแผน 9 ฉบับที่ 8 Unix มากกว่าวิธีอื่น ๆ


ดูเหมือนว่าชิ้นส่วนมากขึ้นเรื่อย ๆ ที่มา แต่ไม่พอที่จะพอร์ตแอปพลิเคชั่นเนทีฟดั้งเดิม 9 ที่มีฟังก์ชั่นดั้งเดิม 100%
Joe

17

สิ่งที่ชัดเจนน่าจะเป็น UTF-8 แต่นั่นอาจชัดเจนเกินไป

การออกแบบสถาปัตยกรรมที่ยอดเยี่ยมของ Al Viro ของ Linux VFS นั้นได้รับแรงบันดาลใจอย่างมากจาก Plan9 โดยเฉพาะอย่างยิ่งการเปลี่ยนจาก "ทุกอย่างเป็นไฟล์" เป็น "... และทุกไฟล์เป็นจุดเมานท์"


4
คุณสามารถอธิบายสั้น ๆ (หรือชี้ให้ฉันไปยังแหล่งข้อมูลที่อธิบาย) สิ่งที่มีความหมายโดย "... และทุกไฟล์คือจุดเมานท์"?
Mr. Shickadance

3
@นาย. Shickadance: ตามเนื้อผ้าคุณสามารถเมานต์ระบบไฟล์ได้เท่านั้นและคุณสามารถเมานได้เฉพาะในไดเรกทอรี บน Linux คุณยังสามารถเมาต์ไดเร็กทอรีบนไดเร็กทอรีและไฟล์บนไฟล์ ดังนั้นในความหมายทุกไดเรกทอรีและทุกไฟล์เป็นระบบไฟล์และทุกไฟล์ (และไม่ใช่ทุกไดเรกทอรี) เป็นจุดเชื่อมต่อ ตัวอย่าง:cd /tmp; echo a > a; echo b > b; sudo mount --bind a b; cat b # => a
Jörg W Mittag


8

ยูเนี่ยนระบบไฟล์เช่นunionfsและaufsได้แรงบันดาลใจจากแผน 9 ม้าไดเรกทอรีสหภาพ

ตัวอย่างเช่นใช้ในซีดีสดเพื่อรวม/usr/binจากซีดีด้วยระบบไฟล์ที่เขียนได้เพื่อให้คุณสามารถทำการเปลี่ยนแปลง/usr/binได้แม้กระทั่งซีดีนั้นเป็นแบบอ่านอย่างเดียว

ระบบไฟล์ร่วม: การใช้งาน, ส่วนที่ฉันบน lwn.net

ตัวอย่างเช่นถ้าฉันเข้าใจเอกสารอย่างถูกต้องบน Plan9 คุณสามารถทำได้:

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

และไฟล์ทั้งหมดในทั้งสามไดเรกทอรีจะปรากฏใน/bin(ในกรณีของชื่อที่ซ้ำกันหนึ่งไฟล์ในไดเรกทอรีที่ระบุล่าสุดจะชนะเนื่องจาก-bตัวเลือก)

ฉันไม่แน่ใจว่านี่คือความหมายของ Bruce โดย "mount / filesystem namespace" หรือแตกต่าง


คุณอาจจะอาจจะยังบอกว่าsshfsได้รับแรงบันดาลใจจากแผน 9 ของftpfs


3

ใน Plan 9 ทุกระบบไฟล์ "" จะถูกนำมาใช้โดยภูต userspace (คิดว่า FUSE.) daemons เหล่านี้ทั้งหมดพูด 9P (โดยเฉพาะ 9P2000, การแก้ไขครั้งที่สองของโปรโตคอล) 9P เป็นหลักสิ่งที่เก็บส่วนต่าง ๆ ของระบบเข้าด้วยกัน

v9fsโครงการดำเนินการขับรถเคอร์เนลลินุกซ์สำหรับโปรโตคอล 9P ตามที่หน้าPlan 9 wikiนั้นอยู่ในเคอร์เนล mainline จากเคอร์เนล 2.6.14

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.