9P
Communication protocol
PurposeConnecting components
Developer(s)Bell Labs
Introduction1992; 34 years ago (1992)
Influenced9P2000

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 Plan 9. 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 for Lego Mindstorms Bricks.[5]

Server applications

edit

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: interprocess communication
  • ftpfs: an FTP client that presents the files and directories on a remote FTP server in the local namespace
  • wikifs: a wiki 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 file system is required:

  • NixOS: a Linux distribution that uses the Nix package manager. NixOS can rebuild itself inside a virtual machine, where the client uses 9P to mount the package store directory of the host.
  • GNU Guix: a package manager that can instantiate and manage Unix-like operating systems. It can instantiate a system inside a virtual machine 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.[6]
  • Crostini: a custom 9P server is used to provide access to files outside of a Linux VM [7]
  • QEMU: the VirtFS device allows for filesystem sharing over 9P, which is accelerated with kernel drivers and shared memory [8][9]
  • DIOD: Distributed I/O Daemon – a 9P file server
  • ZeroFS: A 9P server with object storage backend.

See also

edit

References

edit
  1. ^ "Plan 9 from Bell Labs — Overview". 9p.io.
  2. ^ "research: u9fs.tgz is the source code tarbal". www.netlib.org.
  3. ^ "Plan 9 /sys/man/4/u9fs". 9p.io.
  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.
edit

📚 Artikel Terkait di Wikipedia

Plan 9 from Bell Labs

development. The development source tree is accessible over the 9P and HTTP protocols and is used to update existing installations. In addition to the

9P

9P or 9-P may refer to: 9P (protocol), a network protocol developed for the Plan 9 from Bell Labs distributed operating system 9P, NASA code for Progress

Comparison of file transfer protocols

communication protocols that are designed for file transfer over a telecommunications network. Protocols for shared file systems—such as 9P and the Network

List of network protocols (OSI model)

model. 9P Distributed file system protocol developed originally as part of Plan 9 ADSP AppleTalk Data Stream Protocol ASP AppleTalk Session Protocol H.245

Network File System

RISC OS 9P (protocol) Alluxio BeeGFS CacheFS – a caching mechanism for Linux NFS clients Hadoop Distributed File System (HDFS) Kerberos (protocol) Network

Windows Subsystem for Linux

disk, and the host file system is transparently accessible through the 9P protocol, similarly to other virtual machine technologies like QEMU. For the users

Inter-process communication

Synchronous Interprocess Messaging Project for Linux (SIMPL) 9P (Plan 9 Filesystem Protocol) Distributed Computing Environment (DCE) Thrift ZeroC's Internet

Filesystem in Userspace

open-source software portal PUFFS, a similar framework with FUSE compatibility 9P (protocol) Installable File System Dokan Library FUSE Windows compatibility Windows