9P

维基百科,自由的百科全书
跳转至: 导航搜索

9P(又名九號計畫檔案系統協定Styx)是種為了貝爾實驗室九號計畫分散式作業系統所開發的網路協定,作用在於連結九號計畫系統內的元件。九號計畫中的檔案是很關鍵的物件,這些檔案代表了視窗電腦網路連線、行程,以及其他存在於作業系統中的任何東西。不同於NFS,9P傾向於把資料快取起來,並提供模擬檔案(en:synthetic file)的機制(例如/proc用以表示行程)。

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

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

伺服器端應用程式[编辑]

許多第九計畫的應用程式以9P伺服器的形式存在。值得注意的例子有:

實作[编辑]

9P在客戶端及伺服器端間送出如下的訊息[1]。這些訊息對應到第九計畫虛擬檔案系統層的進入點,所有的9P伺服器都必須實作這些訊息。

version
交涉協定的版本
error
回報錯誤
flush 
終止訊息
auth, attach 
開啟連線
walk 
走訪目錄階層
create, open 
準備一個用來寫入/讀取既有或新增檔案的fid
read, write 
傳送資料給檔案或從檔案接收資料
clunk 
拋棄fid
remove
從伺服器移除檔案
stat, wstat 
查詢或變更檔案屬性

參見[编辑]

參考文獻[编辑]

外部連結[编辑]