9P (protocol)
   HOME

TheInfoList



OR:

9P (or the Plan 9 Filesystem Protocol or Styx) is a
network protocol A communication protocol is a system of rules that allows two or more entities of a communications system to transmit information via any kind of variation of a physical quantity. The protocol defines the rules, syntax, semantics and synchroniza ...
developed for the
Plan 9 from Bell Labs Plan 9 from Bell Labs is a distributed operating system which originated from the Computing Science Research Center (CSRC) at Bell Labs in the mid-1980s and built on UNIX concepts first developed there in the late 1960s. Since 2000, Plan 9 has be ...
distributed operating system A distributed operating system is system software over a collection of independent software, networked, communicating, and physically separate computational nodes. They handle jobs which are serviced by multiple CPUs. Each individual node holds a ...
as the means of connecting the components of a Plan 9 system. Files are key objects in Plan 9. They represent
windows Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for serv ...
,
network Network, networking and networked may refer to: Science and technology * Network theory, the study of graphs as a representation of relations between discrete objects * Network science, an academic field that studies complex networks Mathematics ...
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. The latest version of the
Inferno operating system Inferno is a distributed operating system started at Bell Labs and now developed and maintained by Vita Nuova Holdings as free software under the MIT License. Inferno was based on the experience gained with Plan 9 from Bell Labs, and the further ...
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, is included in the Plan 9 distribution. A 9P
OS X macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac computers. Within the market of desktop and lapt ...
client
kernel extension In computing, a loadable kernel module (LKM) is an object file that contains code to extend the running kernel, or so-called ''base kernel'', of an operating system. LKMs are typically used to add support for new hardware (as device drivers) and/o ...
is provided by Mac9P. A kernel client driver implementing 9P with some extensions for
Linux Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, which ...
is part of the
v9fs Plan 9 from User Space (also plan9port or p9p) is a port of many Plan 9 from Bell Labs libraries and applications to Unix-like operating systems. Currently it has been tested on a variety of operating systems including: Linux, macOS, FreeBSD, Net ...
project. 9P and its derivatives have also found application in embedded environments, such as the Styx on a Brick project.


Server applications

Many of Plan 9's applications take the form of 9P file servers. Examples include: *
acme Acme is Ancient Greek (ακμή; English transliteration: ''akmē'') for "the peak", "zenith" or "prime". It may refer to: Arts and entertainment * ''Acme'' (album), an album by the Jon Spencer Blues Explosion * Acme and Septimius, a fictional ...
: a text editor/development environment *
rio Rio or Río is the Portuguese, Spanish, Italian, and Maltese word for "river". When spoken on its own, the word often means Rio de Janeiro, a major city in Brazil. Rio or Río may also refer to: Geography Brazil * Rio de Janeiro * Rio do Sul, a ...
: the Plan 9 windowing system *
plumber A plumber is a tradesperson who specializes in installing and maintaining systems used for potable (drinking) water, and for sewage and drainage in plumbing systems.
: interprocess communication * ftpfs: an
FTP The File Transfer Protocol (FTP) is a standard communication protocol used for the transfer of computer files from a server to a client on a computer network. FTP is built on a client–server model architecture using separate control and data ...
client that presents the files and directories on a remote FTP server in the local
namespace In computing, a namespace is a set of signs (''names'') that are used to identify and refer to objects of various kinds. A namespace ensures that all of a given set of objects have unique names so that they can be easily identified. Namespaces ...
* wikifs: a
wiki A wiki ( ) is an online hypertext publication collaboratively edited and managed by its own audience, using a web browser. A typical wiki contains multiple pages for the subjects or scope of the project, and could be either open to the pu ...
editing tool that presents a remote wiki as files in the local namespace * webfs: a file server that retrieves data from URLs and presents the contents and details of responses as files in the local namespace Outside of Plan 9, the 9P protocol is still used when a lightweight remote filesystem is required: *
NixOS NixOS is a Linux distribution built on top of the Nix package manager. It uses declarative configuration and allows reliable system upgrades. Several official package "channels" are offered, including the current Stable release and the Unstable ...
: a purely functional and declarative Linux distribution can rebuild itself inside a
virtual machine In computing, a virtual machine (VM) is the virtualization/emulation of a computer system. Virtual machines are based on computer architectures and provide functionality of a physical computer. Their implementations may involve specialized hardw ...
, where the client uses 9P to mount the package store directory of the host. *
Windows Subsystem for Linux Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for serv ...
: since Windows 10 version 1903, the subsystem implements 9P as a server and the host Windows operating system acts as a client. *
Crostini Crostini (meaning "little crusts" in Italian; singular ''crostino'') are an Italian appetizer consisting of small slices of grilled or toasted bread and toppings. The toppings may include a variety of different cheeses, meats, vegetables and c ...
: a custom 9P server is used to provide access to files outside of a Linux VM *
QEMU QEMU is a free and open-source emulator (Quick EMUlator). It emulates the machine's processor through dynamic binary translation and provides a set of different hardware and device models for the machine, enabling it to run a variety of guest ...
: the VirtFS device allows for filesystem sharing over 9P, which is accelerated with kernel drivers and shared memory
DIOD
Distributed I/O Daemon - a 9P file server


See also

*
Distributed file system A clustered file system is a file system which is shared by being simultaneously mounted on multiple servers. There are several approaches to clustering, most of which do not employ a clustered file system (only direct attached storage for ...
* *


References


External links


9P Resources
page at cat-v.org
9P ManualThe Styx Architecture for Distributed Systems
by
Rob Pike Robert "Rob" Pike (born 1956) is a Canadian programmer and author. He is best known for his work on the Go programming language and at Bell Labs, where he was a member of the Unix team and was involved in the creation of the Plan 9 from Bell La ...
and
Dennis Ritchie Dennis MacAlistair Ritchie (September 9, 1941 – October 12, 2011) was an American computer scientist. He is most well-known for creating the C programming language and, with long-time colleague Ken Thompson, the Unix operating system and B p ...

The Organization of Networks in Plan 9
by Dave Presotto and Phil Winterbottom
Security in Plan 9
{{File systems Application layer protocols Inferno (operating system) Inter-process communication Internet Protocol based network software Network file systems Network file transfer protocols Network protocols Plan 9 from Bell Labs