 b530cc7940
			
		
	
	
	b530cc7940
	
	
	
		
			
			This adds a transport to 9p for communicating between guests and a host using a virtio based transport. Signed-off-by: Eric Van Hensbergen <ericvh@gmail.com>
		
			
				
	
	
		
			144 lines
		
	
	
	
		
			5 KiB
			
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			144 lines
		
	
	
	
		
			5 KiB
			
		
	
	
	
		
			Text
		
	
	
	
	
	
| 	  	    v9fs: Plan 9 Resource Sharing for Linux
 | |
| 		    =======================================
 | |
| 
 | |
| ABOUT
 | |
| =====
 | |
| 
 | |
| v9fs is a Unix implementation of the Plan 9 9p remote filesystem protocol.
 | |
| 
 | |
| This software was originally developed by Ron Minnich <rminnich@sandia.gov>
 | |
| and Maya Gokhale.  Additional development by Greg Watson
 | |
| <gwatson@lanl.gov> and most recently Eric Van Hensbergen
 | |
| <ericvh@gmail.com>, Latchesar Ionkov <lucho@ionkov.net> and Russ Cox
 | |
| <rsc@swtch.com>.
 | |
| 
 | |
| The best detailed explanation of the Linux implementation and applications of
 | |
| the 9p client is available in the form of a USENIX paper:
 | |
|    http://www.usenix.org/events/usenix05/tech/freenix/hensbergen.html
 | |
| 
 | |
| Other applications are described in the following papers:
 | |
| 	* XCPU & Clustering
 | |
| 		http://www.xcpu.org/xcpu-talk.pdf
 | |
| 	* KVMFS: control file system for KVM
 | |
| 		http://www.xcpu.org/kvmfs.pdf
 | |
| 	* CellFS: A New ProgrammingModel for the Cell BE
 | |
| 		http://www.xcpu.org/cellfs-talk.pdf
 | |
| 	* PROSE I/O: Using 9p to enable Application Partitions
 | |
| 		http://plan9.escet.urjc.es/iwp9/cready/PROSE_iwp9_2006.pdf
 | |
| 
 | |
| USAGE
 | |
| =====
 | |
| 
 | |
| For remote file server:
 | |
| 
 | |
| 	mount -t 9p 10.10.1.2 /mnt/9
 | |
| 
 | |
| For Plan 9 From User Space applications (http://swtch.com/plan9)
 | |
| 
 | |
| 	mount -t 9p `namespace`/acme /mnt/9 -o trans=unix,uname=$USER
 | |
| 
 | |
| OPTIONS
 | |
| =======
 | |
| 
 | |
|   trans=name	select an alternative transport.  Valid options are
 | |
|   		currently:
 | |
| 			unix 	- specifying a named pipe mount point
 | |
| 			tcp	- specifying a normal TCP/IP connection
 | |
| 			fd   	- used passed file descriptors for connection
 | |
|                                 (see rfdno and wfdno)
 | |
| 			virtio	- connect to the next virtio channel available
 | |
| 				(from lguest or KVM with trans_virtio module)
 | |
| 
 | |
|   uname=name	user name to attempt mount as on the remote server.  The
 | |
|   		server may override or ignore this value.  Certain user
 | |
| 		names may require authentication.
 | |
| 
 | |
|   aname=name	aname specifies the file tree to access when the server is
 | |
|   		offering several exported file systems.
 | |
| 
 | |
|   cache=mode	specifies a caching policy.  By default, no caches are used.
 | |
| 			loose = no attempts are made at consistency,
 | |
|                                 intended for exclusive, read-only mounts
 | |
| 
 | |
|   debug=n	specifies debug level.  The debug level is a bitmask.
 | |
|   			0x01 = display verbose error messages
 | |
| 			0x02 = developer debug (DEBUG_CURRENT)
 | |
| 			0x04 = display 9p trace
 | |
| 			0x08 = display VFS trace
 | |
| 			0x10 = display Marshalling debug
 | |
| 			0x20 = display RPC debug
 | |
| 			0x40 = display transport debug
 | |
| 			0x80 = display allocation debug
 | |
| 
 | |
|   rfdno=n	the file descriptor for reading with trans=fd
 | |
| 
 | |
|   wfdno=n	the file descriptor for writing with trans=fd
 | |
| 
 | |
|   maxdata=n	the number of bytes to use for 9p packet payload (msize)
 | |
| 
 | |
|   port=n	port to connect to on the remote server
 | |
| 
 | |
|   noextend	force legacy mode (no 9p2000.u semantics)
 | |
| 
 | |
|   dfltuid	attempt to mount as a particular uid
 | |
| 
 | |
|   dfltgid	attempt to mount with a particular gid
 | |
| 
 | |
|   afid		security channel - used by Plan 9 authentication protocols
 | |
| 
 | |
|   nodevmap	do not map special files - represent them as normal files.
 | |
|   		This can be used to share devices/named pipes/sockets between
 | |
| 		hosts.  This functionality will be expanded in later versions.
 | |
| 
 | |
|   access	there are three access modes.
 | |
| 			user  = if a user tries to access a file on v9fs
 | |
| 			        filesystem for the first time, v9fs sends an
 | |
| 			        attach command (Tattach) for that user.
 | |
| 				This is the default mode.
 | |
| 			<uid> = allows only user with uid=<uid> to access
 | |
| 				the files on the mounted filesystem
 | |
| 			any   = v9fs does single attach and performs all
 | |
| 				operations as one user
 | |
| 
 | |
| RESOURCES
 | |
| =========
 | |
| 
 | |
| Our current recommendation is to use Inferno (http://www.vitanuova.com/inferno)
 | |
| as the 9p server.  You can start a 9p server under Inferno by issuing the
 | |
| following command:
 | |
|    ; styxlisten -A tcp!*!564 export '#U*'
 | |
| 
 | |
| The -A specifies an unauthenticated export.  The 564 is the port # (you may
 | |
| have to choose a higher port number if running as a normal user).  The '#U*'
 | |
| specifies exporting the root of the Linux name space.  You may specify a
 | |
| subset of the namespace by extending the path: '#U*'/tmp would just export
 | |
| /tmp.  For more information, see the Inferno manual pages covering styxlisten
 | |
| and export.
 | |
| 
 | |
| A Linux version of the 9p server is now maintained under the npfs project
 | |
| on sourceforge (http://sourceforge.net/projects/npfs).  The currently
 | |
| maintained version is the single-threaded version of the server (named spfs)
 | |
| available from the same CVS repository.
 | |
| 
 | |
| There are user and developer mailing lists available through the v9fs project
 | |
| on sourceforge (http://sourceforge.net/projects/v9fs).
 | |
| 
 | |
| News and other information is maintained on SWiK (http://swik.net/v9fs).
 | |
| 
 | |
| Bug reports may be issued through the kernel.org bugzilla 
 | |
| (http://bugzilla.kernel.org)
 | |
| 
 | |
| For more information on the Plan 9 Operating System check out
 | |
| http://plan9.bell-labs.com/plan9
 | |
| 
 | |
| For information on Plan 9 from User Space (Plan 9 applications and libraries
 | |
| ported to Linux/BSD/OSX/etc) check out http://swtch.com/plan9
 | |
| 
 | |
| 
 | |
| STATUS
 | |
| ======
 | |
| 
 | |
| The 2.6 kernel support is working on PPC and x86.
 | |
| 
 | |
| PLEASE USE THE KERNEL BUGZILLA TO REPORT PROBLEMS. (http://bugzilla.kernel.org)
 | |
| 
 |