9P (โปรโตคอล)

จากวิกิพีเดีย สารานุกรมเสรี
ข้ามไปที่การนำทาง ข้ามไปที่การค้นหา

9P (หรือPlan 9 Filesystem ProtocolหรือStyx ) เป็นโปรโตคอลเครือข่าย ที่ พัฒนาขึ้นสำหรับแผน 9 จากระบบปฏิบัติการ Bell Labs แบบกระจายเพื่อใช้ในการเชื่อมต่อส่วนประกอบของระบบ Plan 9 ไฟล์เป็นอ็อบเจ็กต์หลักในแผน 9 ซึ่งเป็นตัวแทนของwindowsการเชื่อมต่อเครือข่ายกระบวนการและเกือบทุกอย่างที่มีอยู่ในระบบปฏิบัติการ

9P ได้รับการแก้ไขสำหรับแผน 9 รุ่นที่ 4 ภายใต้ชื่อ9P2000ซึ่งมีการปรับปรุงต่างๆ การปรับปรุงบางอย่างที่ทำขึ้น ได้แก่ การลบข้อจำกัดของชื่อไฟล์บางอย่าง การเพิ่มฟิลด์ข้อมูลเมตา 'ตัวแก้ไขล่าสุด' สำหรับไดเรกทอรี และไฟล์การรับรองความถูกต้อง [1]ระบบปฏิบัติการ Infernoเวอร์ชันล่าสุดยังใช้ 9P2000 อีกด้วย โปรโตคอลไฟล์ Inferno เดิมเรียกว่า Styx แต่ในทางเทคนิคแล้วจะเป็นตัวแปร 9P เสมอ

การใช้งานเซิร์ฟเวอร์ 9P สำหรับ Unix เรียกว่าu9fs , [2] [3]รวมอยู่ในการแจกจ่ายแผน 9 ส่วนขยายเคอร์เนลไคลเอ็นต์9P OS Xให้บริการโดย Mac9P [4]ไดรเวอร์ไคลเอ็นต์เคอร์เนลที่ใช้ 9p พร้อมส่วนขยายบางส่วนสำหรับLinuxเป็นส่วนหนึ่งของโปรเจ็กต์ v9fs 9P และอนุพันธ์ของบริษัทยังพบการใช้งานในสภาพแวดล้อมแบบฝังตัว เช่น โครงการ Styx on a Brick [5]

แอปพลิเคชันเซิร์ฟเวอร์

แอปพลิเคชั่นของ Plan 9 จำนวนมากอยู่ในรูปของไฟล์เซิร์ฟเวอร์ 9P ตัวอย่าง ได้แก่

  • acme : โปรแกรมแก้ไขข้อความ/สภาพแวดล้อมการพัฒนา
  • rio : ระบบหน้าต่าง Plan 9
  • ช่างประปา : การสื่อสารระหว่างกระบวนการ
  • ftpfs: ไคลเอนต์ FTPที่แสดงไฟล์และไดเรกทอรีบนเซิร์ฟเวอร์ FTP ระยะไกลในเนมสเปซ ท้องถิ่น
  • wikifs: เครื่องมือแก้ไข วิกิที่นำเสนอวิกิระยะไกลเป็นไฟล์ในเนมสเปซท้องถิ่น
  • webfs: ไฟล์เซิร์ฟเวอร์ที่ดึงข้อมูลจากURLและแสดงเนื้อหาและรายละเอียดของการตอบสนองเป็นไฟล์ในเนมสเปซท้องถิ่น

นอกแผน 9 โปรโตคอล 9P ยังคงใช้เมื่อต้องการระบบไฟล์ระยะไกลที่มีน้ำหนักเบา:

  • NixOS : การกระจาย Linux ที่ใช้งานได้จริงและเปิดเผยสามารถสร้างใหม่ได้ภายในเครื่องเสมือนโดยที่ไคลเอนต์ใช้ 9P เพื่อเมาต์ไดเร็กทอรีที่เก็บแพ็คเกจของโฮสต์
  • ระบบย่อย Windows สำหรับ Linux : ตั้งแต่ Windows 10 เวอร์ชัน 1903 ระบบย่อยใช้ 9P เป็นเซิร์ฟเวอร์และระบบปฏิบัติการ Windows โฮสต์ทำหน้าที่เป็นไคลเอนต์ [6]
  • Crostini : เซิร์ฟเวอร์ 9P ที่กำหนดเองใช้เพื่อให้เข้าถึงไฟล์ภายนอก Linux VM [7]
  • QEMU : อุปกรณ์ VirtFS อนุญาตให้แชร์ระบบไฟล์ผ่าน 9P ซึ่งเร่งความเร็วด้วยไดรเวอร์เคอร์เนลและหน่วยความจำ ที่ใช้ร่วมกัน [8] [9]
  • DIOD : I/O Daemon แบบกระจาย - ไฟล์เซิร์ฟเวอร์ 9P

การนำไปใช้

9P ส่งข้อความต่อไปนี้ระหว่างไคลเอนต์และเซิร์ฟเวอร์ [10] ข้อความเหล่านี้สอดคล้องกับจุดเริ่มต้นในเลเยอร์ Plan 9 vfsที่เซิร์ฟเวอร์ 9P ใด ๆ ต้องใช้

รุ่น
โปรโตคอลการเจรจาต่อรองรุ่น[11]
ข้อผิดพลาด
ส่งกลับข้อผิดพลาด[12]
ล้าง
ยกเลิกข้อความ[13]
รับรองความถูกต้องแนบ
สร้างการเชื่อมต่อ[14]
เดิน
ลงลำดับชั้นไดเร็กทอรี[15]
สร้างเปิด
เตรียม fid สำหรับ I/O บนไฟล์ที่มีอยู่หรือไฟล์ใหม่[16]
อ่านเขียน
ถ่ายโอนข้อมูลจากและไปยังไฟล์[17]
อึกทึก
ลืมเรื่องไร้สาระไปได้เลย[18]
ลบ
ลบไฟล์ออกจากเซิร์ฟเวอร์[19]
สถิติ wstat
สอบถามหรือเปลี่ยนคุณสมบัติของไฟล์[20]

ดูเพิ่มเติม

อ้างอิง

  1. ^ "แผน 9 จาก Bell Labs — ภาพรวม" . 9p.io _
  2. ^ "การวิจัย: u9fs.tgz เป็นซอร์สโค้ด tarbal " www.netlib.orgครับ
  3. ^ "แผน 9 /sys/man/4/u9fs" . 9p.io _
  4. ^ benavento (19 เมษายน 2019). "9P สำหรับ Mac" – ผ่าน GitHub
  5. ^ "สติกซ์บนอิฐ" . แคท-วี ด็อก .
  6. ^ "มีอะไรใหม่สำหรับ WSL ใน Windows 10 เวอร์ชัน 1903" . เครื่องมือบรรทัดคำสั่งของ Windows สำหรับนักพัฒนา 16 กุมภาพันธ์ 2562
  7. ^ "การเรียกใช้คอนเทนเนอร์แบบกำหนดเองภายใต้ Chrome OS " เอกสารChromium OS สืบค้นเมื่อ2019-03-28 .
  8. จุจชุรี, เวนเกตเตสวราเรา; แวน เฮนส์เบอร์เกน, เอริค; Liguori, แอนโธนี่; Pulavarty, Badari (13-16 กรกฎาคม 2010) "VirtFS—การส่งผ่านระบบไฟล์ที่รับรู้การจำลองเสมือน" (PDF ) ลีนุกซ์ สัมมนา .
  9. ^ "เอกสาร/9psetup" . เอกสารQEMU สืบค้นเมื่อ2019-03-28 .
  10. ^ "มาตรา 5: โปรโตคอล 9P" . แผน 9 คู่มือก.
  11. ^ "หน้ารุ่นจากส่วนที่ 5 ของคู่มือแผน 9" . แผน 9 คู่มือก.
  12. ^ "หน้าข้อผิดพลาดจากส่วนที่ 5 ของคู่มือแผน 9" . แผน 9 คู่มือก.
  13. ^ "หน้าล้างจากส่วนที่ 5 ของคู่มือแผน 9" . แผน 9 คู่มือก.
  14. ^ "แนบหน้าจากส่วนที่ 5 ของคู่มือแผน 9" . แผน 9 คู่มือก.
  15. ^ "หน้าเดินจากตอนที่ 5 ของคู่มือแผน 9" . แผน 9 คู่มือก.
  16. ^ "เปิดหน้าจากตอนที่ 5 ของคู่มือแผน 9" . แผน 9 คู่มือก.
  17. ^ "อ่านหน้าจากตอนที่ 5 ของคู่มือแผน 9" . แผน 9 คู่มือก.
  18. ^ "หน้า clunk จากส่วนที่ 5 ของคู่มือแผน 9" . แผน 9 คู่มือก.
  19. ^ "ลบหน้าจากส่วนที่ 5 ของคู่มือแผน 9" . แผน 9 คู่มือก.
  20. ^ "หน้าสถิติจากส่วนที่ 5 ของคู่มือแผน 9" . แผน 9 คู่มือก.

ลิงค์ภายนอก