checkpoint
This commit is contained in:
parent
2634795b5f
commit
78e51a8c66
314 changed files with 48199 additions and 300 deletions
79
man/man4/9pserve.html
Normal file
79
man/man4/9pserve.html
Normal file
|
|
@ -0,0 +1,79 @@
|
|||
<head>
|
||||
<title>9pserve(4) - Plan 9 from User Space</title>
|
||||
<meta content="text/html; charset=utf-8" http-equiv=Content-Type>
|
||||
</head>
|
||||
<body bgcolor=#ffffff>
|
||||
<table border=0 cellpadding=0 cellspacing=0 width=100%>
|
||||
<tr height=10><td>
|
||||
<tr><td width=20><td>
|
||||
<tr><td width=20><td><b>9PSERVE(4)</b><td align=right><b>9PSERVE(4)</b>
|
||||
<tr><td width=20><td colspan=2>
|
||||
<br>
|
||||
<p><font size=+1><b>NAME </b></font><br>
|
||||
|
||||
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
|
||||
|
||||
9pserve – announce and multiplex 9P service<br>
|
||||
|
||||
</table>
|
||||
<p><font size=+1><b>SYNOPSIS </b></font><br>
|
||||
|
||||
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
|
||||
|
||||
<tt><font size=+1>9pserve</font></tt> [ <tt><font size=+1>−v</font></tt> ] <i>addr<br>
|
||||
</i>
|
||||
</table>
|
||||
<p><font size=+1><b>DESCRIPTION </b></font><br>
|
||||
|
||||
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
|
||||
|
||||
On Plan 9, when a user-level file server mounts itself into a
|
||||
name space or posts itself in <tt><font size=+1>/srv</font></tt>, the Plan 9 kernel multiplexes
|
||||
the potentially many processes accessing the server into a single
|
||||
9P conversation. The user-level server need not concern itself
|
||||
with how many processes are accessing it or with cleaning up
|
||||
after a process when it exits unexpectedly. On Unix, <i>9pserve</i> takes
|
||||
the place of the Plan 9 kernel, multiplexing clients onto a single
|
||||
server conversation and cleaning up after clients when they hang
|
||||
up unexpectedly.
|
||||
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
|
||||
|
||||
<i>9pserve</i> announces a 9P service on <i>addr</i> and multiplexes any 9P
|
||||
clients connecting to <i>addr</i> into a single conversation with a 9P
|
||||
server on <i>9pserve</i>’s standard input and output. When a client hangs
|
||||
up, <i>9pserve</i> flushes any outstanding 9P transactions and clunks
|
||||
any outstanding fids belonging to the client.
|
||||
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
|
||||
|
||||
<i>9pserve</i> is typically not invoked directly; use <a href="../man3/post9pservice.html"><i>post9pservice</i>(3)</a>
|
||||
instead.<br>
|
||||
|
||||
</table>
|
||||
<p><font size=+1><b>SEE ALSO </b></font><br>
|
||||
|
||||
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
|
||||
|
||||
<a href="../man4/intro.html"><i>intro</i>(4)</a>, <i>intro</i>(9p)<br>
|
||||
|
||||
</table>
|
||||
<p><font size=+1><b>SOURCE </b></font><br>
|
||||
|
||||
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
|
||||
|
||||
<tt><font size=+1>/usr/local/plan9/src/cmd/9pserve.c<br>
|
||||
</font></tt>
|
||||
</table>
|
||||
|
||||
<td width=20>
|
||||
<tr height=20><td>
|
||||
</table>
|
||||
<!-- TRAILER -->
|
||||
<table border=0 cellpadding=0 cellspacing=0 width=100%>
|
||||
<tr height=15><td width=10><td><td width=10>
|
||||
<tr><td><td>
|
||||
<center>
|
||||
<a href="../../"><img src="../../dist/spaceglenda100.png" alt="Space Glenda" border=1></a>
|
||||
</center>
|
||||
</table>
|
||||
<!-- TRAILER -->
|
||||
</body></html>
|
||||
268
man/man4/acme.html
Normal file
268
man/man4/acme.html
Normal file
|
|
@ -0,0 +1,268 @@
|
|||
<head>
|
||||
<title>acme(4) - Plan 9 from User Space</title>
|
||||
<meta content="text/html; charset=utf-8" http-equiv=Content-Type>
|
||||
</head>
|
||||
<body bgcolor=#ffffff>
|
||||
<table border=0 cellpadding=0 cellspacing=0 width=100%>
|
||||
<tr height=10><td>
|
||||
<tr><td width=20><td>
|
||||
<tr><td width=20><td><b>ACME(4)</b><td align=right><b>ACME(4)</b>
|
||||
<tr><td width=20><td colspan=2>
|
||||
<br>
|
||||
<p><font size=+1><b>NAME </b></font><br>
|
||||
|
||||
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
|
||||
|
||||
acme – control files for text windows<br>
|
||||
|
||||
</table>
|
||||
<p><font size=+1><b>SYNOPSIS </b></font><br>
|
||||
|
||||
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
|
||||
|
||||
<tt><font size=+1>acme</font></tt> [ <tt><font size=+1>−f</font></tt> <i>varfont</i> ] [ <tt><font size=+1>−F</font></tt> <i>fixfont</i> ] [ <i>file</i> ... ]<br>
|
||||
|
||||
</table>
|
||||
<p><font size=+1><b>DESCRIPTION </b></font><br>
|
||||
|
||||
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
|
||||
|
||||
The text window system <a href="../man1/acme.html"><i>acme</i>(1)</a> serves a variety of files for reading,
|
||||
writing, and controlling windows. Some of them are virtual versions
|
||||
of system files for dealing with the virtual console; others control
|
||||
operations of <i>acme</i> itself. When a command is run under <i>acme</i>, a
|
||||
directory holding these files is posted as the 9P
|
||||
service <tt><font size=+1>acme</font></tt> (using <a href="../man4/9pserve.html"><i>9pserve</i>(4)</a>).
|
||||
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
|
||||
|
||||
Some of these files supply virtual versions of services available
|
||||
from the underlying environment, in particular the character terminal
|
||||
files in Plan 9’s <i>cons</i>(3). (Unlike in Plan 9’s <i>rio</i>(1), each command
|
||||
under <i>acme</i> sees the same set of files; there is not a distinct
|
||||
<tt><font size=+1>/dev/cons</font></tt> for each window.) Other files are unique to
|
||||
<i>acme</i>.<br>
|
||||
<tt><font size=+1>acme</font></tt>is a subdirectory used by <tt><font size=+1>win</font></tt> (see <a href="../man1/acme.html"><i>acme</i>(1)</a>) as a mount point
|
||||
for the <i>acme</i> files associated with the window in which <tt><font size=+1>win</font></tt> is
|
||||
running. It has no specific function under <i>acme</i> itself.<br>
|
||||
<tt><font size=+1>cons</font></tt>is the standard and diagnostic output file for all commands
|
||||
run under <i>acme</i>. (Input for commands is redirected to <tt><font size=+1>/dev/null</font></tt>.)
|
||||
Text written to <tt><font size=+1>cons</font></tt> appears in a window labeled <i>dir</i><tt><font size=+1>/+Errors</font></tt>,
|
||||
where <i>dir</i> is the directory in which the command was run. The window
|
||||
is created if necessary, but not until text is
|
||||
|
||||
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
|
||||
|
||||
actually written.<br>
|
||||
|
||||
</table>
|
||||
<tt><font size=+1>consctl<br>
|
||||
</font></tt>
|
||||
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
|
||||
|
||||
Is an empty unwritable file present only for compatibility; there
|
||||
is no way to turn off ‘echo’, for example, under <i>acme</i>.<br>
|
||||
|
||||
</table>
|
||||
<tt><font size=+1>index<br>
|
||||
</font></tt>
|
||||
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
|
||||
|
||||
holds a sequence of lines of text, one per window. Each line has
|
||||
5 decimal numbers, each formatted in 11 characters plus a blank--the
|
||||
window ID; number of characters (runes) in the tag; number of
|
||||
characters in the body; a 1 if the window is a directory, 0 otherwise;
|
||||
and a 1 if the window is modified, 0
|
||||
otherwise--followed by the tag up to a newline if present. Thus
|
||||
at character position 5x12 starts the name of the window. If a
|
||||
file has multiple zeroxed windows open, only the most recently
|
||||
used will appear in the <tt><font size=+1>index</font></tt> file.<br>
|
||||
|
||||
</table>
|
||||
<tt><font size=+1>label<br>
|
||||
</font></tt>
|
||||
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
|
||||
|
||||
is an empty file, writable without effect, present only for compatibility
|
||||
with <tt><font size=+1>rio</font></tt>.<br>
|
||||
|
||||
</table>
|
||||
<tt><font size=+1>new</font></tt> A directory analogous to the numbered directories (<i>q.v.</i>). Accessing
|
||||
any file in <tt><font size=+1>new</font></tt> creates a new window. Thus to cause text to appear
|
||||
in a new window, write it to <tt><font size=+1>/dev/new/body</font></tt>. For more control,
|
||||
open <tt><font size=+1>/dev/new/ctl</font></tt> and use the interface described below.
|
||||
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
|
||||
|
||||
|
||||
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
|
||||
|
||||
Each <i>acme</i> window has associated a directory numbered by its ID.
|
||||
Window IDs are chosen sequentially and may be discovered by the
|
||||
<tt><font size=+1>ID</font></tt> command, by reading the <tt><font size=+1>ctl</font></tt> file, or indirectly through the
|
||||
<tt><font size=+1>index</font></tt> file. The files in the numbered directories are as follows.<br>
|
||||
<tt><font size=+1>addr</font></tt>may be written with any textual address (line number, regular
|
||||
expression, etc.), in the format understood by button 3 but without
|
||||
the initial colon, including compound addresses, to set the address
|
||||
for text accessed through the <tt><font size=+1>data</font></tt> file. When read, it returns
|
||||
the value of the address that would next be read or
|
||||
|
||||
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
|
||||
|
||||
written through the <tt><font size=+1>data</font></tt> file, in the format <tt><font size=+1>#</font></tt><i>m</i><tt><font size=+1>,#</font></tt><i>n</i> where <i>m</i> and
|
||||
<i>n</i> are character (not byte) offsets. If <i>m</i> and <i>n</i> are identical,
|
||||
the format is just <tt><font size=+1>#</font></tt><i>m</i>. Thus a regular expression may be evaluated
|
||||
by writing it to <tt><font size=+1>addr</font></tt> and reading it back. The <tt><font size=+1>addr</font></tt> address has
|
||||
no effect on the user’s selection of text.
|
||||
|
||||
</table>
|
||||
<tt><font size=+1>body</font></tt>holds contents of the window body. It may be read at any byte
|
||||
offset. Text written to <tt><font size=+1>body</font></tt> is always appended; the file offset
|
||||
is ignored.<br>
|
||||
<tt><font size=+1>ctl</font></tt> may be read to recover the five numbers as held in the <tt><font size=+1>index</font></tt>
|
||||
file, described above, plus two more fields: the width of the
|
||||
window in pixels and the name of the font used in the window.
|
||||
Text messages may be written to <tt><font size=+1>ctl</font></tt> to affect the window. Each
|
||||
message is terminated by a newline and multiple messages
|
||||
|
||||
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
|
||||
|
||||
may be sent in a single write.<br>
|
||||
|
||||
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
|
||||
|
||||
<tt><font size=+1>addr=dot</font></tt> Set the <tt><font size=+1>addr</font></tt> address to that of the user’s selected text
|
||||
in the window.<br>
|
||||
<tt><font size=+1>clean</font></tt> Mark the window clean as though it has just been written.<br>
|
||||
<tt><font size=+1>dirty</font></tt> Mark the window dirty, the opposite of clean.<br>
|
||||
<tt><font size=+1>cleartag</font></tt> Remove all text in the tag after the vertical bar.<br>
|
||||
<tt><font size=+1>del</font></tt> Equivalent to the <tt><font size=+1>Del</font></tt> interactive command.<br>
|
||||
<tt><font size=+1>delete</font></tt> Equivalent to the <tt><font size=+1>Delete</font></tt> interactive command.<br>
|
||||
<tt><font size=+1>dot=addr</font></tt> Set the user’s selected text in the window to the text
|
||||
addressed by the <tt><font size=+1>addr</font></tt> address.<br>
|
||||
<tt><font size=+1>dump</font></tt> <i>command</i>Set the command string to recreate the window from
|
||||
a dump file.<br>
|
||||
<tt><font size=+1>dumpdir</font></tt> <i>directory<br>
|
||||
</i>Set the directory in which to run the command to recreate the
|
||||
window from a dump file.<br>
|
||||
<tt><font size=+1>get</font></tt> Equivalent to the <tt><font size=+1>Get</font></tt> interactive command with no arguments;
|
||||
accepts no arguments.<br>
|
||||
<tt><font size=+1>limit=addr</font></tt> When the <tt><font size=+1>ctl</font></tt> file is first opened, regular expression
|
||||
context searches in <tt><font size=+1>addr</font></tt> addresses examine the whole file; this
|
||||
message restricts subsequent searches to the current <tt><font size=+1>addr</font></tt> address.<br>
|
||||
<tt><font size=+1>mark</font></tt> Cancel <tt><font size=+1>nomark</font></tt>, returning the window to the usual state wherein
|
||||
each modification to the body must be undone individually.<br>
|
||||
<tt><font size=+1>name</font></tt> <i>name</i> Set the name of the window to <i>name</i>.<br>
|
||||
<tt><font size=+1>nomark</font></tt> Turn off automatic ‘marking’ of changes, so a set of related
|
||||
changes may be undone in a single <tt><font size=+1>Undo</font></tt> interactive command.<br>
|
||||
<tt><font size=+1>noscroll</font></tt> Turn off automatic ‘scrolling’ of the window to show text
|
||||
written to the body.<br>
|
||||
<tt><font size=+1>put</font></tt> Equivalent to the <tt><font size=+1>Put</font></tt> interactive command with no arguments;
|
||||
accepts no arguments.<br>
|
||||
<tt><font size=+1>scroll</font></tt> Cancel a <tt><font size=+1>noscroll</font></tt> message, returning the window to the default
|
||||
state wherein each write to the <tt><font size=+1>body</font></tt> file causes the window to
|
||||
‘scroll’ to display the new text.<br>
|
||||
<tt><font size=+1>show</font></tt> Guarantee at least some of the selected text is visible on
|
||||
the display.<br>
|
||||
|
||||
</table>
|
||||
|
||||
</table>
|
||||
<tt><font size=+1>data</font></tt>is used in conjunction with <tt><font size=+1>addr</font></tt> for random access to the
|
||||
contents of the body. The file offset is ignored when writing
|
||||
the <tt><font size=+1>data</font></tt> file; instead the location of the data to be read or
|
||||
written is determined by the state of the <tt><font size=+1>addr</font></tt> file. Text, which
|
||||
must contain only whole characters (no ‘partial runes’), written
|
||||
to
|
||||
|
||||
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
|
||||
|
||||
<tt><font size=+1>data</font></tt> replaces the characters addressed by the <tt><font size=+1>addr</font></tt> file and sets
|
||||
the address to the null string at the end of the written text.
|
||||
A read from <tt><font size=+1>data</font></tt> returns as many whole characters as the read
|
||||
count will permit starting at the beginning of the <tt><font size=+1>addr</font></tt> address
|
||||
(the end of the address has no effect) and sets the
|
||||
address to the null string at the end of the returned characters.<br>
|
||||
|
||||
</table>
|
||||
<tt><font size=+1>event<br>
|
||||
</font></tt>
|
||||
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
|
||||
|
||||
When a window’s <tt><font size=+1>event</font></tt> file is open, changes to the window occur
|
||||
as always but the actions are also reported as messages to the
|
||||
reader of the file. Also, user actions with buttons 2 and 3 (other
|
||||
than chorded <tt><font size=+1>Cut</font></tt> and <tt><font size=+1>Paste</font></tt>, which behave normally) have no immediate
|
||||
effect on the window; it is expected that
|
||||
the program reading the <tt><font size=+1>event</font></tt> file will interpret them. The messages
|
||||
have a fixed format: a character indicating the origin or cause
|
||||
of the action, a character indicating the type of the action,
|
||||
four free-format blank-terminated decimal numbers, optional text,
|
||||
and a newline. The first and second numbers are
|
||||
the character addresses of the action, the third is a flag, and
|
||||
the final is a count of the characters in the optional text, which
|
||||
may itself contain newlines. The origin characters are <tt><font size=+1>E</font></tt> for writes
|
||||
to the <tt><font size=+1>body</font></tt> or <tt><font size=+1>tag</font></tt> file, <tt><font size=+1>F</font></tt> for actions through the window’s other
|
||||
files, <tt><font size=+1>K</font></tt> for the keyboard, and <tt><font size=+1>M</font></tt> for the mouse. The
|
||||
type characters are <tt><font size=+1>D</font></tt> for text deleted from the body, <tt><font size=+1>d</font></tt> for text
|
||||
deleted from the tag, <tt><font size=+1>I</font></tt> for text inserted to the body, <tt><font size=+1>i</font></tt> for text
|
||||
inserted to the tag, <tt><font size=+1>L</font></tt> for a button 3 action in the body, <tt><font size=+1>l</font></tt> for
|
||||
a button 3 action in the tag, <tt><font size=+1>X</font></tt> for a button 2 action in the body,
|
||||
and <tt><font size=+1>x</font></tt> for a button 2 action in the tag.
|
||||
If the relevant text has less than 256 characters, it is included
|
||||
in the message; otherwise it is elided, the fourth number is 0,
|
||||
and the program must read it from the <tt><font size=+1>data</font></tt> file if needed. No
|
||||
text is sent on a <tt><font size=+1>D</font></tt> or <tt><font size=+1>d</font></tt> message.<br>
|
||||
For <tt><font size=+1>D</font></tt>, <tt><font size=+1>d</font></tt>, <tt><font size=+1>I</font></tt>, and <tt><font size=+1>i</font></tt> the flag is always zero. For <tt><font size=+1>X</font></tt> and <tt><font size=+1>x</font></tt>, the flag
|
||||
is a bitwise OR (reported decimally) of the following: 1 if the
|
||||
text indicated is recognized as an <i>acme</i> built-in command; 2 if
|
||||
the text indicated is a null string that has a non-null expansion;
|
||||
if so, another complete message will follow describing the
|
||||
expansion exactly as if it had been indicated explicitly (its
|
||||
flag will always be 0); 8 if the command has an extra (chorded)
|
||||
argument; if so, two more complete messages will follow reporting
|
||||
the argument (with all numbers 0 except the character count) and
|
||||
where it originated, in the form of a fully-qualified
|
||||
button 3 style address.<br>
|
||||
For <tt><font size=+1>L</font></tt> and <tt><font size=+1>l</font></tt>, the flag is the bitwise OR of the following: 1 if
|
||||
<i>acme</i> can interpret the action without loading a new file; 2 if
|
||||
a second (post-expansion) message follows, analogous to that with
|
||||
<tt><font size=+1>X</font></tt> messages; 4 if the text is a file or window name (perhaps with
|
||||
address) rather than plain literal text.
|
||||
For messages with the 1 bit on in the flag, writing the message
|
||||
back to the <tt><font size=+1>event</font></tt> file, but with the flag, count, and text omitted,
|
||||
will cause the action to be applied to the file exactly as it
|
||||
would have been if the <tt><font size=+1>event</font></tt> file had not been open.<br>
|
||||
|
||||
</table>
|
||||
<tt><font size=+1>tag</font></tt> holds contents of the window tag. It may be read at any byte
|
||||
offset. Text written to <tt><font size=+1>tag</font></tt> is always appended; the file offset
|
||||
is ignored.<br>
|
||||
|
||||
</table>
|
||||
<p><font size=+1><b>SOURCE </b></font><br>
|
||||
|
||||
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
|
||||
|
||||
<tt><font size=+1>/usr/local/plan9/src/cmd/acme<br>
|
||||
</font></tt>
|
||||
</table>
|
||||
<p><font size=+1><b>SEE ALSO </b></font><br>
|
||||
|
||||
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
|
||||
|
||||
<a href="../man1/rio.html"><i>rio</i>(1)</a>, <a href="../man1/acme.html"><i>acme</i>(1)</a><br>
|
||||
|
||||
</table>
|
||||
|
||||
<td width=20>
|
||||
<tr height=20><td>
|
||||
</table>
|
||||
<!-- TRAILER -->
|
||||
<table border=0 cellpadding=0 cellspacing=0 width=100%>
|
||||
<tr height=15><td width=10><td><td width=10>
|
||||
<tr><td><td>
|
||||
<center>
|
||||
<a href="../../"><img src="../../dist/spaceglenda100.png" alt="Space Glenda" border=1></a>
|
||||
</center>
|
||||
</table>
|
||||
<!-- TRAILER -->
|
||||
</body></html>
|
||||
107
man/man4/import.html
Normal file
107
man/man4/import.html
Normal file
|
|
@ -0,0 +1,107 @@
|
|||
<head>
|
||||
<title>import(4) - Plan 9 from User Space</title>
|
||||
<meta content="text/html; charset=utf-8" http-equiv=Content-Type>
|
||||
</head>
|
||||
<body bgcolor=#ffffff>
|
||||
<table border=0 cellpadding=0 cellspacing=0 width=100%>
|
||||
<tr height=10><td>
|
||||
<tr><td width=20><td>
|
||||
<tr><td width=20><td><b>IMPORT(4)</b><td align=right><b>IMPORT(4)</b>
|
||||
<tr><td width=20><td colspan=2>
|
||||
<br>
|
||||
<p><font size=+1><b>NAME </b></font><br>
|
||||
|
||||
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
|
||||
|
||||
import – import 9P resources from another system<br>
|
||||
|
||||
</table>
|
||||
<p><font size=+1><b>SYNOPSIS </b></font><br>
|
||||
|
||||
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
|
||||
|
||||
<tt><font size=+1>import</font></tt> [ <tt><font size=+1>−df</font></tt> ] [ <tt><font size=+1>−n</font></tt> <i>ns</i> ] [ <tt><font size=+1>−p</font></tt> <i>prog</i> ] [ <tt><font size=+1>−s</font></tt> <i>service</i> ] <i>system<br>
|
||||
</i>
|
||||
</table>
|
||||
<p><font size=+1><b>DESCRIPTION </b></font><br>
|
||||
|
||||
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
|
||||
|
||||
<i>Import</i> presents the 9P service <i>service</i> (default <tt><font size=+1>plumb</font></tt>) running
|
||||
on <i>system</i> as a service on the local system, in the current name
|
||||
space.
|
||||
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
|
||||
|
||||
The <tt><font size=+1>−n</font></tt> option sets the remote name space directory where <i>import</i>
|
||||
should expect to find <i>service</i>. If it is not specified, <i>import</i>
|
||||
uses name of the local system’s name space directory. (Since name
|
||||
space directories are conventionally inside <tt><font size=+1>/tmp</font></tt>, the path have
|
||||
different meanings on the two systems.)
|
||||
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
|
||||
|
||||
<i>Import</i> connects to <i>system</i> using <a href="../man1/ssh.html"><i>ssh</i>(1)</a>. It invokes <i>import</i> on the
|
||||
remote system to carry out the remote side of the protocol. The
|
||||
<tt><font size=+1>−p</font></tt> option specifies the path to <i>import</i> on the remote system, in
|
||||
case it is not in the system search path.
|
||||
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
|
||||
|
||||
The <tt><font size=+1>−d</font></tt> option turns on debugging. The <tt><font size=+1>−f</font></tt> option keeps <i>import</i> from
|
||||
forking itself into the background, also useful for debugging.<br>
|
||||
|
||||
</table>
|
||||
<p><font size=+1><b>EXAMPLE </b></font><br>
|
||||
|
||||
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
|
||||
|
||||
Suppose you run <tt><font size=+1>sam −r</font></tt> to the CPU server <i>anna</i>. <i>Sam</i> wants to talk
|
||||
to a plumber on the local terminal, but the file names will refer
|
||||
to files on <i>anna</i>.
|
||||
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
|
||||
|
||||
To fix this problem, create a new name space directory and start
|
||||
a new plumber on <i>anna</i>:<br>
|
||||
|
||||
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
|
||||
|
||||
<tt><font size=+1>remotens=/tmp/ns.`whoami`.on.`hostname`<br>
|
||||
ssh anna mkdir $remotens<br>
|
||||
ssh anna NAMESPACE=$remotens plumber<br>
|
||||
</font></tt>Now import that plumber to the local name space before starting
|
||||
<i>sam</i> and <i>9term</i>:<br>
|
||||
<tt><font size=+1>NAMESPACE=/tmp/ns.anna<br>
|
||||
mkdir $NAMESPACE<br>
|
||||
import −n $remotens −s plumb anna<br>
|
||||
sam &<br>
|
||||
9term ssh anna &<br>
|
||||
</font></tt>
|
||||
</table>
|
||||
|
||||
</table>
|
||||
<p><font size=+1><b>SOURCE </b></font><br>
|
||||
|
||||
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
|
||||
|
||||
<tt><font size=+1>/usr/local/plan9/src/cmd/import.c<br>
|
||||
</font></tt>
|
||||
</table>
|
||||
<p><font size=+1><b>SEE ALSO </b></font><br>
|
||||
|
||||
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
|
||||
|
||||
<a href="../man4/9pserve.html"><i>9pserve</i>(4)</a>, <a href="../man4/intro.html"><i>intro</i>(4)</a><br>
|
||||
|
||||
</table>
|
||||
|
||||
<td width=20>
|
||||
<tr height=20><td>
|
||||
</table>
|
||||
<!-- TRAILER -->
|
||||
<table border=0 cellpadding=0 cellspacing=0 width=100%>
|
||||
<tr height=15><td width=10><td><td width=10>
|
||||
<tr><td><td>
|
||||
<center>
|
||||
<a href="../../"><img src="../../dist/spaceglenda100.png" alt="Space Glenda" border=1></a>
|
||||
</center>
|
||||
</table>
|
||||
<!-- TRAILER -->
|
||||
</body></html>
|
||||
49
man/man4/index.html
Normal file
49
man/man4/index.html
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
<html>
|
||||
<head>
|
||||
<title>Manual Section 4 - Plan 9 from User Space</title>
|
||||
</head>
|
||||
<body>
|
||||
<table width=100%>
|
||||
<tr><td width=20><td>
|
||||
<center>
|
||||
<table border=0 cellspacing=0 cellpadding=0 width=100%>
|
||||
<tr height=1><td width=200><td>
|
||||
<tr><td colspan=2>
|
||||
<center>
|
||||
<b>Manual Section 4 - Plan 9 from User Space</b>
|
||||
</center>
|
||||
<tr height=10><td>
|
||||
<tr><td valign=top><a href="intro.html">intro(4)</a><td>intro – introduction to file servers
|
||||
<tr height=1><td>
|
||||
<tr height=1><td colspan=2 bgcolor=#cccccc>
|
||||
<tr height=1><td>
|
||||
<tr><td valign=top><a href="9pserve.html">9pserve(4)</a><td>9pserve – announce and multiplex 9P service
|
||||
<tr height=1><td>
|
||||
<tr height=1><td colspan=2 bgcolor=#cccccc>
|
||||
<tr height=1><td>
|
||||
<tr><td valign=top><a href="acme.html">acme(4)</a><td>acme – control files for text windows
|
||||
<tr height=1><td>
|
||||
<tr height=1><td colspan=2 bgcolor=#cccccc>
|
||||
<tr height=1><td>
|
||||
<tr><td valign=top><a href="import.html">import(4)</a><td>import – import 9P resources from another system
|
||||
<tr height=1><td>
|
||||
<tr height=1><td colspan=2 bgcolor=#cccccc>
|
||||
<tr height=1><td>
|
||||
<tr><td valign=top><a href="plumber.html">plumber(4)</a><td>plumber – file system for interprocess messaging
|
||||
<tr height=1><td>
|
||||
<tr height=1><td colspan=2 bgcolor=#cccccc>
|
||||
<tr height=1><td>
|
||||
<tr><td valign=top><a href="ramfs.html">ramfs(4)</a><td>ramfs – memory file system
|
||||
</table>
|
||||
</center>
|
||||
<table border=0 cellpadding=0 cellspacing=0 width=100%>
|
||||
<tr height=15><td width=10><td><td width=10>
|
||||
<tr><td><td>
|
||||
<center>
|
||||
<a href="../../"><img src="../../dist/spaceglenda100.png" alt="Space Glenda" border=1></a>
|
||||
</center>
|
||||
</table>
|
||||
<td width=20>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
92
man/man4/intro.html
Normal file
92
man/man4/intro.html
Normal file
|
|
@ -0,0 +1,92 @@
|
|||
<head>
|
||||
<title>intro(4) - Plan 9 from User Space</title>
|
||||
<meta content="text/html; charset=utf-8" http-equiv=Content-Type>
|
||||
</head>
|
||||
<body bgcolor=#ffffff>
|
||||
<table border=0 cellpadding=0 cellspacing=0 width=100%>
|
||||
<tr height=10><td>
|
||||
<tr><td width=20><td>
|
||||
<tr><td width=20><td><b>INTRO(4)</b><td align=right><b>INTRO(4)</b>
|
||||
<tr><td width=20><td colspan=2>
|
||||
<br>
|
||||
<p><font size=+1><b>NAME </b></font><br>
|
||||
|
||||
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
|
||||
|
||||
intro – introduction to file servers<br>
|
||||
|
||||
</table>
|
||||
<p><font size=+1><b>DESCRIPTION </b></font><br>
|
||||
|
||||
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
|
||||
|
||||
A Plan 9 <i>file server</i> provides a file tree to processes. This section
|
||||
of the manual describes servers that can be mounted in a name
|
||||
space to give a file-like interface to interesting services. A
|
||||
file server may be a provider of a conventional file system, with
|
||||
files maintained on permanent storage, or it may also be a process
|
||||
that synthesizes files in some manner.
|
||||
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
|
||||
|
||||
In Plan 9, the kernel mount device <i>mnt</i>(3) acts as a client to
|
||||
the 9P servers mounted in the current name space, translating
|
||||
system calls such as <a href="../man2/open.html"><i>open</i>(2)</a> into 9P transactions such as <i>open</i>(9p).
|
||||
The kernel also multiplexes the potentially many processes onto
|
||||
a single 9P conversation with each server. Finally, the kernel
|
||||
provides each process with its own private <i>name space</i> which it
|
||||
can customize at will. Modern Unix systems do not provide these
|
||||
niceties, so the Unix port of these Plan 9 file servers provides
|
||||
them via other means.
|
||||
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
|
||||
|
||||
On Unix, 9P clients do not access servers via the traditional
|
||||
file system call interface. Only the Unix name space can be accessed
|
||||
that way. Instead, 9P clients use the <a href="../man3/9pclient.html"><i>9pclient</i>(3)</a> library to connect
|
||||
and interact directly with particular 9P servers. The <a href="../man1/9p.html"><i>9p</i>(1)</a> command-line
|
||||
client is useful for interactive use and in shell
|
||||
scripts.
|
||||
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
|
||||
|
||||
To preserve the façade of a single 9P conversation with each server,
|
||||
9P servers invoke <a href="../man4/9pserve.html"><i>9pserve</i>(4)</a>, typically via <a href="../man3/post9pservice.html"><i>post9pservice</i>(3)</a>.
|
||||
<i>9pserve</i> announces a 9P service at a particular network address
|
||||
and multiplexes the clients that connect to that address onto
|
||||
a single 9P conversation with the server.
|
||||
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
|
||||
|
||||
Each ported program operates in a pseudo-name space that determines
|
||||
which 9P servers it is using. The name space of a ported program
|
||||
is represented by a directory containing Unix domain sockets,
|
||||
one for each 9P server. The directory defaults to <tt><font size=+1>/tmp/ns.$USER.$DISPLAY</font></tt>,
|
||||
meaning that all programs in an X
|
||||
Windows login session share a single name space. Setting the <tt><font size=+1>$NAMESPACE</font></tt>
|
||||
environment variable overrides this default. The <a href="../man1/namespace.html"><i>namespace</i>(1)</a>
|
||||
command prints the current name space directory.
|
||||
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
|
||||
|
||||
Occasionally it is useful to be able to connect the input or output
|
||||
of a standard Unix program to a file served by a 9P server. The
|
||||
new <i>openfd</i>(9p) 9P transaction, which depends on file descriptor
|
||||
passing, provides a sufficient workaround in many cases. <i>9pserve</i>’s
|
||||
implementation of <i>openfd</i> (see also <i>fsopenfd</i> in
|
||||
<a href="../man3/9pclient.html"><i>9pclient</i>(3)</a>) returns the read or write end of a pipe; a helper
|
||||
process transfers data between the other end of the pipe and the
|
||||
9P server. Note that since the data is being transferred via a
|
||||
pipe, 9P read and write errors cannot be passed on to the Unix
|
||||
program. The Unix program sees only end-of-file or a closed pipe.
|
||||
|
||||
</table>
|
||||
|
||||
<td width=20>
|
||||
<tr height=20><td>
|
||||
</table>
|
||||
<!-- TRAILER -->
|
||||
<table border=0 cellpadding=0 cellspacing=0 width=100%>
|
||||
<tr height=15><td width=10><td><td width=10>
|
||||
<tr><td><td>
|
||||
<center>
|
||||
<a href="../../"><img src="../../dist/spaceglenda100.png" alt="Space Glenda" border=1></a>
|
||||
</center>
|
||||
</table>
|
||||
<!-- TRAILER -->
|
||||
</body></html>
|
||||
122
man/man4/plumber.html
Normal file
122
man/man4/plumber.html
Normal file
|
|
@ -0,0 +1,122 @@
|
|||
<head>
|
||||
<title>plumber(4) - Plan 9 from User Space</title>
|
||||
<meta content="text/html; charset=utf-8" http-equiv=Content-Type>
|
||||
</head>
|
||||
<body bgcolor=#ffffff>
|
||||
<table border=0 cellpadding=0 cellspacing=0 width=100%>
|
||||
<tr height=10><td>
|
||||
<tr><td width=20><td>
|
||||
<tr><td width=20><td><b>PLUMBER(4)</b><td align=right><b>PLUMBER(4)</b>
|
||||
<tr><td width=20><td colspan=2>
|
||||
<br>
|
||||
<p><font size=+1><b>NAME </b></font><br>
|
||||
|
||||
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
|
||||
|
||||
plumber – file system for interprocess messaging<br>
|
||||
|
||||
</table>
|
||||
<p><font size=+1><b>SYNOPSIS </b></font><br>
|
||||
|
||||
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
|
||||
|
||||
<tt><font size=+1>plumber</font></tt> [ <tt><font size=+1>−p</font></tt> <i>plumbing</i> ]<br>
|
||||
|
||||
</table>
|
||||
<p><font size=+1><b>DESCRIPTION </b></font><br>
|
||||
|
||||
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
|
||||
|
||||
The <i>plumber</i> is a user-level file server that receives, examines,
|
||||
rewrites, and dispatches <a href="../man7/plumb.html"><i>plumb</i>(7)</a> messages between programs. Its
|
||||
behavior is programmed by a <i>plumbing</i> file (default <tt><font size=+1>$HOME/lib/plumbing</font></tt>)
|
||||
in the format of <a href="../man7/plumb.html"><i>plumb</i>(7)</a>.
|
||||
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
|
||||
|
||||
Its services are posted via <a href="../man4/9pserve.html"><i>9pserve</i>(4)</a> as <tt><font size=+1>plumb</font></tt>. and consist of
|
||||
two pre-defined files, <tt><font size=+1>plumb/send</font></tt> and <tt><font size=+1>plumb/rules</font></tt>, and a set of
|
||||
output <i>ports</i> for dispatching messages to applications.
|
||||
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
|
||||
|
||||
Programs use <tt><font size=+1>fswrite</font></tt> (see <a href="../man3/9pclient.html"><i>9pclient</i>(3)</a>) to deliver messages to
|
||||
the <tt><font size=+1>send</font></tt> file, and <i>fsread</i> to receive them from the corresponding
|
||||
port. For example, <a href="../man1/sam.html"><i>sam</i>(1)</a>’s <tt><font size=+1>plumb</font></tt> menu item or the <tt><font size=+1>B</font></tt> command cause
|
||||
a message to be sent to <tt><font size=+1>plumb/send</font></tt>; <tt><font size=+1>sam</font></tt> in turn reads from, by
|
||||
convention, <tt><font size=+1>plumb/edit</font></tt> to receive
|
||||
messages about files to open.
|
||||
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
|
||||
|
||||
A copy of each message is sent to each client that has the corresponding
|
||||
port open. If none has it open, and the rule has a <tt><font size=+1>plumb client</font></tt>
|
||||
or <tt><font size=+1>plumb start</font></tt> rule, that rule is applied. A <tt><font size=+1>plumb client</font></tt> rule
|
||||
causes the specified command to be run and the message to be held
|
||||
for delivery when the port is opened. A
|
||||
<tt><font size=+1>plumb start</font></tt> rule runs the command but discards the message. If
|
||||
neither <tt><font size=+1>start</font></tt> or <tt><font size=+1>client</font></tt> is specified and the port is not open,
|
||||
the message is discarded and a write error is returned to the
|
||||
sender.
|
||||
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
|
||||
|
||||
The set of output ports is determined dynamically by the specification
|
||||
in the plumbing rules file: a port is created for each unique
|
||||
destination of a <tt><font size=+1>plumb to</font></tt> rule.
|
||||
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
|
||||
|
||||
The set of rules currently active may be examined by reading the
|
||||
file <tt><font size=+1>plumb/rules</font></tt>; appending to this file adds new rules to the
|
||||
set, while creating it (opening it with <tt><font size=+1>OTRUNC</font></tt>) clears the rule
|
||||
set. Thus the rule set may be edited dynamically with a traditional
|
||||
text editor. However, ports are never deleted dynamically;
|
||||
if a new set of rules does not include a port that was defined
|
||||
in earlier rules, that port will still exist (although no new
|
||||
messages will be delivered there).<br>
|
||||
|
||||
</table>
|
||||
<p><font size=+1><b>FILES </b></font><br>
|
||||
|
||||
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
|
||||
|
||||
<tt><font size=+1>$HOME/lib/plumbing</font></tt> default rules file<br>
|
||||
<tt><font size=+1>/usr/local/plan9/plumb<br>
|
||||
</font></tt>
|
||||
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
|
||||
|
||||
|
||||
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
|
||||
|
||||
directory to search for files in <tt><font size=+1>include</font></tt> statements<br>
|
||||
|
||||
</table>
|
||||
|
||||
</table>
|
||||
<tt><font size=+1>plumb</font></tt> mount name for <a href="../man4/plumber.html"><i>plumber</i>(4)</a>.<br>
|
||||
|
||||
</table>
|
||||
<p><font size=+1><b>SOURCE </b></font><br>
|
||||
|
||||
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
|
||||
|
||||
<tt><font size=+1>/usr/local/plan9/src/cmd/plumb<br>
|
||||
</font></tt>
|
||||
</table>
|
||||
<p><font size=+1><b>SEE ALSO </b></font><br>
|
||||
|
||||
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
|
||||
|
||||
<a href="../man1/plumb.html"><i>plumb</i>(1)</a>, <a href="../man3/plumb.html"><i>plumb</i>(3)</a>, <a href="../man7/plumb.html"><i>plumb</i>(7)</a><br>
|
||||
|
||||
</table>
|
||||
|
||||
<td width=20>
|
||||
<tr height=20><td>
|
||||
</table>
|
||||
<!-- TRAILER -->
|
||||
<table border=0 cellpadding=0 cellspacing=0 width=100%>
|
||||
<tr height=15><td width=10><td><td width=10>
|
||||
<tr><td><td>
|
||||
<center>
|
||||
<a href="../../"><img src="../../dist/spaceglenda100.png" alt="Space Glenda" border=1></a>
|
||||
</center>
|
||||
</table>
|
||||
<!-- TRAILER -->
|
||||
</body></html>
|
||||
81
man/man4/ramfs.html
Normal file
81
man/man4/ramfs.html
Normal file
|
|
@ -0,0 +1,81 @@
|
|||
<head>
|
||||
<title>ramfs(4) - Plan 9 from User Space</title>
|
||||
<meta content="text/html; charset=utf-8" http-equiv=Content-Type>
|
||||
</head>
|
||||
<body bgcolor=#ffffff>
|
||||
<table border=0 cellpadding=0 cellspacing=0 width=100%>
|
||||
<tr height=10><td>
|
||||
<tr><td width=20><td>
|
||||
<tr><td width=20><td><b>RAMFS(4)</b><td align=right><b>RAMFS(4)</b>
|
||||
<tr><td width=20><td colspan=2>
|
||||
<br>
|
||||
<p><font size=+1><b>NAME </b></font><br>
|
||||
|
||||
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
|
||||
|
||||
ramfs – memory file system<br>
|
||||
|
||||
</table>
|
||||
<p><font size=+1><b>SYNOPSIS </b></font><br>
|
||||
|
||||
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
|
||||
|
||||
<tt><font size=+1>ramfs</font></tt> [ <tt><font size=+1>−i</font></tt> ] [ <tt><font size=+1>−S</font></tt> <i>service</i> ]<br>
|
||||
|
||||
</table>
|
||||
<p><font size=+1><b>DESCRIPTION </b></font><br>
|
||||
|
||||
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
|
||||
|
||||
<i>Ramfs</i> starts a 9P file server keeping all files in memory. Initially
|
||||
the file tree is empty.
|
||||
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
|
||||
|
||||
By default <i>ramfs</i> posts its service as <tt><font size=+1>ramfs</font></tt> using <a href="../man4/9pserve.html"><i>9pserve</i>(4)</a>.
|
||||
|
||||
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
|
||||
|
||||
The <tt><font size=+1>−S</font></tt> flag specifies an alternate service name for ramfs to use.
|
||||
|
||||
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
|
||||
|
||||
The <tt><font size=+1>−i</font></tt> flag tells <i>ramfs</i> to use file descriptors 0 and 1 for its
|
||||
communication channel rather than create a pipe. This makes it
|
||||
possible to use <i>ramfs</i> as a file server on a remote machine: the
|
||||
file descriptors 0 and 1 will be the network channel from <i>ramfs</i>
|
||||
to the client machine.
|
||||
<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table>
|
||||
|
||||
This program is useful mainly as an example of how to write a
|
||||
user-level file server. It can also be used to provide high-performance
|
||||
temporary files.<br>
|
||||
|
||||
</table>
|
||||
<p><font size=+1><b>SOURCE </b></font><br>
|
||||
|
||||
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
|
||||
|
||||
<tt><font size=+1>/usr/local/plan9/src/cmd/ramfs.c<br>
|
||||
</font></tt>
|
||||
</table>
|
||||
<p><font size=+1><b>SEE ALSO </b></font><br>
|
||||
|
||||
<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td>
|
||||
|
||||
<a href="../man3/9p.html"><i>9p</i>(3)</a>, <a href="../man4/9pserve.html"><i>9pserve</i>(4)</a><br>
|
||||
|
||||
</table>
|
||||
|
||||
<td width=20>
|
||||
<tr height=20><td>
|
||||
</table>
|
||||
<!-- TRAILER -->
|
||||
<table border=0 cellpadding=0 cellspacing=0 width=100%>
|
||||
<tr height=15><td width=10><td><td width=10>
|
||||
<tr><td><td>
|
||||
<center>
|
||||
<a href="../../"><img src="../../dist/spaceglenda100.png" alt="Space Glenda" border=1></a>
|
||||
</center>
|
||||
</table>
|
||||
<!-- TRAILER -->
|
||||
</body></html>
|
||||
Loading…
Add table
Add a link
Reference in a new issue