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 variation of a physical quantity. The protocol defines the rules, syntax, semantics, and synchronization of ...
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 ...
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 Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
, 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. 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, is included in the Plan 9 distribution. A 9P
OS X macOS, previously OS X and originally Mac OS X, is a Unix, Unix-based operating system developed and marketed by Apple Inc., Apple since 2001. It is the current operating system for Apple's Mac (computer), Mac computers. With ...
client kernel extension is provided by Mac9P. A kernel client driver implementing 9P with some extensions for
Linux Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
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 for Lego Mindstorms Bricks.


Server applications

Many of Plan 9's applications take the form of 9P file servers. Examples include: * acme: a text editor/development environment * rio: the Plan 9 windowing system *
plumber A plumber is a tradesperson who specializes in installing and maintaining systems used for potable (drinking) water, hot-water production, 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 dat ...
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 a form of hypertext publication on the internet which is collaboratively edited and managed by its audience directly through a web browser. A typical wiki contains multiple pages that can either be edited by the public or l ...
editing tool that presents a remote wiki as files in the local namespace * webfs: a file server that retrieves data from
URL A uniform resource locator (URL), colloquially known as an address on the Web, is a reference to a resource that specifies its location on a computer network and a mechanism for retrieving it. A URL is a specific type of Uniform Resource Identi ...
s 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 file system is required: * NixOS: a Linux distribution that uses the Nix package manager. NixOS can rebuild itself inside a
virtual machine In computing, a virtual machine (VM) is the virtualization or emulator, emulation of a computer system. Virtual machines are based on computer architectures and provide the functionality of a physical computer. Their implementations may involve ...
, where the client uses 9P to mount the package store directory of the host. * GNU Guix: a
package manager A package manager or package management system is a collection of software tools that automates the process of installing, upgrading, configuring, and removing computer programs for a computer in a consistent manner. A package manager deals wi ...
that can instantiate and manage
Unix-like A Unix-like (sometimes referred to as UN*X, *nix or *NIX) operating system is one that behaves in a manner similar to a Unix system, although not necessarily conforming to or being certified to any version of the Single UNIX Specification. A Uni ...
operating systems. It can instantiate a system inside a
virtual machine In computing, a virtual machine (VM) is the virtualization or emulator, emulation of a computer system. Virtual machines are based on computer architectures and provide the functionality of a physical computer. Their implementations may involve ...
in the same manner that NixOS does * Windows Subsystem for Linux (WSL): since Windows 10 version 1903, the subsystem implements 9P as a server and the host Windows operating system acts as a client. * Crostini: a custom 9P server is used to provide access to files outside of a Linux VM *
QEMU The Quick Emulator (QEMU) is a free and open-source emulator that uses dynamic binary translation to emulate a computer's processor; that is, it translates the emulated binary codes to an equivalent binary format which is executed by the mach ...
: the VirtFS device allows for filesystem sharing over 9P, which is accelerated with kernel drivers and shared memory
DIOD
Distributed I/O Daemona 9P file server


See also

*
Distributed file system A clustered file system (CFS) is a file system which is shared by being simultaneously Mount (computing), mounted on multiple Server (computing), servers. There are several approaches to computer cluster, clustering, most of which do not emplo ...
* *


References


External links


9P Resources
page at cat-v.org
9P Manual

The Styx Architecture for Distributed Systems
by
Rob Pike Robert Pike (born 1956) is a Canadian programmer and author. He is best known for his work on the Go programming language while working at Google and the Plan 9 operating system while working at Bell Labs, where he was a member of the Unix t ...
and
Dennis Ritchie Dennis MacAlistair Ritchie (September 9, 1941 – October 12, 2011) was an American computer scientist. He created the C programming language and the Unix operating system and B language with long-time colleague Ken Thompson. Ritchie and Thomp ...

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