%!PS %%Version: 3.3.2 %%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 /show {show} bind def % so later references don't bind /widthshow {widthshow} bind def /stringwidth {stringwidth} 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 /linewidth 0.5 def /#copies 1 store /landscape false def /resolution 720 def % % 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 2 setdecoding %%EndSetup %%Page: 1 1 /saveobj save def mark 1 pagesetup 12 B f (The Various Ports)2 940 1 2410 1220 t 10 I f (Rob Pike)1 363 1 2698 1480 t 10 R f ( system)1 312( The)1 213(This document collects comments about the various architectures supported by Plan 9.)11 3545 3 970 2056 t ( the differences between machines, so the machines as seen by a Plan 9 user look differ\255)16 3516(tries to hide most of)4 804 2 720 2176 t ( because we are a small group, we couldn't)8 1744( Also,)1 267( native software.)2 668(ent from how they are perceived through)6 1641 4 720 2296 t ( document records)2 739( This)1 229(do everything: exploit every optimization, support every model, drive every device.)10 3352 3 720 2416 t (what we)1 358 1 720 2536 t 10 I f (have)1126 2536 w 10 R f ( discusses the compiler)3 996( first section)2 540(done. The)1 447 3 1362 2536 t 10 S1 f (\320)3345 2536 w 10 R f (actually the compiler/assembler/loader)2 1595 1 3445 2536 t (suite)720 2656 w 10 S1 f (\320)909 2656 w 10 R f ( of the vari\255)3 474( second talks about the operating system as implemented on each)10 2632( The)1 208(for each machine.)2 717 4 1009 2656 t (ous machines.)1 566 1 720 2776 t 10 B f (The Motorola MC68020 compiler)3 1434 1 720 3016 t 10 R f ( to its competitors)3 726( Relative)1 385(This is actually the oldest compiler of the bunch.)8 1967 3 970 3172 t 10 S1 f (\320)4048 3172 w 10 R f (commercial compilers)1 892 1 4148 3172 t ( machine)1 368(for the same)2 505 2 720 3292 t 10 S1 f (\320)1593 3292 w 10 R f ( assumes at least a 68020 architecture: some of the)9 2066( It)1 116(it generates quite good code.)4 1165 3 1693 3292 t (addressing modes it generates are not on the 68000 or 68010.)10 2449 1 720 3412 t ( for a few instructions and registers available only)8 2060( Except)1 335( use this compiler for the 68040.)6 1344(We also)1 331 4 970 3568 t ( Our)1 209(from assembly language, the only user\255visible difference between these machines is in floating point.)13 4111 2 720 3688 t ( programs we)2 571(68020s all have 68881 or 68882 floating point units attached, so to execute floating point)14 3749 2 720 3808 t ( the 68040 is not quite so thorough in its imple\255)10 1901( Unfortunately,)1 635( there being appropriate hardware.)4 1370(depend on)1 414 4 720 3928 t ( standard or in its provision of built\255in instructions for the transcendental func\255)12 3225(mentation of the IEEE 754)4 1095 2 720 4048 t ( have a library,)3 610( latter was easy to get around: we don't use them on the 68020 either, but we do)17 3280(tions. The)1 430 3 720 4168 t 10 CW f (\255l68881)720 4288 w 10 R f (, that you can use if you need the performance \(which can be substantial:)13 3001 1 1140 4288 t 10 CW f (astro)4173 4288 w 10 R f (runs twice as)2 535 1 4505 4288 t ( same binaries on both machines and)6 1488( don't use this library by default because we want to run the)12 2438(fast\). We)1 394 3 720 4408 t (don't want to emulate)3 874 1 720 4528 t 10 CW f (FCOSH)1619 4528 w 10 R f (in the operating system.)3 955 1 1944 4528 t ( didn't really want to deal with gradual underflow and all that,)11 2507( We)1 190( IEEE is nastier.)3 655(The problem with)2 718 4 970 4684 t ( need to do it on, so on the 68040 we implement non\255)12 2195(especially since we had half a dozen machines we'd)8 2125 2 720 4804 t ( not\255a\255numbers.)1 641(trapping underflow as truncation to zero and do nothing about denormalized numbers and)12 3679 2 720 4924 t ( floating\255point experts side with us)5 1411( Our)1 210(This means the 68020 and the 68040 are not precisely compatible.)10 2699 3 720 5044 t (on this one, so don't try to talk us out of it.)11 1709 1 720 5164 t 10 B f (The MIPS compiler)2 844 1 720 5404 t 10 R f (This compiler generates code for the R2000 and R3000 machines configured to be big\255endians.)13 4070 1 970 5560 t ( generates good)2 638( its speed, the Plan 9 compiler)6 1244( Considering)1 546(There is no support for little\255endian machines.)6 1892 4 720 5680 t (code, but the commercial MIPS compiler with all the stops pulled out consistently beats it by 20% or so,)18 4320 1 720 5800 t ( compiling any\255)2 635( ours compiles about 10 times faster and we spend most of our time)13 2726( Since)1 274(sometimes more.)1 685 4 720 5920 t (way, we decided the tradeoff was fine.)6 1539 1 720 6040 t ( is solid: we've used it for several big projects and, of course, all our applications run)16 3528(The compiler)1 542 2 970 6196 t ( behavior of floating\255point programs is much like on the 68040: the operating system emulates)14 3780( The)1 206(under it.)1 334 3 720 6316 t ( underflow or)2 545(where necessary to get past non\255trapping underflow and overflow, but does not handle gradual)13 3775 2 720 6436 t ( of assembler)2 532( themselves are rumored to have 50,000 lines)7 1815( \(MIPS)1 318(denormalized numbers or not\255a\255numbers.)3 1655 4 720 6556 t ( for them.\))2 424( Good)1 272(to reconstruct the state of the machine and provide this support.)10 2538 3 720 6676 t cleartomark showpage saveobj restore %%EndPage: 1 1 %%Page: 2 2 /saveobj save def mark 2 pagesetup 10 R f (\255 2 \255)2 166 1 2797 480 t 10 B f (The SPARC compiler)2 927 1 720 840 t 10 R f ( better than GCC with all the)6 1197( have seen it do much)5 898( We)1 194(The SPARC compiler is also solid and fast.)7 1781 4 970 996 t (optimizations, but on average it's probably about the same.)8 2364 1 720 1116 t ( no SPARC machines with multiply or divide instructions, so the compiler does not by)14 3703(We have)1 367 2 970 1272 t ( loader flag,)2 487( A)1 126( it calls internal subroutines.)4 1146( Instead)1 342(default produce them.)2 881 5 720 1392 t 10 CW f (\255M)3731 1392 w 10 R f ( to be)2 228(, causes the instructions)3 961 2 3851 1392 t ( necessary, and it works if we read the book)9 1769( operating system has trap code to emulate them if)9 2020(emitted. The)1 531 3 720 1512 t (right \(again, we have no hardware with which to be sure\).)10 2305 1 720 1632 t (The floating point story is exactly the same as on the MIPS.)11 2393 1 970 1788 t 10 B f (The Intel i386 compiler)3 997 1 720 2028 t 10 R f ( the machine is in 32\255bit protected)6 1389( works only if)3 567( It)1 114(This is really a 386 compiler, not a 286 compiler.)9 2000 4 970 2184 t ( intended only for us to get our software run\255)9 1821( ignores a lot of the stuff in the instruction set, being)11 2137(mode. It)1 362 3 720 2304 t ( code,)1 246( that caveat, it's fairly solid and generates tolerable)8 2093( Given)1 301(ning on the particular 386 PC's we have.)7 1680 4 720 2424 t (although on both counts its probably weaker than the compilers mentioned above.)11 3274 1 720 2544 t ( you do,)2 331( If)1 119( have a 387 to execute the instructions.)7 1574(Floating point is well\255behaved, but we assume you)7 2046 4 970 2700 t ( tran\255)1 219( default, we don't use the 387 built\255ins for)8 1740( By)1 174(it does the full IEEE 754 job, just like the MC68881.)10 2187 4 720 2820 t (scendentals; use)1 646 1 720 2940 t 10 CW f (\255l387)1391 2940 w 10 R f (if you want to.)3 583 1 1716 2940 t 10 B f (The Intel i960 compiler)3 997 1 720 3180 t 10 R f ( been)1 220( only)1 209( It's)1 189(This compiler was built as a weekend hack to let us get the Cyclone boards running.)15 3452 4 970 3336 t (used to run one program)4 1012 1 720 3456 t 10 S1 f (\320)1732 3456 w 10 R f (the on\255board code in the Cyclone)5 1373 1 1832 3456 t 10 S1 f (\320)3205 3456 w 10 R f ( There)1 290( likely to be buggy.)4 807(and is therefore)2 638 3 3305 3456 t ( of obvious optimizations to the code that have never been attempted: we got the Cyclones)15 3780(are a number)2 540 2 720 3576 t (working and moved on.)3 949 1 720 3696 t 10 B f (The AT&T Hobbit compiler)3 1209 1 720 3936 t 10 R f ( Hobbit, but we're including the compiler because the chip may grow to)12 2972(You probably don't have a)4 1098 2 970 4092 t ( wider audience, because we wanted to include the version of Plan 9 that runs on this machine, and)18 4056(have a)1 264 2 720 4212 t ( the compilers we've really used \(that is, except for the i960\), this one generates the)15 3535( Of)1 168(for boosterism.)1 617 3 720 4332 t ( glar\255)1 223( Most)1 266( just haven't taken the time.)5 1160( are many improvements to be made but we)8 1835( There)1 293(poorest code.)1 543 6 720 4452 t (ingly, the Hobbit compiler does not support bitfields.)7 2125 1 720 4572 t ( a configuration\255time bit to be run either big\255endian or little\255endian; the)11 2959(Like the MIPS, Hobbit has)4 1111 2 970 4728 t (compiler produces code for the little\255endian case only.)7 2173 1 720 4848 t ( point code, but the)4 813(The architecture has floating point defined, and the compiler generates floating)10 3257 2 970 5004 t ( operating system has emulation code that does IEEE 754 without gradual)11 2966( The)1 206(silicon doesn't implement it.)3 1148 3 720 5124 t (underflow, etc. etc.)2 767 1 720 5244 t 10 B f (The Gnot operating system)3 1158 1 720 5484 t 10 R f ( and design to a SUN\2553, with a two\255bit\255per\255pixel)8 1947(The Gnot is a locally\255built machine, similar in power)8 2123 2 970 5640 t ( Gnot)1 234( The)1 214( it uses an AT&T internal twisted\255pair network called Incon.)9 2499( Instead,)1 372(display and no Ethernet.)3 1001 5 720 5760 t ( an external port on the back lets simple I/O boards talk directly to the CPU's memory)16 3542(has no I/O bus, but)4 778 2 720 5880 t ( Gnots have no exter\255)4 875( Most)1 260( printers, etc.)2 529( used this for a handful of applications: local cache disk,)10 2299(bus. We)1 357 5 720 6000 t (nal peripherals.)1 615 1 720 6120 t ( not a port,)3 451(If you have SUN\2553's lying around, you might consider taking the Gnot port \(actually it's)14 3619 2 970 6276 t ( need to learn about the)5 959( You'll)1 316( on those machines.)3 803(it's the original\) as the basis for getting Plan 9 running)10 2242 4 720 6396 t ( If)1 120( system and the Sparcstation system will get you quite far.)10 2369(SUN\2553 MMU, but a combination of the Gnot)7 1831 3 720 6516 t ( the work for you, Sydney University got an older version of Plan 9 running on)15 3158(you want someone else to do)5 1162 2 720 6636 t ( Mail)1 239(SUN\2553s and have volunteered to be contacted on the subject.)9 2434 2 720 6756 t (A/Prof. R Kummerfeld)2 924 1 970 6912 t (Computer Science)1 735 1 970 7032 t (Madsen Bldg F09)2 717 1 970 7152 t (Sydney University)1 747 1 970 7272 t cleartomark showpage saveobj restore %%EndPage: 2 2 %%Page: 3 3 /saveobj save def mark 3 pagesetup 10 R f (\255 3 \255)2 166 1 2797 480 t (Sydney NSW 2006)2 772 1 970 840 t (Australia)970 960 w (for more information.)2 868 1 970 1116 t 10 B f (The NeXTstation operating system)3 1485 1 720 1356 t 10 R f ( is actually one of)4 718( This)1 230( machine.)1 390(Plan 9 runs on the 68040\255based NeXTstation and on no other NeXT)11 2732 4 970 1512 t ( one strange part is that we need a)8 1424( The)1 214( two\255bit\255per\255pixel display is a delight.)5 1555(our favorite ports: the crisp)4 1127 4 720 1632 t ( mouse on)2 437(three\255button mouse, so we unplug the NeXT mouse and use a 9600\255baud serial\255port Logitech)13 3883 2 720 1752 t (serial port B.)2 519 1 720 1872 t ( NeXT's)1 363(To get the system running, you need to install)8 1958 2 970 2028 t 10 CW f (boot)3333 2028 w 10 R f (program as in the TFTP directory)5 1425 1 3615 2028 t (\(called)720 2148 w 10 CW f (/lib/tftpd)1034 2148 w 10 R f (on Plan 9, if you're booting from there\) and)8 1894 1 1677 2148 t 10 CW f (/68020/9nextstation)3614 2148 w 10 R f (where)4797 2148 w ( \(we of course put it in)6 910(BOOTP can find it)3 758 2 720 2268 t 10 CW f (/68020/9nextstation)2414 2268 w 10 R f ( that file from the network by)6 1182(\). Boot)1 304 2 3554 2268 t (typing \(say\))1 491 1 720 2388 t 10 CW f (ben /68020/9nextstation)1 1391 1 1247 2388 t 10 R f ( will load the)3 558( This)1 239(to the boot ROM.)3 739 3 2674 2388 t 10 CW f (boot)4246 2388 w 10 R f (program and)1 518 1 4522 2388 t ( set this up to happen automatically; see the NeXT man\255)10 2267( can)1 164( You)1 223(use that to load the real operating system.)7 1666 4 720 2508 t (uals for details.)2 613 1 720 2628 t ( run on)2 297(If you have the old 68030\255based cubes on remainder, this system could probably be made to)15 3773 2 970 2784 t ( most manufacturers, NeXT kept the architecture pretty similar between)9 2889( Like)1 235( much work.)2 506(them without too)2 690 4 720 2904 t ( 68030 has a very different MMU, though, so the job won't be trivial.)13 2780(models. The)1 519 2 720 3024 t 10 B f (The MIPS Magnum operating system)4 1605 1 720 3264 t 10 R f ( the NeXTstation, the zippy)4 1147(This is another favorite: although the tube is nothing like as nice as on)13 2923 2 970 3420 t (MIPS Magnum is all\255round a very comfortable place to run Plan 9.)11 2680 1 720 3540 t ( to access with BOOTP is)5 1075(The file you need)3 725 2 970 3696 t 10 CW f (/mips/9magnum)2804 3696 w 10 R f ( the)1 156(. Set)1 212 2 3584 3696 t 10 CW f (console)3986 3696 w 10 R f (ROM environ\255)1 600 1 4440 3696 t (ment variable to)2 651 1 720 3816 t 10 CW f (m)1397 3816 w 10 R f (and)1483 3816 w 10 CW f (bootmode)1653 3816 w 10 R f (to)2158 3816 w 10 CW f (e)2261 3816 w 10 R f ( type)1 197(. Then)1 280 2 2321 3816 t 10 CW f (bootp\(\)/mips/9magnum)2823 3816 w 10 R f (\(or whatever\) to the boot)4 992 1 4048 3816 t ( a CPU server rather than a terminal, set)8 1751( you want to run the machine as)7 1399( If)1 134(ROM to run the system.)4 1036 4 720 3936 t 10 CW f (console)720 4056 w 10 R f (to)1174 4056 w 10 CW f (1)1286 4056 w 10 R f (instead and boot)2 673 1 1380 4056 t 10 CW f (/mips/9magnumcpu)2087 4056 w 10 R f ( also have a disk\255resident boot program for)7 1772(. We)1 221 2 3047 4056 t (this machine; see)2 688 1 720 4176 t 10 CW f (booting)1433 4176 w 10 R f (\(8\) for information.)2 779 1 1853 4176 t ( use 1\255bit frame buffers)4 972( We)1 197( 3000's and the system will run on only that model.)10 2148(We have Magnum)2 753 4 970 4332 t (and 8\255bit color frame buffers; both run fine from the same binary.)11 2622 1 720 4452 t 10 B f (The SGI Power Series operating system)5 1690 1 720 4692 t 10 R f ( use them as workstations, so)5 1241( don't)1 250( We)1 202(We use SGI Power Series machines as our CPU servers.)9 2377 4 970 4848 t ( machines we)2 543( The)1 206(you'll find no code in our system to support SGI frame buffers or the Geometry Engines.)15 3571 3 720 4968 t ( with IO2 boards, the code should work on)8 1730( you have older machines)4 1028( If)1 118(have are 4D series with IO3 boards.)6 1444 4 720 5088 t (them, too.)1 403 1 720 5208 t (You can get started by booting)5 1439 1 970 5364 t 10 CW f (/mips/9power)2476 5364 w 10 R f ( you'll want to install the program)6 1624(, but)1 220 2 3196 5364 t 10 CW f (/mips/9powerboot)720 5484 w 10 R f (as)1709 5484 w 10 CW f (b)1821 5484 w 10 R f ( the manual page)3 691( See)1 198(on your boot disk to run the system for real.)9 1790 3 1910 5484 t 10 I f (booting)4618 5484 w 10 R f (\(8\))4924 5484 w (for more information.)2 868 1 720 5604 t 10 B f (The Sparcstation operating system)3 1480 1 720 5844 t 10 R f ( does some)2 468( It)1 123( Sparcstation\2552; the same binary works on both.)7 1993(We have SUN SLC's and a straight)6 1486 4 970 6000 t ( is no external)3 578( does, however, make a couple of assumptions: that there)9 2336( It)1 117(auto\255configuration at boot time.)3 1289 4 720 6120 t ( the lowest\255numbered)2 869( frame buffer it uses is the one in)8 1322( The)1 206(memory and that there is only one frame buffer.)8 1923 4 720 6240 t ( these assumptions is deep\255)4 1100( of)1 112( Neither)1 353(SBUS slot; this is also how the ROM selects the main frame buffer.)12 2755 4 720 6360 t ( helpful\) so we)3 623(rooted, but we have very scanty documentation for the machines \(SUN was not especially)13 3697 2 720 6480 t (didn't want to try anything risky.)5 1322 1 720 6600 t (We believe the binary should work on the following machines: Sparcstation 1 \(4/60\), IPC \(4/40\), 1+)15 4070 1 970 6756 t ( \(4/25\), and IPX \(4/50\), but, as noted, we've only tried two)11 2410(\(4/65\), SLC \(4/20\), Sparcstation 2 \(4/75\), ELC)6 1910 2 720 6876 t ( know work are the)4 802( only frame buffers we)4 936( The)1 212(of these.)1 345 4 720 6996 t 10 CW f (bwtwo)3048 6996 w 10 R f (and)3381 6996 w 10 CW f (cgsix)3558 6996 w 10 R f (, but we think the)4 729 1 3858 6996 t 10 CW f (cgthree)4620 6996 w 10 R f (will work since it is supposed to be the same as the)11 2073 1 720 7116 t 10 CW f (cgsix)2821 7116 w 10 R f ( we don't)2 381(without acceleration hardware, which)3 1510 2 3149 7116 t ( the frame buffer, you must)5 1132( peculiarity is that, to use)5 1040( Another)1 384(support anyway \(again, no documentation\).)4 1764 4 720 7236 t cleartomark showpage saveobj restore %%EndPage: 3 3 %%Page: 4 4 /saveobj save def mark 4 pagesetup 10 R f (\255 4 \255)2 166 1 2797 480 t ( ROM's environment variable)3 1240(set up the)2 411 2 720 840 t 10 CW f (output\255device)2409 840 w 10 R f (to be)1 210 1 3227 840 t 10 CW f (screen)3475 840 w 10 R f (so the ROM will enable the)5 1167 1 3873 840 t (video controller; we don't know how.)5 1509 1 720 960 t ( they use RARP to translate their Ethernet)7 1770( Instead)1 351( to download.)2 573(SUN's ROMS don't use BOOTP)4 1376 4 970 1116 t ( once loaded, does use BOOTP to discover its IP)9 2011( the Plan 9 kernel,)4 756( However,)1 448(address to their IP address.)4 1105 4 720 1236 t ( If)1 117( from the network.)3 746( you're booting from disk, this isn't as much a problem as if you're booting)14 3017(address. If)1 440 4 720 1356 t (the latter, you need to install)5 1208 1 720 1476 t 10 CW f (/sparc/9ss)1966 1476 w 10 R f ( If)1 129(as the boot file for the system where TFTP can find it.)11 2307 2 2604 1476 t (you're booting from a Plan 9 system, just make that the value of the)13 2779 1 720 1596 t 10 CW f (bootf)3529 1596 w 10 R f ( network data\255)2 588(attribute in the)2 593 2 3859 1596 t (base \(see)1 362 1 720 1716 t 10 I f (ndb)1107 1716 w 10 R f ( run the machine as a CPU server, boot)8 1561(\(8\)\). To)1 335 2 1257 1716 t 10 CW f (/sparc/9sscpu)3178 1716 w 10 R f (.)3958 1716 w ( we do believe it's as solid as the rest and we do)12 1931( But)1 196( guess, this is not our favorite port.)7 1398(As you might)2 545 4 970 1872 t ( you have Sparcstations and Magnums, race them.)7 2005( If)1 116(use it for production work.)4 1068 3 720 1992 t 10 B f (The IBM PC operating system)4 1299 1 720 2232 t 10 R f ( DOS can set up things we don't know about, such as)11 2208(The PC version of Plan 9 boots from DOS so)9 1862 2 970 2388 t ( within)1 282( system should work on any 386 or 486 PC and can handle anything that is)15 3020( The)1 207(power management.)1 811 4 720 2508 t ( run it)2 253( We)1 195( of your hardware.)3 757(the PC model, but you may want to tweak the system to handle peculiarities)13 3115 4 720 2628 t (on AT&T Safari, AT&T 6386, and Gateway 486 machines.)8 2382 1 720 2748 t ( displays work but)3 739( Color)1 279( 800\327600 black and white display.)5 1382(We use the VGA to support a 648\327480 or)8 1670 4 970 2904 t (only generate monochrome.)2 1117 1 720 3024 t (To boot the system, copy the files)6 1388 1 970 3180 t 10 CW f (/386/b.com)2389 3180 w 10 R f (and)3020 3180 w 10 CW f (/386/9pc)3195 3180 w 10 R f (to a DOS floppy \(see)4 867 1 3706 3180 t 10 I f (dossrv)4605 3180 w 10 R f (\(4\)\).)4866 3180 w (Then run)1 390 1 720 3300 t 10 CW f (b.com)1162 3300 w 10 R f ( Type)1 281( will ask what device to boot from.)7 1575( It)1 138(on the PC to bootstrap the system.)6 1532 4 1514 3300 t 10 CW f (fd!0!9pc)720 3420 w 10 R f (or)1242 3420 w 10 CW f (fd!1!9pc)1367 3420 w 10 R f ( the system boots, it will ask)6 1245( When)1 306(depending on the floppy unit number.)5 1600 3 1889 3420 t ( 9 system \(type)3 620( this point, you'll either need an Ethernet and a Plan)10 2128( At)1 155(where to get its files.)4 855 4 720 3540 t 10 CW f (il)4507 3540 w 10 R f (\) or you'll)2 413 1 4627 3540 t (need to get useful files loaded on the PC's disk.)9 1904 1 720 3660 t (If you want to run a PC stand\255alone, follow the instructions in the document)13 3042 1 970 3816 t 10 I f (Configuring a PC.)2 743 1 4037 3816 t 10 B f (The Hobbit operating system)3 1242 1 720 4056 t 10 R f (This system runs only on a home\255built board, so it's probably not of much interest.)14 3315 1 970 4212 t 10 B f (The file server)2 615 1 720 4452 t 10 R f ( a stand\255alone program, distantly)4 1372( It's)1 198(The file server runs on only a handful of distinct machines.)10 2500 3 970 4608 t ( It)1 115( it does is serve files on network connections.)8 1849(related to the CPU server code, that runs no user code: all)11 2356 3 720 4728 t ( See)1 202(supports SCSI disks only, which can be interleaved for faster throughput.)10 3000 2 720 4848 t 10 I f (fsconfig)3955 4848 w 10 R f (\(8\) for an explana\255)3 768 1 4272 4848 t (tion of how to configure a file server.)7 1491 1 720 4968 t ( file server, follow the directions for booting a CPU server using the file name)14 3204(To boot a)2 393 2 970 5124 t 10 CW f (9)4598 5124 w 10 I f (machtype)4658 5124 w 10 R f (where)720 5244 w 10 I f (machtype)988 5244 w 10 R f (is)1395 5244 w 10 CW f (power)1487 5244 w 10 R f (,)1787 5244 w 10 CW f (magnum)1837 5244 w 10 R f (,)2197 5244 w 10 CW f (ss)2247 5244 w 10 R f (, etc. as appropriate.)3 803 1 2367 5244 t 10 B f (The SGI file server)3 813 1 720 5484 t 10 R f ( on 4D multiprocessors with IO2 or IO3 boards, just like the CPU server system.)14 3393(The system runs)2 677 2 970 5640 t ( the IO2 or IO3, or you can use an Interphase)10 1953(The supports the internal LANCE Ethernet controller on)7 2367 2 720 5760 t ( old system did not support the internal SCSI con\255)9 2120( \(The)1 251( Eagle controller on the VME.)5 1274(V/Ethernet 4207)1 675 4 720 5880 t (troller; it does now; you need no Jaguar.\))7 1642 1 720 6000 t 10 B f (The MIPS 6280 file server)4 1115 1 720 6240 t 10 R f ( We)1 194( much a port of the SGI system, so has the same properties.)12 2441(This version of the system is pretty)6 1435 3 970 6396 t ( dual SCSI disk controller on the)6 1365(use an Eagle Ethernet controller and an Interphase V/SCSI 4210 Jaguar)10 2955 2 720 6516 t ( is no support for the internal SMD drive.)8 1657( There)1 282(VME bus.)1 411 3 720 6636 t cleartomark showpage saveobj restore %%EndPage: 4 4 %%Page: 5 5 /saveobj save def mark 5 pagesetup 10 R f (\255 5 \255)2 166 1 2797 480 t 10 B f (The MIPS Magnum file server)4 1304 1 720 840 t 10 R f ( built\255in frame buffer: it requires a 9600 baud terminal con\255)10 2443(The Magnum file server doesn't use the)6 1627 2 970 996 t (nected to)1 363 1 720 1116 t 10 CW f (tty1.)1108 1116 w 10 R f (Set the)1 275 1 1433 1116 t 10 CW f (console)1733 1116 w 10 R f (environment variable to)2 954 1 2178 1116 t 10 CW f (1)3157 1116 w 10 R f (and boot using BOOTP.)3 967 1 3242 1116 t 10 B f (The Sparcstation file server)3 1179 1 720 1356 t 10 R f ( How\255)1 280( things about the hardware as the Sparcstation CPU server code.)10 2589(The system assumes the same)4 1201 3 970 1512 t ( requires a 9600 baud terminal connected to)7 1819(ever, the file server doesn't use any existing frame buffer: it)10 2501 2 720 1632 t 10 CW f (ttya)720 1752 w 10 R f ( is known to work only on a Sparcstation 2 \(4/75\).)10 2007(. It)1 136 2 960 1752 t 10 B f (Backup)720 1992 w 10 R f ( an SGI Power Series 4D multiprocessor)6 1656( It's)1 189( server is unlikely to be much like yours.)8 1677(Our main file)2 548 4 970 2148 t ( cache memory, 7 gigabytes of SCSI magnetic disk, and a SONY WDA\255610 Writ\255)13 3383(with 128 megabytes of)3 937 2 720 2268 t ( WORM is actually the)4 943( The)1 209( gigabytes of data.)3 744(able Disk Auto Changer \(WORM\), which stores almost 350)8 2424 4 720 2388 t ( each morning the system con\255)5 1248( Early)1 271(prime storage; the SCSI disk is just a cache to improve performance.)11 2801 3 720 2508 t ( backup system is therefore just)5 1272( Our)1 207( image of the entire system as it appears that day.)10 1986(structs on WORM an)3 855 4 720 2628 t (a file server that lets you look at yesterday's \(or last year's\) file system.)13 2855 1 720 2748 t ( therefore the only one for which we have a)9 1880(The SONY WORM is the only one we've tried and)9 2190 2 970 2904 t ( adapt the code to a different brand of jukebox, but there are certainly)13 2900( shouldn't be too hard to)5 1035(driver. It)1 385 3 720 3024 t ( might also consider attach\255)4 1112( You)1 224(assumptions about the peculiarities of the device \(the things are all weird\).)11 2984 3 720 3144 t ( WORM drive and managing the dumps a little less automat\255)10 2437(ing a CD\255R jukebox or even just using a single)9 1883 2 720 3264 t ( long way of saying that the system as distributed has no explicit method of backup)15 3478( is just a)3 358(ically. This)1 484 3 720 3384 t (other than through the WORM jukebox.)5 1604 1 720 3504 t ( it wouldn't be as luxurious,)5 1127( Although)1 428(Not everyone can invest in such expensive hardware, however.)8 2515 3 970 3660 t (it would be possible to use)5 1074 1 720 3780 t 10 CW f (mkfs)1821 3780 w 10 R f ( archives and use)3 687(\(8\) to build regular file system)5 1228 2 2061 3780 t 10 CW f (scuzz)4002 3780 w 10 R f (\(8\) to stream them)3 738 1 4302 3780 t (to a SCSI 8mm tape drive.)5 1061 1 720 3900 t 10 CW f (Mkext)1831 3900 w 10 R f (could then extract them.)3 965 1 2156 3900 t ( possible to treat a regular disk, or even a part of a disk, as a fake WORM, which can then be)21 3750(It's also)1 320 2 970 4056 t ( a good way to learn about the)7 1220( is a bad idea for a production system but)9 1672( This)1 231(streamed to tape when it fills.)5 1197 4 720 4176 t ( see)1 152( Again,)1 319(WORM software.)1 715 3 720 4296 t 10 I f (fsconfig)1931 4296 w 10 R f (\(8\) for details.)2 568 1 2248 4296 t 10 B f (Other systems)1 607 1 720 4536 t 10 R f ( have little\255endian MIPSes, or IBM RS6000s, or HP PAs, or DEC Alphas, or all kinds of)16 3693(You may)1 377 2 970 4692 t ( had our fill of)4 613( We've)1 325( don't ask us to do the port for you.)9 1500( Please)1 315(other machines not on the above lists.)6 1567 5 720 4812 t ( worthy though all this porting activity has been, it's dull and can easily take up all one's time.)18 3919(ports and,)1 401 2 720 4932 t ( \(they really do\), the work of building and maintaining all the)11 2574(Although the applications all port trivially)5 1746 2 720 5052 t ( brands of I/O)3 560(compilers and machine\255dependent parts of the operating system and driving all those different)12 3760 2 720 5172 t ( The)1 216( another machine to the list is not free, it's a linear amount of work.)14 2850( Adding)1 361(devices is substantial.)2 893 4 720 5292 t (constant is small but)3 820 1 720 5412 t 10 I f (N)1565 5412 w 10 R f (is getting large.)2 619 1 1657 5412 t cleartomark showpage saveobj restore %%EndPage: 5 5 %%Trailer done %%Pages: 5 %%DocumentFonts: Times-Roman Times-Bold Times-Italic Times-Roman Courier