แผน 9ได้รับการพัฒนาโดย Bell Labs ในฐานะผู้สืบทอดของ Unix แม้ว่าจะด้วยเหตุผลหลายประการ แต่ก็ไม่เคยปรากฏเช่นนี้ แต่การพัฒนาที่เป็นธรรมยังคงเป็นแผน 9
คำถามของฉันคืออะไรถ้ามี - จาก Plan 9 ได้นำมาสู่ Unix ที่ทันสมัย?
แผน 9ได้รับการพัฒนาโดย Bell Labs ในฐานะผู้สืบทอดของ Unix แม้ว่าจะด้วยเหตุผลหลายประการ แต่ก็ไม่เคยปรากฏเช่นนี้ แต่การพัฒนาที่เป็นธรรมยังคงเป็นแผน 9
คำถามของฉันคืออะไรถ้ามี - จาก Plan 9 ได้นำมาสู่ Unix ที่ทันสมัย?
คำตอบ:
clone
(2) สายระบบในลินุกซ์จะบอกว่าจะได้รับการถ่ายแบบแผน rfork()
9 (โดยส่วนตัวแล้วฉันไม่เห็นว่าเวลาทำงานอย่างไร)
บทความนี้อ้างว่า Plan 9 เป็นแรงบันดาลใจให้ "mount / filesystem namespace"
/proc
ระบบแฟ้มดูเหมือนจะได้มาจากแผน 9 ฉบับที่ 8 Unix มากกว่าวิธีอื่น ๆ
สิ่งที่ชัดเจนน่าจะเป็น UTF-8 แต่นั่นอาจชัดเจนเกินไป
การออกแบบสถาปัตยกรรมที่ยอดเยี่ยมของ Al Viro ของ Linux VFS นั้นได้รับแรงบันดาลใจอย่างมากจาก Plan9 โดยเฉพาะอย่างยิ่งการเปลี่ยนจาก "ทุกอย่างเป็นไฟล์" เป็น "... และทุกไฟล์เป็นจุดเมานท์"
cd /tmp; echo a > a; echo b > b; sudo mount --bind a b; cat b # => a
ระบบไฟล์ / proc ใน Linux เป็นแนวคิด Plan 9
ยูเนี่ยนระบบไฟล์เช่น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
ใน Plan 9 ทุกระบบไฟล์ "" จะถูกนำมาใช้โดยภูต userspace (คิดว่า FUSE.) daemons เหล่านี้ทั้งหมดพูด 9P (โดยเฉพาะ 9P2000, การแก้ไขครั้งที่สองของโปรโตคอล) 9P เป็นหลักสิ่งที่เก็บส่วนต่าง ๆ ของระบบเข้าด้วยกัน
v9fsโครงการดำเนินการขับรถเคอร์เนลลินุกซ์สำหรับโปรโตคอล 9P ตามที่หน้าPlan 9 wikiนั้นอยู่ในเคอร์เนล mainline จากเคอร์เนล 2.6.14