- 9P
9P (or the Plan 9 Filesystem Protocol or Styx), is a
network protocol developed for thePlan 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 encourages caching and also serving of synthetic files (e.g. /proc to represent processes), unlike NFS.9P was revised for the 4th edition of Plan 9 under the name 9P2000 that contained various fundamental improvements. The latest version of Inferno also uses 9P2000. The Inferno file protocol was originally called Styx, but technically it has always been a variant of 9P.
Another revision called 9p2000.u which is modified to better support UNIX environments also exists, see [http://v9fs.sourceforge.net/rfc/9p2000.u.html v9fs 9p2000.u] .
There is a server implementation of 9P for
Unix calledu9fs included in the Plan 9 distribution, and a kernel client driver forLinux as part of thev9fs project. 9P (and derivatives) have also found application in embedded environments, such as the [http://www.vitanuova.com/inferno/rcx_paper.html Styx on a Brick project] .9P server applications
Many of Plan 9's applications take the form of 9P servers; some particularly noteworthy examples:
* acme: a user interface for programmers
* rio: the Plan 9 window manager.
* plumber: interprocess communication
*wikifs : awiki See also
*
v9fs -u9fs : 9P implementation forUnix-like operating systems
*IL Protocol - Transport protocol that was designed for 9P in local area networks.
*distributed file system External links
* [http://9p.cat-v.org/ 9P Resources] page at cat-v.org
Documentation
* [http://www.cs.bell-labs.com/magic/man2html/5/0intro 9P Manual]
* [http://doc.cat-v.org/inferno/4th_edition/styx The Styx Architecture for Distributed Systems] byRob Pike andDennis Ritchie
* [http://www.cs.bell-labs.com/sys/doc/net.html The Organization of Networks in Plan 9] byDave Presotto andPhil Winterbottom Implementations
* [http://lava.net/~newsham/plan9/ 9P server and client] implementations in Python
* [http://jstyx.sf.net 9P server and client] implementations in Java
* [http://code.google.com/p/styx-n-9p/ styx-n-9p] Vita Nuova-developed Java client supporting Inferno authentication protocol
* [http://home.gna.org/rubyixp/ Ruby-IXP] 9P client implemented in Ruby forwmii
* [http://rstyx.rubyforge.org/ RStyx] 9P client and server implemented in Ruby supporting Inferno authentication protocol
* [http://wiki.tcl.tk/15632 9P client] implemenations inTcl
* [http://www.suckless.org/wiki/libs 9P server and client] implementation in C under theBSD license (part of thewmii project)
* [http://common-lisp.net/project/ninep/ 9P client] implementation inCommon Lisp
* [http://swtch.com/plan9port/man/man3/9pclient.html 9pclient library] - A 9P library in C (part of thePlan 9 from User Space project)
* [http://www.vitanuova.com/inferno/net_download4T.html Styx server and client] implementations in Limbo (part of theInferno operating system )
* [http://code.google.com/p/limbo-machine Styx client library in JavaScript] - part of the limbo machine project
Wikimedia Foundation. 2010.