9P(またはPlan 9ファイルシステムプロトコル、あるいはStyx)は、ベル研究所の分散オペレーティングシステムであるPlan 9向けに開発されたネットワークプロトコルで、Plan 9システムのコンポーネントを接続するための手段です。ファイルはPlan 9における重要なオブジェクトであり、ウィンドウ、ネットワーク接続、プロセス、そしてオペレーティングシステムで利用可能なほぼすべてのものを表します。
9P は Plan 9 の第 4 版で9P2000という名前で改訂され、さまざまな改良が加えられました。改良点には、特定のファイル名の制限の削除、ディレクトリの「最終変更者」メタデータ フィールドの追加、認証ファイルなどがあります。[ 1 ] Inferno オペレーティングシステムの最新バージョンも 9P2000 を使用しています。Inferno ファイル プロトコルは元々 Styx と呼ばれていましたが、技術的には常に 9P の派生版でした。
Unix用の 9P のサーバー実装である u9fs [ 2 ] [ 3 ]は Plan 9 に含まれています。9P OS Xクライアントカーネル拡張機能は Mac9P によって提供されています。[ 4 ] Linux用の拡張機能を備えた 9P を実装するカーネルクライアントドライバはv9fsプロジェクトの一部です。9P とその派生版は、 Lego Mindstorms Bricks用の Styx-on-a-Brick プロジェクトなどの組み込み環境でも使用されています。[ 5 ]
Plan 9のアプリケーションの多くは、9Pファイルサーバーの形式をとっています。例としては、以下のようなものがあります。
プラン9以外でも、軽量なリモートファイルシステムが必要な場合には、9Pプロトコルが引き続き使用されます。