%!PS-Adobe-2.0 %%Version: 0.1 %%DocumentFonts: (atend) %%Pages: (atend) %%EndComments % % Version 3.3.2 prologue for troff files. % /#copies 1 store /aspectratio 1 def /formsperpage 1 def /landscape false def /linewidth .3 def /magnification 1 def /margin 0 def /orientation 0 def /resolution 720 def /rotation 1 def /xoffset 0 def /yoffset 0 def /roundpage true def /useclippath true def /pagebbox [0 0 612 792] def /R /Times-Roman def /I /Times-Italic def /B /Times-Bold def /BI /Times-BoldItalic def /H /Helvetica def /HI /Helvetica-Oblique def /HB /Helvetica-Bold def /HX /Helvetica-BoldOblique def /CW /Courier def /CO /Courier def /CI /Courier-Oblique def /CB /Courier-Bold def /CX /Courier-BoldOblique def /PA /Palatino-Roman def /PI /Palatino-Italic def /PB /Palatino-Bold def /PX /Palatino-BoldItalic def /Hr /Helvetica-Narrow def /Hi /Helvetica-Narrow-Oblique def /Hb /Helvetica-Narrow-Bold def /Hx /Helvetica-Narrow-BoldOblique def /KR /Bookman-Light def /KI /Bookman-LightItalic def /KB /Bookman-Demi def /KX /Bookman-DemiItalic def /AR /AvantGarde-Book def /AI /AvantGarde-BookOblique def /AB /AvantGarde-Demi def /AX /AvantGarde-DemiOblique def /NR /NewCenturySchlbk-Roman def /NI /NewCenturySchlbk-Italic def /NB /NewCenturySchlbk-Bold def /NX /NewCenturySchlbk-BoldItalic def /ZD /ZapfDingbats def /ZI /ZapfChancery-MediumItalic def /S /S def /S1 /S1 def /GR /Symbol def /inch {72 mul} bind def /min {2 copy gt {exch} if pop} bind def /setup { counttomark 2 idiv {def} repeat pop landscape {/orientation 90 orientation add def} if /scaling 72 resolution div def linewidth setlinewidth 1 setlinecap pagedimensions xcenter ycenter translate orientation rotation mul rotate width 2 div neg height 2 div translate xoffset inch yoffset inch neg translate margin 2 div dup neg translate magnification dup aspectratio mul scale scaling scaling scale addmetrics 0 0 moveto } def /pagedimensions { useclippath userdict /gotpagebbox known not and { /pagebbox [clippath pathbbox newpath] def roundpage currentdict /roundpagebbox known and {roundpagebbox} if } if pagebbox aload pop 4 -1 roll exch 4 1 roll 4 copy landscape {4 2 roll} if sub /width exch def sub /height exch def add 2 div /xcenter exch def add 2 div /ycenter exch def userdict /gotpagebbox true put } def /addmetrics { /Symbol /S null Sdefs cf /Times-Roman /S1 StandardEncoding dup length array copy S1defs cf } def /pagesetup { /page exch def currentdict /pagedict known currentdict page known and { page load pagedict exch get cvx exec } if } def /decodingdefs [ {counttomark 2 idiv {y moveto show} repeat} {neg /y exch def counttomark 2 idiv {y moveto show} repeat} {neg moveto {2 index stringwidth pop sub exch div 0 32 4 -1 roll widthshow} repeat} {neg moveto {spacewidth sub 0.0 32 4 -1 roll widthshow} repeat} {counttomark 2 idiv {y moveto show} repeat} {neg setfunnytext} ] def /setdecoding {/t decodingdefs 3 -1 roll get bind def} bind def /w {neg moveto show} bind def /m {neg dup /y exch def moveto} bind def /done {/lastpage where {pop lastpage} if} def /f { dup /font exch def findfont exch dup /ptsize exch def scaling div dup /size exch def scalefont setfont linewidth ptsize mul scaling 10 mul div setlinewidth /spacewidth ( ) stringwidth pop def } bind def /changefont { /fontheight exch def /fontslant exch def currentfont [ 1 0 fontheight ptsize div fontslant sin mul fontslant cos div fontheight ptsize div 0 0 ] makefont setfont } bind def /sf {f} bind def /cf { dup length 2 idiv /entries exch def /chtab exch def /newencoding exch def /newfont exch def findfont dup length 1 add dict /newdict exch def {1 index /FID ne {newdict 3 1 roll put}{pop pop} ifelse} forall newencoding type /arraytype eq {newdict /Encoding newencoding put} if newdict /Metrics entries dict put newdict /Metrics get begin chtab aload pop 1 1 entries {pop def} for newfont newdict definefont pop end } bind def % % A few arrays used to adjust reference points and character widths in some % of the printer resident fonts. If square roots are too high try changing % the lines describing /radical and /radicalex to, % % /radical [0 -75 550 0] % /radicalex [-50 -75 500 0] % % Move braceleftbt a bit - default PostScript character is off a bit. % /Sdefs [ /bracketlefttp [201 500] /bracketleftbt [201 500] /bracketrighttp [-81 380] /bracketrightbt [-83 380] /braceleftbt [203 490] /bracketrightex [220 -125 500 0] /radical [0 0 550 0] /radicalex [-50 0 500 0] /parenleftex [-20 -170 0 0] /integral [100 -50 500 0] /infinity [10 -75 730 0] ] def /S1defs [ /underscore [0 80 500 0] /endash [7 90 650 0] ] def % % Tries to round clipping path dimensions, as stored in array pagebbox, so they % match one of the known sizes in the papersizes array. Lower left coordinates % are always set to 0. % /roundpagebbox { 7 dict begin /papersizes [8.5 inch 11 inch 14 inch 17 inch] def /mappapersize { /val exch def /slop .5 inch def /diff slop def /j 0 def 0 1 papersizes length 1 sub { /i exch def papersizes i get val sub abs dup diff le {/diff exch def /j i def} {pop} ifelse } for diff slop lt {papersizes j get} {val} ifelse } def pagebbox 0 0 put pagebbox 1 0 put pagebbox dup 2 get mappapersize 2 exch put pagebbox dup 3 get mappapersize 3 exch put end } bind def %%EndProlog %%BeginSetup mark % % Encoding vector and redefinition of findfont for the ISO Latin1 standard. % The 18 characters missing from ROM based fonts on older printers are noted % below. % /ISOLatin1Encoding [ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /minus /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /dotlessi /grave /acute /circumflex /tilde /macron /breve /dotaccent /dieresis /.notdef /ring /cedilla /.notdef /hungarumlaut /ogonek /caron /space /exclamdown /cent /sterling /currency /yen /brokenbar % missing /section /dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron /degree % missing /plusminus % missing /twosuperior % missing /threesuperior % missing /acute /mu % missing /paragraph /periodcentered /cedilla /onesuperior % missing /ordmasculine /guillemotright /onequarter % missing /onehalf % missing /threequarters % missing /questiondown /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth % missing /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply % missing /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute % missing /Thorn % missing /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /eth % missing /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide % missing /oslash /ugrave /uacute /ucircumflex /udieresis /yacute % missing /thorn % missing /ydieresis ] def /NewFontDirectory FontDirectory maxlength dict def % % Apparently no guarantee findfont is defined in systemdict so the obvious % % systemdict /findfont get exec % % can generate an error. So far the only exception is a VT600 (version 48.0). % userdict /@RealFindfont known not { userdict begin /@RealFindfont systemdict begin /findfont load end def end } if /findfont { dup NewFontDirectory exch known not { dup %dup systemdict /findfont get exec % not always in systemdict dup userdict /@RealFindfont get exec dup /Encoding get StandardEncoding eq { dup length dict begin {1 index /FID ne {def}{pop pop} ifelse} forall /Encoding ISOLatin1Encoding def currentdict end /DummyFontName exch definefont } if NewFontDirectory 3 1 roll put } if NewFontDirectory exch get } bind def %%Patch from lp %%EndPatch from lp setup %%EndSetup %%Page: 1 1 /saveobj save def mark 1 pagesetup 14 /Times-Bold f (The) 1798 1240 w (9P Distributed file) 2067 1240 w (system) 3197 1240 w 12 /Times-Italic f (Uriel) 2573 1540 w 12 /Times-Roman f (uriel) 2261 1770 w (\(at\)) 2512 1770 w (cat\255v.org) 2709 1770 w cleartomark showpage saveobj restore %%EndPage: 1 1 %%Page: 2 2 /saveobj save def mark 2 pagesetup 14 /Times-Bold f (9P) 2622 500 w 12 /Times-Roman f (Designed to make) 360 860 w (access) 1257 860 w (to all) 1593 860 w (kinds) 1868 860 w (of) 2159 860 w (distributed resources) 2289 860 w (transparent) 3318 860 w (over) 3882 860 w (the) 4125 860 w (network by) 4302 860 w (using a) 360 1000 w (simple) 734 1000 w (and well) 1086 1000 w (defined protocol) 1526 1000 w (based on the) 2347 1000 w (traditional) 2977 1000 w (Unix file) 3503 1000 w (operatoins:) 3964 1000 w (open/read/write/...) 360 1140 w 12 /LucidaSansUnicode22 f (\031) 360 1480 w 12 /Times-Roman f (Derived from) 610 1480 w (the) 1290 1480 w (first) 1467 1480 w (Unix) 1692 1480 w (network filesystem) 1992 1480 w (in Research Unix 8th Edition released in) 2941 1480 w (1985 \(not) 610 1620 w (related to Sun NFS!\)) 1104 1620 w 12 /LucidaSansUnicode22 f (\031) 360 1820 w 12 /Times-Roman f (Fundamental) 610 1820 w (part) 1268 1820 w (of) 1485 1820 w (Plan 9, started by Ken Thompson and Rob Pike) 1615 1820 w (in 1985) 3930 1820 w 12 /LucidaSansUnicode22 f (\031) 360 2020 w 12 /Times-Roman f (Used in Inferno) 610 2020 w 12 /LucidaSansUnicode22 f (\031) 360 2220 w 12 /Times-Roman f (Latest) 610 2220 w (version codename) 934 2220 w (9P2000 released \(2003\)) 1834 2220 w 12 /LucidaSansUnicode22 f (\031) 360 2420 w 12 /Times-Roman f (Spread to other) 610 2420 w (systems:) 1374 2420 w (v9fs) 1820 2420 w (in the) 2057 2420 w (Linux kernel, Plan 9 from) 2358 2420 w (User) 3633 2420 w (Space) 3889 2420 w (ported to most) 4205 2420 w (Unix systems, Python and java) 610 2560 w (implementations) 2126 2560 w (released.) 2960 2560 w cleartomark showpage saveobj restore %%EndPage: 2 2 %%Page: 3 3 /saveobj save def mark 3 pagesetup 14 /Times-Bold f (Design) 2497 500 w 12 /Times-Roman f (Extremely simple) 360 860 w (and easy to implement, only 14 basic) 1243 860 w (operations.) 3060 860 w (Flexible) 360 1140 w (support) 785 1140 w (for) 1176 1140 w (any authentication and encryption mechanism) 1346 1140 w (transparently for) 3586 1140 w (both the) 4414 1140 w (client) 360 1280 w (and server.) 658 1280 w (Can run over) 360 1560 w (any transport) 1016 1560 w (that) 1677 1560 w (provides) 1888 1560 w (reliable) 2332 1560 w (in\255order) 2723 1560 w (delivery:) 3140 1560 w (TCP/IP, IL/IP, RUDP, PPP,) 3598 1560 w (PCI) 360 1700 w (Bus, serial) 577 1700 w (port, shared memory, others...) 1115 1700 w (Multiple) 360 1980 w (implementations) 806 1980 w (in various) 1640 1980 w (languages) 2148 1980 w (for) 2658 1980 w (most) 2828 1980 w (existing operating systems.) 3093 1980 w cleartomark showpage saveobj restore %%EndPage: 3 3 %%Page: 4 4 /saveobj save def mark 4 pagesetup 14 /Times-Bold f (9P in Plan 9 and Inferno) 1967 500 w 12 /LucidaSansUnicode22 f (\031) 360 860 w 12 /Times-Roman f (All) 610 860 w (resources, from) 794 860 w (the) 1571 860 w (window system) 1748 860 w (to the) 2529 860 w (Ip stack have) 2830 860 w (file) 3493 860 w (system) 3684 860 w (interfaces) 4049 860 w 12 /LucidaSansUnicode22 f (\031) 360 1060 w 12 /Times-Roman f (Allows) 610 1060 w (transparent) 987 1060 w (access) 1551 1060 w (to all) 1887 1060 w (those) 2162 1060 w (resources) 2446 1060 w (over) 2929 1060 w (the) 3172 1060 w (network) 3349 1060 w 12 /LucidaSansUnicode22 f (\031) 360 1260 w 12 /Times-Roman f (Well) 610 1260 w (deffined and well) 874 1260 w (understood semantics) 1744 1260 w (and security mechanisms) 2813 1260 w 12 /LucidaSansUnicode22 f (\031) 360 1460 w 12 /Times-Roman f (Only \22430 syscalls.) 610 1460 w 12 /LucidaSansUnicode22 f (\031) 360 1660 w 12 /Times-Roman f (No ioctl!) 610 1660 w 12 /LucidaSansUnicode22 f (\031) 360 1860 w 12 /Times-Roman f (No root) 610 1860 w ('superuser'\(and no suid!\)) 1010 1860 w 12 /LucidaSansUnicode22 f (\031) 360 2060 w 12 /Times-Roman f (No need for) 610 2060 w (NAT or) 1212 2060 w (port) 1617 2060 w (forwarding, just) 1841 2060 w (import) 2639 2060 w (/net) 2991 2060 w (from) 3202 2060 w (your) 3466 2060 w (gateway to your) 3716 2060 w (private) 4519 2060 w (namespace!) 610 2200 w 12 /LucidaSansUnicode22 f (\031) 360 2400 w 12 /Times-Roman f (Remote) 610 2400 w (debugging by importing /proc) 1014 2400 w (and running the) 2484 2400 w (debugger) 3268 2400 w (as) 3744 2400 w (usual.) 3874 2400 w 12 /LucidaSansUnicode22 f (\031) 360 2600 w 12 /Times-Roman f (Some) 610 2600 w (9P servers) 914 2600 w (are) 1441 2600 w (only 'filters', eg., iostats) 1617 2600 w (wraps) 2825 2600 w (a) 3141 2600 w (namespace) 3224 2600 w (while) 3780 2600 w (gathering IO statis\255) 4077 2600 w (tics.) 610 2740 w 12 /LucidaSansUnicode22 f (\031) 360 2940 w 12 /Times-Roman f (Private) 610 2940 w (namespaces) 981 2940 w (provide) 1584 2940 w (simple) 1981 2940 w (and very reliable) 2333 2940 w (sandboxing.) 3170 2940 w cleartomark showpage saveobj restore %%EndPage: 4 4 %%Page: 5 5 /saveobj save def mark 5 pagesetup 14 /Times-Bold f (Other Uses) 2367 500 w 12 /LucidaSansUnicode22 f (\031) 360 860 w 12 /Times-Roman f (xcpu) 610 860 w 12 /LucidaSansUnicode22 f (\031) 360 1060 w 12 /Times-Roman f (Inferno Grid) 610 1060 w 12 /LucidaSansUnicode22 f (\031) 360 1260 w 12 /Times-Roman f (Wikifs) 610 1260 w 12 /LucidaSansUnicode22 f (\031) 360 1460 w 12 /Times-Roman f (others...) 610 1460 w cleartomark showpage saveobj restore %%EndPage: 5 5 %%Page: 6 6 /saveobj save def mark 6 pagesetup 14 /Times-Bold f (Numerous implementations) 1874 500 w 12 /LucidaSansUnicode22 f (\031) 360 860 w 12 /Times-Roman f (Plan 9 from) 610 860 w (Bell) 1208 860 w (Labs) 1439 860 w (http://plan9.bell\255labs.com/plan9/) 1702 860 w 12 /LucidaSansUnicode22 f (\031) 360 1060 w 12 /Times-Roman f (Plan 9 from) 610 1060 w (User) 1208 1060 w (Space, for) 1464 1060 w (most) 1980 1060 w (Unix systems) 2245 1060 w (http://www.plan9.us) 2927 1060 w 12 /LucidaSansUnicode22 f (\031) 360 1260 w 12 /Times-Roman f (Inferno \(under) 610 1260 w (the) 1336 1260 w (name) 1513 1260 w (Styx\)) 1803 1260 w (http://www.vitanuova.com/inferno/) 2094 1260 w 12 /LucidaSansUnicode22 f (\031) 360 1460 w 12 /Times-Roman f (Java:) 610 1460 w (Jstyx http://jsyx.sf.net) 887 1460 w 12 /LucidaSansUnicode22 f (\031) 360 1660 w 12 /Times-Roman f (v9fs, part) 610 1660 w (of) 1094 1660 w (the) 1224 1660 w (Linux kernel) 1401 1660 w (http://v9fs.sf.net) 2048 1660 w 12 /LucidaSansUnicode22 f (\031) 360 1860 w 12 /Times-Roman f (libixp2, part) 610 1860 w (of) 1229 1860 w (the) 1359 1860 w (WMII) 1536 1860 w (project) 1866 1860 w (http://www.wmii.de/index.php/WMII/libixp) 2230 1860 w 12 /LucidaSansUnicode22 f (\031) 360 2060 w 12 /Times-Roman f (Python:) 610 2060 w (py9p) 1015 2060 w 12 /LucidaSansUnicode22 f (\031) 360 2260 w 12 /Times-Roman f (Styx\255on\255a\255Brick \(Lego Mindstorms\)) 610 2260 w 12 /LucidaSansUnicode22 f (\031) 360 2460 w 12 /Times-Roman f (thers...) 610 2460 w cleartomark showpage saveobj restore %%EndPage: 6 6 %%Trailer done %%DocumentFonts: Times-Roman LucidaSansUnicode22 Times-Italic Times-Bold %%Pages: 6