This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages) This article may be too technical for most readers to understand. Please help improve it to make it understandable to non-experts, without removing the technical details. (February 2017) (Learn how and when to remove this template message) This article relies excessively on references to primary sources. Please improve this article by adding secondary or tertiary sources. Find sources: "9P" protocol – news · newspapers · books · scholar · JSTOR (August 2015) (Learn how and when to remove this template message) (Learn how and when to remove this template message)
Communication protocol
PurposeConnecting components
Developer(s)Bell Labs
Introduction1992; 32 years ago (1992)

9P (or the Plan 9 Filesystem Protocol or Styx) is a network protocol developed for the Plan 9 from Bell Labs distributed operating system as the means of connecting the components of a Plan 9 system. Files are key objects in Plan 9. They represent windows, network connections, processes, and almost anything else available in the operating system.

9P was revised for the 4th edition of Plan 9 under the name 9P2000, containing various improvements. Some of the improvements made are the removal of certain filename restrictions, the addition of a 'last modifier' metadata field for directories, and authentication files.[1] The latest version of the Inferno operating system also uses 9P2000. The Inferno file protocol was originally called Styx, but technically it has always been a variant of 9P.

A server implementation of 9P for Unix, called u9fs,[2][3] is included in the Plan 9 distribution. A 9P OS X client kernel extension is provided by Mac9P.[4] A kernel client driver implementing 9P with some extensions for Linux is part of the v9fs project. 9P and its derivatives have also found application in embedded environments, such as the Styx on a Brick project.[5]

Server applications

Many of Plan 9's applications take the form of 9P file servers. Examples include:

Outside of Plan 9, the 9P protocol is still used when a lightweight remote filesystem is required:

See also


  1. ^ "Plan 9 from Bell Labs — Overview".
  2. ^ "research: u9fs.tgz is the source code tarbal".
  3. ^ "Plan 9 /sys/man/4/u9fs".
  4. ^ benavento (April 19, 2019). "9P for Mac" – via GitHub.
  5. ^ "Styx-on-a-Brick". Cat-V Doc.
  6. ^ "What's new for WSL in Windows 10 version 1903?". Windows Command Line Tools For Developers. February 16, 2019.
  7. ^ "Running Custom Containers Under Chrome OS". Chromium OS Docs. Retrieved 2019-03-28.
  8. ^ Jujjuri, Venkateswararao; Van Hensbergen, Eric; Liguori, Anthony; Pulavarty, Badari (July 13–16, 2010). "VirtFS—A virtualization aware File System pass-through" (PDF). Linux Symposium.
  9. ^ "Documentation/9psetup". QEMU Docs. Retrieved 2019-03-28.