%!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 setup %%EndSetup %%Page: 1 1 /saveobj save def mark 1 pagesetup 14 /Times-Bold f (Attack of the) 2076 1230 w (Giant ANTS!) 2886 1230 w (Advanced Namespace) 2032 1530 w (ToolS) 3377 1530 w 12 /Times-Bold f (for) 2227 1830 w (Plan 9 from) 2410 1830 w (Bell) 3047 1830 w (Labs) 3278 1830 w 10 /Times-Italic f (Ben Kidwell, "mycroftiv") 2366 2070 w (ABSTRACT) 2643 2510 w 10 /Times-Roman f (The) 1330 2770 w (Advanced) 1518 2770 w (Namespace) 1955 2770 w (ToolS) 2447 2770 w (are) 2725 2770 w (a) 2879 2770 w (collection) 2957 2770 w (of) 3385 2770 w (Plan) 3502 2770 w (9) 3714 2770 w (software) 3798 2770 w (designed) 4175 2770 w (for) 4564 2770 w (the following goals:) 1080 2890 w (1.) 1080 3130 w (Reliability,) 1198 3130 w (Resiliency,) 1689 3130 w (Recoverability) 2179 3130 w (\255) 2810 3130 w (make) 2886 3130 w (grids) 3145 3130 w (of) 3389 3130 w (Plan) 3516 3130 w (9) 3738 3130 w (machines) 3832 3130 w (tolerant) 4253 3130 w (to) 4602 3130 w (hardware and software failures.) 1080 3250 w (2.) 1080 3490 w (Flexibility) 1186 3490 w (and) 1635 3490 w (Configurability) 1810 3490 w (\255) 2458 3490 w (make) 2522 3490 w (it) 2769 3490 w (easy) 2856 3490 w (to) 3064 3490 w (change) 3173 3490 w (what) 3486 3490 w (role) 3711 3490 w (a) 3897 3490 w (system) 3972 3490 w (is) 4281 3490 w (playing) 4380 3490 w (in) 1080 3610 w (a) 1187 3610 w (grid,) 1260 3610 w (to) 1475 3610 w (add) 1582 3610 w (in) 1755 3610 w (new) 1862 3610 w (systems,) 2057 3610 w (and) 2428 3610 w (retire) 2600 3610 w (old) 2838 3610 w (ones,) 2994 3610 w (without) 3230 3610 w (disrupting) 3564 3610 w (the) 3998 3610 w (user) 4148 3610 w (environ\255) 4342 3610 w (ment.) 1080 3730 w (3.) 1080 3970 w (Multiplexing) 1183 3970 w (namespaces) 1734 3970 w (on) 2238 3970 w (one) 2366 3970 w (machine) 2538 3970 w (\255) 2904 3970 w (the) 2966 3970 w (standard) 3117 3970 w (Plan) 3484 3970 w (9) 3691 3970 w (installer) 3770 3970 w (sets) 4121 3970 w (up) 4300 3970 w (a) 4429 3970 w (Plan) 4502 3970 w (9) 1080 4090 w (environment) 1166 4090 w (with) 1707 4090 w (a) 1921 4090 w (namespace) 2001 4090 w (organized) 2474 4090 w (to) 2903 4090 w (appear) 3017 4090 w (similar) 3317 4090 w (to) 3630 4090 w (a) 3743 4090 w (traditional) 3822 4090 w (unix) 4268 4090 w (user\255) 4481 4090 w (land,) 1080 4210 w (and) 1303 4210 w (all) 1473 4210 w (software) 1599 4210 w (on) 1968 4210 w (the) 2095 4210 w (machine) 2244 4210 w (operates) 2609 4210 w (within) 2968 4210 w (this) 3251 4210 w (namespace.) 3423 4210 w (This) 3912 4210 w (is) 4117 4210 w (convention,) 4211 4210 w (not) 1080 4330 w (necessity,) 1234 4330 w (and the Plan 9 kernel can run multiple user environments with radically dif\255) 1651 4330 w (ferent) 1080 4450 w (namespaces) 1343 4450 w (on) 1850 4450 w (the) 1982 4450 w (same) 2136 4450 w (machine.) 2373 4450 w (One) 2768 4450 w (notable) 2966 4450 w (application) 3292 4450 w (of) 3768 4450 w (this) 3883 4450 w (is) 4060 4450 w (running) 4159 4450 w (both) 4502 4450 w (9front) 1080 4570 w (userland) 1359 4570 w (and) 1732 4570 w (standard) 1911 4570 w (Bell) 2284 4570 w (Labs) 2485 4570 w (userland) 2713 4570 w (on) 3085 4570 w (the) 3219 4570 w (same) 3375 4570 w (box) 3614 4570 w (at) 3798 4570 w (the) 3904 4570 w (same) 4060 4570 w (time,) 4299 4570 w (one) 4536 4570 w (available via) 1080 4690 w 10 /Courier f (cpu) 1612 4690 w 10 /Times-Roman f (and one via the terminal's physical display and i/o.) 1817 4690 w (4.) 1080 4930 w (Ad\255hoc) 1185 4930 w (namespaces) 1514 4930 w (built) 2020 4930 w (from) 2234 4930 w (multiple) 2458 4930 w (machines) 2823 4930 w (\255) 3231 4930 w (The) 3295 4930 w (converse) 3481 4930 w (of) 3866 4930 w (the) 3980 4930 w (previous) 4133 4930 w (goal) 4508 4930 w (is) 1080 5050 w (the) 1182 5050 w (ability) 1339 5050 w (to) 1630 5050 w (easily) 1743 5050 w (create) 2011 5050 w (an) 2283 5050 w (environment) 2411 5050 w (built) 2950 5050 w (from) 3168 5050 w (diverse) 3396 5050 w (and) 3718 5050 w (distinct) 3896 5050 w (services) 4225 5050 w (on) 4580 5050 w (different) 1080 5170 w (machines.) 1462 5170 w (This) 1903 5170 w (is) 2120 5170 w (part) 2226 5170 w (of) 2420 5170 w (standard) 2542 5170 w (Plan) 2919 5170 w (9) 3136 5170 w (concepts) 3225 5170 w (but) 3614 5170 w (the) 3782 5170 w (existing) 3944 5170 w (tools) 4301 5170 w (and) 4536 5170 w (scripts) 1080 5290 w (don't) 1392 5290 w (provide) 1654 5290 w (many) 2010 5290 w (commands) 2283 5290 w (for) 2767 5290 w (en) 2934 5290 w (masse) 3079 5290 w (namespace) 3374 5290 w (operations) 3862 5290 w (to) 4329 5290 w (apply) 4458 5290 w (numerous mounts and binds to a group of processes quickly.) 1080 5410 w (5.) 1080 5650 w (Data) 1189 5650 w (sharing) 1411 5650 w (and) 1739 5650 w (persistence) 1917 5650 w (\255) 2394 5650 w (Multiple) 2461 5650 w (machines) 2840 5650 w (should) 3251 5650 w (be) 3552 5650 w (able) 3680 5650 w (to) 3881 5650 w (work) 3994 5650 w (easily) 4234 5650 w (with) 4502 5650 w (the) 1080 5770 w (same) 1239 5770 w (data,) 1481 5770 w (even) 1709 5770 w (dynamic,) 1934 5770 w (flowing) 2340 5770 w (data.) 2687 5770 w (Being) 2914 5770 w (able) 3189 5770 w (to) 3391 5770 w (study) 3505 5770 w (and) 3758 5770 w (replicate) 3938 5770 w (past) 4317 5770 w (data) 4514 5770 w (flows is useful.) 1080 5890 w (6.) 1080 6130 w (Adminstration) 1189 6130 w (\255) 1801 6130 w (It) 1868 6130 w (should) 1963 6130 w (be) 2264 6130 w (easy) 2392 6130 w (for) 2603 6130 w (the) 2753 6130 w (user) 2909 6130 w (to) 3110 6130 w (administer) 3223 6130 w (all) 3680 6130 w (the) 3815 6130 w (machines) 3972 6130 w (used) 4384 6130 w (to) 4602 6130 w (create) 1080 6250 w (the) 1346 6250 w (workspace.) 1497 6250 w (Administration) 1976 6250 w (should) 2610 6250 w (be) 2905 6250 w (contained) 3027 6250 w (away) 3443 6250 w (from) 3681 6250 w (the) 3903 6250 w (main) 4053 6250 w (user) 4281 6250 w (envi\255) 4475 6250 w (ronment, but constantly and easily accessible.) 1080 6370 w (7.) 1080 6610 w (Automatic) 1181 6610 w (backup/replication) 1629 6610 w (and) 2398 6610 w (recovery.) 2568 6610 w (Redundant) 2967 6610 w (usable) 3426 6610 w (copies) 3707 6610 w (of) 3989 6610 w (data) 4099 6610 w (should) 4292 6610 w (be) 4586 6610 w (made) 1080 6730 w (automatically,) 1344 6730 w (and) 1961 6730 w (entering) 2153 6730 w (an) 2528 6730 w (earlier) 2669 6730 w (or) 2970 6730 w (alternate) 3100 6730 w (environment) 3490 6730 w (should) 4042 6730 w (be) 4356 6730 w (non\255) 4497 6730 w (distruptive and fast.) 1080 6850 w cleartomark showpage saveobj restore %%EndPage: 1 1 %%Page: 2 2 /saveobj save def mark 2 pagesetup 10 /Times-Roman f (\255 2 \255) 2797 480 w 10 /Times-Bold f (I. Intro) 720 840 w 10 /Times-Roman f (The) 970 996 w (goal) 1154 996 w (is) 1355 996 w (to) 1451 996 w (present) 1558 996 w (to) 1875 996 w (the) 1982 996 w (user) 2134 996 w (a) 2330 996 w (computing) 2404 996 w (and) 2862 996 w (data) 3036 996 w (environment) 3232 996 w (abstracted) 3767 996 w (as) 4201 996 w (far) 4314 996 w (away) 4454 996 w (from) 4694 996 w (the) 4918 996 w (underlying) 720 1116 w (hardware) 1182 1116 w (as) 1581 1116 w (possible,) 1693 1116 w (by) 2075 1116 w (leveraging) 2204 1116 w (the) 2654 1116 w (power) 2805 1116 w (of) 3083 1116 w (namespaces) 3195 1116 w (and) 3700 1116 w (network) 3873 1116 w (transparency,) 4228 1116 w (and) 4790 1116 w (to) 4962 1116 w (make) 720 1236 w (that) 972 1236 w (computing) 1158 1236 w (and) 1622 1236 w (data) 1802 1236 w (environment) 2004 1236 w (as) 2546 1236 w (indestructible) 2666 1236 w (as) 3247 1236 w (possible.) 3367 1236 w (No) 3757 1236 w (matter) 3916 1236 w (what) 4208 1236 w (happens) 4439 1236 w (to) 4803 1236 w (the) 4918 1236 w (hardware) 720 1356 w (of) 1117 1356 w (an) 1227 1356 w (individual) 1348 1356 w (machine) 1781 1356 w (or) 2146 1356 w (machines,) 2256 1356 w (the) 2685 1356 w (user) 2834 1356 w (can) 3027 1356 w (continue) 3192 1356 w (working) 3563 1356 w (with) 3923 1356 w (as) 4128 1356 w (little) 4238 1356 w (trouble) 4449 1356 w (as) 4759 1356 w (pos\255) 4868 1356 w (sible.) 720 1476 w (The) 968 1476 w (goal) 1157 1476 w (of) 1363 1476 w (no) 1480 1476 w (disruption) 1614 1476 w (must) 2054 1476 w (acknowledge) 2283 1476 w (some) 2843 1476 w (limits.) 3088 1476 w (A) 3376 1476 w (running) 3482 1476 w (application) 3827 1476 w (on) 4305 1476 w (a) 4439 1476 w (machine) 4517 1476 w (that) 4890 1476 w (dies) 720 1596 w (will) 916 1596 w (probably) 1107 1596 w (result) 1496 1596 w (in) 1752 1596 w (the) 1864 1596 w (loss) 2020 1596 w (of) 2210 1596 w (some) 2327 1596 w (state) 2572 1596 w (and) 2789 1596 w (perhaps) 2967 1596 w (some) 3311 1596 w (unsaved) 3556 1596 w (data,) 3917 1596 w (but) 4142 1596 w (this) 4304 1596 w (should) 4483 1596 w (not) 4784 1596 w (be) 4946 1596 w (more than a minor annoyance in the overall computing environment.) 720 1716 w (In) 970 1872 w (standard) 1081 1872 w (Plan) 1447 1872 w (9,) 1654 1872 w (a) 1758 1872 w (grid) 1831 1872 w (of) 2021 1872 w (systems) 2133 1872 w (will) 2479 1872 w (wish) 2664 1872 w (to) 2882 1872 w (make) 2989 1872 w (use) 3234 1872 w (of) 3396 1872 w (common) 3508 1872 w (fileservers) 3887 1872 w (over) 4331 1872 w (the) 4537 1872 w (network.) 4688 1872 w (TCP booted cpu servers are an excellent mechanism for a unified grid of machines, but achieving this maxi\255) 720 1992 w (mizes) 720 2112 w (their) 988 2112 w (reliance) 1206 2112 w (on) 1556 2112 w (the) 1691 2112 w (network) 1848 2112 w (resources) 2210 2112 w (and) 2621 2112 w (the) 2800 2112 w (annoyance) 2958 2112 w (of) 3420 2112 w (multimachine) 3539 2112 w (failures) 4125 2112 w (resulting) 4460 2112 w (from) 4846 2112 w (problems) 720 2232 w (on) 1125 2232 w (one) 1258 2232 w (node) 1435 2232 w (of) 1662 2232 w (the) 1778 2232 w (grid.) 1933 2232 w (Consider) 2151 2232 w (the) 2544 2232 w (case) 2698 2232 w (where) 2901 2232 w (a) 3176 2232 w (user) 3252 2232 w (at) 3450 2232 w (a) 3554 2232 w (terminal) 3630 2232 w (is) 3995 2232 w (connected) 4094 2232 w (via) 4530 2232 w 10 /Courier f (cpu) 4684 2232 w 10 /Times-Roman f (and) 4896 2232 w (also) 720 2352 w (making) 908 2352 w (use) 1235 2352 w (of) 1395 2352 w (another) 1505 2352 w (fileserver) 1831 2352 w (on) 2235 2352 w (the) 2363 2352 w (network) 2513 2352 w (for) 2868 2352 w (their) 3012 2352 w (personal) 3223 2352 w (information.) 3589 2352 w (If) 4114 2352 w (the) 4208 2352 w (cpu's) 4358 2352 w (connection) 4602 2352 w (to the file server providing the tcp root goes down, what are the consequences for the user?) 720 2472 w (If) 970 2628 w (the) 1063 2628 w (user) 1212 2628 w (at) 1405 2628 w (a) 1504 2628 w (terminal) 1575 2628 w (is) 1935 2628 w (using) 2029 2628 w (that) 2273 2628 w (cpu) 2450 2628 w (server,) 2621 2628 w (and) 2916 2628 w (also) 3087 2628 w (importing) 3275 2628 w (their) 3698 2628 w ($home) 3909 2628 w (from) 4209 2628 w (a) 4431 2628 w (different) 4503 2628 w (file\255) 4874 2628 w (server,) 720 2748 w (the) 1017 2748 w (user's) 1167 2748 w (connection) 1433 2748 w (to) 1899 2748 w (their) 2005 2748 w ($home) 2216 2748 w (and) 2516 2748 w (working) 2688 2748 w (data) 3049 2748 w (set) 3243 2748 w (is) 3382 2748 w (disrupted,) 3477 2748 w (even) 3902 2748 w (though) 4118 2748 w (the) 4424 2748 w ($home) 4574 2748 w (file\255) 4874 2748 w (server is still fine \255 it is just the boot fileserver) 720 2868 w (for) 2589 2868 w (the) 2731 2868 w (cpu) 2879 2868 w (server) 3049 2868 w (with) 3318 2868 w (the) 3522 2868 w (binaries) 3670 2868 w (that) 4012 2868 w (had) 4188 2868 w (a) 4358 2868 w (disruption.) 4428 2868 w (The) 4885 2868 w (failure) 720 2988 w (of) 1008 2988 w (one) 1119 2988 w (system) 1291 2988 w (\(the) 1597 2988 w (cpu's) 1779 2988 w (root) 2022 2988 w (fileserver) 2210 2988 w (with) 2613 2988 w (the) 2818 2988 w (binaries\)) 2967 2988 w (has) 3343 2988 w (caused) 3503 2988 w (the) 3801 2988 w (disruption) 3950 2988 w (of) 4383 2988 w (2) 4493 2988 w (other) 4570 2988 w (work\255) 4802 2988 w (ing) 720 3108 w (systems) 881 3108 w (and) 1231 3108 w (ended) 1409 3108 w (the) 1681 3108 w (workflow) 1837 3108 w (of) 2259 3108 w (the) 2376 3108 w (user) 2532 3108 w (until) 2732 3108 w (the) 2950 3108 w (cpu) 3106 3108 w (is) 3284 3108 w (rebooted.) 3385 3108 w (The) 3793 3108 w (cpu) 3982 3108 w (kernel) 4160 3108 w (is) 4443 3108 w (still) 4544 3108 w (running) 4729 3108 w (fine \255 why does it need to reboot because a user\255space program lost a file descriptor?) 720 3228 w (The) 970 3384 w (ANTS) 1162 3384 w (software) 1460 3384 w (addresses) 1840 3384 w (these) 2260 3384 w (issues) 2503 3384 w (by) 2780 3384 w (removing) 2918 3384 w (the) 3339 3384 w (dependency) 3499 3384 w (of) 4013 3384 w (the) 4134 3384 w (kernel) 4294 3384 w (on) 4581 3384 w (the) 4719 3384 w (root) 4879 3384 w (filesystem.) 720 3504 w (Once) 1186 3504 w (the) 1426 3504 w (kernel) 1578 3504 w (is) 1857 3504 w (loaded) 1954 3504 w (into) 2250 3504 w (memory,) 2436 3504 w (it) 2824 3504 w (can) 2910 3504 w (stand) 3078 3504 w (back) 3319 3504 w (from) 3536 3504 w (userland,) 3759 3504 w (and) 4151 3504 w (instruct) 4324 3504 w (userspace) 4653 3504 w (programs) 720 3624 w (to) 1125 3624 w (dial) 1231 3624 w (each) 1409 3624 w (other) 1619 3624 w (and) 1852 3624 w (create) 2024 3624 w (a) 2289 3624 w (namespace) 2361 3624 w (for) 2826 3624 w (the) 2970 3624 w (user,) 3120 3624 w (but) 3339 3624 w (the) 3495 3624 w (main) 3646 3624 w (flow) 3875 3624 w (of) 4087 3624 w (control) 4199 3624 w (of) 4511 3624 w (the) 4623 3624 w (master) 4774 3624 w (process) 720 3744 w (on) 1047 3744 w (the) 1175 3744 w (system) 1325 3744 w (should) 1631 3744 w (not) 1926 3744 w (depend) 2082 3744 w (on) 2397 3744 w (any) 2524 3744 w (file) 2695 3744 w (descriptor) 2855 3744 w (acquired) 3281 3744 w (from) 3651 3744 w (an) 3872 3744 w (outside) 3993 3744 w (system.) 4309 3744 w (That) 4639 3744 w (way,) 4849 3744 w (anything can die and the master flow of control never freezes trying to read from a dead fd.) 720 3864 w (The) 970 4020 w (foundation) 1159 4020 w (of) 1626 4020 w (these) 1743 4020 w (namespace) 1982 4020 w (tools) 2453 4020 w (is) 2682 4020 w (a) 2783 4020 w (rewrite) 2862 4020 w (of) 3179 4020 w (the) 3297 4020 w (post) 3454 4020 w (kernel\255load) 3656 4020 w 10 /Courier f (boot) 4145 4020 w 10 /Times-Roman f (and) 4420 4020 w 10 /Courier f (init) 4599 4020 w 10 /Times-Roman f (pro\255) 4874 4020 w (grams. The userspace is still created the same way, with a conventional root, but this namespace is launched) 720 4140 w (separately) 720 4260 w (from) 1150 4260 w (the) 1370 4260 w (core) 1518 4260 w (flow) 1715 4260 w (of) 1924 4260 w (control.) 2033 4260 w (The) 2367 4260 w (kernel) 2548 4260 w (is) 2823 4260 w (independent) 2916 4260 w (of) 3430 4260 w (any) 3539 4260 w (root) 3709 4260 w (and) 3897 4260 w (there) 4068 4260 w (is) 4294 4260 w (an) 4388 4260 w (always) 4509 4260 w (avail\255) 4813 4260 w (able) 720 4380 w (service) 921 4380 w (namespace) 1238 4380 w (which) 1710 4380 w (exists) 1989 4380 w (beneath) 2252 4380 w (the) 2597 4380 w (conventional) 2754 4380 w (user\255facing) 3305 4380 w (namespace.) 3788 4380 w (The) 4285 4380 w (service) 4475 4380 w (name\255) 4791 4380 w (space) 720 4500 w (is) 970 4500 w (a) 1066 4500 w (comfortable) 1139 4500 w (working) 1650 4500 w (environment) 2012 4500 w (with) 2546 4500 w (all) 2753 4500 w (software) 2882 4500 w (needed) 3254 4500 w (to) 3565 4500 w (begin) 3672 4500 w (and) 3924 4500 w (administer) 4098 4500 w (the) 4550 4500 w (machine) 4702 4500 w (and the userspace it is hosting.) 720 4620 w (Creating) 970 4776 w (multiple) 1346 4776 w (independent) 1712 4776 w (namespaces) 2232 4776 w (means) 2740 4776 w (the) 3027 4776 w (user) 3181 4776 w (needs) 3379 4776 w (to) 3639 4776 w (be) 3750 4776 w (able) 3877 4776 w (to) 4076 4776 w (move) 4187 4776 w (easily) 4442 4776 w (between) 4708 4776 w (them) 720 4896 w (and) 949 4896 w (modify) 1122 4896 w (namespace) 1440 4896 w (in) 1906 4896 w (an) 2013 4896 w (extensive) 2136 4896 w (fashion) 2541 4896 w (easily.) 2863 4896 w (Moving) 3149 4896 w (between) 3494 4896 w (namespaces) 3854 4896 w (and) 4358 4896 w (restructuring) 4530 4896 w (namespaces) 720 5016 w (is) 1226 5016 w (enabled) 1323 5016 w (with) 1663 5016 w (scripted) 1871 5016 w (namespace) 2217 5016 w (operations) 2684 5016 w (such) 3130 5016 w (as) 3343 5016 w 10 /Courier f (rerootwin) 3456 5016 w 10 /Times-Roman f (to) 4026 5016 w (reroot) 4134 5016 w (a) 4402 5016 w (window) 4476 5016 w (with\255) 4829 5016 w (out) 720 5136 w (losing) 888 5136 w (the) 1173 5136 w (connection) 1335 5136 w (to) 1813 5136 w (keyboard,) 1931 5136 w (mouse,) 2367 5136 w (and) 2693 5136 w (window) 2877 5136 w (system.) 3239 5136 w (Another) 3581 5136 w (kernel) 3947 5136 w (modification) 4235 5136 w (makes) 4785 5136 w 10 /Courier f (/proc/*/ns) 720 5256 w 10 /Times-Roman f (writable) 1355 5256 w (to) 1717 5256 w (control) 1830 5256 w (the) 2148 5256 w (namespace) 2306 5256 w (of) 2779 5256 w (any) 2898 5256 w (owned) 3078 5256 w (process.) 3380 5256 w (This) 3740 5256 w (allows) 3954 5256 w (scripted) 4251 5256 w (namespace) 4603 5256 w (operations) 720 5376 w (at) 1169 5376 w (a) 1274 5376 w (higher) 1351 5376 w (level) 1639 5376 w (of) 1865 5376 w (abstraction) 1980 5376 w (such) 2450 5376 w (as) 2665 5376 w 10 /Courier f (cpns) 2780 5376 w 10 /Times-Roman f (to) 3052 5376 w (make) 3162 5376 w (the) 3410 5376 w (namespace) 3564 5376 w (of) 4033 5376 w (one) 4148 5376 w (process) 4324 5376 w (a) 4655 5376 w (copy) 4731 5376 w (of) 4957 5376 w (another.) 720 5496 w (The) 970 5652 w (user) 1155 5652 w (has) 1351 5652 w (control) 1514 5652 w (of) 1827 5652 w (persistent) 1940 5652 w (interactive) 2354 5652 w (shells) 2806 5652 w (in) 3065 5652 w (any) 3174 5652 w (namespace) 3349 5652 w (on) 3817 5652 w (any) 3948 5652 w (machine) 4123 5652 w (using) 4492 5652 w 10 /Courier f (hubfs) 4740 5652 w 10 /Times-Roman f (and) 720 5772 w (can) 900 5772 w (pipe) 1074 5772 w (data) 1282 5772 w (freely) 1484 5772 w (between) 1752 5772 w (shells) 2119 5772 w (on) 2382 5772 w (different) 2517 5772 w (nodes.) 2895 5772 w (Access) 3188 5772 w (to) 3505 5772 w (these) 3618 5772 w (persistent) 3858 5772 w (shells) 4276 5772 w (is) 4539 5772 w (integrated) 4641 5772 w (into) 720 5892 w 10 /Courier f (grio) 916 5892 w 10 /Times-Roman f (with) 1196 5892 w (the) 1414 5892 w (addition) 1576 5892 w (of) 1944 5892 w (a) 2067 5892 w (new) 2151 5892 w (menu) 2357 5892 w (command.) 2619 5892 w (Behind) 3078 5892 w (the) 3407 5892 w (scenes,) 3569 5892 w (the) 3894 5892 w (user's) 4056 5892 w (data) 4334 5892 w (is) 4540 5892 w (replicated) 4647 5892 w (between) 720 6012 w (archival) 1079 6012 w (stores) 1427 6012 w (with) 1687 6012 w 10 /Courier f (ventiprog) 1892 6012 w 10 /Times-Roman f (and) 2459 6012 w (multiple) 2630 6012 w (active) 2990 6012 w (copies) 3254 6012 w (of) 3535 6012 w (the) 3644 6012 w (current) 3792 6012 w (root) 4100 6012 w (fs) 4287 6012 w (can) 4385 6012 w (be) 4549 6012 w (produced) 4669 6012 w (almost instantly with) 720 6132 w 10 /Courier f (cpsys) 1585 6132 w 10 /Times-Roman f (of the root filesystem of one) 1910 6132 w 10 /Courier f (fossil) 3064 6132 w 10 /Times-Roman f (fileserver to another.) 3449 6132 w (The) 970 6288 w (combination) 1162 6288 w (of) 1699 6288 w (these) 1819 6288 w (Advanced) 2061 6288 w (Namespace) 2502 6288 w (ToolS) 2999 6288 w (creates) 3282 6288 w (a) 3596 6288 w (user) 3678 6288 w (environment) 3882 6288 w (where) 4425 6288 w (multiple) 4706 6288 w (machines) 720 6408 w (behave) 1138 6408 w (as) 1460 6408 w (a) 1583 6408 w (tightly) 1667 6408 w (integrated) 1969 6408 w (unit,) 2408 6408 w (but) 2629 6408 w (experience) 2797 6408 w (only) 3268 6408 w (minimal) 3486 6408 w (disruption) 3860 6408 w (when) 4306 6408 w (other) 4562 6408 w (nodes) 4807 6408 w (need) 720 6528 w (to) 934 6528 w (leave) 1038 6528 w (the) 1274 6528 w (grid.) 1422 6528 w (The) 1634 6528 w (user) 1815 6528 w (can) 2007 6528 w (keep) 2171 6528 w (working) 2385 6528 w (with) 2744 6528 w (their) 2948 6528 w (current) 3157 6528 w (data) 3466 6528 w (from) 3659 6528 w (whatever) 3880 6528 w (nodes) 4272 6528 w (are) 4532 6528 w (available) 4680 6528 w (as) 720 6648 w (other) 833 6648 w (nodes) 1068 6648 w (plug) 1331 6648 w (in) 1539 6648 w (or) 1647 6648 w (leave) 1760 6648 w (the) 2000 6648 w (grid.) 2152 6648 w (Current) 2368 6648 w (backups) 2703 6648 w (are) 3060 6648 w (always) 3211 6648 w (available) 3518 6648 w (on) 3908 6648 w (demand) 4038 6648 w (and) 4383 6648 w (the) 4556 6648 w (user) 4707 6648 w (can) 4902 6648 w (re\255root) 720 6768 w (to) 1018 6768 w (a) 1123 6768 w (new) 1194 6768 w (root) 1387 6768 w (on) 1575 6768 w (the) 1702 6768 w (fly.) 1851 6768 w (Persistent) 2014 6768 w (shells) 2430 6768 w (and) 2685 6768 w (text) 2856 6768 w (applications) 3033 6768 w (on) 3543 6768 w (any) 3670 6768 w (node) 3841 6768 w (are) 4062 6768 w (available) 4210 6768 w (from) 4597 6768 w (every) 4819 6768 w (other) 720 6888 w (node.) 983 6888 w (A) 1260 6888 w (detailed) 1390 6888 w (investigation) 1764 6888 w (of) 2339 6888 w (the) 2480 6888 w (components) 2660 6888 w (of) 3201 6888 w (the) 3342 6888 w (toolkit) 3522 6888 w (follows,) 3842 6888 w (beginning) 4225 6888 w (with) 4683 6888 w (the) 4918 6888 w (boot/service namespace.) 720 7008 w cleartomark showpage saveobj restore %%EndPage: 2 2 %%Page: 3 3 /saveobj save def mark 3 pagesetup 10 /Times-Roman f (\255 3 \255) 2797 480 w 10 /Times-Bold f (II. The boot namespace and later namespaces) 720 840 w 10 /Times-Roman f (Here is the namespace of the master process on a rootless box:) 970 996 w (bind #c /dev) 1080 1176 w (bind #ec /dev) 1080 1296 w (bind \255bc #e /env) 1080 1416 w (bind \255c #s /srv) 1080 1536 w (bind \255a #u /dev) 1080 1656 w (bind / /) 1080 1776 w (bind #d /fd) 1080 1896 w (bind #p /proc) 1080 2016 w (bind \255a #\244 /dev) 1080 2136 w (bind \255a #S /dev) 1080 2256 w (bind /net /net) 1080 2376 w (bind \255a #l /net) 1080 2496 w (bind \255a #I /net) 1080 2616 w (bind /bin /bin) 1080 2736 w (bind \255a /boot /bin) 1080 2856 w (cd /) 1080 2976 w (Nothing) 970 3192 w (can) 1337 3192 w (kill) 1514 3192 w (this) 1687 3192 w (shell) 1872 3192 w (except) 2101 3192 w (the) 2401 3192 w (failure) 2563 3192 w (of) 2863 3192 w (the) 2986 3192 w (kernel) 3148 3192 w (itself.) 3437 3192 w (The) 3702 3192 w (tools) 3897 3192 w (compiled) 4132 3192 w (into) 4544 3192 w 10 /Courier f (/boot) 4740 3192 w 10 /Times-Roman f (allow) 720 3312 w (it) 977 3312 w (to) 1068 3312 w (fork) 1181 3312 w (off) 1382 3312 w (new) 1533 3312 w (environments) 1733 3312 w (rooted) 2311 3312 w (to) 2600 3312 w (disk) 2712 3312 w (or) 2913 3312 w (network) 3030 3312 w (resources) 3391 3312 w (without) 3801 3312 w (connecting) 4141 3312 w (to) 4613 3312 w (it) 4725 3312 w (itself.) 4815 3312 w (This) 720 3432 w (master) 927 3432 w (process) 1222 3432 w (can) 1550 3432 w (be) 1717 3432 w (thought) 1840 3432 w (of) 2175 3432 w (as) 2287 3432 w (a) 2399 3432 w ("namespace) 2472 3432 w (hypervisor") 2979 3432 w (which) 3476 3432 w (stays) 3749 3432 w (behind) 3978 3432 w (the) 4279 3432 w (scenes) 4430 3432 w (creating) 4719 3432 w (different) 720 3552 w (namespace) 1092 3552 w (environments.) 1558 3552 w (The) 2156 3552 w (namespace) 2340 3552 w (of) 2806 3552 w (this) 2918 3552 w (master) 3092 3552 w (process) 3387 3552 w (is) 3715 3552 w (create) 3810 3552 w (by) 4075 3552 w (a) 4203 3552 w (rewritten) 4275 3552 w (and) 4663 3552 w (com\255) 4835 3552 w (bined) 720 3672 w 10 /Courier f (boot) 970 3672 w 10 /Times-Roman f (and) 1239 3672 w 10 /Courier f (init) 1412 3672 w 10 /Times-Roman f (which) 1681 3672 w (sets) 1954 3672 w (up) 2133 3672 w (the) 2262 3672 w (kernel\255only) 2413 3672 w (environment.) 2902 3672 w (Once) 3461 3672 w (this) 3700 3672 w (is) 3874 3672 w (done,) 3970 3672 w (the) 4218 3672 w (script) 4369 3672 w 10 /Courier f (plan9rc) 4620 3672 w 10 /Times-Roman f (is) 720 3792 w (forked) 813 3792 w (off) 1099 3792 w (to) 1241 3792 w (take) 1345 3792 w (control of setting up a user environment of services on top of the kernel, but leaving the) 1537 3792 w (main flow of control unattached to those resources.) 720 3912 w 10 /Courier f (plan9rc) 970 4068 w 10 /Times-Roman f (is) 1421 4068 w (a) 1519 4068 w (script) 1594 4068 w (which) 1847 4068 w (acts) 2122 4068 w (as) 2308 4068 w (a) 2422 4068 w (general) 2497 4068 w (purpose) 2821 4068 w (launcher) 3169 4068 w (script) 3544 4068 w (for) 3798 4068 w (self\255contained) 3946 4068 w (Plan) 4543 4068 w (9) 4753 4068 w (envi\255) 4835 4068 w (ronments.) 720 4188 w (It) 1146 4188 w (takes) 1236 4188 w (over) 1470 4188 w (the) 1676 4188 w (work) 1827 4188 w (usually) 2061 4188 w (done) 2379 4188 w (by) 2602 4188 w (the) 2731 4188 w (kernel) 2882 4188 w (to) 3160 4188 w (attach) 3267 4188 w (a) 3534 4188 w (root) 3607 4188 w (fileserver) 3797 4188 w (and) 4202 4188 w (launch) 4374 4188 w (a) 4668 4188 w 10 /Courier f (cpurc) 4740 4188 w 10 /Times-Roman f (or) 720 4308 w 10 /Courier f (termrc.) 839 4308 w 10 /Times-Roman f (It) 1295 4308 w (also) 1392 4308 w (provides) 1589 4308 w (an) 1969 4308 w (optional) 2099 4308 w (interactive) 2463 4308 w (mode) 2920 4308 w (which) 3178 4308 w (has) 3458 4308 w (offers) 3627 4308 w (complete) 3895 4308 w (user) 4297 4308 w (control) 4500 4308 w (of) 4820 4308 w (all) 4940 4308 w (bootup) 720 4428 w (parameters.) 1031 4428 w (Once) 1526 4428 w (an) 1769 4428 w (environment) 1896 4428 w (has) 2434 4428 w (been) 2600 4428 w (launched) 2821 4428 w (it) 3214 4428 w (saves) 3303 4428 w (the) 3551 4428 w (parameters) 3705 4428 w (used) 4174 4428 w (to) 4389 4428 w (its) 4499 4428 w (local) 4626 4428 w (ram\255) 4852 4428 w (disk, allowing the same environment to be spawned again non\255interactively.) 720 4548 w 10 /Courier f (plan9rc) 970 4704 w 10 /Times-Roman f (is) 1417 4704 w (written) 1511 4704 w (to) 1821 4704 w (be) 1926 4704 w (compatible) 2047 4704 w (with) 2518 4704 w (existing) 2723 4704 w (installations) 3067 4704 w (and) 3578 4704 w 10 /Courier f (plan9.ini) 3749 4704 w 10 /Times-Roman f (values) 4316 4704 w (as) 4598 4704 w (much) 4708 4704 w (as) 4957 4704 w (possible.) 720 4824 w (It) 1109 4824 w (is) 1206 4824 w (focused) 1309 4824 w (on) 1655 4824 w (pc) 1791 4824 w (bootup) 1921 4824 w (and) 2235 4824 w (handles) 2415 4824 w (tcp) 2756 4824 w (booting,) 2914 4824 w 10 /Courier f (fossil,) 3281 4824 w (venti,) 3737 4824 w (kfs,) 4133 4824 w 10 /Times-Roman f (and) 4409 4824 w 10 /Courier f (cfs) 4589 4824 w 10 /Times-Roman f (in) 4805 4824 w (the) 4918 4824 w (same) 720 4944 w (manner) 954 4944 w (as) 1282 4944 w (the) 1394 4944 w (conventional) 1545 4944 w (kernel.) 2090 4944 w 10 /Courier f (plan9rc) 2418 4944 w 10 /Times-Roman f (creates) 2867 4944 w (the) 3172 4944 w (foundation) 3323 4944 w (environment) 3785 4944 w (to) 4320 4944 w (allow) 4428 4944 w 10 /Courier f (termrc) 4680 4944 w 10 /Times-Roman f (or) 720 5064 w 10 /Courier f (cpurc) 829 5064 w 10 /Times-Roman f (to) 1155 5064 w (be) 1259 5064 w (run) 1379 5064 w (as) 1538 5064 w (usual,) 1647 5064 w (and) 1909 5064 w (an) 2079 5064 w (existing) 2199 5064 w (standard) 2542 5064 w (Plan) 2906 5064 w (9) 3110 5064 w (install) 3186 5064 w (should perform as usual when launched) 3457 5064 w (in) 720 5184 w (this) 830 5184 w (fashion.) 1007 5184 w (In) 1358 5184 w (this) 1473 5184 w (way) 1650 5184 w (the) 1848 5184 w (rootless) 2003 5184 w (kernel) 2347 5184 w (acts) 2629 5184 w (like) 2817 5184 w (a) 3000 5184 w (foundation) 3077 5184 w (lift) 3543 5184 w (for) 3693 5184 w (a) 3842 5184 w (building) 3919 5184 w (that) 4286 5184 w (lifts) 4469 5184 w (the) 4658 5184 w (entire) 4813 5184 w (structure and installs a new floor at ground level.) 720 5304 w (How) 970 5460 w (does) 1192 5460 w (the) 1403 5460 w (user) 1553 5460 w (access) 1747 5460 w (and) 2029 5460 w (use) 2201 5460 w (this) 2362 5460 w (new) 2536 5460 w (foundation) 2731 5460 w (level) 3193 5460 w (to) 3416 5460 w (give) 3523 5460 w (us) 3724 5460 w (control) 3842 5460 w (over) 4154 5460 w (the) 4360 5460 w (system?) 4511 5460 w (This) 4862 5460 w (is) 720 5580 w (done) 839 5580 w (by) 1085 5580 w (a) 1237 5580 w (small) 1333 5580 w (cpurc\255equivalent) 1602 5580 w (script) 2324 5580 w (named) 2598 5580 w 10 /Courier f (initskel) 2916 5580 w 10 /Times-Roman f (that) 3448 5580 w (may) 3650 5580 w (be) 3874 5580 w (run) 4019 5580 w (by) 4203 5580 w 10 /Courier f (plan9rc.) 4354 5580 w 10 /Times-Roman f (The) 4885 5580 w 10 /Courier f (initskel) 720 5700 w 10 /Times-Roman f (creates) 1234 5700 w (a) 1545 5700 w (miniature) 1624 5700 w (user) 2042 5700 w (environment) 2243 5700 w (rooted) 2783 5700 w (on) 3073 5700 w (a) 3208 5700 w (small) 3287 5700 w (ramdisk,) 3539 5700 w (so) 3921 5700 w (it) 4045 5700 w (is) 4136 5700 w (also) 4238 5700 w (independent) 4434 5700 w (of) 4957 5700 w (any) 720 5820 w (non\255kernel) 893 5820 w (resources.) 1354 5820 w (This) 1784 5820 w (environment) 1991 5820 w (has) 2525 5820 w (a) 2687 5820 w (much) 2760 5820 w (richer) 3011 5820 w (namespace) 3272 5820 w (than) 3737 5820 w (the) 3937 5820 w (core) 4087 5820 w (kernel) 4286 5820 w (control) 4563 5820 w (pro\255) 4874 5820 w (cess) 720 5940 w (but) 918 5940 w (it) 1078 5940 w (is) 1166 5940 w (still) 1265 5940 w (independent) 1448 5940 w (of) 1968 5940 w (any) 2083 5940 w (external) 2260 5940 w (resources.) 2614 5940 w (Compiled) 3048 5940 w (into) 3476 5940 w 10 /Courier f (/boot) 3665 5940 w 10 /Times-Roman f (are) 3998 5940 w (enough) 4152 5940 w (tools) 4479 5940 w (to) 4707 5940 w (allow) 4818 5940 w (this) 720 6060 w (namespace) 896 6060 w (to) 1364 6060 w (run) 1473 6060 w (a) 1637 6060 w 10 /Courier f (cpu) 1712 6060 w 10 /Times-Roman f (listener) 1923 6060 w (\(on) 2248 6060 w (a) 2412 6060 w (non\255standard) 2487 6060 w (port\).) 3039 6060 w (Here) 3289 6060 w (is) 3513 6060 w (what) 3611 6060 w (the) 3836 6060 w (ns) 3989 6060 w (looks) 4109 6060 w (like) 4357 6060 w (after) 4538 6060 w 10 /Courier f (cpu) 4751 6060 w 10 /Times-Roman f (in) 4962 6060 w (on port 17020:) 720 6180 w cleartomark showpage saveobj restore %%EndPage: 3 3 %%Page: 4 4 /saveobj save def mark 4 pagesetup 10 /Times-Roman f (\255 4 \255) 2797 480 w (bind) 1080 900 w (/root /root) 1308 900 w (mount \255ac '#s/ramboot' /root) 1080 1020 w (bind) 1080 1140 w (/ /) 1308 1140 w (bind \255a /root /) 1080 1260 w (mount \255a '#s/ramboot' /) 1080 1380 w (bind \255c /root/mnt /mnt) 1080 1500 w (bind) 1080 1620 w (/boot /boot) 1308 1620 w (mount \255a '#s/bootpaq' /boot) 1080 1740 w ([ standadr kernel binds omitted ]) 1080 1860 w (bind) 1080 1980 w (/n /n) 1308 1980 w (mount \255a '#s/slashn' /n) 1080 2100 w (mount \255a '#s/factotum' /mnt) 1080 2220 w (bind) 1080 2340 w (/bin /bin) 1308 2340 w (bind \255b /boot /bin) 1080 2460 w (mount \255b '#s/bootpaq' /bin) 1080 2580 w (bind \255a /root/bin /bin) 1080 2700 w (bind \255a /root/bin /boot) 1080 2820 w (bind) 1080 2940 w (/net /net) 1308 2940 w (bind \255a '#l' /net) 1080 3060 w (bind \255a '#I' /net) 1080 3180 w (mount \255a '#s/cs' /net) 1080 3300 w (mount \255a '#s/dns' /net) 1080 3420 w (mount) 1080 3540 w ('#s/usb' /n/usb) 1386 3540 w (mount \255a '#s/usb' /dev) 1080 3660 w (mount \255c '#s/hubfs' /n/hubfs) 1080 3780 w (mount \255c '#D/ssl/3/data' /mnt/term) 1080 3900 w (bind \255a /usr/bootes/bin/rc /bin) 1080 4020 w (bind \255a /usr/bootes/bin/386 /bin) 1080 4140 w (bind \255c /usr/bootes/tmp /tmp) 1080 4260 w (bind \255a /mnt/term/mnt/wsys /dev) 1080 4380 w (bind) 1080 4500 w (/mnt/term/dev/cons /dev/cons) 1308 4500 w (bind) 1080 4620 w (/mnt/term/dev/consctl /dev/consctl) 1308 4620 w (bind \255a /mnt/term/dev /dev) 1080 4740 w (cd /usr/bootes) 1080 4860 w (This) 970 5076 w (namespace) 1180 5076 w (is) 1649 5076 w (a) 1748 5076 w (very) 1824 5076 w (important) 2033 5076 w (namespace) 2454 5076 w (in) 2923 5076 w (the) 3033 5076 w (structure) 3187 5076 w (of) 3569 5076 w (the) 3685 5076 w (grid.) 3840 5076 w (It) 4059 5076 w (exists) 4153 5076 w (on) 4414 5076 w (every) 4547 5076 w (single) 4801 5076 w (machine,) 720 5196 w (created) 1111 5196 w (underneath) 1426 5196 w (whichever) 1897 5196 w 10 /Courier f (cpurc) 2340 5196 w 10 /Times-Roman f (or) 2668 5196 w 10 /Courier f (termrc) 2779 5196 w 10 /Times-Roman f (they) 3167 5196 w (run.) 3367 5196 w (This) 3553 5196 w (environment) 3759 5196 w (is) 4292 5196 w (a) 4387 5196 w (perfectly) 4459 5196 w (user\255) 4841 5196 w (friendly namespace, unlike the pure kernel namespace with) 720 5316 w (no) 3112 5316 w (ramdisk) 3238 5316 w (attached.) 3586 5316 w (In) 3969 5316 w (fact,) 4078 5316 w (depending) 4278 5316 w (on) 4720 5316 w (what) 4846 5316 w (is) 720 5436 w (compiled) 815 5436 w (into) 1215 5436 w (the) 1398 5436 w 10 /Courier f (bootpaq) 1547 5436 w 10 /Times-Roman f (and) 1994 5436 w (the) 2165 5436 w (optional) 2314 5436 w 10 /Courier f (tools.tgz) 2669 5436 w 10 /Times-Roman f (contained) 3236 5436 w (in) 3651 5436 w 10 /Courier f (9fat) 3756 5436 w 10 /Times-Roman f (which) 4023 5436 w (may) 4294 5436 w (also) 4493 5436 w (be) 4681 5436 w (added) 4802 5436 w (to) 720 5556 w (the) 824 5556 w (ramdisk,) 972 5556 w (this) 1345 5556 w (environment,) 1516 5556 w (while) 2072 5556 w (slightly) 2320 5556 w (spartan) 2647 5556 w (\(no) 2961 5556 w (manpages,) 3120 5556 w (only) 3570 5556 w (1) 3774 5556 w (or) 3850 5556 w (2) 3959 5556 w (fonts) 4035 5556 w (in) 4261 5556 w 10 /Courier f (/lib) 4365 5556 w 10 /Times-Roman f (\)) 4632 5556 w (is) 4692 5556 w (in) 4786 5556 w (fact) 4891 5556 w (sufficient) 720 5676 w (for) 1127 5676 w (many) 1273 5676 w (tasks.) 1525 5676 w (Furthermore,) 1780 5676 w (since) 2334 5676 w (the) 2569 5676 w (user) 2721 5676 w (is) 2917 5676 w 10 /Courier f (cpu) 3014 5676 w 10 /Times-Roman f (in) 3224 5676 w (as) 3332 5676 w (usual) 3445 5676 w (to) 3686 5676 w (a) 3794 5676 w (new) 3867 5676 w (flow) 4062 5676 w (of) 4274 5676 w (control,) 4386 5676 w (the) 4723 5676 w (user) 4874 5676 w (can) 720 5796 w (freely) 891 5796 w (acquire) 1156 5796 w (new) 1482 5796 w (resources) 1682 5796 w (from) 2092 5796 w (here) 2320 5796 w (without) 2525 5796 w (fear.) 2865 5796 w (If) 3078 5796 w (the) 3178 5796 w 10 /Courier f (cpu) 3334 5796 w 10 /Times-Roman f (environment) 3548 5796 w (breaks,) 4087 5796 w (it) 4406 5796 w (hasnt) 4496 5796 w (harmed) 4741 5796 w (the flow of control it spawned from, the service and utility namespace will be the same on next) 720 5916 w 10 /Courier f (cpu) 4539 5916 w 10 /Times-Roman f (in.) 4744 5916 w (To) 970 6072 w (aid) 1108 6072 w (in) 1257 6072 w (working) 1362 6072 w (using) 1722 6072 w (the) 1966 6072 w (service) 2115 6072 w (namespace) 2424 6072 w (as) 2888 6072 w (a) 2998 6072 w (base,) 3069 6072 w (scripts) 3298 6072 w (are) 3587 6072 w (provided) 3736 6072 w (to) 4119 6072 w (provide) 4225 6072 w (forms) 4558 6072 w (of) 4819 6072 w (re\255) 4930 6072 w (rooting.) 720 6192 w (Some) 1075 6192 w (of) 1344 6192 w (the) 1467 6192 w (simplest) 1629 6192 w (are) 2003 6192 w 10 /Courier f (addwrroot) 2164 6192 w 10 /Times-Roman f (and) 2744 6192 w 10 /Courier f (importwrroot) 2928 6192 w 10 /Times-Roman f (which) 3688 6192 w (target) 3972 6192 w (external) 4239 6192 w (file) 4600 6192 w (or) 4773 6192 w (cpu) 4896 6192 w (servers) 720 6312 w (and) 1029 6312 w (acquire) 1200 6312 w (their) 1520 6312 w (resources) 1730 6312 w (and) 2133 6312 w (bind) 2304 6312 w (them) 2509 6312 w (in) 2736 6312 w (locally) 2842 6312 w (while) 3142 6312 w (still) 3392 6312 w (keeping) 3571 6312 w (the) 3915 6312 w (ramboot) 4065 6312 w (root.) 4426 6312 w (The) 4640 6312 w (binds) 4823 6312 w (are) 720 6432 w (to) 867 6432 w (acquire) 971 6432 w (the) 1290 6432 w 10 /Courier f (bin) 1438 6432 w 10 /Times-Roman f (,) 1644 6432 w 10 /Courier f (lib) 1695 6432 w 10 /Times-Roman f (,) 1901 6432 w 10 /Courier f (sys) 1951 6432 w 10 /Times-Roman f (, and) 2156 6432 w 10 /Courier f (usr) 2375 6432 w 10 /Times-Roman f (directories from the remote system. If the user wishes to fully) 2580 6432 w (attach) 720 6552 w (to) 988 6552 w (a) 1096 6552 w (new) 1170 6552 w (root) 1366 6552 w (while) 1557 6552 w (maintaining) 1809 6552 w (a) 2317 6552 w 10 /Courier f (drawterm) 2391 6552 w 10 /Times-Roman f (or) 2901 6552 w 10 /Courier f (cpu) 3014 6552 w 10 /Times-Roman f (connection,) 3225 6552 w (the) 3719 6552 w (script) 3872 6552 w 10 /Courier f (rerootwin) 4125 6552 w 10 /Times-Roman f (provides) 4696 6552 w (this) 720 6672 w (functionality.) 892 6672 w (This) 1455 6672 w (is) 1660 6672 w (one) 1754 6672 w (of) 1925 6672 w (the) 2035 6672 w (most) 2184 6672 w (important) 2405 6672 w (tools) 2820 6672 w (for) 3041 6672 w (fast) 3183 6672 w (transformation) 3353 6672 w (of) 3967 6672 w (a) 4076 6672 w (user) 4146 6672 w (sub\255environment.) 4338 6672 w 10 /Courier f (rerootwin) 720 6792 w 10 /Times-Roman f (works) 1291 6792 w (by) 1566 6792 w (saving) 1698 6792 w (the) 1991 6792 w (active) 2145 6792 w (devices) 2415 6792 w (with) 2746 6792 w 10 /Courier f (srvfs) 2956 6792 w 10 /Times-Roman f (of) 3288 6792 w 10 /Courier f (/mnt/term) 3403 6792 w 10 /Times-Roman f (and) 3975 6792 w 10 /Courier f (/mnt/wsys) 4151 6792 w 10 /Times-Roman f (,) 4723 6792 w (then) 4780 6792 w (it) 4984 6792 w (uses) 720 6912 w (a) 918 6912 w (custom) 988 6912 w (namespace file to root to a named) 1303 6912 w 10 /Courier f (/srv) 2675 6912 w 10 /Times-Roman f (or network machine, and then re\255acquire the original) 2940 6912 w (devices) 720 7032 w (from) 1050 7032 w (the) 1275 7032 w 10 /Courier f (srvfs) 1428 7032 w 10 /Times-Roman f (to) 1759 7032 w (allow) 1868 7032 w (the) 2122 7032 w (user) 2276 7032 w (to) 2474 7032 w (remain) 2584 7032 w (in) 2893 7032 w (full) 3003 7032 w (control) 3174 7032 w (and) 3489 7032 w (continue) 3665 7032 w (to) 4041 7032 w (run) 4151 7032 w (graphical) 4316 7032 w (applica\255) 4719 7032 w (tions) 720 7152 w (in) 954 7152 w (that) 1071 7152 w (window.) 1260 7152 w (Here) 1646 7152 w (is) 1878 7152 w (what) 1984 7152 w (the) 2217 7152 w (namespace) 2378 7152 w (looks) 2854 7152 w (like) 3110 7152 w (after) 3299 7152 w (the) 3519 7152 w (user) 3679 7152 w (executes) 3883 7152 w 10 /Courier f (cpu) 4264 7152 w 10 /Times-Roman f (into) 4482 7152 w (a) 4676 7152 w (service) 4758 7152 w (namespace,) 720 7272 w (begins) 1209 7272 w 10 /Courier f (grio) 1497 7272 w 10 /Times-Roman f (and) 1764 7272 w (then) 1935 7272 w (opens) 2134 7272 w (a) 2394 7272 w (window) 2465 7272 w (and) 2814 7272 w (runs) 2985 7272 w 10 /Courier f (rerootwin) 3184 7272 w 10 /Times-Roman f (targeting) 3751 7272 w (a) 4133 7272 w (different) 4204 7272 w (machine) 4574 7272 w (on) 4940 7272 w cleartomark showpage saveobj restore %%EndPage: 4 4 %%Page: 5 5 /saveobj save def mark 5 pagesetup 10 /Times-Roman f (\255 5 \255) 2797 480 w (the network:) 720 840 w ([ standard kernel binds omitted ]) 1080 1056 w (bind) 1080 1176 w (/net /net) 1308 1176 w (bind \255a '#l' /net) 1080 1296 w (bind \255a '#I' /net) 1080 1416 w (bind) 1080 1536 w (/net.alt /net.alt) 1308 1536 w (mount \255a '#s/slashn' /net.alt) 1080 1656 w (mount \255c '#s/oldterm.1005' /net.alt/oldterm.1005) 1080 1776 w (mount \255c '#s/oldwsys.1005' /net.alt/oldwsys.1005) 1080 1896 w (bind) 1080 2016 w (/net.alt/oldterm.1005/dev/cons /dev/cons) 1308 2016 w (bind) 1080 2136 w (/net.alt/oldterm.1005/dev/consctl /dev/consctl) 1308 2136 w (bind \255a /net.alt/oldterm.1005/dev /dev) 1080 2256 w (mount \255b '#s/oldwsys.1005' /dev) 1080 2376 w (bind) 1080 2496 w (/mnt /mnt) 1308 2496 w (mount \255a '#s/factotum' /mnt) 1080 2616 w (bind) 1080 2736 w (/root /root) 1308 2736 w (mount \255ac '#s/gridfour' /root) 1080 2856 w (bind) 1080 2976 w (/ /) 1308 2976 w (bind \255a /root /) 1080 3096 w (mount \255a '#s/gridfour' /) 1080 3216 w (bind \255b /root/mnt /mnt) 1080 3336 w (bind) 1080 3456 w (/boot /boot) 1308 3456 w (mount \255a '#s/bootpaq' /boot) 1080 3576 w (bind) 1080 3696 w (/bin /bin) 1308 3696 w (bind \255b /boot /bin) 1080 3816 w (mount \255b '#s/bootpaq' /bin) 1080 3936 w (bind \255a /386/bin /bin) 1080 4056 w (bind \255a /rc/bin /bin) 1080 4176 w (bind) 1080 4296 w (/n /n) 1308 4296 w (mount \255a '#s/slashn' /n) 1080 4416 w (mount \255a '#s/cs' /net) 1080 4536 w (mount \255a '#s/dns' /net) 1080 4656 w (mount \255c '#s/hubfs' /n/hubfs) 1080 4776 w (bind) 1080 4896 w (/mnt/term /mnt/term) 1308 4896 w (mount \255bc '#s/oldterm.1005' /mnt/term) 1080 5016 w (bind) 1080 5136 w (/mnt/wsys /mnt/wsys) 1308 5136 w (mount \255bc '#s/oldwsys.1005' /mnt/wsys) 1080 5256 w (bind \255c /usr/bootes/tmp /tmp) 1080 5376 w (cd /usr/bootes) 1080 5496 w (Using the) 970 5712 w 10 /Courier f (rerootwin) 1381 5712 w 10 /Times-Roman f (script) 1946 5712 w (in) 2194 5712 w (combination) 2298 5712 w (with) 2824 5712 w (the) 3028 5712 w (service) 3176 5712 w (namespace) 3484 5712 w (makes) 3947 5712 w (the) 4228 5712 w (cpu) 4376 5712 w (server) 4546 5712 w (a) 4815 5712 w (true) 4885 5712 w (cpu) 720 5832 w (server,) 899 5832 w (because) 1202 5832 w (the) 1552 5832 w (user) 1708 5832 w (is) 1908 5832 w (no) 2009 5832 w (longer) 2143 5832 w (using) 2432 5832 w (the) 2683 5832 w (cpu's) 2839 5832 w (root) 3089 5832 w (at) 3284 5832 w (all.) 3390 5832 w (The) 3549 5832 w (cpu) 3738 5832 w (is) 3916 5832 w (only) 4017 5832 w (providing) 4229 5832 w (execution) 4652 5832 w (resources) 720 5952 w (at) 1126 5952 w (the) 1228 5952 w (junction) 1380 5952 w (of) 1739 5952 w (two) 1853 5952 w (totally) 2034 5952 w (independent) 2321 5952 w (systems.) 2840 5952 w (By) 3213 5952 w 10 /Courier f (cpu) 3361 5952 w 10 /Times-Roman f (into) 3572 5952 w (the) 3759 5952 w (service) 3912 5952 w (namespace) 4225 5952 w (and) 4693 5952 w (then) 4868 5952 w 10 /Courier f (rerootwin) 720 6072 w 10 /Times-Roman f (to) 1296 6072 w (different) 1410 6072 w (file) 1789 6072 w (servers,) 1958 6072 w (the) 2300 6072 w (user) 2457 6072 w (environment) 2658 6072 w (is) 3198 6072 w (equivalent) 3300 6072 w (to) 3751 6072 w (one) 3864 6072 w (rooted) 4043 6072 w (conventionally) 4333 6072 w (to) 4962 6072 w (that) 720 6192 w (environment,) 919 6192 w (but) 1498 6192 w (without) 1675 6192 w (the) 2030 6192 w (dependency.) 2201 6192 w (If) 2751 6192 w (the) 2866 6192 w (re\255rooted) 3037 6192 w (environment) 3452 6192 w (breaks,) 4007 6192 w (the) 4342 6192 w (user's) 4514 6192 w (active) 4802 6192 w (workspace on the cpu outside the re\255rooted window is unharmed.) 720 6312 w (The) 970 6468 w (use) 1153 6468 w (of) 1314 6468 w (multiple) 1425 6468 w (independent) 1787 6468 w (namespaces,) 2303 6468 w (the) 2832 6468 w (ability) 2982 6468 w (of) 3266 6468 w (the) 3377 6468 w (kernel) 3527 6468 w (to) 3805 6468 w (launch) 3912 6468 w (and) 4207 6468 w (manage) 4380 6468 w (services) 4719 6468 w (without) 720 6588 w (depending) 1055 6588 w (on) 1500 6588 w (a) 1629 6588 w (root) 1702 6588 w (fs,) 1892 6588 w (and) 2018 6588 w (provision) 2191 6588 w (of) 2598 6588 w (needed) 2709 6588 w (programs) 3019 6588 w (in) 3424 6588 w (the) 3530 6588 w 10 /Courier f (bootpaq) 3680 6588 w 10 /Times-Roman f (and) 4128 6588 w 10 /Courier f (tools.tgz) 4300 6588 w 10 /Times-Roman f (give) 4868 6588 w (us) 720 6708 w (the) 836 6708 w (foundation) 985 6708 w (to) 1445 6708 w (make) 1550 6708 w (a) 1793 6708 w (highly) 1864 6708 w (reliable) 2147 6708 w (grid.) 2473 6708 w (How) 2687 6708 w (are) 2909 6708 w (services) 3058 6708 w (built) 3407 6708 w (on) 3619 6708 w (the) 3747 6708 w (platform) 3897 6708 w (the) 4269 6708 w (kernel) 4419 6708 w (provides) 4696 6708 w (to create the desired properties? \(Reliability, redundancy, ease of maintenance and administration.\)) 720 6828 w cleartomark showpage saveobj restore %%EndPage: 5 5 %%Page: 6 6 /saveobj save def mark 6 pagesetup 10 /Times-Roman f (\255 6 \255) 2797 480 w 10 /Times-Bold f (III. Redundant roots on demand: fast system replication and efficient progressive backup) 720 840 w 10 /Times-Roman f (Two) 970 996 w (high\255level) 1198 996 w (scripts) 1648 996 w (provide) 1954 996 w (management) 2304 996 w (of) 2859 996 w (the) 2987 996 w (grid's) 3154 996 w (data) 3432 996 w (flow) 3643 996 w (via) 3872 996 w (the) 4040 996 w (service) 4208 996 w (namespaces:) 4536 996 w 10 /Courier f (ventiprog) 720 1116 w 10 /Times-Roman f (and) 1291 1116 w 10 /Courier f (cpsys.) 1466 1116 w (ventiprog) 1857 1116 w 10 /Times-Roman f (is) 2427 1116 w (run) 2524 1116 w (either) 2687 1116 w (via) 2944 1116 w (a) 3096 1116 w (cronjob,) 3170 1116 w (or) 3530 1116 w (whenver) 3643 1116 w (the) 4016 1116 w (user) 4168 1116 w (wishes) 4364 1116 w (to) 4666 1116 w (update) 4774 1116 w (their) 720 1236 w (backups.) 930 1236 w (It) 1309 1236 w (is) 1397 1236 w (an) 1491 1236 w (efficient) 1612 1236 w (progressive) 1971 1236 w (backup) 2458 1236 w (script) 2773 1236 w (based) 3022 1236 w (on) 3276 1236 w 10 /Courier f (venti/wrarena) 3404 1236 w 10 /Times-Roman f (so) 4212 1236 w (running) 4329 1236 w (the) 4668 1236 w (script) 4818 1236 w (more) 720 1356 w (frequently) 956 1356 w (simply) 1397 1356 w (means) 1701 1356 w (less) 1987 1356 w (data) 2168 1356 w (sent,) 2365 1356 w (more) 2581 1356 w (often.) 2816 1356 w 10 /Courier f (cpsys) 3076 1356 w 10 /Times-Roman f (uses) 3406 1356 w 10 /Courier f (flfmt) 3608 1356 w (\255v) 3938 1356 w 10 /Times-Roman f (to) 4088 1356 w (duplicate) 4196 1356 w (the) 4592 1356 w (state) 4744 1356 w (of) 4957 1356 w (fossils) 720 1476 w (between) 1003 1476 w (systems.) 1362 1476 w (By) 1731 1476 w (using) 1875 1476 w (first) 2119 1476 w 10 /Courier f (ventiprog) 2307 1476 w 10 /Times-Roman f (to) 2874 1476 w (replicate) 2979 1476 w (data) 3349 1476 w (between) 3542 1476 w (ventis,) 3901 1476 w (then) 4192 1476 w 10 /Courier f (cpsys) 4391 1476 w 10 /Times-Roman f (to) 4718 1476 w (clone) 4824 1476 w (a) 720 1596 w (fossil) 790 1596 w (via) 1033 1596 w (the) 1181 1596 w (rootscore, and then setting the) 1329 1596 w 10 /Courier f ($venti) 2555 1596 w 10 /Times-Roman f (environment variable used by the fossil to one of the) 2940 1596 w (backup) 720 1716 w (ventis,) 1042 1716 w (the) 1340 1716 w (user) 1497 1716 w (is) 1698 1716 w (given) 1800 1716 w (a) 2057 1716 w (current) 2136 1716 w (working) 2453 1716 w (copy) 2821 1716 w (of) 3050 1716 w (their) 3168 1716 w (environment) 3386 1716 w (with) 3926 1716 w (a) 4139 1716 w (completely) 4218 1716 w (different) 4697 1716 w (chain of hardware dependencies.) 720 1836 w (The) 970 1992 w (preferred) 1158 1992 w (mode) 1555 1992 w (of) 1810 1992 w (operation) 1926 1992 w (is) 2336 1992 w (to) 2436 1992 w (run) 2547 1992 w (two) 2713 1992 w (ventis) 2897 1992 w (and) 3170 1992 w (two) 3348 1992 w (fossils,) 3532 1992 w (one) 3847 1992 w (per) 4025 1992 w (venti.) 4186 1992 w (One) 4445 1992 w (fossil) 4645 1992 w (and) 4896 1992 w (venti) 720 2112 w (are) 948 2112 w (assigned) 1097 2112 w (the) 1469 2112 w (role) 1619 2112 w (of) 1802 2112 w ('main/future'.) 1913 2112 w (Data) 2498 2112 w (is) 2714 2112 w (backed) 2809 2112 w (up) 3119 2112 w (frequently) 3246 2112 w (between) 3683 2112 w (the) 4042 2112 w (ventis,) 4191 2112 w (and) 4482 2112 w (whenever) 4653 2112 w (desired,) 720 2232 w (the) 1072 2232 w (user) 1233 2232 w (resets) 1438 2232 w (the) 1705 2232 w (rootscore) 1867 2232 w (of) 2278 2232 w (the) 2401 2232 w ('backup/past') 2563 2232 w (fossil.) 3146 2232 w (From) 3428 2232 w (their) 3685 2232 w (terminal,) 3908 2232 w (the) 4306 2232 w (user) 4468 2232 w (can) 4674 2232 w (keep) 4852 2232 w (working) 720 2352 w (with) 1085 2352 w (their) 1295 2352 w (data) 1510 2352 w (if) 1708 2352 w (one) 1801 2352 w (leg) 1977 2352 w (of) 2131 2352 w (the) 2246 2352 w (system) 2400 2352 w (needs) 2710 2352 w (to) 2969 2352 w (be) 3079 2352 w (reset) 3205 2352 w (for) 3424 2352 w (whatever) 3571 2352 w (reason.) 3967 2352 w (In) 4283 2352 w (general) 4397 2352 w (the) 4721 2352 w (user) 4874 2352 w (will) 720 2472 w (work) 904 2472 w (on) 1137 2472 w (the) 1265 2472 w (main/future) 1415 2472 w (fossil) 1909 2472 w (\(probably) 2154 2472 w (via) 2570 2472 w (another) 2720 2472 w (cpu\)) 3047 2472 w (but) 3252 2472 w (has) 3408 2472 w (the) 3569 2472 w (backup/past) 3719 2472 w (available) 4224 2472 w (for) 4613 2472 w (scratch) 4758 2472 w (and) 720 2592 w (testing.) 900 2592 w (Because) 1228 2592 w (this) 1596 2592 w (fossil's) 1777 2592 w (data) 2102 2592 w (flow) 2304 2592 w (dead) 2523 2592 w (ends) 2747 2592 w (unless) 2966 2592 w (it) 3252 2592 w (is) 3344 2592 w (needed) 3447 2592 w (as) 3765 2592 w (a) 3884 2592 w (backup,) 3964 2592 w (it) 4313 2592 w (can) 4404 2592 w (be) 4577 2592 w (used) 4706 2592 w (for) 4924 2592 w (destructive tests.) 720 2712 w (A) 970 2868 w (core) 1070 2868 w (concept) 1270 2868 w (is) 1609 2868 w (focusing) 1705 2868 w (on) 2078 2868 w 10 /Courier f (venti) 2207 2868 w 10 /Times-Roman f (and) 2536 2868 w (rootscores) 2709 2868 w (as) 3148 2868 w (the) 3260 2868 w (essence) 3411 2868 w (of) 3744 2868 w (the) 3856 2868 w (user) 4007 2868 w (environment,) 4202 2868 w (not) 4761 2868 w (the) 4918 2868 w (on\255disk) 720 2988 w 10 /Courier f (fossil) 1046 2988 w 10 /Times-Roman f (buffers.) 1432 2988 w 10 /Courier f (Fossil) 1765 2988 w 10 /Times-Roman f (is) 2151 2988 w (thought of as a convenient way of reading and writing) 2244 2988 w 10 /Courier f (venti) 4429 2988 w 10 /Times-Roman f (blocks,) 4754 2988 w (not) 720 3108 w (as) 886 3108 w (a) 1008 3108 w (long\255term) 1091 3108 w (reliable) 1524 3108 w (storage) 1862 3108 w (system.) 2189 3108 w (The) 2531 3108 w 10 /Courier f (fossilize) 2725 3108 w 10 /Times-Roman f (script) 3304 3108 w (takes) 3565 3108 w (the) 3809 3108 w (most) 3970 3108 w (recent) 4204 3108 w (rootscore) 4486 3108 w (and) 4896 3108 w (appends) 720 3228 w (it) 1079 3228 w (to) 1167 3228 w (a) 1277 3228 w (file) 1353 3228 w (stored) 1518 3228 w (in) 1794 3228 w (the) 1904 3228 w (9fat.) 2057 3228 w (Once) 2268 3228 w (a) 2509 3228 w (fossil) 2584 3228 w (file) 2832 3228 w (exists) 2996 3228 w (\(usually) 3255 3228 w (as) 3608 3228 w (a) 3722 3228 w (drive) 3797 3228 w (partition\)) 4033 3228 w (the) 4436 3228 w 10 /Courier f (flfmt) 4589 3228 w (\255v) 4920 3228 w 10 /Times-Roman f (operation) 720 3348 w (is) 1130 3348 w (almost) 1230 3348 w (instantaneous.) 1530 3348 w (The) 2132 3348 w (use) 2320 3348 w (of) 2486 3348 w (frequent) 2602 3348 w 10 /Courier f (flfmt) 2967 3348 w (\255v) 3300 3348 w 10 /Times-Roman f (keeps) 3453 3348 w (fossils) 3713 3348 w (small) 4002 3348 w (and) 4252 3348 w (bypasses) 4429 3348 w (many) 4818 3348 w (issues) 720 3468 w (historically) 1000 3468 w (associated) 1491 3468 w (with) 1942 3468 w 10 /Courier f (fossil) 2161 3468 w 10 /Times-Roman f (and) 2562 3468 w 10 /Courier f (venti) 2747 3468 w 10 /Times-Roman f (coordination.) 3088 3468 w (A) 3659 3468 w (valid) 3771 3468 w (rootscore) 4011 3468 w (in) 4422 3468 w (combination) 4540 3468 w (with) 720 3588 w (multiple) 929 3588 w (ventis) 1294 3588 w (hosting) 1564 3588 w (those) 1890 3588 w (datablocks) 2132 3588 w (means) 2590 3588 w (that) 2876 3588 w (any) 3057 3588 w (reliability) 3232 3588 w (issues) 3652 3588 w (with) 3923 3588 w 10 /Courier f (fossil) 4133 3588 w 10 /Times-Roman f (on\255disk) 4525 3588 w (stor\255) 4857 3588 w (age) 720 3708 w (has) 887 3708 w (little) 1049 3708 w (impact) 1261 3708 w (on) 1561 3708 w (the) 1689 3708 w (user.) 1839 3708 w (Any) 2058 3708 w (fossil) 2258 3708 w (that) 2503 3708 w ('goes) 2681 3708 w (bad') 2925 3708 w (is) 3130 3708 w (simply) 3225 3708 w 10 /Courier f (flfmt) 3526 3708 w (\255v.) 3854 3708 w 10 /Times-Roman f (Only) 4062 3708 w (the) 4290 3708 w (integrity) 4440 3708 w (of) 4807 3708 w (the) 4918 3708 w 10 /Courier f (venti) 720 3828 w 10 /Times-Roman f (blocks) 1058 3828 w (is) 1357 3828 w (important,) 1462 3828 w (and) 1914 3828 w 10 /Courier f (venti) 2096 3828 w 10 /Times-Roman f (and) 2434 3828 w (it's) 2616 3828 w (administrative) 2782 3828 w (tools) 3392 3828 w (have) 3625 3828 w (been) 3851 3828 w (reliable) 4077 3828 w (in) 4414 3828 w (this) 4530 3828 w (author's) 4713 3828 w (experience.) 720 3948 w (The) 970 4104 w (early) 1152 4104 w (boot) 1378 4104 w (environment) 1583 4104 w (runs) 2116 4104 w (an) 2316 4104 w 10 /Courier f (rx) 2438 4104 w 10 /Times-Roman f (listener) 2586 4104 w (to) 2908 4104 w (allow) 3014 4104 w (the) 3264 4104 w (data) 3414 4104 w (replication) 3608 4104 w (and) 4063 4104 w (other) 4235 4104 w (administrative) 4468 4104 w (tools) 720 4224 w (to) 947 4224 w (be) 1057 4224 w (executed) 1183 4224 w (easily) 1569 4224 w (from) 1834 4224 w (other) 2060 4224 w (nodes) 2297 4224 w (or) 2562 4224 w (via) 2677 4224 w 10 /Courier f (cron.) 2831 4224 w 10 /Times-Roman f (Testing) 3163 4224 w (revealed) 3495 4224 w (an) 3864 4224 w (issue) 3990 4224 w (which) 4221 4224 w (compromised) 4496 4224 w (reliability) 720 4344 w (in) 1140 4344 w (the) 1249 4344 w (case) 1402 4344 w (of) 1605 4344 w (failure:) 1720 4344 w 10 /Courier f (factotum) 2040 4344 w 10 /Times-Roman f (tries) 2552 4344 w (to) 2756 4344 w (acquire) 2866 4344 w 10 /Courier f (/srv/cs) 3191 4344 w 10 /Times-Roman f (,) 3643 4344 w (and) 3700 4344 w (the) 3876 4344 w (connection) 4030 4344 w (server) 4500 4344 w (is) 4775 4344 w (run\255) 4874 4344 w (ning) 720 4464 w (in) 927 4464 w (a) 1034 4464 w (standard) 1107 4464 w (rooted) 1474 4464 w (environment,) 1758 4464 w (if) 2317 4464 w (the) 2407 4464 w (connection) 2558 4464 w (server) 3024 4464 w (goes) 3295 4464 w (down,) 3506 4464 w 10 /Courier f (factotum) 3781 4464 w 10 /Times-Roman f (will) 4289 4464 w (time) 4473 4464 w (out) 4679 4464 w (wait\255) 4835 4464 w (ing) 720 4584 w (for) 878 4584 w (the) 1024 4584 w (connection) 1176 4584 w (server) 1644 4584 w (to) 1917 4584 w (help) 2025 4584 w (it) 2227 4584 w (authdial.) 2313 4584 w (To) 2690 4584 w (avoid) 2831 4584 w (this,) 3083 4584 w (one) 3283 4584 w (can) 3457 4584 w (either) 3625 4584 w (host) 3882 4584 w 10 /Courier f (cs) 4080 4584 w 10 /Times-Roman f (and) 4231 4584 w 10 /Courier f (dns) 4406 4584 w 10 /Times-Roman f (also) 4617 4584 w (in) 4809 4584 w (the) 4918 4584 w ("rootless") 720 4704 w (environment,) 1151 4704 w (or) 1718 4704 w (use) 1838 4704 w 10 /Courier f (factotum) 2008 4704 w 10 /Times-Roman f (with) 2525 4704 w (the) 2740 4704 w (new) 2899 4704 w 10 /Courier f (\255x) 3102 4704 w 10 /Times-Roman f (option,) 3259 4704 w (which) 3577 4704 w (prohibits) 3858 4704 w (it) 4251 4704 w (from) 4344 4704 w (mounting) 4575 4704 w (a) 4996 4704 w 10 /Courier f (cs.) 720 4824 w 10 /Times-Roman f (In this case,) 925 4824 w 10 /Courier f (factotum) 1424 4824 w 10 /Times-Roman f (simply uses the auth server provided as a parameter with the) 1929 4824 w 10 /Courier f (\255a) 4366 4824 w 10 /Times-Roman f (flag.) 4511 4824 w (In) 970 4980 w (this) 1085 4980 w (way) 1262 4980 w (isolation) 1460 4980 w (of) 1837 4980 w (function) 1952 4980 w (and) 2318 4980 w (access) 2495 4980 w (of) 2782 4980 w (the) 2898 4980 w (ram/paq) 3053 4980 w (namespace) 3413 4980 w (from) 3883 4980 w (the) 4110 4980 w (standard) 4265 4980 w (user) 4636 4980 w (envi\255) 4835 4980 w (ronment) 720 5100 w (is) 1090 5100 w (established.) 1194 5100 w (This) 1700 5100 w (allows) 1915 5100 w (the) 2213 5100 w 10 /Courier f (plan9rc) 2372 5100 w 10 /Times-Roman f (script) 2829 5100 w (to) 3088 5100 w (function) 3202 5100 w (as) 3571 5100 w (a) 3690 5100 w (namespace) 3770 5100 w (launcher) 4243 5100 w (which) 4622 5100 w (can) 4902 5100 w (start multiple) 720 5220 w 10 /Courier f (cpurc) 1276 5220 w 10 /Times-Roman f (or) 1601 5220 w 10 /Courier f (termrc) 1709 5220 w 10 /Times-Roman f (on the same machine, each with a different root.) 2094 5220 w 10 /Times-Bold f (IIII. User namespace management: multiple roots and writable /proc/*/ns) 720 5496 w 10 /Times-Roman f (Because the main flow of control) 970 5652 w (launches) 2324 5652 w (the) 2699 5652 w (root) 2847 5652 w (environment) 3034 5652 w (using) 3565 5652 w 10 /Courier f (newns) 3808 5652 w 10 /Times-Roman f (but) 4134 5652 w (stays) 4288 5652 w (separate,) 4514 5652 w (it) 4891 5652 w (is) 4973 5652 w (possible) 720 5772 w (to) 1085 5772 w (run) 1200 5772 w (the) 1370 5772 w 10 /Courier f (plan9rc) 1529 5772 w 10 /Times-Roman f (script) 1986 5772 w (multiple) 2245 5772 w (times) 2616 5772 w (to) 2870 5772 w (run) 2985 5772 w (the) 3154 5772 w 10 /Courier f (cpurc/termrc) 3312 5772 w 10 /Times-Roman f (from) 4068 5772 w (different) 4298 5772 w (root) 4677 5772 w (file\255) 4874 5772 w (servers.) 720 5892 w (One) 1055 5892 w (example) 1249 5892 w (would) 1615 5892 w (be) 1893 5892 w (doing) 2015 5892 w (the) 2271 5892 w (initial) 2421 5892 w 10 /Courier f (plan9rc) 2683 5892 w 10 /Times-Roman f (script) 3131 5892 w (in) 3381 5892 w (the) 3487 5892 w (manner) 3637 5892 w (of) 3964 5892 w (a) 4075 5892 w (tcp) 4147 5892 w (booted) 4298 5892 w (cpu) 4599 5892 w (server,) 4772 5892 w (serving) 720 6012 w (a) 1049 6012 w (cpu) 1128 6012 w (envionment) 1307 6012 w (rooted) 1814 6012 w (on) 2104 6012 w (a) 2239 6012 w (remote) 2318 6012 w (fs,) 2630 6012 w (and) 2762 6012 w (then) 2941 6012 w (rerunning) 3147 6012 w 10 /Courier f (plan9rc) 3569 6012 w 10 /Times-Roman f (and) 4023 6012 w (launching) 4201 6012 w (a) 4629 6012 w (terminal) 4707 6012 w (environment from a local disk fs.) 720 6132 w (An) 970 6288 w (example) 1119 6288 w (of) 1484 6288 w (this) 1594 6288 w (flow) 1766 6288 w (is) 1976 6288 w (included) 2070 6288 w (in) 2441 6288 w (the) 2547 6288 w 10 /Courier f (multiboot.txt) 2697 6288 w 10 /Times-Roman f (and) 3505 6288 w 10 /Courier f (multibootns.txt) 3677 6288 w 10 /Times-Roman f (files.) 4605 6288 w (After) 4830 6288 w (the) 720 6408 w 10 /Courier f (plan9rc) 875 6408 w 10 /Times-Roman f (script) 1328 6408 w (runs) 1583 6408 w (and) 1788 6408 w (sets) 1965 6408 w (up) 2148 6408 w (a) 2281 6408 w (normal) 2358 6408 w (tcp) 2674 6408 w (boot) 2829 6408 w (cpu) 3040 6408 w (server) 3217 6408 w (environment,) 3493 6408 w (the) 4056 6408 w (user) 4211 6408 w (issues) 4410 6408 w (the) 4681 6408 w (com\255) 4835 6408 w (mands:) 720 6528 w (mv /srv/boot /srv/tcpboot) 1080 6744 w (# standard namespace files look for /boot so make it available) 2330 6744 w (interactive=yes) 1080 6864 w (# if this value was not set by plan9.ini) 2330 6864 w (plan9rc) 1080 6984 w (# run the plan9rc script and this time create a terminal environment) 2330 6984 w cleartomark showpage saveobj restore %%EndPage: 6 6 %%Page: 7 7 /saveobj save def mark 7 pagesetup 10 /Times-Roman f (\255 7 \255) 2797 480 w (On) 970 840 w (the) 1127 840 w (second) 1284 840 w (run) 1596 840 w (of) 1764 840 w (the) 1883 840 w 10 /Courier f (plan9rc) 2041 840 w 10 /Times-Roman f (script,) 2497 840 w (the) 2780 840 w (user) 2938 840 w (answers) 3140 840 w ("clear") 3497 840 w (to) 3808 840 w (almost) 3922 840 w (all) 4225 840 w (prompts) 4361 840 w (because) 4725 840 w (those) 720 960 w (services) 964 960 w (and) 1318 960 w (actions) 1495 960 w (have) 1811 960 w (already) 2032 960 w (been) 2358 960 w (taken.) 2579 960 w (The) 2853 960 w (user) 3041 960 w (provides) 3240 960 w (the) 3617 960 w (new) 3772 960 w (root) 3970 960 w (from) 4163 960 w (the) 4389 960 w (local) 4543 960 w (disk) 4769 960 w (fs) 4968 960 w (and) 720 1080 w (chooses) 901 1080 w (terminal) 1254 1080 w (to) 1624 1080 w (start) 1739 1080 w (the) 1948 1080 w (termrc,) 2107 1080 w (and) 2429 1080 w (now) 2610 1080 w (the) 2819 1080 w (machine) 2978 1080 w (initiates) 3353 1080 w (a) 3707 1080 w (standard) 3788 1080 w (terminal) 4164 1080 w (for) 4535 1080 w (the) 4689 1080 w (user.) 4849 1080 w (However,) 720 1200 w (the) 1141 1200 w (tcp) 1294 1200 w (boot) 1447 1200 w (cpu) 1656 1200 w (namespace) 1831 1200 w (is) 2298 1200 w (still) 2395 1200 w (available.) 2576 1200 w (The) 2991 1200 w (user) 3176 1200 w (can) 3372 1200 w 10 /Courier f (cpu) 3540 1200 w (\255h) 3750 1200 w (tcp!localhost!17060) 3900 1200 w 10 /Times-Roman f (to) 720 1320 w (the) 830 1320 w (ram/paq) 984 1320 w (namespace,) 1343 1320 w (then) 1837 1320 w 10 /Courier f (rerootwin) 2041 1320 w (tcpboot.) 2613 1320 w 10 /Times-Roman f (Now) 3125 1320 w (if) 3351 1320 w (the) 3445 1320 w (user) 3600 1320 w (starts) 3799 1320 w 10 /Courier f (grio) 4043 1320 w 10 /Times-Roman f (and) 4316 1320 w (maximizes) 4493 1320 w (it,) 4959 1320 w (the) 720 1440 w (user) 870 1440 w (has) 1064 1440 w (a) 1225 1440 w (namespace) 1297 1440 w (exactly) 1762 1440 w (identical) 2077 1440 w (to) 2448 1440 w 10 /Courier f (cpu) 2553 1440 w 10 /Times-Roman f (to) 2760 1440 w (a) 2865 1440 w (remote) 2936 1440 w (tcp) 3240 1440 w (boot) 3389 1440 w (cpu) 3594 1440 w (server) 3765 1440 w (attached) 4035 1440 w (to) 4394 1440 w (a) 4499 1440 w (remote) 4570 1440 w (file\255) 4874 1440 w (server) 720 1560 w (\255) 991 1560 w (except) 1052 1560 w (it) 1340 1560 w (is) 1425 1560 w (was) 1521 1560 w (created) 1705 1560 w (by) 2021 1560 w 10 /Courier f (cpu) 2150 1560 w 10 /Times-Roman f (into) 2359 1560 w (another) 2544 1560 w (namespace) 2872 1560 w (hosted) 3338 1560 w (on) 3628 1560 w (the) 3757 1560 w (local) 3908 1560 w (terminal.) 4131 1560 w (One) 4518 1560 w (interest\255) 4713 1560 w (ing) 720 1680 w (fact) 882 1680 w (to) 1065 1680 w (note) 1177 1680 w (is) 1383 1680 w (that) 1484 1680 w (due) 1668 1680 w (to) 1846 1680 w (the) 1958 1680 w 10 /Courier f (mv) 2114 1680 w 10 /Times-Roman f (of) 2268 1680 w (the) 2385 1680 w 10 /Courier f (/srv) 2541 1680 w 10 /Times-Roman f (,) 2815 1680 w (unless) 2874 1680 w (the) 3158 1680 w (user) 3314 1680 w (has) 3514 1680 w (changed) 3680 1680 w (the) 4045 1680 w 10 /Courier f (/lib/namespace) 4200 1680 w 10 /Times-Roman f (files) 720 1800 w (to) 920 1800 w (non\255default) 1026 1800 w (settings) 1514 1800 w (for) 1848 1800 w (the) 1992 1800 w (boot/root) 2142 1800 w (mounts,) 2537 1800 w (the) 2885 1800 w 10 /Courier f (cpu) 3035 1800 w 10 /Times-Roman f (listener) 3244 1800 w (started) 3567 1800 w (by) 3862 1800 w (the) 3991 1800 w 10 /Courier f (cpurc) 4142 1800 w 10 /Times-Roman f (now) 4471 1800 w (results) 4672 1800 w (in) 4962 1800 w 10 /Courier f (cpu) 720 1920 w 10 /Times-Roman f (into the terminal namespace, because that is what is located at) 925 1920 w 10 /Courier f (/srv/boot.) 3426 1920 w 10 /Times-Roman f (To) 970 2076 w (demonstrate) 1118 2076 w (that) 1643 2076 w (these) 1831 2076 w (principles) 2074 2076 w (work) 2506 2076 w (for) 2749 2076 w (even) 2903 2076 w (more) 3129 2076 w (strongly) 3372 2076 w (diverging) 3738 2076 w (namespaces,) 4159 2076 w (a) 4698 2076 w (test) 4780 2076 w (of) 4957 2076 w (using) 720 2196 w 10 /Courier f (plan9rc) 976 2196 w 10 /Times-Roman f (to) 1435 2196 w (launch) 1552 2196 w (both) 1857 2196 w (9front) 2074 2196 w (and) 2357 2196 w (Bell) 2540 2196 w (Labs) 2746 2196 w (user) 2979 2196 w (environments) 3184 2196 w (simultaneously) 3767 2196 w (was) 4412 2196 w (conducted.) 4605 2196 w (Both) 720 2316 w (can) 949 2316 w (coexist) 1121 2316 w (on) 1438 2316 w (the) 1572 2316 w (same) 1728 2316 w (machine) 1967 2316 w (as) 2339 2316 w (normal) 2456 2316 w (self) 2773 2316 w (sufficient) 2951 2316 w (environments) 3362 2316 w (without) 3941 2316 w (competing) 4282 2316 w (and) 4739 2316 w (the) 4918 2316 w (user can even create a mixed namespace that has elements of each.) 720 2436 w (This) 970 2592 w (points) 1174 2592 w (to) 1445 2592 w (the) 1549 2592 w (next) 1697 2592 w (component) 1896 2592 w (of) 2367 2592 w (the) 2477 2592 w (toolkit) 2626 2592 w (for) 2915 2592 w (working) 3058 2592 w (in) 3418 2592 w (and) 3523 2592 w (controlling) 3694 2592 w (divergent) 4160 2592 w (namespaces) 4564 2592 w (\255) 720 2712 w (the) 790 2712 w (writable) 949 2712 w 10 /Courier f (/proc/*/ns) 1313 2712 w 10 /Times-Roman f (kernel) 1950 2712 w (modification) 2236 2712 w (and) 2784 2712 w (the) 2965 2712 w 10 /Courier f (addns) 3124 2712 w (subns) 3461 2712 w 10 /Times-Roman f (,) 3798 2712 w (and) 3860 2712 w 10 /Courier f (cpns) 4040 2712 w 10 /Times-Roman f (scripts.) 4316 2712 w (With) 4638 2712 w (pro\255) 4874 2712 w (cesses) 720 2832 w (operating) 1005 2832 w (in) 1418 2832 w (many) 1532 2832 w (different) 1790 2832 w (namespaces,) 2169 2832 w (it) 2706 2832 w (may) 2799 2832 w (be) 3008 2832 w (useful) 3139 2832 w (or) 3420 2832 w (necessary) 3540 2832 w (to) 3964 2832 w (modify) 4079 2832 w (the) 4405 2832 w (mounts) 4564 2832 w (and) 4896 2832 w (binds) 720 2952 w (of) 969 2952 w (running) 1084 2952 w (services) 1427 2952 w (\255) 1780 2952 w (but) 1845 2952 w (most) 2005 2952 w (services) 2232 2952 w (do) 2585 2952 w (not) 2717 2952 w (provide) 2877 2952 w (a) 3214 2952 w (method) 3290 2952 w (for) 3622 2952 w (doing) 3770 2952 w (so.) 4030 2952 w (From) 4176 2952 w (a) 4425 2952 w (shell) 4501 2952 w (the) 4721 2952 w (user) 4874 2952 w (can) 720 3072 w (issue) 892 3072 w (namespace) 1126 3072 w (commands,) 1597 3072 w (and) 2089 3072 w (some) 2267 3072 w (programs) 2512 3072 w (such) 2923 3072 w (as) 3140 3072 w 10 /Courier f (acme) 3257 3072 w 10 /Times-Roman f (provide) 3531 3072 w (tools) 3870 3072 w (\(Local\)) 4099 3072 w (to) 4427 3072 w (change) 4540 3072 w (their) 4857 3072 w (namespace,) 720 3192 w (but) 1213 3192 w (as) 1372 3192 w (a) 1486 3192 w (general) 1560 3192 w (rule) 1883 3192 w (standard) 2068 3192 w (plan) 2436 3192 w (9) 2638 3192 w (only) 2718 3192 w (allows) 2926 3192 w (the) 3217 3192 w (user) 3369 3192 w (to) 3565 3192 w (actively) 3673 3192 w (modify) 4019 3192 w (the) 4338 3192 w (namespace) 4490 3192 w (of) 4957 3192 w (shells, the "system\255wide" namespace of services remains mostly constant after they are started.) 720 3312 w (The) 970 3468 w (writable) 1154 3468 w (ns) 1510 3468 w (provides) 1628 3468 w (a) 2001 3468 w (simple) 2074 3468 w (and) 2370 3468 w (direct) 2543 3468 w (mechanism) 2800 3468 w (to) 3285 3468 w (allow) 3393 3468 w (modifications) 3645 3468 w (of) 4225 3468 w (the) 4338 3468 w (namespace) 4490 3468 w (of) 4957 3468 w (any) 720 3588 w (process) 891 3588 w (owned) 1216 3588 w (by) 1508 3588 w (the) 1634 3588 w (user,) 1782 3588 w (including) 1999 3588 w (processes) 2403 3588 w (on) 2811 3588 w (remote) 2937 3588 w (nodes) 3240 3588 w (via) 3499 3588 w (import) 3647 3588 w (of) 3940 3588 w 10 /Courier f (/proc.) 4049 3588 w 10 /Times-Roman f (Simply) 4435 3588 w (writing) 4751 3588 w (the) 720 3708 w (same) 874 3708 w (text) 1111 3708 w (string) 1293 3708 w (as) 1553 3708 w (used) 1668 3708 w (by) 1883 3708 w (the) 2015 3708 w (namespace) 2169 3708 w (file) 2638 3708 w (or) 2803 3708 w (interactive) 2918 3708 w (shells) 3371 3708 w (to) 3631 3708 w 10 /Courier f (/proc/*/ns) 3742 3708 w 10 /Times-Roman f (will) 4375 3708 w (perform) 4564 3708 w (the) 4918 3708 w (namespace) 720 3828 w (modification) 1184 3828 w (on) 1721 3828 w (that) 1847 3828 w (program) 2023 3828 w (equivalent) 2387 3828 w (to) 2829 3828 w (it) 2933 3828 w (issuing) 3015 3828 w (that) 3325 3828 w (command) 3501 3828 w (itself.) 3921 3828 w (In) 4172 3828 w (this) 4281 3828 w (way) 4452 3828 w (the) 4644 3828 w (ns) 4792 3828 w (file) 4907 3828 w (becomes more tightly mapped to) 720 3948 w (the) 2056 3948 w (process) 2204 3948 w (namespace.) 2529 3948 w (The) 3017 3948 w (action) 3198 3948 w (of) 3468 3948 w (writing) 3577 3948 w (namespace) 3892 3948 w (commands) 4355 3948 w (to) 4814 3948 w (the) 4918 3948 w (namespace) 720 4068 w (file) 1190 4068 w (with) 1356 4068 w 10 /Courier f (echo) 1567 4068 w 10 /Times-Roman f (commands) 1839 4068 w (is) 2304 4068 w (simple) 2403 4068 w (and) 2702 4068 w (natural) 2878 4068 w (and) 3187 4068 w (provides) 3363 4068 w (full) 3739 4068 w (generality.) 3910 4068 w (The) 4366 4068 w (exception) 4553 4068 w (is) 4973 4068 w (mounts) 720 4188 w (requiring) 1044 4188 w (authentication,) 1439 4188 w (which) 2060 4188 w (are) 2334 4188 w (not) 2485 4188 w (performed.) 2643 4188 w (This) 3113 4188 w (restriction) 3321 4188 w (can) 3756 4188 w (be) 3924 4188 w (worked) 4048 4188 w (around) 4377 4188 w (by) 4684 4188 w (creat\255) 4814 4188 w (ing) 720 4308 w (a) 878 4308 w 10 /Courier f (srvfs) 952 4308 w 10 /Times-Roman f (of) 1282 4308 w (any) 1395 4308 w (authentication\255required) 1569 4308 w (mounts) 2530 4308 w (so) 2855 4308 w (the) 2974 4308 w (non\255authed) 3126 4308 w 10 /Courier f (/srv) 3605 4308 w 10 /Times-Roman f (on) 3875 4308 w (the) 4004 4308 w (local) 4155 4308 w (machine) 4378 4308 w (may) 4745 4308 w (be) 4946 4308 w (acquired.) 720 4428 w (The) 970 4584 w (generality) 1155 4584 w (of) 1584 4584 w (this) 1697 4584 w (mechanism) 1872 4584 w (allows) 2357 4584 w (it) 2648 4584 w (to) 2734 4584 w (be) 2842 4584 w (used) 2966 4584 w (as) 3179 4584 w (the) 3292 4584 w (foundation) 3445 4584 w (for) 3909 4584 w (another) 4056 4584 w (level) 4386 4584 w (of) 4611 4584 w (abstrac\255) 4725 4584 w (tion) 720 4704 w (\255) 902 4704 w (scripts) 961 4704 w (which) 1248 4704 w (perform) 1518 4704 w (namespace) 1865 4704 w (operations en masse on target processes. The) 2328 4704 w 10 /Courier f (addns) 4146 4704 w 10 /Times-Roman f (,) 4471 4704 w 10 /Courier f (subns) 4521 4704 w 10 /Times-Roman f (, and) 4846 4704 w 10 /Courier f (cpns) 720 4824 w 10 /Times-Roman f (scripts) 991 4824 w (perform) 1283 4824 w (simple) 1635 4824 w (comparisons) 1933 4824 w (on) 2469 4824 w (the) 2600 4824 w (contents) 2753 4824 w (of) 3117 4824 w (process) 3231 4824 w (namespaces) 3561 4824 w (and) 4068 4824 w (make) 4243 4824 w (modifications) 4490 4824 w (accordingly.) 720 4944 w (It) 1252 4944 w (should) 1349 4944 w (be) 1652 4944 w (noted) 1782 4944 w (that) 2040 4944 w (the) 2226 4944 w (scripts) 2384 4944 w (in) 2681 4944 w (their) 2795 4944 w (current) 3014 4944 w (state) 3331 4944 w (do) 3549 4944 w (not) 3684 4944 w (parse) 3847 4944 w (and) 4092 4944 w (understand) 4271 4944 w (the) 4744 4944 w (full) 4901 4944 w ('graph/tree') 720 5064 w (structure) 1225 5064 w (of) 1609 5064 w (namespaces) 1727 5064 w (so) 2238 5064 w (their) 2362 5064 w (modifcations) 2580 5064 w (are) 3137 5064 w (somewhat) 3294 5064 w (naive.) 3735 5064 w (This) 4012 5064 w (is) 4226 5064 w (not) 4329 5064 w (a) 4493 5064 w (limit) 4573 5064 w (of) 4799 5064 w (the) 4918 5064 w (writable) 720 5184 w (ns) 1074 5184 w (modification,) 1190 5184 w (more) 1753 5184 w (sophisticated) 1984 5184 w (tools) 2532 5184 w (should) 2753 5184 w (be) 3046 5184 w (able) 3166 5184 w (to) 3358 5184 w (do) 3462 5184 w (perfect) 3588 5184 w (rewrites) 3890 5184 w (of) 4237 5184 w (the) 4346 5184 w (namespace) 4494 5184 w (of) 4957 5184 w (the) 720 5304 w (target) 870 5304 w (process,) 1125 5304 w (but) 1477 5304 w (doing) 1633 5304 w (this) 1889 5304 w (requires) 2062 5304 w (understanding) 2411 5304 w (the) 3005 5304 w (dependencies) 3155 5304 w (of) 3720 5304 w (later) 3832 5304 w (binds) 4038 5304 w (on) 4284 5304 w (previous) 4413 5304 w (opera\255) 4786 5304 w (tions.) 720 5424 w (The) 971 5424 w (current) 1157 5424 w (scripts) 1470 5424 w (simply) 1762 5424 w (compare) 2066 5424 w (the) 2440 5424 w (ns) 2593 5424 w (files) 2713 5424 w (for) 2916 5424 w (matching) 3063 5424 w (and) 3466 5424 w (non\255matching) 3641 5424 w (lines) 4227 5424 w (and) 4447 5424 w (use) 4622 5424 w (this) 4786 5424 w (to) 4962 5424 w (generate) 720 5544 w (a) 1092 5544 w (list) 1171 5544 w (of) 1329 5544 w (actions.) 1447 5544 w (In) 1790 5544 w (practice,) 1908 5544 w (this) 2283 5544 w (mechanism) 2463 5544 w (is) 2953 5544 w (capable) 3055 5544 w (of) 3394 5544 w (performing) 3512 5544 w (even) 3996 5544 w (dramatic) 4219 5544 w (namespace) 4603 5544 w (modifications,) 720 5664 w (and) 1321 5664 w (the) 1491 5664 w (user) 1639 5664 w (can) 1831 5664 w (always) 1995 5664 w (make) 2298 5664 w (additional) 2540 5664 w (changes) 2966 5664 w (or) 3313 5664 w (modify) 3422 5664 w (the) 3737 5664 w (actions) 3885 5664 w (of) 4194 5664 w (the) 4303 5664 w (script by using) 4451 5664 w (the) 720 5784 w 10 /Courier f (\255t) 879 5784 w 10 /Times-Roman f (flag) 1036 5784 w (to) 1228 5784 w (print) 1343 5784 w (actions) 1569 5784 w (without) 1889 5784 w (executing) 2232 5784 w (them.) 2657 5784 w (During) 2919 5784 w (testing,) 3239 5784 w (it) 3568 5784 w (was) 3662 5784 w (possible) 3855 5784 w (transform) 4221 5784 w (a) 4647 5784 w (running) 4729 5784 w (9front) 720 5904 w (userland) 995 5904 w (into) 1364 5904 w (a) 1551 5904 w (Bell) 1626 5904 w (Labs) 1824 5904 w (userland) 2049 5904 w (by) 2417 5904 w (repeated) 2547 5904 w 10 /Courier f (cpns) 2914 5904 w (\255r) 3184 5904 w 10 /Times-Roman f (between) 3334 5904 w (processes) 3696 5904 w (that) 4108 5904 w (had) 4288 5904 w (been) 4462 5904 w (launched) 4680 5904 w (on) 720 6024 w (different) 851 6024 w (roots) 1225 6024 w (and) 1456 6024 w (by) 1631 6024 w (the) 1762 6024 w (respective) 1915 6024 w 10 /Courier f (cpurc) 2350 6024 w 10 /Times-Roman f (of) 2681 6024 w (each) 2795 6024 w (distribution.) 3008 6024 w (The) 3526 6024 w (namespaces) 3712 6024 w (of) 4219 6024 w 10 /Courier f (rio) 4333 6024 w 10 /Times-Roman f (and) 4544 6024 w (the) 4720 6024 w (run\255) 4874 6024 w (ning) 720 6144 w (shells) 931 6144 w (and) 1192 6144 w (applications) 1369 6144 w (were) 1885 6144 w (all) 2111 6144 w (remotely) 2244 6144 w (rewritten) 2632 6144 w (via) 3025 6144 w (the) 3180 6144 w 10 /Courier f (/proc) 3335 6144 w 10 /Times-Roman f (interface) 3668 6144 w (to) 4049 6144 w (use) 4159 6144 w (a) 4324 6144 w (different) 4400 6144 w (root) 4775 6144 w (fs) 4968 6144 w (and to bring their namespace into conformance with Bell Labs namespace conventions.) 720 6264 w (It) 970 6420 w (seems) 1072 6420 w (accurate) 1357 6420 w (to) 1729 6420 w (describe) 1848 6420 w (the) 2221 6420 w (modified) 2384 6420 w (boot) 2786 6420 w (system) 3005 6420 w (with) 3324 6420 w (ram/paq) 3543 6420 w (namespace) 3912 6420 w (and) 4391 6420 w (the) 4577 6420 w (plan9rc) 4741 6420 w (script) 720 6540 w (as) 972 6540 w (a) 1085 6540 w ("namespace) 1159 6540 w (hypervisor") 1667 6540 w (because) 2165 6540 w (it) 2510 6540 w (supports) 2596 6540 w (multiple) 2965 6540 w (independent) 3328 6540 w (namespaces) 3845 6540 w (and) 4350 6540 w (allows) 4523 6540 w (travel) 4813 6540 w (between) 720 6660 w (them.) 1094 6660 w (The) 1361 6660 w (writable) 1558 6660 w (ns) 1927 6660 w (mod) 2058 6660 w (enables) 2278 6660 w (fine) 2620 6660 w (grained) 2818 6660 w (control) 3160 6660 w (over) 3486 6660 w (the) 3706 6660 w (namespace) 3871 6660 w (of) 4351 6660 w (every) 4477 6660 w (process) 4741 6660 w (owned by a user on an entire grid of machines.) 720 6780 w (The) 970 6936 w (final) 1165 6936 w (component) 1388 6936 w (used) 1872 6936 w (to) 2095 6936 w (bind) 2213 6936 w (the) 2431 6936 w (diverse) 2593 6936 w (namespaces) 2921 6936 w (together) 3437 6936 w (into) 3804 6936 w (a) 4000 6936 w (controllable) 4084 6936 w (and) 4601 6936 w (usable) 4785 6936 w (environment) 720 7056 w (is) 1262 7056 w (the) 1366 7056 w (persistence) 1525 7056 w (and) 2005 7056 w (multiplexing) 2186 7056 w (layer) 2735 7056 w (provided) 2971 7056 w (by) 3363 7056 w (hubfs) 3500 7056 w (and) 3758 7056 w (integration) 3938 7056 w (into) 4407 7056 w (a) 4599 7056 w (modified) 4679 7056 w 10 /Courier f (rio) 720 7176 w 10 /Times-Roman f (named) 925 7176 w 10 /Courier f (grio.) 1216 7176 w cleartomark showpage saveobj restore %%EndPage: 7 7 %%Page: 8 8 /saveobj save def mark 8 pagesetup 10 /Times-Roman f (\255 8 \255) 2797 480 w 10 /Times-Bold f (V. Hubfs and grio: persistent rc shells from all nodes and namespaces and multiplexed grid i/o piping) 720 840 w 10 /Times-Roman f (The ANTS toolkit is designed to create different namespaces for different purposes. The) 970 996 w (top) 4524 996 w (layer) 4678 996 w (is) 4903 996 w (a) 4996 996 w (modified) 720 1116 w 10 /Courier f (rio) 1110 1116 w 10 /Times-Roman f (named) 1319 1116 w 10 /Courier f (grio) 1614 1116 w 10 /Times-Roman f (which) 1883 1116 w (integrates) 2156 1116 w (with) 2572 1116 w 10 /Courier f (hubfs.) 2778 1116 w 10 /Times-Roman f (The) 3166 1116 w (modification) 3349 1116 w (is) 3888 1116 w (simple:) 3983 1116 w (the) 4306 1116 w (addition) 4456 1116 w (to) 4812 1116 w (the) 4918 1116 w (menu) 720 1236 w (of) 968 1236 w (a) 1077 1236 w 10 /Courier f (Hub) 1147 1236 w 10 /Times-Roman f (command,) 1353 1236 w (which) 1798 1236 w (operates) 2068 1236 w (identically) 2426 1236 w (to) 2874 1236 w 10 /Courier f (New) 2978 1236 w 10 /Times-Roman f (except) 3184 1236 w (the) 3470 1236 w 10 /Courier f (rc) 3618 1236 w 10 /Times-Roman f (in) 3764 1236 w (the) 3868 1236 w (window) 4017 1236 w (is) 4366 1236 w (connected) 4460 1236 w (to) 4891 1236 w (a) 4996 1236 w 10 /Courier f (hubfs.) 720 1356 w 10 /Times-Roman f (It) 1108 1356 w (is) 1197 1356 w (intended) 1292 1356 w (that) 1664 1356 w (each) 1842 1356 w (node) 2052 1356 w (on) 2274 1356 w (a) 2402 1356 w (grid,) 2474 1356 w (and) 2688 1356 w (possibly) 2860 1356 w (different) 3222 1356 w (namespaces) 3593 1356 w (on) 4097 1356 w (each) 4225 1356 w (node,) 4434 1356 w (will) 4680 1356 w (con\255) 4863 1356 w (nect) 720 1476 w (to) 914 1476 w (the) 1020 1476 w 10 /Courier f (hubfs) 1170 1476 w 10 /Times-Roman f (and) 1498 1476 w (create) 1670 1476 w (a) 1935 1476 w (shell) 2007 1476 w (with) 2224 1476 w 10 /Courier f (%local.) 2430 1476 w 10 /Times-Roman f (In) 2878 1476 w (this) 2989 1476 w (way,) 3162 1476 w (shells) 3381 1476 w (from) 3637 1476 w (every) 3859 1476 w (machine) 4108 1476 w (become) 4474 1476 w (avail\255) 4813 1476 w (able within one) 720 1596 w 10 /Courier f (hubfs.) 1361 1596 w 10 /Times-Roman f (To) 970 1752 w (make) 1109 1752 w (this) 1353 1752 w (environment) 1527 1752 w (available) 2061 1752 w (to) 2450 1752 w (the) 2557 1752 w (user) 2708 1752 w (by) 2903 1752 w (default,) 3032 1752 w (a) 3363 1752 w (few) 3436 1752 w (commands) 3614 1752 w (can) 4076 1752 w (be) 4243 1752 w (added) 4366 1752 w (to) 4633 1752 w 10 /Courier f (cpurc) 4740 1752 w 10 /Times-Roman f (and) 720 1872 w (the) 902 1872 w (user) 1062 1872 w (profile.) 1266 1872 w (One) 1595 1872 w (machine) 1799 1872 w (within) 2175 1872 w (a) 2469 1872 w (grid) 2551 1872 w (will) 2750 1872 w (probably) 2944 1872 w (act) 3337 1872 w (as) 3490 1872 w (a) 3610 1872 w (primary) 3691 1872 w ("hubserver") 4044 1872 w (and) 4556 1872 w (begin) 4737 1872 w (a) 4996 1872 w (hubfs) 720 1992 w (for) 969 1992 w (the) 1112 1992 w (user) 1261 1992 w (at) 1454 1992 w (its) 1553 1992 w (startup.) 1675 1992 w (Other) 1999 1992 w (machines) 2253 1992 w (will) 2657 1992 w ('export') 2840 1992 w (shells) 3188 1992 w (to) 3443 1992 w (that) 3549 1992 w (machine,) 3727 1992 w (using) 4118 1992 w (a) 4363 1992 w (command) 4435 1992 w (such) 4857 1992 w (as) 720 2112 w (cpu \255h gridserver \255c hub \255b srvname remotesys) 1330 2292 w (The user adds a statement to profile such as:) 970 2508 w (import \255a hubserver /srv &) 1330 2688 w (When) 970 2904 w (grio) 1246 2904 w (is) 1445 2904 w (started,) 1550 2904 w (it) 1879 2904 w (looks) 1973 2904 w (for) 2228 2904 w 10 /Courier f (/srv/riohubfs.username) 2382 2904 w 10 /Times-Roman f (to) 3741 2904 w (mount.) 3858 2904 w (This) 4178 2904 w (way,) 4395 2904 w (whichever) 4625 2904 w (node) 720 3024 w (the) 942 3024 w (user) 1092 3024 w (cpus) 1285 3024 w (to) 1495 3024 w (will) 1600 3024 w (have) 1783 3024 w (the) 1998 3024 w (same) 2147 3024 w 10 /Courier f (hubfs) 2379 3024 w 10 /Times-Roman f (opened) 2706 3024 w (from) 3021 3024 w (the) 3242 3024 w 10 /Courier f (Hub) 3391 3024 w 10 /Times-Roman f (menu) 3598 3024 w (option) 3847 3024 w (in) 4130 3024 w 10 /Courier f (grio) 4235 3024 w 10 /Times-Roman f (,) 4502 3024 w (and) 4554 3024 w (because) 4725 3024 w (all) 720 3144 w (systems) 869 3144 w (are) 1235 3144 w (exporting) 1405 3144 w (shells) 1837 3144 w (to) 2114 3144 w (the) 2241 3144 w (hub,) 2412 3144 w (the) 2636 3144 w (user) 2807 3144 w (can) 3022 3144 w 10 /Courier f (cpu) 3209 3144 w 10 /Times-Roman f (to) 3438 3144 w (any) 3565 3144 w (node) 3759 3144 w (and) 4003 3144 w (then) 4197 3144 w (have) 4419 3144 w (persistent) 4657 3144 w (workspaces) 720 3264 w (on) 1211 3264 w (any) 1337 3264 w (machine.) 1507 3264 w (The) 1896 3264 w (state) 2077 3264 w (of) 2286 3264 w (the) 2395 3264 w (hubs) 2543 3264 w (remains) 2758 3264 w (regardless) 3100 3264 w (of) 3530 3264 w (where and how the user attaches or) 3639 3264 w (unattaches.) 720 3384 w (The) 970 3540 w 10 /Courier f (initskel) 1153 3540 w 10 /Times-Roman f (script) 1661 3540 w (also) 1911 3540 w (starts) 2100 3540 w (a) 2339 3540 w 10 /Courier f (hubfs) 2411 3540 w 10 /Times-Roman f (by) 2739 3540 w (default) 2867 3540 w (in) 3172 3540 w (the) 3278 3540 w (early) 3428 3540 w (boot) 3655 3540 w (environment.) 3862 3540 w (This) 4421 3540 w (allows) 4628 3540 w (the) 4918 3540 w (user) 720 3660 w (to) 920 3660 w (easily) 1032 3660 w (access) 1299 3660 w (the) 1587 3660 w (ramroot) 1743 3660 w (namespace) 2093 3660 w (from) 2564 3660 w (the) 2792 3660 w (standard) 2947 3660 w (user) 3318 3660 w (environment.) 3517 3660 w (If) 4080 3660 w (the) 4179 3660 w (user) 4334 3660 w (desires,) 4533 3660 w (they) 4868 3660 w (could) 720 3780 w (pre\255mount) 971 3780 w (the) 1416 3780 w 10 /Courier f (/srv/hubfs) 1567 3780 w 10 /Times-Roman f (started) 2196 3780 w (at) 2491 3780 w (boot) 2592 3780 w (instead) 2799 3780 w (of) 3111 3780 w (the) 3223 3780 w (networked) 3374 3780 w (riohubfs) 3824 3780 w (to) 4186 3780 w (enable) 4293 3780 w (easy) 4583 3780 w (admin) 4790 3780 w (work) 720 3900 w (in) 961 3900 w (that) 1075 3900 w (namespace.) 1261 3900 w (It) 1759 3900 w (is) 1856 3900 w (even) 1959 3900 w (possible) 2183 3900 w (to) 2546 3900 w (create) 2659 3900 w (two) 2931 3900 w (layers) 3116 3900 w (of) 3389 3900 w (shared) 3507 3900 w (hubs) 3802 3900 w (\255) 4026 3900 w (a) 4094 3900 w (shared) 4173 3900 w (administrative) 4468 3900 w (layer shared between machines running shells in the ram namespace, and) 720 4020 w (another) 3664 4020 w (set) 3989 4020 w (of) 4126 4020 w (hubs) 4235 4020 w (in) 4450 4020 w (the) 4554 4020 w (standard) 4702 4020 w (namespace. In fact, these two layers can be freely mixed.) 720 4140 w (This) 970 4296 w (is) 1175 4296 w (another) 1269 4296 w (way) 1595 4296 w 10 /Courier f (hubfs) 1788 4296 w 10 /Times-Roman f (functions) 2115 4296 w (\255) 2514 4296 w (to) 2574 4296 w ('save') 2679 4296 w (namespaces.) 2949 4296 w (If) 3477 4296 w (there) 3570 4296 w (is) 3797 4296 w (a) 3892 4296 w (namespace) 3964 4296 w (which) 4429 4296 w (is) 4701 4296 w (some\255) 4796 4296 w (times) 720 4416 w (useful,) 970 4416 w (but) 1272 4416 w (diverges) 1433 4416 w (from) 1804 4416 w (the) 2031 4416 w (main) 2186 4416 w (environment,) 2419 4416 w (it) 2982 4416 w (can) 3071 4416 w (be) 3242 4416 w (built) 3369 4416 w (with) 3586 4416 w (in) 3797 4416 w (a) 3908 4416 w 10 /Courier f (hubfs) 3984 4416 w 10 /Times-Roman f (shell) 4316 4416 w (to) 4537 4416 w (be) 4647 4416 w (visited) 4773 4416 w (later) 720 4536 w (at) 923 4536 w (will.) 1021 4536 w (A) 1228 4536 w (single) 1326 4536 w 10 /Courier f (hubfs) 1591 4536 w 10 /Times-Roman f (can) 1917 4536 w (provide) 2081 4536 w (a) 2412 4536 w (meeting) 2482 4536 w (point) 2830 4536 w (for) 3062 4536 w (any) 3204 4536 w (number) 3375 4536 w (of) 3707 4536 w (namespaces) 3817 4536 w (built) 4320 4536 w (on) 4531 4536 w (any) 4658 4536 w (num\255) 4829 4536 w (ber of machines and allow data to be pumped directly between processes file descriptors.) 720 4656 w (As) 970 4812 w (a) 1112 4812 w (proof) 1187 4812 w (of) 1434 4812 w (concept,) 1548 4812 w 10 /Courier f (hubfs) 1914 4812 w 10 /Times-Roman f (was) 2245 4812 w (used) 2431 4812 w (to) 2645 4812 w (create) 2754 4812 w (a) 3022 4812 w (4) 3098 4812 w (machine) 3180 4812 w (encrypt/decrypt) 3550 4812 w (pipeline.) 4208 4812 w (Machine) 4587 4812 w (A) 4968 4812 w (hosted) 720 4932 w (a) 1011 4932 w 10 /Courier f (hubfs) 1085 4932 w 10 /Times-Roman f (and) 1415 4932 w (created) 1589 4932 w (the) 1906 4932 w (extra) 2058 4932 w (hubfiles) 2287 4932 w 10 /Courier f (encin) 2639 4932 w (encout) 2969 4932 w (decout.) 3359 4932 w 10 /Times-Roman f (Machine) 3808 4932 w (B) 4186 4932 w (then) 4282 4932 w (both) 4483 4932 w (mounted) 4690 4932 w (the fs and attached to it, and began running) 720 5052 w (auth/aescbc \255e >/n/aes/encout) 1080 5232 w (Machine B mounted the hubfs, attached a local shell, and began running) 970 5448 w (auth/aescbc \255d >/n/aes/decout) 1080 5628 w (Machine) 970 5844 w (D) 1345 5844 w (mounted) 1443 5844 w (the) 1819 5844 w (hubfs) 1967 5844 w (and) 2215 5844 w (viewed) 2385 5844 w (the) 2699 5844 w (decrypted) 2847 5844 w (output) 3266 5844 w (of) 3548 5844 w 10 /Courier f (decout.) 3657 5844 w 10 /Times-Roman f (Machine) 4103 5844 w (A) 4478 5844 w (also) 4576 5844 w ('spied') 4763 5844 w (on the encrypted channel by watching) 720 5964 w 10 /Courier f (/n/aes/encout) 2261 5964 w 10 /Times-Roman f (to see the encrypted version of the data.) 3066 5964 w (As) 970 6120 w (a) 1109 6120 w (proof) 1181 6120 w (of) 1425 6120 w (concept) 1537 6120 w (test) 1876 6120 w (of) 2044 6120 w (distributed) 2156 6120 w (grid) 2613 6120 w (computation) 2803 6120 w (and) 3332 6120 w (resiliency) 3505 6120 w (and) 3922 6120 w (interactivity) 4095 6120 w (under) 4607 6120 w (con\255) 4863 6120 w (tinuous) 720 6240 w (load,) 1043 6240 w (the) 1268 6240 w (first) 1418 6240 w (draft) 1607 6240 w (of) 1823 6240 w (this) 1934 6240 w (paper) 2107 6240 w (was) 2355 6240 w (written) 2537 6240 w (simultaneously) 2847 6240 w (with) 3480 6240 w (running) 3685 6240 w (the) 4023 6240 w (aescbc) 4172 6240 w (encrypt/decryt) 4464 6240 w (test.) 720 6360 w (At) 916 6360 w (the) 1048 6360 w (time) 1202 6360 w (this) 1412 6360 w (section) 1589 6360 w (was) 1904 6360 w (concluded,) 2091 6360 w (the) 2558 6360 w (test) 2713 6360 w (had) 2885 6360 w (reached) 3062 6360 w (7560) 3404 6360 w (cats) 3637 6360 w (of) 3825 6360 w 10 /Courier f (/lib/words) 3941 6360 w 10 /Times-Roman f (through) 4574 6360 w (the) 4918 6360 w (encryption) 720 6480 w (filter,) 1174 6480 w (while) 1420 6480 w (simultaneously) 1669 6480 w (running) 2302 6480 w 10 /Courier f (ventiprog) 2640 6480 w 10 /Times-Roman f (to) 3207 6480 w (mirror) 3312 6480 w (the) 3594 6480 w (venti) 3743 6480 w (data) 3969 6480 w (and) 4161 6480 w (maintaining) 4331 6480 w (addi\255) 4835 6480 w (tional) 720 6600 w (persistent) 977 6600 w 10 /Courier f (hubfs) 1389 6600 w 10 /Times-Roman f (connections) 1719 6600 w (to) 2226 6600 w (all) 2334 6600 w (local) 2464 6600 w (and) 2688 6600 w (remote) 2862 6600 w (nodes,) 3169 6600 w (as) 3457 6600 w (well) 3570 6600 w (as) 3772 6600 w (preparing) 3885 6600 w (this) 4297 6600 w (document) 4472 6600 w (and) 4896 6600 w (using) 720 6720 w (another) 978 6720 w (set) 1318 6720 w (of) 1470 6720 w (hubs) 1594 6720 w (for) 1824 6720 w (persistent) 1981 6720 w 10 /Courier f (emu) 2405 6720 w (ircfs) 2625 6720 w 10 /Times-Roman f (sessions,) 2965 6720 w (and) 3358 6720 w (performing) 3542 6720 w (multiple) 4031 6720 w (other) 4405 6720 w (tasks) 4650 6720 w (dis\255) 4890 6720 w (tributed across all grid nodes. \() 720 6840 w 10 /Courier f (contrib/install) 1982 6840 w 10 /Times-Roman f (font packages,) 2907 6840 w 10 /Courier f (vncv) 3508 6840 w 10 /Times-Roman f (connection to a linux box, etc.\)) 3773 6840 w ([) 970 6996 w (The) 1040 6996 w (test) 1232 6996 w (was) 1408 6996 w (briefly) 1601 6996 w (paused) 1905 6996 w (with) 2220 6996 w (no) 2436 6996 w (errors) 2574 6996 w (after) 2844 6996 w (24+) 3064 6996 w (hours) 3258 6996 w (of) 3518 6996 w (continuous) 3639 6996 w (operation) 4116 6996 w (and) 4531 6996 w (8gb+) 4713 6996 w (of) 4957 6996 w (cumulative) 720 7116 w (data) 1194 7116 w (written) 1390 7116 w (through) 1703 7116 w (to) 2044 7116 w (take) 2152 7116 w (a) 2348 7116 w (few) 2422 7116 w (snapshots) 2601 7116 w (of) 3020 7116 w (the) 3133 7116 w (state) 3285 7116 w (of) 3498 7116 w (hubs.) 3610 7116 w (The) 3853 7116 w (test) 4037 7116 w (was) 4205 7116 w (stopped) 4389 7116 w (after) 4729 7116 w (35) 4940 7116 w (hours with no errors and 12314 loops and the data saved. ]) 720 7236 w cleartomark showpage saveobj restore %%EndPage: 8 8 %%Page: 9 9 /saveobj save def mark 9 pagesetup 10 /Times-Roman f (\255 9 \255) 2797 480 w 10 /Times-Bold f (VI.) 720 840 w (The) 886 840 w (sum) 1083 840 w (of) 1291 840 w (the) 1404 840 w (parts:) 1567 840 w (A) 1852 840 w (case) 1954 840 w (study) 2162 840 w (in) 2427 840 w (creating) 2542 840 w (an) 2922 840 w (always) 3059 840 w (available) 3379 840 w (data) 3794 840 w (environment) 4014 840 w (on) 4589 840 w (a) 4726 840 w (home) 4807 840 w (grid) 720 960 w 10 /Times-Roman f (I) 970 1116 w (run) 1030 1116 w (my) 1190 1116 w (kernel) 1345 1116 w (and) 1622 1116 w (tools) 1794 1116 w (on) 2017 1116 w (all) 2145 1116 w (of) 2273 1116 w (my) 2384 1116 w (systems) 2540 1116 w (except) 2885 1116 w (those) 3173 1116 w (which) 3412 1116 w (run) 3684 1116 w (9front,) 3845 1116 w (because) 4142 1116 w (I) 4485 1116 w (have) 4546 1116 w (not) 4762 1116 w (yet) 4918 1116 w (studied) 720 1236 w (how) 1039 1236 w (to) 1241 1236 w (adapt) 1349 1236 w (my) 1595 1236 w (modifications) 1753 1236 w (for) 2333 1236 w (that) 2479 1236 w (distribution.) 2659 1236 w (Here) 3176 1236 w (is) 3399 1236 w (a) 3496 1236 w (description) 3570 1236 w (of) 4044 1236 w (how) 4156 1236 w (my) 4357 1236 w (grid) 4514 1236 w (is) 4704 1236 w (set) 4800 1236 w (up) 4940 1236 w (and how the tools described above fit together to give me the properties I want.) 720 1356 w (The) 970 1512 w (main) 1159 1512 w (leg) 1393 1512 w (of) 1549 1512 w (services) 1666 1512 w (is) 2021 1512 w (a) 2122 1512 w (native) 2200 1512 w (venti,) 2478 1512 w (native) 2737 1512 w (fossil,) 3016 1512 w (and) 3293 1512 w (native) 3472 1512 w (tcp) 3751 1512 w (boot) 3908 1512 w (cpu) 4121 1512 w (each) 4300 1512 w (as) 4517 1512 w (a) 4635 1512 w (separate) 4714 1512 w (box.) 720 1632 w (All) 937 1632 w (run) 1107 1632 w (the) 1282 1632 w (rootless) 1446 1632 w (kernel) 1799 1632 w (and) 2090 1632 w (launch) 2276 1632 w (their) 2584 1632 w (services) 2809 1632 w (from) 3172 1632 w (the) 3407 1632 w (rootless) 3570 1632 w (environment,) 3922 1632 w (which) 4493 1632 w (I) 4778 1632 w (have) 4852 1632 w 10 /Courier f (cpu/rx) 720 1752 w 10 /Times-Roman f (access to on each, independent of any other boxes status or activity.) 1105 1752 w (The) 970 1908 w (primary) 1151 1908 w (backup) 1493 1908 w (leg) 1807 1908 w (of) 1955 1908 w (services) 2064 1908 w (is) 2411 1908 w (provided) 2505 1908 w (by) 2887 1908 w (a) 3014 1908 w (single) 3085 1908 w (linux) 3351 1908 w (box) 3584 1908 w (running) 3761 1908 w (a) 4099 1908 w (p9p) 4170 1908 w 10 /Courier f (venti) 4347 1908 w 10 /Times-Roman f (duplicate) 4674 1908 w (and) 720 2028 w (qemu) 893 2028 w (fossil/cpu) 1144 2028 w (servers) 1562 2028 w (on) 1873 2028 w (demand.) 2002 2028 w (This) 2371 2028 w 10 /Courier f (venti) 2577 2028 w 10 /Times-Roman f (is) 2905 2028 w (constantly) 3000 2028 w (progressively) 3439 2028 w (backed) 4005 2028 w (up) 4315 2028 w (from) 4443 2028 w (the) 4665 2028 w (main,) 4815 2028 w (and) 720 2148 w (the) 895 2148 w (qemu) 1048 2148 w (fossils) 1301 2148 w (are) 1588 2148 w (frequently) 1740 2148 w 10 /Courier f (cpsys) 2181 2148 w 10 /Times-Roman f (refreshed) 2512 2148 w (to) 2913 2148 w (a) 3022 2148 w (current) 3097 2148 w (rootscore.) 3411 2148 w (If) 3839 2148 w (the) 3937 2148 w (main) 4091 2148 w (leg) 4323 2148 w (has) 4477 2148 w (trouble) 4642 2148 w (or) 4957 2148 w (needs) 720 2268 w (to) 973 2268 w (be) 1077 2268 w (rebooted) 1197 2268 w (for) 1572 2268 w (reasons) 1714 2268 w (like) 2039 2268 w (a) 2215 2268 w (kernel) 2285 2268 w (upgrade,) 2560 2268 w (I) 2932 2268 w (continue) 2991 2268 w (working) 3361 2268 w (via) 3720 2268 w (this) 3868 2268 w (p9p) 4039 2268 w 10 /Courier f (venti) 4214 2268 w 10 /Times-Roman f (and attached) 4539 2268 w (qemus. They are) 720 2388 w (also) 1408 2388 w (always) 1595 2388 w (available) 1898 2388 w (as) 2284 2388 w (part) 2393 2388 w (of) 2574 2388 w (my) 2683 2388 w (normal) 2837 2388 w (environment,) 3146 2388 w (not) 3702 2388 w (simply) 3856 2388 w (as) 4155 2388 w (emergency) 4264 2388 w (backup.) 4727 2388 w (I) 720 2508 w (often) 780 2508 w (keep) 1012 2508 w (the) 1226 2508 w (qemus) 1374 2508 w (tcp) 1661 2508 w (rooted) 1809 2508 w (to) 2090 2508 w (the) 2194 2508 w (main) 2342 2508 w (file) 2568 2508 w (server,) 2727 2508 w (but) 3021 2508 w (they) 3175 2508 w (can) 3373 2508 w (start) 3537 2508 w (a) 3735 2508 w (fossil) 3805 2508 w (rooted) 4048 2508 w (from) 4329 2508 w (the) 4549 2508 w (alternate) 4697 2508 w (venti at any moment to provide a copy of my root.) 720 2628 w (Additional) 970 2784 w (remote) 1435 2784 w (nodes) 1749 2784 w (are) 2019 2784 w (hosted) 2177 2784 w (on) 2475 2784 w (9cloud) 2612 2784 w (and) 2921 2784 w (are) 3102 2784 w (another) 3260 2784 w ("rootless) 3596 2784 w (labs") 3985 2784 w (instance) 4224 2784 w (and) 4589 2784 w (9front.) 4771 2784 w (There) 720 2904 w (nodes) 987 2904 w (are) 1255 2904 w (integrated) 1411 2904 w (primarily) 1845 2904 w (via) 2252 2904 w 10 /Courier f (hubfs.) 2409 2904 w 10 /Times-Roman f (The) 2804 2904 w (labs) 2994 2904 w (node) 3190 2904 w (hosts) 3419 2904 w (a) 3660 2904 w (hub) 3739 2904 w (which) 3924 2904 w (is) 4203 2904 w (then) 4305 2904 w (mounted) 4512 2904 w (and) 4896 2904 w (attached) 720 3024 w (to) 1082 3024 w (from) 1190 3024 w (within) 1415 3024 w (the) 1702 3024 w (main) 1855 3024 w (local) 2086 3024 w (hub,) 2311 3024 w (so) 2517 3024 w (it) 2637 3024 w (is) 2724 3024 w (a) 2822 3024 w (hub) 2897 3024 w (to) 3078 3024 w (hub) 3187 3024 w (linkup) 3368 3024 w (between) 3655 3024 w (the) 4018 3024 w (local) 4171 3024 w (and) 4396 3024 w (remote) 4571 3024 w (sys\255) 4879 3024 w (tems.) 720 3144 w (This) 969 3144 w (allows) 1182 3144 w (the) 1478 3144 w (local) 1635 3144 w (and) 1863 3144 w (remote) 2041 3144 w (grids) 2352 3144 w (to) 2586 3144 w (be) 2698 3144 w (reset) 2826 3144 w (independently) 3048 3144 w (without) 3648 3144 w (disrupting) 3988 3144 w (the) 4428 3144 w (state) 4584 3144 w (of) 4801 3144 w (the) 4918 3144 w 10 /Courier f (hubfs) 720 3264 w 10 /Times-Roman f (and) 1048 3264 w (shells) 1220 3264 w (on) 1476 3264 w (the) 1604 3264 w (other) 1755 3264 w (side) 1989 3264 w (of) 2179 3264 w (wan.) 2291 3264 w (A) 2511 3264 w (final) 2612 3264 w (wan) 2824 3264 w (component) 3019 3264 w (is) 3492 3264 w (another) 3588 3264 w (remote) 3916 3264 w 10 /Courier f (venti) 4222 3264 w 10 /Times-Roman f (clone) 4551 3264 w (which) 4796 3264 w (also receives a steady flow of progressive backup and stores the current list of rootscores.) 720 3384 w (The) 970 3540 w (main) 1160 3540 w (native) 1395 3540 w (cpu) 1674 3540 w (server) 1853 3540 w (is) 2131 3540 w (the) 2233 3540 w (primary) 2390 3540 w 10 /Courier f (hubfs) 2742 3540 w 10 /Times-Roman f (server,) 3078 3540 w (with) 3382 3540 w (an) 3596 3540 w 10 /Courier f (import) 3726 3540 w (\255a) 4122 3540 w 10 /Times-Roman f (of) 4278 3540 w (its) 4397 3540 w 10 /Courier f (/srv) 4528 3540 w 10 /Times-Roman f (in) 4804 3540 w (the) 4918 3540 w (standard) 720 3660 w (user) 1085 3660 w (profile.) 1278 3660 w (This) 1596 3660 w (puts) 1801 3660 w (its) 1995 3660 w 10 /Courier f (hubfs) 2117 3660 w 10 /Times-Roman f (as) 2444 3660 w (the) 2554 3660 w (default) 2703 3660 w 10 /Courier f (hubfs) 3007 3660 w 10 /Times-Roman f (opened) 3334 3660 w (by) 3649 3660 w 10 /Courier f (grio) 3775 3660 w 10 /Times-Roman f (,) 4041 3660 w (allowing) 4092 3660 w (each) 4468 3660 w (cpu) 4676 3660 w (node) 4846 3660 w (to) 720 3780 w (provide) 829 3780 w (access) 1165 3780 w (to) 1450 3780 w (a) 1560 3780 w (common) 1636 3780 w (set) 2018 3780 w (of) 2161 3780 w (hubs.) 2276 3780 w (Each) 2522 3780 w (machine) 2753 3780 w (exports) 3123 3780 w (a) 3449 3780 w (shell) 3525 3780 w (to) 3746 3780 w (the) 3856 3780 w (hubserver) 4010 3780 w (so) 4435 3780 w (I) 4556 3780 w (can) 4621 3780 w (sweep) 4791 3780 w (open) 720 3900 w (a) 946 3900 w (new) 1022 3900 w (Hub) 1220 3900 w (window) 1424 3900 w (and) 1778 3900 w (easily) 1954 3900 w (switch) 2219 3900 w (to) 2512 3900 w (a) 2622 3900 w (persistent) 2697 3900 w (shell) 3111 3900 w (on) 3331 3900 w (any) 3462 3900 w (node.) 3637 3900 w (A) 3887 3900 w (separate) 3990 3900 w 10 /Courier f (hubfs) 4347 3900 w 10 /Times-Roman f (is) 4678 3900 w (run) 4776 3900 w (by) 4940 3900 w (the) 720 4020 w (hostowner) 877 4020 w (as) 1328 4020 w (part) 1446 4020 w (of) 1636 4020 w (the) 1754 4020 w (standard) 1911 4020 w 10 /Courier f (initskel) 2284 4020 w 10 /Times-Roman f (script.) 2799 4020 w 10 /Courier f (Hubfs) 3081 4020 w 10 /Times-Roman f (is) 3417 4020 w (also) 3520 4020 w (used) 3717 4020 w (to) 3936 4020 w (hold) 4050 4020 w (the) 4264 4020 w 10 /Courier f (emu) 4422 4020 w 10 /Times-Roman f (client) 4638 4020 w (and) 4896 4020 w (server for) 720 4140 w 10 /Courier f (ircfs) 1129 4140 w 10 /Times-Roman f (or for) 1454 4140 w 10 /Courier f (irc7) 1703 4140 w 10 /Times-Roman f (and general inter\255machine datasharing when needed.) 1968 4140 w (The) 970 4296 w (user) 1154 4296 w (terminal) 1349 4296 w (is) 1711 4296 w (a) 1807 4296 w (native) 1880 4296 w (9front) 2153 4296 w (machine,) 2426 4296 w (but) 2818 4296 w (the) 2975 4296 w (user) 3127 4296 w (environment) 3323 4296 w (is) 3858 4296 w (always) 3955 4296 w (built) 4262 4296 w (from) 4476 4296 w (grid) 4700 4296 w (ser\255) 4891 4296 w (vices) 720 4416 w (with) 951 4416 w (the) 1155 4416 w (terminal) 1303 4416 w (functioning) 1662 4416 w (as) 2149 4416 w (just) 2258 4416 w (that.) 2429 4416 w (The) 2630 4416 w (main) 2811 4416 w (resources) 3037 4416 w (in) 3439 4416 w (the) 3543 4416 w (namespace) 3691 4416 w (are) 4154 4416 w (the) 4301 4416 w (two) 4449 4416 w (local) 4625 4416 w (CPU) 4845 4416 w (servers,) 720 4536 w (which) 1075 4536 w (act) 1367 4536 w (as) 1531 4536 w (the) 1662 4536 w (central) 1832 4536 w (junctions) 2151 4536 w (by) 2566 4536 w (running) 2714 4536 w (applications,) 3073 4536 w (mounting) 3630 4536 w (fileservers,) 4063 4536 w (and) 4552 4536 w (hosting) 4745 4536 w 10 /Courier f (hubfs.) 720 4656 w 10 /Times-Roman f (The) 1108 4656 w (native) 1291 4656 w (cpu's) 1563 4656 w 10 /Courier f (/srv) 1807 4656 w 10 /Times-Roman f (acts) 2075 4656 w (as) 2258 4656 w (the) 2369 4656 w (primary) 2519 4656 w (focal) 2863 4656 w (point) 3090 4656 w (for) 3323 4656 w (integrating) 3466 4656 w (and) 3926 4656 w (accessing) 4097 4656 w (grid) 4506 4656 w (services.) 4694 4656 w (All) 720 4776 w (grid) 881 4776 w (nodes) 1075 4776 w (except) 1341 4776 w 10 /Courier f (venti) 1634 4776 w 10 /Times-Roman f (and) 1967 4776 w (auth) 2144 4776 w (provide) 2349 4776 w 10 /Courier f (exportfs) 2688 4776 w 10 /Times-Roman f (so) 3202 4776 w 10 /Courier f (/srv) 3325 4776 w 10 /Times-Roman f (and) 3599 4776 w 10 /Courier f (/proc) 3777 4776 w 10 /Times-Roman f (of) 4111 4776 w (almost) 4228 4776 w (all) 4529 4776 w (machines) 4663 4776 w (can) 720 4896 w (be) 887 4896 w (accessed) 1010 4896 w (as) 1387 4896 w (needed.) 1499 4896 w (The) 1835 4896 w (writable) 2019 4896 w 10 /Courier f (proc/*/ns) 2375 4896 w 10 /Times-Roman f (mod) 2944 4896 w (makes) 3151 4896 w (importing) 3435 4896 w 10 /Courier f (/proc) 3859 4896 w 10 /Times-Roman f (an) 4187 4896 w (even) 4309 4896 w (more) 4525 4896 w (power\255) 4758 4896 w (ful) 720 5016 w (and) 857 5016 w (flexible) 1027 5016 w (operation) 1358 5016 w (for) 1761 5016 w (controlling) 1903 5016 w (remote) 2368 5016 w (resources.) 2671 5016 w (Being) 3099 5016 w (able) 3365 5016 w (to) 3558 5016 w 10 /Courier f (cpns) 3663 5016 w 10 /Times-Roman f (to) 3930 5016 w (rewrite) 4035 5016 w (the) 4344 5016 w (namespace) 4493 5016 w (of) 4957 5016 w (remote) 720 5136 w (processes) 1023 5136 w (allows) 1431 5136 w (for) 1718 5136 w (server) 1860 5136 w (processes) 2129 5136 w (to) 2537 5136 w (be) 2641 5136 w (rebound to new services or namespaces as they are avail\255) 2761 5136 w (able.) 720 5256 w (My) 970 5412 w (data) 1146 5412 w (is) 1349 5412 w (replicated) 1453 5412 w (constantly) 1883 5412 w (with) 2331 5412 w 10 /Courier f (ventiprog) 2546 5412 w 10 /Times-Roman f (,) 3123 5412 w (and) 3185 5412 w (I) 3366 5412 w (can) 3437 5412 w (instantly) 3613 5412 w (create) 3996 5412 w (new) 4271 5412 w (writable) 4475 5412 w (roots) 4840 5412 w (with) 720 5532 w 10 /Courier f (cpsys.) 926 5532 w 10 /Times-Roman f (From) 1314 5532 w (any) 1558 5532 w (namespace) 1729 5532 w (on) 2193 5532 w (the) 2320 5532 w (grid,) 2469 5532 w (I) 2682 5532 w (can) 2742 5532 w 10 /Courier f (rerootwin) 2907 5532 w 10 /Times-Roman f (to) 3474 5532 w (a) 3579 5532 w (new) 3650 5532 w (root) 3843 5532 w (and) 4031 5532 w (still) 4202 5532 w (maintain) 4380 5532 w (control) 4757 5532 w (with) 720 5652 w (my) 926 5652 w (active) 1082 5652 w (devices) 1348 5652 w (and) 1675 5652 w (window) 1847 5652 w (system.) 2197 5652 w (If) 2528 5652 w (any) 2623 5652 w (node) 2796 5652 w (has) 3019 5652 w (trouble,) 3181 5652 w (I) 3518 5652 w (can) 3580 5652 w 10 /Courier f (cpu) 3747 5652 w 10 /Times-Roman f (into) 3956 5652 w (the) 4141 5652 w (service) 4292 5652 w (namespace) 4603 5652 w (with) 720 5772 w (no) 926 5772 w (dependencies) 1054 5772 w (on) 1619 5772 w (other) 1747 5772 w (services) 1980 5772 w (to) 2329 5772 w (repair) 2435 5772 w (or) 2694 5772 w (reset) 2804 5772 w (the) 3019 5772 w (node.) 3168 5772 w (Any) 3414 5772 w (textual) 3613 5772 w (application) 3912 5772 w (on) 4383 5772 w (any) 4510 5772 w (node) 4681 5772 w (can) 4902 5772 w (be) 720 5892 w (persisted) 842 5892 w (with) 1225 5892 w 10 /Courier f (hubfs) 1431 5892 w 10 /Times-Roman f (to) 1759 5892 w (keep) 1865 5892 w (it) 2081 5892 w (active,) 2165 5892 w (out) 2457 5892 w (of) 2614 5892 w (the) 2726 5892 w (way) 2877 5892 w (but) 3072 5892 w (available) 3229 5892 w (for) 3618 5892 w (interaction) 3763 5892 w (if) 4219 5892 w (needed,) 4309 5892 w (and) 4645 5892 w (hubfs) 4818 5892 w (also can be used for distributed processing although I don't personally need to crunch many numbers.) 720 6012 w (All) 970 6168 w (grid) 1126 6168 w (services) 1315 6168 w (are) 1664 6168 w ('hot) 1813 6168 w (pluggable') 2002 6168 w (and) 2458 6168 w (I) 2631 6168 w (can) 2693 6168 w (keep) 2860 6168 w (working) 3077 6168 w (with) 3439 6168 w (my) 3646 6168 w (current) 3803 6168 w (data) 4114 6168 w (if) 4309 6168 w (I) 4399 6168 w (need) 4461 6168 w (to) 4678 6168 w (reboot) 4785 6168 w (some) 720 6288 w (machines) 961 6288 w (to) 1368 6288 w (upgrade) 1475 6288 w (their) 1825 6288 w (kernels) 2037 6288 w (or) 2354 6288 w (just) 2466 6288 w (want) 2640 6288 w (to) 2863 6288 w (turn) 2970 6288 w (them) 3160 6288 w (off.) 3389 6288 w (All) 3559 6288 w (my) 3716 6288 w (services) 3873 6288 w (are) 4223 6288 w (constantly) 4373 6288 w (avail\255) 4813 6288 w (able) 720 6408 w (and) 912 6408 w (my) 1082 6408 w (namespace) 1236 6408 w (has) 1699 6408 w (no) 1858 6408 w (extra) 1984 6408 w (dependencies) 2209 6408 w (on) 2772 6408 w (services) 2898 6408 w (it) 3246 6408 w (isn't) 3329 6408 w (making) 3534 6408 w (use) 3861 6408 w (of.) 4021 6408 w (Cpus) 4156 6408 w (act) 4389 6408 w (as) 4532 6408 w (true) 4642 6408 w ('plat\255) 4824 6408 w (forms') 720 6528 w (to) 1013 6528 w (build) 1118 6528 w (namespaces) 1351 6528 w (because) 1854 6528 w (the) 2196 6528 w (user) 2345 6528 w (can) 2538 6528 w (work) 2702 6528 w (within) 2933 6528 w (the) 3215 6528 w (service) 3363 6528 w (environment) 3671 6528 w (and) 4202 6528 w (freely) 4372 6528 w (climb) 4630 6528 w (into) 4884 6528 w (any root with) 720 6648 w 10 /Courier f (rerootwin.) 1278 6648 w 10 /Times-Roman f (All) 970 6804 w (of) 1136 6804 w (these) 1257 6804 w (properties) 1500 6804 w (are) 1937 6804 w (based) 2096 6804 w (firmly) 2361 6804 w (on) 2649 6804 w (the) 2787 6804 w (simple) 2947 6804 w (core) 3252 6804 w (of) 3461 6804 w (Plan) 3582 6804 w (9) 3799 6804 w (\255) 3888 6804 w (user) 3960 6804 w (definable) 4165 6804 w (per) 4575 6804 w (process) 4741 6804 w (namespaces,) 720 6924 w (network) 1252 6924 w (transparency,) 1610 6924 w (and) 2175 6924 w (simple) 2350 6924 w (file) 2648 6924 w (access) 2812 6924 w (as) 3097 6924 w (the) 3210 6924 w (primary) 3362 6924 w (abstraction.) 3708 6924 w (The) 4201 6924 w (reconfigurations) 4386 6924 w (from) 720 7044 w (the) 941 7044 w (standard) 1090 7044 w (system) 1455 7044 w (are) 1760 7044 w (intended) 1908 7044 w (to) 2279 7044 w (focus) 2384 7044 w (and) 2627 7044 w (leverage) 2798 7044 w (these) 3162 7044 w (design) 3394 7044 w (aspects) 3682 7044 w (of) 3998 7044 w (the) 4109 7044 w (system.) 4259 7044 w (I) 4590 7044 w (am) 4651 7044 w (trying) 4801 7044 w (to) 720 7164 w (extend) 831 7164 w (Plan) 1130 7164 w (9) 1341 7164 w (in) 1424 7164 w (natural) 1535 7164 w (directions,) 1845 7164 w (using) 2297 7164 w (the) 2547 7164 w (existing) 2702 7164 w (code) 3052 7164 w (as) 3273 7164 w (much) 3389 7164 w (as) 3644 7164 w (possible,) 3760 7164 w (and) 4145 7164 w (just) 4321 7164 w (provide) 4498 7164 w (addi\255) 4835 7164 w (tional flexibility and control of the already existing capabilities.) 720 7284 w cleartomark showpage saveobj restore %%EndPage: 9 9 %%Page: 10 10 /saveobj save def mark 10 pagesetup 10 /Times-Roman f (\255 10 \255) 2772 480 w 10 /Times-Bold f (Appendix I: The pieces of the toolkit and how they serve the design goals:) 720 840 w 12 /Times-Roman f (bootup kernel) 970 996 w (mods, plan9rc, initskel, bootpaq, tools.tgz) 1664 996 w 10 /Times-Roman f (These) 970 1152 w (create) 1240 1152 w (a) 1509 1152 w (more) 1585 1152 w (flexible) 1822 1152 w (platform) 2159 1152 w (for) 2536 1152 w (namespace) 2685 1152 w (operations,) 3155 1152 w (and) 3629 1152 w (remove) 3806 1152 w (the) 4138 1152 w (dependency) 4293 1152 w (of) 4802 1152 w (the) 4918 1152 w (kernel on external services. They create a functional environment that acts as a minimal cpu server, and also) 720 1272 w (can) 720 1392 w (launch) 897 1392 w (standard) 1202 1392 w (environments) 1579 1392 w (with) 2162 1392 w (a) 2379 1392 w (normal) 2463 1392 w 10 /Courier f (cpurc) 2786 1392 w 10 /Times-Roman f (or) 3126 1392 w 10 /Courier f (termrc.) 3249 1392 w 10 /Times-Roman f (The) 3709 1392 w (bootup) 3904 1392 w (process) 4222 1392 w (may) 4561 1392 w (be) 4773 1392 w (left) 4907 1392 w (almost) 720 1512 w (unchanged) 1021 1512 w (in) 1487 1512 w (terms) 1599 1512 w (of) 1855 1512 w (user) 1972 1512 w (visible) 2172 1512 w (interaction,) 2473 1512 w (but) 2959 1512 w (the) 3121 1512 w (pre\255existing) 3277 1512 w (installation) 3788 1512 w (now) 4267 1512 w (co\255exists) 4473 1512 w (with) 4862 1512 w (the new boot "service/namespace hypervisor" layer.) 720 1632 w 12 /Times-Roman f (rerootwin, addwrroot, hubfs, savedevs/getdevs:) 970 1788 w 10 /Times-Roman f (These) 970 1944 w (allow) 1234 1944 w (the) 1482 1944 w (user) 1631 1944 w (to) 1824 1944 w (navigate) 1929 1944 w (namespaces) 2294 1944 w (easily,) 2797 1944 w (to) 3082 1944 w (attach) 3187 1944 w (to) 3452 1944 w (new) 3557 1944 w (roots,) 3750 1944 w (to) 4002 1944 w ("save") 4107 1944 w (namespaces) 4393 1944 w (and) 4896 1944 w (shells) 720 2064 w (for) 976 2064 w (later) 1120 2064 w (use) 1325 2064 w (in) 1486 2064 w 10 /Courier f (hubfs) 1592 2064 w 10 /Times-Roman f (,) 1920 2064 w (and) 1973 2064 w (to) 2145 2064 w (keep) 2251 2064 w (control) 2467 2064 w (of) 2778 2064 w (their) 2889 2064 w (current) 3100 2064 w (devices) 3410 2064 w (and) 3737 2064 w (window) 3909 2064 w (system) 4258 2064 w (while) 4563 2064 w (doing) 4812 2064 w (so.) 720 2184 w (They) 864 2184 w (are) 1099 2184 w (necessary) 1250 2184 w (to) 1667 2184 w (get) 1775 2184 w (the) 1927 2184 w (best) 2079 2184 w (use) 2270 2184 w (from) 2433 2184 w (the) 2658 2184 w (rootless) 2811 2184 w (environment,) 3153 2184 w (but) 3714 2184 w (they) 3873 2184 w (are) 4076 2184 w (not) 4228 2184 w (dependent) 4387 2184 w (on) 4828 2184 w (it.) 4959 2184 w (These namespaces control tools may be useful even without any changes to the kernel or boot process.) 720 2304 w 12 /Times-Roman f (writable) 970 2460 w (proc/*/ns, cpns, addns, subns:) 1394 2460 w 10 /Times-Roman f (This) 970 2616 w (kernel) 1179 2616 w (mod) 1459 2616 w (extends) 1668 2616 w (the) 2004 2616 w (power) 2157 2616 w (of) 2437 2616 w 10 /Courier f (/proc) 2551 2616 w 10 /Times-Roman f (to) 2883 2616 w (modify) 2993 2616 w (the) 3314 2616 w (namespace) 3468 2616 w (of) 3937 2616 w (any) 4052 2616 w (processes) 4228 2616 w (owned) 4642 2616 w (by) 4940 2616 w (the) 720 2736 w (user,) 872 2736 w (on) 1093 2736 w (local) 1223 2736 w (or) 1447 2736 w (remote) 1560 2736 w (machines,) 1867 2736 w (simply) 2299 2736 w (by) 2602 2736 w (writing) 2732 2736 w (the) 3051 2736 w (same) 3203 2736 w (text) 3438 2736 w (string) 3618 2736 w (to) 3876 2736 w (the) 3984 2736 w (ns) 4136 2736 w (file) 4255 2736 w (of) 4418 2736 w (the) 4531 2736 w (proc) 4683 2736 w (that) 4890 2736 w (would) 720 2856 w (be) 1002 2856 w (written) 1128 2856 w (in) 1443 2856 w (a) 1553 2856 w (shell.) 1629 2856 w (This) 1875 2856 w (mod) 2085 2856 w (is) 2295 2856 w (very) 2394 2856 w (general) 2604 2856 w (and) 2930 2856 w (powerful,) 3107 2856 w (but) 3525 2856 w (only) 3686 2856 w 10 /Courier f (cpns) 3897 2856 w 10 /Times-Roman f (and) 4170 2856 w (its) 4347 2856 w (related) 4475 2856 w (scripts) 4779 2856 w (directly) 720 2976 w (depend) 1052 2976 w (on) 1367 2976 w (it.) 1494 2976 w (I) 1602 2976 w (believe) 1662 2976 w (being) 1977 2976 w (able) 2226 2976 w (to) 2419 2976 w (do) 2524 2976 w (these) 2651 2976 w (namespace) 2883 2976 w (operations) 3347 2976 w (is) 3790 2976 w (a) 3884 2976 w (good) 3955 2976 w (part) 4182 2976 w (of) 4364 2976 w (Plan) 4474 2976 w (9) 4678 2976 w (design,) 4754 2976 w (but) 720 3096 w (the) 879 3096 w (other) 1032 3096 w (pieces) 1268 3096 w (of) 1549 3096 w (the) 1664 3096 w (toolkit) 1818 3096 w (are) 2112 3096 w (not) 2265 3096 w (written) 2425 3096 w (requiring) 2740 3096 w (this) 3138 3096 w (mod.) 3315 3096 w (The) 3550 3096 w (bootup) 3737 3096 w (sequence) 4047 3096 w (and) 4444 3096 w 10 /Courier f (plan9rc) 4620 3096 w 10 /Times-Roman f (modifications are separable.) 720 3216 w 12 /Times-Roman f (ventiprog, cpsys, fossilize, /n/9fat/rootscor:) 970 3372 w 10 /Times-Roman f (These scripts are written to help make use of the existing) 970 3528 w 10 /Courier f (fossil) 3269 3528 w 10 /Times-Roman f (and) 3654 3528 w 10 /Courier f (venti) 3823 3528 w 10 /Times-Roman f (tools to improve) 4148 3528 w (relia\255) 4830 3528 w (bility) 720 3648 w (and) 958 3648 w (let) 1128 3648 w (enable) 1254 3648 w (easy) 1540 3648 w (cloning) 1743 3648 w (of) 2069 3648 w (root) 2178 3648 w (filesystems and preservation of rootscores. If) 2365 3648 w 10 /Courier f (venti) 4186 3648 w 10 /Times-Roman f (and) 4511 3648 w 10 /Courier f (fossil) 4680 3648 w 10 /Times-Roman f (are) 720 3768 w (being) 867 3768 w (used,) 1115 3768 w (I) 1349 3768 w (believe) 1408 3768 w (these) 1722 3768 w (tools) 1953 3768 w (are) 2174 3768 w (at) 2321 3768 w (least) 2419 3768 w (a) 2628 3768 w (good) 2698 3768 w (model) 2924 3768 w (for) 3200 3768 w (how) 3342 3768 w (to) 3540 3768 w (manage) 3644 3768 w (them.) 3981 3768 w (There) 4233 3768 w (is) 4492 3768 w (no) 4586 3768 w (inherent) 4713 3768 w (dependency) 720 3888 w (on) 1224 3888 w (the) 1352 3888 w (rest) 1502 3888 w (of) 1674 3888 w (the) 1785 3888 w (tools) 1935 3888 w (on) 2158 3888 w 10 /Courier f (venti) 2286 3888 w 10 /Times-Roman f (or) 2614 3888 w 10 /Courier f (fossil) 2725 3888 w 10 /Times-Roman f (,) 3113 3888 w (but) 3166 3888 w (the) 3322 3888 w (ability) 3472 3888 w (of) 3756 3888 w 10 /Courier f (fossil) 3867 3888 w 10 /Times-Roman f (to) 4255 3888 w (instantly) 4360 3888 w (create) 4732 3888 w (a) 4996 3888 w (new) 720 4008 w (root) 923 4008 w (with) 1121 4008 w 10 /Courier f (flfmt) 1336 4008 w (\255v) 1674 4008 w 10 /Times-Roman f (is) 1832 4008 w (a) 1937 4008 w (powerful) 2019 4008 w (tool) 2417 4008 w (and) 2611 4008 w (many) 2793 4008 w (of) 3053 4008 w (my) 3174 4008 w (workflows) 3340 4008 w (are) 3805 4008 w (built) 3964 4008 w (upon) 4186 4008 w (it.) 4424 4008 w (The) 4543 4008 w (flow) 4736 4008 w (of) 4957 4008 w 10 /Courier f (flfmt) 720 4128 w (\255v) 1048 4128 w 10 /Times-Roman f (,) 1196 4128 w 10 /Courier f (fossilstart) 1248 4128 w 10 /Times-Roman f (,) 1935 4128 w 10 /Courier f (rerootwin) 1987 4128 w 10 /Times-Roman f (into) 2554 4128 w (the) 2737 4128 w (new) 2886 4128 w (fossil) 3079 4128 w (can) 3323 4128 w (be) 3488 4128 w (done) 3609 4128 w (in) 3830 4128 w (a) 3935 4128 w (few) 4006 4128 w (seconds) 4182 4128 w (and) 4525 4128 w (provides) 4696 4128 w (a new interactive root environment that 'flows' directly from the old one without eliminating it.) 720 4248 w 12 /Times-Roman f (hubfs, grio:) 970 4404 w 10 /Courier f (Hubfs) 970 4560 w 10 /Times-Roman f (is) 1298 4560 w (listed) 1393 4560 w (again) 1638 4560 w (because) 1882 4560 w (it) 2225 4560 w (is) 2309 4560 w (also) 2404 4560 w (part) 2593 4560 w (of) 2776 4560 w (the) 2887 4560 w (upper) 3037 4560 w (user) 3292 4560 w (interface) 3486 4560 w (layer) 3863 4560 w (in) 4091 4560 w (addition) 4198 4560 w (to) 4555 4560 w (the) 4662 4560 w (lower) 4813 4560 w (network) 720 4680 w (piping) 1085 4680 w (layer.) 1379 4680 w (The) 1641 4680 w (user) 1833 4680 w (can) 2036 4680 w (work) 2211 4680 w (easily) 2453 4680 w (in) 2723 4680 w (all) 2838 4680 w (their) 2975 4680 w (different) 3195 4680 w (namespaces) 3575 4680 w (because) 4088 4680 w 10 /Courier f (grio+hubfs) 4440 4680 w 10 /Times-Roman f (makes) 720 4800 w (access) 1009 4800 w (to) 1297 4800 w (persistent) 1409 4800 w (shells) 1826 4800 w (in) 2088 4800 w (diverse) 2200 4800 w (namespaces) 2522 4800 w (as) 3032 4800 w (easy) 3149 4800 w (as) 3361 4800 w (opening) 3479 4800 w (a) 3836 4800 w 10 /Courier f (New) 3915 4800 w (rc.) 4130 4800 w 10 /Times-Roman f (The) 4345 4800 w (color\255setting) 4535 4800 w (option of) 720 4920 w 10 /Courier f (grio) 1109 4920 w 10 /Times-Roman f (also lets the user 'organize' their namespaces by sub\255rios with different colors.) 1374 4920 w (These components are all separable, but I believe the whole is greater than the sum of the parts and) 970 5076 w (so) 4951 5076 w (created) 720 5196 w (the) 1042 5196 w (giant) 1198 5196 w (ANTS) 1432 5196 w (packages.) 1727 5196 w (It) 2151 5196 w (is) 2246 5196 w (possible) 2347 5196 w (to) 2709 5196 w (use) 2821 5196 w 10 /Courier f (hubfs+grio) 2988 5196 w 10 /Times-Roman f (without) 3622 5196 w (changing) 3962 5196 w (bootup) 4362 5196 w (or) 4674 5196 w (name\255) 4791 5196 w (spaces,) 720 5316 w (or) 1031 5316 w (possible) 1140 5316 w (to) 1494 5316 w (create) 1598 5316 w (a) 1861 5316 w (more) 1931 5316 w (reliable) 2162 5316 w (bootup) 2487 5316 w (and) 2791 5316 w (independent) 2961 5316 w (early) 3475 5316 w (namespace) 3700 5316 w (without) 4163 5316 w (using) 4496 5316 w 10 /Courier f (hubfs) 4740 5316 w 10 /Times-Roman f (or) 720 5436 w 10 /Courier f (grio) 833 5436 w 10 /Times-Roman f (,) 1103 5436 w (and) 1158 5436 w (the) 1332 5436 w (concepts) 1484 5436 w (of) 1862 5436 w (the) 1974 5436 w 10 /Courier f (rerootwin) 2125 5436 w 10 /Times-Roman f (script) 2694 5436 w (may) 2945 5436 w (be) 3146 5436 w (generally) 3269 5436 w (useful) 3669 5436 w (independent) 3942 5436 w (of) 4459 5436 w (any) 4571 5436 w (tools) 4744 5436 w (at) 4968 5436 w (all.) 720 5556 w (The) 874 5556 w (goal) 1058 5556 w (is) 1259 5556 w (to) 1355 5556 w (provide) 1462 5556 w (a) 1796 5556 w (true) 1869 5556 w (toolkit) 2053 5556 w (approach) 2344 5556 w (to) 2738 5556 w (namespaces) 2845 5556 w (where) 3350 5556 w (the) 3622 5556 w (user) 3773 5556 w (can) 3969 5556 w (make) 4137 5556 w (the) 4383 5556 w (environment) 4535 5556 w (that serves them best.) 720 5676 w 10 /Times-Bold f (Appendix II: Implementation details:) 720 5916 w 10 /Times-Roman f (Boot mods: the goal is to create a working environment with only kernel resources, roughly speaking.) 970 6072 w (This) 720 6192 w (is) 929 6192 w (pretty) 1027 6192 w (established) 1291 6192 w (territory,) 1766 6192 w (the) 2149 6192 w (main) 2302 6192 w (thing) 2533 6192 w (I) 2769 6192 w (have) 2832 6192 w (done) 3050 6192 w (differently) 3274 6192 w (than) 3725 6192 w (some) 3927 6192 w (other) 4168 6192 w (developers) 4403 6192 w (is) 4865 6192 w (to) 4962 6192 w (parameterize) 720 6312 w (as) 1261 6312 w (much) 1372 6312 w (as) 1622 6312 w (possible) 1733 6312 w (and) 2089 6312 w (just) 2261 6312 w (not) 2434 6312 w (get) 2590 6312 w (the) 2740 6312 w (root) 2890 6312 w (fs!) 3079 6312 w 10 /Courier f (Boot/init) 3212 6312 w 10 /Times-Roman f (are) 3780 6312 w (combined) 3929 6312 w (into) 4351 6312 w (a) 4535 6312 w (single) 4607 6312 w (pro\255) 4874 6312 w (gram) 720 6432 w (and) 976 6432 w (most) 1171 6432 w (of) 1417 6432 w (their) 1551 6432 w (functionality) 1785 6432 w (is) 2346 6432 w (shifted) 2463 6432 w (to) 2785 6432 w (the) 2913 6432 w 10 /Courier f (plan9rc) 3085 6432 w 10 /Times-Roman f (script,) 3555 6432 w (supported) 3852 6432 w (by) 4296 6432 w (a) 4446 6432 w (compiled) 4540 6432 w (in) 4962 6432 w 10 /Courier f (bootpaq.) 720 6552 w 10 /Times-Roman f (The) 1238 6552 w 10 /Courier f (plan9rc) 1431 6552 w 10 /Times-Roman f (,) 1889 6552 w 10 /Courier f (ramskel) 1952 6552 w 10 /Times-Roman f (,) 2410 6552 w (and) 2473 6552 w 10 /Courier f (initskel) 2655 6552 w 10 /Times-Roman f (scripts) 3173 6552 w (work) 3472 6552 w (to) 3715 6552 w (make) 3831 6552 w (a) 4085 6552 w (minimal) 4167 6552 w (but) 4540 6552 w (working) 4707 6552 w (environment) 720 6672 w (by) 1258 6672 w (gluing) 1391 6672 w (a) 1680 6672 w (skeleton) 1757 6672 w 10 /Courier f (ramfs) 2123 6672 w 10 /Times-Roman f (to) 2456 6672 w (the) 2567 6672 w (compiled) 2722 6672 w (in) 3127 6672 w 10 /Courier f (bootpaq.) 3238 6672 w 10 /Times-Roman f (Once) 3751 6672 w (this) 3994 6672 w (is) 4172 6672 w (done,) 4272 6672 w (a) 4523 6672 w ("root") 4599 6672 w (file\255) 4874 6672 w (server) 720 6792 w (can) 997 6792 w (be) 1169 6792 w (acquired) 1297 6792 w (and) 1674 6792 w (its) 1852 6792 w 10 /Courier f (termrc) 1981 6792 w 10 /Times-Roman f (or) 2375 6792 w 10 /Courier f (cpurc) 2492 6792 w 10 /Times-Roman f (forked) 2826 6792 w (off) 3120 6792 w (into) 3270 6792 w (a) 3461 6792 w 10 /Courier f (newns) 3540 6792 w 10 /Times-Roman f (where) 3875 6792 w (it) 4153 6792 w (becomes) 4244 6792 w (a) 4628 6792 w (working) 4707 6792 w (environment without taking over the flow of control in the kernel only environment.) 720 6912 w (Writable) 970 7068 w 10 /Courier f (proc/*/ns) 1349 7068 w 10 /Times-Roman f (:) 1919 7068 w (this) 1977 7068 w (was) 2153 7068 w (implemented) 2339 7068 w (by) 2892 7068 w (more) 3023 7068 w (or) 3259 7068 w (less) 3373 7068 w ('cloning') 3554 7068 w (the) 3951 7068 w (entire) 4104 7068 w (code) 4362 7068 w (path) 4581 7068 w (within) 4784 7068 w (the) 720 7188 w (kernel) 869 7188 w (that) 1145 7188 w (happens) 1322 7188 w (for) 1676 7188 w (mounts) 1819 7188 w (and) 2141 7188 w (binds) 2312 7188 w (and) 2556 7188 w (adding) 2727 7188 w (a) 3026 7188 w (new) 3097 7188 w (parameter) 3290 7188 w (for) 3715 7188 w (process) 3858 7188 w (id.) 4183 7188 w (All) 4312 7188 w (of) 4466 7188 w (the) 4575 7188 w (existing) 4723 7188 w (routines use "up" to figure out what namespace is) 720 7308 w (being) 2725 7308 w (modified) 2973 7308 w (and) 3360 7308 w (what) 3530 7308 w (the) 3750 7308 w (chans) 3898 7308 w (are) 4151 7308 w (\255) 4298 7308 w (by) 4357 7308 w (copying) 4483 7308 w (all) 4831 7308 w (of) 4957 7308 w cleartomark showpage saveobj restore %%EndPage: 10 10 %%Page: 11 11 /saveobj save def mark 11 pagesetup 10 /Times-Roman f (\255 11 \255) 2772 480 w (the) 720 840 w (routines) 873 840 w (and) 1226 840 w (adding) 1401 840 w (a) 1704 840 w (new) 1779 840 w (parameter,) 1976 840 w (I) 2430 840 w (allow) 2494 840 w (the) 2746 840 w 10 /Courier f (/proc) 2898 840 w 10 /Times-Roman f (file) 3228 840 w (system) 3391 840 w (to) 3699 840 w (perform) 3807 840 w 10 /Courier f (mount) 4158 840 w 10 /Times-Roman f (s) 4488 840 w (and) 4557 840 w 10 /Courier f (bind) 4731 840 w 10 /Times-Roman f (s) 5001 840 w (on) 720 960 w (behal") 847 960 w (of) 1131 960 w (a) 1241 960 w (process,) 1312 960 w (acccording) 1664 960 w (to) 2129 960 w (the) 2235 960 w (string) 2385 960 w (written) 2641 960 w (to) 2952 960 w (that) 3058 960 w (process's) 3236 960 w 10 /Courier f (ns) 3635 960 w 10 /Times-Roman f (file.) 3783 960 w (I) 3969 960 w (made) 4030 960 w (the) 4274 960 w (mechanism) 4424 960 w (use) 4907 960 w (a) 720 1080 w (copy) 798 1080 w (of) 1025 1080 w (all) 1141 1080 w (the) 1274 1080 w (original) 1429 1080 w (routines) 1773 1080 w (with) 2128 1080 w (a) 2339 1080 w (new) 2416 1080 w (parameter) 2615 1080 w (because) 3046 1080 w (I) 3394 1080 w (didn't) 3460 1080 w (want) 3732 1080 w (my) 3959 1080 w (modifications) 4120 1080 w (to) 4703 1080 w (affect) 4814 1080 w (the) 720 1200 w (existing) 874 1200 w (code) 1223 1200 w (paths) 1443 1200 w (\255) 1686 1200 w (especially) 1751 1200 w (because) 2182 1200 w (some) 2529 1200 w (sanity) 2772 1200 w (checks) 3043 1200 w (don't) 3346 1200 w (make) 3589 1200 w (sense) 3837 1200 w (if) 4085 1200 w (the) 4178 1200 w (context) 4332 1200 w (is) 4659 1200 w (not) 4759 1200 w 10 /Courier f (up) 4920 1200 w 10 /Times-Roman f (and) 720 1320 w (removing) 893 1320 w (kernel) 1305 1320 w (sanity) 1583 1320 w (checks) 1851 1320 w (is) 2151 1320 w (scary.) 2247 1320 w (I) 2511 1320 w (have) 2573 1320 w (tested) 2790 1320 w (this) 3052 1320 w (mod) 3226 1320 w (extensively) 3433 1320 w (and) 3917 1320 w (I) 4090 1320 w (believe) 4151 1320 w (it) 4467 1320 w (is) 4551 1320 w (not) 4646 1320 w (inher\255) 4802 1320 w (ently destablizing but it may pose unanalyzed security risks if abused by malicious users.) 720 1440 w (The) 970 1596 w 10 /Courier f (cpns) 1150 1596 w 10 /Times-Roman f (,) 1415 1596 w 10 /Courier f (addns) 1466 1596 w 10 /Times-Roman f (,) 1792 1596 w 10 /Courier f (subns) 1843 1596 w 10 /Times-Roman f (scripts) 2169 1596 w (perform) 2456 1596 w (their) 2803 1596 w (operations) 3012 1596 w (by) 3454 1596 w (comparing) 3580 1596 w (the) 4033 1596 w (lines) 4181 1596 w (of) 4396 1596 w (the) 4505 1596 w (textual) 4653 1596 w (ns) 4951 1596 w (files) 720 1716 w (of) 923 1716 w (the) 1037 1716 w (model) 1190 1716 w (and) 1471 1716 w (target) 1646 1716 w (processes,) 1904 1716 w (and) 2342 1716 w (issuing) 2517 1716 w 10 /Courier f (mount/unmount) 2832 1716 w 10 /Times-Roman f (commands) 3643 1716 w (based) 4107 1716 w (on) 4364 1716 w (matching) 4494 1716 w (and) 4896 1716 w (non\255matching lines. This mechanism is functional but better tools) 720 1836 w (should) 3370 1836 w (be) 3663 1836 w (written,) 3783 1836 w (which) 4117 1836 w (fully) 4387 1836 w (understand) 4602 1836 w (how) 720 1956 w (namespaces) 929 1956 w (are) 1442 1956 w (structures) 1600 1956 w (as) 2025 1956 w (graphs) 2145 1956 w (with) 2448 1956 w (dependencies.) 2663 1956 w (Treating) 3262 1956 w (the) 3637 1956 w (ns) 3796 1956 w (files) 3922 1956 w (as) 4131 1956 w (text) 4251 1956 w (without) 4438 1956 w (under\255) 4780 1956 w (standing) 720 2076 w (the) 1099 2076 w (real) 1261 2076 w (semantics) 1450 2076 w (of) 1884 2076 w (namespaces) 2007 2076 w (is) 2523 2076 w (a) 2630 2076 w (limitation) 2714 2076 w (of) 3144 2076 w (these) 3268 2076 w (scripts,) 3514 2076 w (not) 3841 2076 w (the) 4010 2076 w (writable) 4173 2076 w (ns) 4541 2076 w (mod) 4671 2076 w (that) 4890 2076 w (enables them.) 720 2196 w (Hubfs:) 970 2352 w 10 /Courier f (hubfs) 1270 2352 w 10 /Times-Roman f (is) 1598 2352 w (a) 1693 2352 w (9p) 1765 2352 w (filesystem) 1893 2352 w (which) 2332 2352 w (implements) 2604 2352 w (a) 3099 2352 w (new) 3171 2352 w (abstraction) 3365 2352 w (which) 3831 2352 w (is) 4103 2352 w (similar) 4199 2352 w (to) 4506 2352 w (a) 4613 2352 w (pipe,) 4686 2352 w (but) 4912 2352 w (designed) 720 2472 w (for) 1105 2472 w (multiple) 1251 2472 w (readers) 1615 2472 w (and) 1932 2472 w (writers.) 2106 2472 w (One) 2437 2472 w (convenient) 2632 2472 w (use) 3099 2472 w (of) 3261 2472 w (this) 3373 2472 w (abstraction) 3547 2472 w (is) 4014 2472 w (to) 4110 2472 w (implement) 4217 2472 w (function\255) 4674 2472 w (ality) 720 2592 w (like) 939 2592 w (GNU) 1130 2592 w 10 /Courier f (screen) 1387 2592 w 10 /Times-Roman f (\(http://gnu.org/software/screen/manual/screen.html\)) 1788 2592 w (by) 3909 2592 w (connecting) 4050 2592 w 10 /Courier f (rc) 4530 2592 w 10 /Times-Roman f (shells) 4692 2592 w (to) 4962 2592 w (hub) 720 2712 w (files.) 907 2712 w (The) 1141 2712 w 10 /Courier f (hubfs) 1333 2712 w 10 /Times-Roman f (filesystem) 1670 2712 w (simply) 2118 2712 w (provides) 2428 2712 w (the) 2809 2712 w (pipe/hub) 2968 2712 w (files,) 3355 2712 w (the) 3589 2712 w (job) 3747 2712 w (of) 3911 2712 w (managing) 4030 2712 w (connections) 4460 2712 w (is) 4973 2712 w (done) 720 2832 w (by) 944 2832 w (the) 1074 2832 w (hubshell) 1226 2832 w (program,) 1595 2832 w (which) 1988 2832 w (knows) 2262 2832 w (how) 2553 2832 w (to) 2755 2832 w (start) 2863 2832 w (and) 3065 2832 w (attach) 3239 2832 w 10 /Courier f (rc) 3507 2832 w 10 /Times-Roman f (to) 3657 2832 w (hubfiles,) 3765 2832 w (launch) 4142 2832 w (new) 4439 2832 w (connected) 4636 2832 w 10 /Courier f (rc) 720 2952 w 10 /Times-Roman f (shells on either the local or remote machine, and then move between the active shells.) 865 2952 w (Rerootwin:) 970 3108 w (the) 1451 3108 w 10 /Courier f (rerootwin) 1604 3108 w 10 /Times-Roman f ("device) 2175 3108 w (and) 2507 3108 w (wsys) 2682 3108 w (aware") 2913 3108 w (re\255rooting) 3222 3108 w (script) 3652 3108 w (and) 3905 3108 w (namespace) 4080 3108 w (file) 4549 3108 w (is) 4714 3108 w (based) 4813 3108 w (on) 720 3228 w (a) 854 3228 w (simple) 932 3228 w (core) 1233 3228 w (technique:) 1438 3228 w (using) 1888 3228 w 10 /Courier f (srvfs) 2139 3228 w 10 /Times-Roman f (to) 2472 3228 w (save) 2583 3228 w (the) 2793 3228 w (devices.) 2948 3228 w (The) 3305 3228 w (ability) 3493 3228 w (to) 3782 3228 w (control) 3893 3228 w (a) 4209 3228 w (given) 4286 3228 w (window) 4541 3228 w (and) 4896 3228 w (run) 720 3348 w (graphical) 883 3348 w (applications) 1284 3348 w (in) 1797 3348 w (it) 1905 3348 w (is) 1991 3348 w (simply) 2088 3348 w (a) 2391 3348 w (result) 2465 3348 w (of) 2717 3348 w (what) 2831 3348 w (is) 3056 3348 w (bound) 3154 3348 w (into) 3435 3348 w (the) 3622 3348 w (namespace.) 3775 3348 w (A) 4268 3348 w (standard) 4371 3348 w 10 /Courier f (newns) 4740 3348 w 10 /Times-Roman f (command) 720 3468 w (can't) 1141 3468 w (be) 1367 3468 w (used) 1488 3468 w (to) 1698 3468 w (enter) 1803 3468 w (a) 2029 3468 w (new) 2099 3468 w (root) 2291 3468 w (filesystem) 2478 3468 w (when) 2915 3468 w (working) 3157 3468 w (remotely,) 3516 3468 w (because) 3922 3468 w (the) 4263 3468 w (new) 4411 3468 w (namespace) 4603 3468 w (will) 720 3588 w (not) 906 3588 w (be) 1064 3588 w (connected) 1188 3588 w (to) 1622 3588 w (the) 1730 3588 w (device) 1882 3588 w (files) 2172 3588 w (of) 2375 3588 w (the) 2489 3588 w (previous) 2642 3588 w (namespace.) 3017 3588 w (The) 3510 3588 w (solution) 3696 3588 w (is) 4050 3588 w (to) 4148 3588 w 10 /Courier f (srvfs) 4257 3588 w 10 /Times-Roman f (the) 4588 3588 w (devices) 4741 3588 w (first,) 720 3708 w (make) 938 3708 w (note) 1186 3708 w (of) 1390 3708 w (their) 1505 3708 w (identity) 1720 3708 w (in) 2058 3708 w (an) 2168 3708 w (environment) 2294 3708 w (variable,) 2831 3708 w (then) 3209 3708 w (enter) 3413 3708 w (the) 3644 3708 w (new) 3797 3708 w (namespace) 3994 3708 w (and) 4462 3708 w (re\255acquire) 4637 3708 w (the) 720 3828 w (original) 874 3828 w (devices.) 1217 3828 w (This) 1574 3828 w (operation) 1785 3828 w (is) 2195 3828 w (basically) 2295 3828 w (simple) 2683 3828 w (and) 2983 3828 w (seems) 3160 3828 w (to) 3437 3828 w (have) 3548 3828 w (broad) 3769 3828 w (usefulness.) 4029 3828 w (I) 4503 3828 w (am) 4569 3828 w (actually) 4724 3828 w (surprised) 720 3948 w (a) 1130 3948 w (similar) 1218 3948 w (script) 1540 3948 w (and) 1806 3948 w (namespace) 1994 3948 w (file) 2475 3948 w (does) 2651 3948 w (not) 2877 3948 w (already) 3048 3948 w (exist) 3384 3948 w (within) 3616 3948 w (Plan) 3915 3948 w (9) 4136 3948 w (because) 4229 3948 w (it) 4587 3948 w (does) 4686 3948 w (not) 4912 3948 w (depend on the other modifications in the toolkit.) 720 4068 w (The) 970 4224 w 10 /Courier f (venti/fossil) 1152 4224 w 10 /Times-Roman f (tools) 1899 4224 w (simply) 2121 4224 w (automate) 2421 4224 w (actions) 2814 4224 w (which) 3124 4224 w (are) 3395 4224 w (useful) 3543 4224 w (for) 3814 4224 w (backup) 3957 4224 w (and) 4273 4224 w (recreation,) 4445 4224 w (and) 4896 4224 w (the) 720 4344 w (other) 870 4344 w (namespace) 1103 4344 w (scripts) 1568 4344 w (mostly) 1857 4344 w (perform) 2158 4344 w (self\255explanatory) 2506 4344 w (bind) 3181 4344 w (and) 3386 4344 w (mount) 3557 4344 w (operations.) 3840 4344 w (The) 4308 4344 w (modifications) 4490 4344 w (to) 720 4464 w 10 /Courier f (rc) 829 4464 w 10 /Times-Roman f (and) 980 4464 w 10 /Courier f (factotum) 1155 4464 w 10 /Times-Roman f (are) 1666 4464 w (minimal) 1818 4464 w (and) 2183 4464 w (relatively) 2358 4464 w (insignificant.) 2766 4464 w 10 /Courier f (rc) 3322 4464 w 10 /Times-Roman f (is) 3473 4464 w (modified) 3571 4464 w (only) 3964 4464 w (to) 4174 4464 w (path) 4284 4464 w 10 /Courier f (/boot) 4488 4464 w 10 /Times-Roman f (and) 4820 4464 w (a) 4996 4464 w (different) 720 4584 w (location) 1096 4584 w (for) 1451 4584 w 10 /Courier f (/rc/lib/rcmain) 1600 4584 w 10 /Times-Roman f (,) 2473 4584 w 10 /Courier f (factotum) 2531 4584 w 10 /Times-Roman f (simply) 3044 4584 w (adds) 3350 4584 w (a) 3566 4584 w (flag) 3642 4584 w (to) 3829 4584 w (prefer) 3939 4584 w (a) 4208 4584 w (code) 4284 4584 w (path) 4504 4584 w (which) 4708 4584 w (it) 4984 4584 w (had) 720 4704 w (as) 901 4704 w (a) 1021 4704 w (fallback) 1102 4704 w (previously,) 1460 4704 w 10 /Courier f (wrarena9) 1944 4704 w 10 /Times-Roman f (just) 2461 4704 w (adds) 2643 4704 w (output) 2863 4704 w (of) 3156 4704 w (the) 3276 4704 w (current) 3435 4704 w (clump) 3754 4704 w (as) 4041 4704 w (the) 4161 4704 w (data) 4321 4704 w (sending) 4525 4704 w (pro\255) 4874 4704 w (ceeds.) 720 4824 w (The) 970 4980 w (hardware) 1152 4980 w (infrastructure) 1549 4980 w (is) 2113 4980 w (two) 2207 4980 w (native) 2384 4980 w (pentium) 2655 4980 w (IV) 3010 4980 w (for) 3143 4980 w (the) 3287 4980 w (main) 3437 4980 w 10 /Courier f (venti) 3665 4980 w 10 /Times-Roman f (and) 3993 4980 w 10 /Courier f (fossil) 4165 4980 w 10 /Times-Roman f (server) 4553 4980 w (and) 4824 4980 w (a) 4996 4980 w (pentium) 720 5100 w (III) 1077 5100 w (for) 1205 5100 w (the) 1350 5100 w (main) 1501 5100 w (tcp) 1730 5100 w (cpu.) 1881 5100 w (The) 2079 5100 w (user) 2263 5100 w (terminal) 2458 5100 w (is) 2820 5100 w (a) 2916 5100 w (modern) 2989 5100 w (desktop) 3323 5100 w (with) 3663 5100 w (an) 3870 5100 w (intel) 3993 5100 w (i7) 4200 5100 w (running) 4307 5100 w (the) 4646 5100 w (9front) 4796 5100 w (distribution.) 720 5220 w (An) 1249 5220 w (amd) 1413 5220 w (ph) 1627 5220 w (II) 1769 5220 w (debian) 1877 5220 w (box) 2185 5220 w (provides) 2378 5220 w (p9p) 2765 5220 w (and) 2958 5220 w (qemu) 3145 5220 w (hosting) 3410 5220 w (for) 3748 5220 w (the) 3907 5220 w (backup) 4072 5220 w (leg) 4403 5220 w (of) 4568 5220 w (services.) 4694 5220 w (Remote) 720 5340 w (nodes) 1064 5340 w (are) 1330 5340 w (hosted) 1484 5340 w (on) 1778 5340 w (9cloud) 1911 5340 w (with) 2216 5340 w (one) 2427 5340 w (Bell) 2604 5340 w (Labs) 2804 5340 w (and) 3031 5340 w (one) 3208 5340 w (9front) 3385 5340 w (install.) 3661 5340 w (A) 3963 5340 w (linode) 4067 5340 w (running) 4349 5340 w (p9p) 4692 5340 w (pro\255) 4874 5340 w (vides a final fallback) 720 5460 w 10 /Courier f (venti) 1579 5460 w 10 /Times-Roman f (store.) 1904 5460 w 10 /Times-Bold f (Appendix III: Origins of the tools) 720 5700 w 10 /Times-Roman f (I) 970 5856 w (began) 1040 5856 w (working) 1315 5856 w (with) 1685 5856 w (multiple\255machine) 1900 5856 w (Plan) 2642 5856 w (9) 2857 5856 w (system) 2944 5856 w (about) 3259 5856 w (5) 3518 5856 w (years) 3605 5856 w (ago,) 3852 5856 w (trying) 4058 5856 w (to) 4334 5856 w (experience) 4449 5856 w (the) 4918 5856 w (original) 720 5976 w (design) 1067 5976 w (of) 1364 5976 w (separate) 1483 5976 w (services) 1845 5976 w (acquired) 2202 5976 w (from) 2581 5976 w (the) 2811 5976 w (network) 2969 5976 w (via) 3332 5976 w (a) 3490 5976 w (terminal.) 3570 5976 w (I) 3964 5976 w (have) 4033 5976 w (found) 4256 5976 w (this) 4524 5976 w (to) 4704 5976 w (be) 4817 5976 w (an) 4946 5976 w (environment) 720 6096 w (with) 1252 6096 w (desirable) 1457 6096 w (properties,) 1844 6096 w (many) 2295 6096 w (of) 2544 6096 w (them) 2654 6096 w (as) 2881 6096 w (described) 2991 6096 w (in) 3400 6096 w (the) 3505 6096 w (original) 3654 6096 w (papers.) 3992 6096 w (I) 4304 6096 w (also) 4364 6096 w (encountered) 4553 6096 w (some) 720 6216 w (obstacles) 958 6216 w (as) 1351 6216 w (a) 1461 6216 w (home) 1532 6216 w (user) 1781 6216 w (trying) 1974 6216 w (to) 2240 6216 w (deploy) 2345 6216 w (a) 2644 6216 w (true) 2715 6216 w (distributed) 2897 6216 w (Plan) 3352 6216 w (9) 3557 6216 w (environment.) 3634 6216 w (In) 4191 6216 w (the) 4301 6216 w (original) 4449 6216 w (Plan) 4786 6216 w (9) 4990 6216 w (design,) 720 6336 w (the) 1039 6336 w (infrastructure) 1194 6336 w (of) 1764 6336 w (file) 1880 6336 w (and) 2046 6336 w (cpu) 2223 6336 w (servers) 2400 6336 w (was) 2715 6336 w (intended) 2903 6336 w (to) 3280 6336 w (be) 3391 6336 w (installed) 3518 6336 w (in) 3890 6336 w (a) 4002 6336 w (professionally) 4080 6336 w (managed) 4680 6336 w (datacenter.) 720 6456 w (The) 1194 6456 w (default) 1388 6456 w (assumptions,) 1704 6456 w (though) 2263 6456 w (somewhat) 2580 6456 w (adjusted) 3024 6456 w (over) 3396 6456 w (the) 3612 6456 w (years,) 3773 6456 w (remain) 4047 6456 w (best) 4363 6456 w (suited) 4563 6456 w (for) 4841 6456 w (a) 4996 6456 w (world) 720 6576 w (where) 982 6576 w (a) 1254 6576 w (given) 1327 6576 w (hardware) 1579 6576 w (and) 1979 6576 w (network) 2153 6576 w (configuration) 2510 6576 w (has) 3078 6576 w (a) 3241 6576 w (lifespan) 3315 6576 w (measured) 3661 6576 w (in) 4073 6576 w (years.) 4181 6576 w (In) 4446 6576 w (a) 4559 6576 w (home) 4633 6576 w (net\255) 4885 6576 w (work,) 720 6696 w (things) 981 6696 w (may) 1257 6696 w (often) 1460 6696 w (change) 1696 6696 w (on) 2009 6696 w (a) 2140 6696 w (timescale) 2215 6696 w (of) 2623 6696 w (weeks,) 2737 6696 w (days,) 3042 6696 w (or) 3281 6696 w (even) 3394 6696 w (hours.) 3612 6696 w (The) 3889 6696 w (user) 4074 6696 w (is) 4270 6696 w (likely) 4367 6696 w (to) 4625 6696 w (turn) 4733 6696 w (off) 4924 6696 w (and) 720 6816 w (turn) 892 6816 w (on) 1081 6816 w (machines) 1209 6816 w (more) 1614 6816 w (often,) 1847 6816 w (shift) 2105 6816 w (both) 2311 6816 w (public) 2517 6816 w (and) 2795 6816 w (private) 2967 6816 w (nat) 3272 6816 w (ips,) 3422 6816 w (and) 3592 6816 w (in) 3764 6816 w (general) 3870 6816 w (operate) 4191 6816 w (the) 4512 6816 w (machines) 4663 6816 w (in) 720 6936 w (a) 826 6936 w (much) 898 6936 w (less) 1148 6936 w (predictable) 1326 6936 w (way.) 1797 6936 w (Also,) 2016 6936 w (the) 2258 6936 w (hardware) 2408 6936 w (a) 2806 6936 w (home) 2878 6936 w (user) 3127 6936 w (is) 3320 6936 w (likely) 3414 6936 w (to) 3669 6936 w (be) 3774 6936 w (using) 3895 6936 w (for) 4139 6936 w (Plan) 4282 6936 w (9) 4487 6936 w (is) 4564 6936 w (a) 4658 6936 w (mixture) 4729 6936 w (of) 720 7056 w (older) 838 7056 w (machines,) 1078 7056 w (virtual) 1515 7056 w (machines,) 1811 7056 w (and) 2248 7056 w (desktops) 2427 7056 w (hosting) 2813 7056 w (related) 3144 7056 w (software) 3451 7056 w (like) 3830 7056 w (Plan9port.) 4016 7056 w (This) 4466 7056 w (is) 4680 7056 w (a) 4783 7056 w (very) 4863 7056 w (different reliability profile than professional datacenter hardware.) 720 7176 w cleartomark showpage saveobj restore %%EndPage: 11 11 %%Page: 12 12 /saveobj save def mark 12 pagesetup 10 /Times-Roman f (\255 12 \255) 2772 480 w (My) 970 840 w (experience) 1143 840 w (as) 1608 840 w (a) 1725 840 w (home) 1803 840 w (user) 2059 840 w (building) 2260 840 w (on) 2629 840 w (top) 2764 840 w (of) 2927 840 w (older) 3045 840 w (hardware) 3285 840 w (mixed) 3690 840 w (with) 3975 840 w (virtual) 4188 840 w (machines) 4484 840 w (and) 4896 840 w (making) 720 960 w (frequent) 1056 960 w (changes) 1424 960 w (to) 1781 960 w (my) 1895 960 w (network) 2059 960 w (arrangement) 2421 960 w (was) 2954 960 w (that) 3144 960 w (the) 3329 960 w (user) 3486 960 w (environment) 3687 960 w (I) 4227 960 w (had) 4295 960 w (in) 4474 960 w (Plan) 4587 960 w (9) 4800 960 w (was) 4885 960 w (amazing,) 720 1080 w (but) 1110 1080 w (somewhat) 1265 1080 w (fragile.) 1697 1080 w (The) 2009 1080 w (grid) 2191 1080 w (architecture) 2379 1080 w (created) 2877 1080 w (dependencies) 3192 1080 w (between) 3757 1080 w (the) 4117 1080 w (different) 4267 1080 w (machines.) 4638 1080 w (If) 720 1200 w (there) 819 1200 w (is) 1051 1200 w (a) 1150 1200 w (backing) 1226 1200 w (store) 1574 1200 w (machine) 1800 1200 w (\(such) 2170 1200 w (as) 2418 1200 w 10 /Courier f (venti) 2533 1200 w 10 /Times-Roman f (\)) 2865 1200 w (supporting) 2930 1200 w (a) 3390 1200 w (file) 3466 1200 w (server) 3631 1200 w (supporting) 3906 1200 w (a) 4366 1200 w (cpu) 4442 1200 w (server,) 4618 1200 w (the) 4918 1200 w (user) 720 1320 w (environment) 920 1320 w (breaks) 1459 1320 w (if) 1753 1320 w (there) 1848 1320 w (is) 2081 1320 w (any) 2182 1320 w (disruption) 2360 1320 w (of) 2800 1320 w (the) 2918 1320 w (machines) 3075 1320 w (and) 3487 1320 w (their) 3666 1320 w (network) 3884 1320 w (connections.) 4246 1320 w (At) 4783 1320 w (the) 4918 1320 w (time) 720 1440 w (four) 935 1440 w (years) 1138 1440 w (ago,) 1385 1440 w (Qemu) 1591 1440 w (virtualization) 1872 1440 w (also) 2442 1440 w (seemed) 2640 1440 w (less) 2976 1440 w (robust) 3163 1440 w (than) 3449 1440 w (now,) 3657 1440 w (and) 3890 1440 w (my) 4070 1440 w (VMs) 4234 1440 w (were) 4470 1440 w (prone) 4699 1440 w (to) 4962 1440 w (crashing) 720 1560 w (if) 1089 1560 w (placed) 1181 1560 w (under) 1472 1560 w (significant) 1730 1560 w (load.) 2183 1560 w (Plan) 2411 1560 w (9) 2620 1560 w (was) 2701 1560 w (giving) 2887 1560 w (me) 3174 1560 w (a) 3327 1560 w (user) 3402 1560 w (environment) 3599 1560 w (that) 4135 1560 w (I) 4316 1560 w (loved,) 4381 1560 w (but) 4660 1560 w (I) 4820 1560 w (was) 4885 1560 w (also) 720 1680 w (struggling) 912 1680 w (with) 1349 1680 w (reliability) 1558 1680 w (issues) 1978 1680 w (\255) 2247 1680 w (qemu) 2310 1680 w (VMs) 2562 1680 w (running) 2792 1680 w 10 /Courier f (fossil) 3133 1680 w 10 /Times-Roman f (often) 3523 1680 w (corrupted) 3758 1680 w (their) 4170 1680 w (filesystem) 4383 1680 w (when) 4824 1680 w (crashing badly.) 720 1800 w (It) 970 1956 w (seemed) 1065 1956 w (to) 1398 1956 w (me) 1510 1956 w (that) 1666 1956 w (a) 1850 1956 w (grid) 1928 1956 w (of) 2123 1956 w (multiple) 2241 1956 w (machines) 2610 1956 w (should) 3022 1956 w (create) 3324 1956 w (the) 3596 1956 w (property) 3753 1956 w (of) 4126 1956 w (being) 4244 1956 w (more) 4501 1956 w (reliable) 4741 1956 w (and) 720 2076 w (resilient) 890 2076 w (than) 1238 2076 w (any) 1436 2076 w (of) 1606 2076 w (the) 1715 2076 w (components,) 1863 2076 w (and) 2397 2076 w (I) 2567 2076 w (was) 2626 2076 w (experiencing) 2807 2076 w (more) 3348 2076 w (of) 3579 2076 w (a "one fall, they all fall" dynamic.) 3688 2076 w (The more tightly I tried to bind my machines together by importing services from each other, the) 720 2196 w (more) 4616 2196 w (frag\255) 4847 2196 w (ile) 720 2316 w (everything) 846 2316 w (became.) 1299 2316 w (I) 1654 2316 w (wanted) 1713 2316 w (the) 2027 2316 w 10 /Courier f (cpurc) 2175 2316 w 10 /Times-Roman f (on the machines to acquire services from the other machines on) 2501 2316 w (the) 720 2436 w (grid,) 875 2436 w (to) 1094 2436 w (put) 1205 2436 w (those) 1367 2436 w ("underneath") 1612 2436 w (the) 2171 2436 w (user) 2327 2436 w (namespace) 2527 2436 w (so) 2998 2436 w (that) 3121 2436 w (when) 3305 2436 w (I) 3555 2436 w 10 /Courier f (cpu) 3622 2436 w 10 /Times-Roman f (in,) 3836 2436 w (a) 3973 2436 w (multiple) 4051 2436 w (machine) 4419 2436 w (name\255) 4791 2436 w (space) 720 2556 w (would) 974 2556 w (be) 1257 2556 w (built) 1384 2556 w (and) 1601 2556 w (waiting.) 1778 2556 w (Doing) 2136 2556 w (this) 2418 2556 w (kind) 2595 2556 w (of) 2805 2556 w (service) 2920 2556 w (acquisition) 3234 2556 w (from) 3705 2556 w (the) 3931 2556 w (main) 4085 2556 w (flow) 4317 2556 w (of) 4532 2556 w (control) 4647 2556 w (in) 4962 2556 w 10 /Courier f (cpurc) 720 2676 w 10 /Times-Roman f (though) 1061 2676 w (created) 1380 2676 w (system) 1708 2676 w (wide) 2027 2676 w (dependencies) 2262 2676 w (on) 2841 2676 w (those) 2983 2676 w (resources,) 3236 2676 w (and) 3679 2676 w (my) 3865 2676 w (user) 4035 2676 w (environment) 4243 2676 w (would) 4790 2676 w (freeze) 720 2796 w (up) 995 2796 w (if) 1128 2796 w (a) 1222 2796 w (read) 1298 2796 w (from) 1501 2796 w (a) 1727 2796 w (network) 1803 2796 w (mount) 2162 2796 w (didn't) 2450 2796 w (return.) 2721 2796 w (I) 3016 2796 w (tried) 3081 2796 w (using) 3296 2796 w 10 /Courier f (aan) 3545 2796 w 10 /Times-Roman f (and) 3757 2796 w 10 /Courier f (recover) 3933 2796 w 10 /Times-Roman f (,) 4385 2796 w (but) 4442 2796 w (those) 4602 2796 w (tools) 4845 2796 w (are for dealing with network\255level disruptions, not a machine that dies and has to reboot.) 720 2916 w (Another) 970 3072 w (issue) 1324 3072 w (I) 1551 3072 w (experienced) 1611 3072 w (working) 2119 3072 w (with) 2479 3072 w (my) 2684 3072 w (grid) 2839 3072 w (was) 3027 3072 w (the) 3209 3072 w (lack) 3358 3072 w (of) 3552 3072 w (higher\255level) 3663 3072 w (tools) 4173 3072 w (for) 4396 3072 w (dealing) 4540 3072 w (with) 4862 3072 w (namespaces,) 720 3192 w (and) 1248 3192 w (a) 1419 3192 w (general) 1490 3192 w (focus) 1810 3192 w (on) 2053 3192 w (creating) 2180 3192 w (a) 2528 3192 w (namespace) 2599 3192 w (which) 3063 3192 w (roughly) 3334 3192 w (mirrored) 3672 3192 w (conventional) 4048 3192 w (unix.) 4591 3192 w (It) 4820 3192 w (felt) 4907 3192 w (to) 720 3312 w (me) 834 3312 w (that) 992 3312 w (the) 1178 3312 w (mechanism) 1336 3312 w (of) 1827 3312 w (namespaces) 1946 3312 w (was) 2458 3312 w (so) 2650 3312 w (brilliant) 2776 3312 w (and) 3130 3312 w (so) 3311 3312 w (flexible) 3437 3312 w (and) 3779 3312 w (open\255ended) 3960 3312 w (that) 4462 3312 w (there) 4649 3312 w (was) 4885 3312 w (much) 720 3432 w (more) 969 3432 w (that) 1200 3432 w (could) 1376 3432 w (be) 1624 3432 w (done) 1744 3432 w (with) 1964 3432 w (manipulating) 2168 3432 w (namespaces) 2722 3432 w (and) 3224 3432 w (network) 3394 3432 w (transparency) 3747 3432 w (to) 4282 3432 w (build) 4386 3432 w (interesting) 4618 3432 w (environments.) 720 3552 w (What) 1338 3552 w (I) 1603 3552 w (wanted) 1685 3552 w (was) 2022 3552 w (a) 2226 3552 w (way) 2319 3552 w (to) 2534 3552 w ("weave") 2661 3552 w (a) 3046 3552 w (complicated) 3139 3552 w (namespace) 3677 3552 w (that) 4164 3552 w (unified) 4364 3552 w (different) 4697 3552 w (machines, but was also resilient to their failure and would replicate and secure my data without extra work.) 720 3672 w (As I experimented with different partial solutions) 970 3828 w (\(just) 2971 3828 w (running) 3175 3828 w (3) 3512 3828 w (copies) 3588 3828 w (of) 3869 3828 w (everything,) 3978 3828 w (for) 4456 3828 w (instance\)) 4598 3828 w (it) 4984 3828 w (became) 720 3948 w (clear) 1055 3948 w (to) 1279 3948 w (me) 1388 3948 w (that) 1541 3948 w (there) 1722 3948 w (was) 1952 3948 w (a) 2138 3948 w (fundamental,) 2213 3948 w (and) 2767 3948 w (unnecessary,) 2941 3948 w (dependency) 3483 3948 w (that) 3989 3948 w (was) 4169 3948 w (at) 4354 3948 w (the) 4456 3948 w (root) 4608 3948 w (of) 4799 3948 w (my) 4912 3948 w (difficulties.) 720 4068 w (This) 1210 4068 w (was) 1420 4068 w (the) 1607 4068 w (dependency) 1761 4068 w (of) 2269 4068 w (the) 2384 4068 w (Plan) 2538 4068 w (9) 2748 4068 w (kernel) 2830 4068 w (on) 3111 4068 w (a) 3243 4068 w (given) 3319 4068 w (root) 3573 4068 w (filesystem) 3767 4068 w (chosen) 4211 4068 w (at) 4521 4068 w (boot\255time.) 4626 4068 w (When) 720 4188 w (a) 986 4188 w (running) 1058 4188 w (cpu) 1397 4188 w (server) 1569 4188 w (loses) 1840 4188 w (its) 2068 4188 w (root) 2191 4188 w (fileserver,) 2380 4188 w (it) 2808 4188 w (becomes) 2891 4188 w (dead) 3267 4188 w (\255) 3482 4188 w (even) 3542 4188 w (though) 3757 4188 w (it) 4062 4188 w (experienced) 4145 4188 w (no) 4653 4188 w (failure) 4780 4188 w (or) 720 4308 w (data) 831 4308 w (corruption) 1025 4308 w (or) 1469 4308 w (any) 1580 4308 w (disruption) 1752 4308 w (in) 2186 4308 w (its) 2292 4308 w (normal) 2415 4308 w (function,) 2726 4308 w (it) 3113 4308 w (just) 3198 4308 w (lost) 3372 4308 w (a) 3546 4308 w (file) 3619 4308 w (descriptor.) 3781 4308 w (Deciding) 4234 4308 w (to) 4629 4308 w (restruc\255) 4736 4308 w (ture boot to remove this dependency was the core insight that the rest of the tools became organized around.) 720 4428 w 10 /Times-Italic f (Ben Kidwell, "mycroftiv") 3600 5028 w 12 /Times-Roman f (Mycroftiv, plan9grid@9gridchan.org) 720 5028 w 12 /Times-Italic f (Draft) 720 5268 w (version 2, Feb 20 2013) 1011 5268 w cleartomark showpage saveobj restore %%EndPage: 12 12 %%Trailer done %%DocumentFonts: Times-Roman Times-Italic Times-Bold Courier %%Pages: 12