9P

9P（又名九號計畫檔案系統協定或Styx）是貝爾實驗室九號計畫分散式作業系統所開發的網路協定，作用在於連結九號計畫系統內的元件。本計畫中的檔案是其運作的核心，這些檔案代表了視窗、電腦網路連線、行程以及其他存在於作業系統中的任何東西。不同於NFS，9P是將資料快取，並提供模擬檔案()的機制(例如/proc用以表示行程)。

在九號計畫第四版中，9P被更名為“9P2000”，增加了一些基礎上的改進。最新版的Inferno作業系統也採用9P2000，之前的版本採用的檔案格式稱為Styx，但其實也是9P的衍生。

另一個叫9p2000.u的衍生版本，則對UNIX提供了更良好的支援。為UNIX而實作的9P伺服器則稱為u9fs，在第九計畫的發行版中有提供。供Linux使用的核心客戶端驅動程式則包含在v9fs的專案中。9P及其衍生分支也被發現使用在嵌入式環境的應用軟體中，像是Styx on a Brick project。

伺服器端應用程式
許多第九計畫的應用程式以9P伺服器的形式存在。值得注意的例子有：
 : 供程式設計師使用的使用者介面
 : 第九計畫的視窗管理員
 : 行程間通訊
 wikifs: Wiki

實作
9P在客戶端及伺服器端間送出如下的訊息。這些訊息對應到第九計畫虛擬檔案系統層的進入點，所有的9P伺服器都必須實作這些訊息。
 ; version：交涉協定的版本
 ; error：回報錯誤
 ; flush：終止訊息
 ; auth, attach：開啟連線
 ; walk：走訪目錄階層
 ; create, open：準備一個用來寫入/讀取既有或新增檔案的fid
 ; read, write：傳送資料給檔案或從檔案接收資料
 ; clunk：拋棄fid
 ; remove：從伺服器移除檔案
 ; stat, wstat：查詢或變更檔案屬性

參見
  - u9fs: 9P為類UNIX作業系統所提供的實作
  - 為了在區域網路中使用9P而設計的傳輸協定
 分散式檔案系統

參考文獻

外部連結
9P資源 cat-v.org網站上的頁面
9P使用者手冊
用於分散式系統的Styx架構 由 羅勃·派克（Rob Pike） 與 Dennis Ritchie 所撰寫
九號計畫內部的網路組織 由 Dave Presotto 與 Phil Winterbottom 所撰寫

Category:应用层协议
Category:进程间通信
Category:基于网际协议的网络软件
Category:网络文件系统
Category:网络文件传输协议
Category:网络协议
Category:貝爾實驗室九號計畫
Category:需要计算机科学专家关注的页面