1
0
Files
irix-657m-src/irix/cmd/diskless/diskless-arch.ps
2022-09-29 17:59:04 +03:00

1985 lines
47 KiB
PostScript

%!
%%BoundingBox: (atend)
%%Pages: (atend)
%%DocumentFonts: (atend)
%%EndComments
%
% FrameMaker PostScript Prolog 3.0, for use with FrameMaker 3.0
% Copyright (c) 1986,87,89,90,91 by Frame Technology Corporation.
% All rights reserved.
%
% Known Problems:
% Due to bugs in Transcript, the 'PS-Adobe-' is omitted from line 1
/FMversion (3.0) def
% Set up Color vs. Black-and-White
/FMPrintInColor systemdict /colorimage known
systemdict /currentcolortransfer known or def
% Uncomment this line to force b&w on color printer
% /FMPrintInColor false def
/FrameDict 295 dict def
systemdict /errordict known not {/errordict 10 dict def
errordict /rangecheck {stop} put} if
% The readline in 23.0 doesn't recognize cr's as nl's on AppleTalk
FrameDict /tmprangecheck errordict /rangecheck get put
errordict /rangecheck {FrameDict /bug true put} put
FrameDict /bug false put
mark
% Some PS machines read past the CR, so keep the following 3 lines together!
currentfile 5 string readline
00
0000000000
cleartomark
errordict /rangecheck FrameDict /tmprangecheck get put
FrameDict /bug get {
/readline {
/gstring exch def
/gfile exch def
/gindex 0 def
{
gfile read pop
dup 10 eq {exit} if
dup 13 eq {exit} if
gstring exch gindex exch put
/gindex gindex 1 add def
} loop
pop
gstring 0 gindex getinterval true
} def
} if
/FMVERSION {
FMversion ne {
/Times-Roman findfont 18 scalefont setfont
100 100 moveto
(FrameMaker version does not match postscript_prolog!)
dup =
show showpage
} if
} def
/FMLOCAL {
FrameDict begin
0 def
end
} def
/gstring FMLOCAL
/gfile FMLOCAL
/gindex FMLOCAL
/orgxfer FMLOCAL
/orgproc FMLOCAL
/organgle FMLOCAL
/orgfreq FMLOCAL
/yscale FMLOCAL
/xscale FMLOCAL
/manualfeed FMLOCAL
/paperheight FMLOCAL
/paperwidth FMLOCAL
/FMDOCUMENT {
array /FMfonts exch def
/#copies exch def
FrameDict begin
0 ne dup {setmanualfeed} if
/manualfeed exch def
/paperheight exch def
/paperwidth exch def
/yscale exch def
/xscale exch def
currenttransfer cvlit /orgxfer exch def
currentscreen cvlit /orgproc exch def
/organgle exch def /orgfreq exch def
setpapername
manualfeed {true} {papersize} ifelse
{manualpapersize} {false} ifelse
{desperatepapersize} if
end
} def
/pagesave FMLOCAL
/orgmatrix FMLOCAL
/landscape FMLOCAL
/FMBEGINPAGE {
FrameDict begin
/pagesave save def
3.86 setmiterlimit
/landscape exch 0 ne def
landscape {
90 rotate 0 exch neg translate pop
}
{pop pop}
ifelse
xscale yscale scale
/orgmatrix matrix def
gsave
} def
/FMENDPAGE {
grestore
pagesave restore
end
showpage
} def
/FMFONTDEFINE {
FrameDict begin
findfont
ReEncode
1 index exch
definefont
FMfonts 3 1 roll
put
end
} def
/FMFILLS {
FrameDict begin
array /fillvals exch def
end
} def
/FMFILL {
FrameDict begin
fillvals 3 1 roll put
end
} def
/FMNORMALIZEGRAPHICS {
newpath
0.0 0.0 moveto
1 setlinewidth
0 setlinecap
0 0 0 sethsbcolor
0 setgray
} bind def
/fx FMLOCAL
/fy FMLOCAL
/fh FMLOCAL
/fw FMLOCAL
/llx FMLOCAL
/lly FMLOCAL
/urx FMLOCAL
/ury FMLOCAL
/FMBEGINEPSF {
end
/FMEPSF save def
/showpage {} def
FMNORMALIZEGRAPHICS
[/fy /fx /fh /fw /ury /urx /lly /llx] {exch def} forall
fx fy translate
rotate
fw urx llx sub div fh ury lly sub div scale
llx neg lly neg translate
} bind def
/FMENDEPSF {
FMEPSF restore
FrameDict begin
} bind def
FrameDict begin
/setmanualfeed {
%%BeginFeature *ManualFeed True
statusdict /manualfeed true put
%%EndFeature
} def
/max {2 copy lt {exch} if pop} bind def
/min {2 copy gt {exch} if pop} bind def
/inch {72 mul} def
/pagedimen {
paperheight sub abs 16 lt exch
paperwidth sub abs 16 lt and
{/papername exch def} {pop} ifelse
} def
/papersizedict FMLOCAL
/setpapername {
/papersizedict 14 dict def
papersizedict begin
/papername /unknown def
/Letter 8.5 inch 11.0 inch pagedimen
/LetterSmall 7.68 inch 10.16 inch pagedimen
/Tabloid 11.0 inch 17.0 inch pagedimen
/Ledger 17.0 inch 11.0 inch pagedimen
/Legal 8.5 inch 14.0 inch pagedimen
/Statement 5.5 inch 8.5 inch pagedimen
/Executive 7.5 inch 10.0 inch pagedimen
/A3 11.69 inch 16.5 inch pagedimen
/A4 8.26 inch 11.69 inch pagedimen
/A4Small 7.47 inch 10.85 inch pagedimen
/B4 10.125 inch 14.33 inch pagedimen
/B5 7.16 inch 10.125 inch pagedimen
end
} def
/papersize {
papersizedict begin
/Letter {lettertray letter} def
/LetterSmall {lettertray lettersmall} def
/Tabloid {11x17tray 11x17} def
/Ledger {ledgertray ledger} def
/Legal {legaltray legal} def
/Statement {statementtray statement} def
/Executive {executivetray executive} def
/A3 {a3tray a3} def
/A4 {a4tray a4} def
/A4Small {a4tray a4small} def
/B4 {b4tray b4} def
/B5 {b5tray b5} def
/unknown {unknown} def
papersizedict dup papername known {papername} {/unknown} ifelse get
end
/FMdicttop countdictstack 1 add def
statusdict begin stopped end
countdictstack -1 FMdicttop {pop end} for
} def
/manualpapersize {
papersizedict begin
/Letter {letter} def
/LetterSmall {lettersmall} def
/Tabloid {11x17} def
/Ledger {ledger} def
/Legal {legal} def
/Statement {statement} def
/Executive {executive} def
/A3 {a3} def
/A4 {a4} def
/A4Small {a4small} def
/B4 {b4} def
/B5 {b5} def
/unknown {unknown} def
papersizedict dup papername known {papername} {/unknown} ifelse get
end
stopped
} def
/desperatepapersize {
statusdict /setpageparams known
{
paperwidth paperheight 0 1
statusdict begin
{setpageparams} stopped pop
end
} if
} def
/savematrix {
orgmatrix currentmatrix pop
} bind def
/restorematrix {
orgmatrix setmatrix
} bind def
/dmatrix matrix def
/dpi 72 0 dmatrix defaultmatrix dtransform
dup mul exch dup mul add sqrt def
/freq dpi 18.75 div 8 div round dup 0 eq {pop 1} if 8 mul dpi exch div def
/sangle 1 0 dmatrix defaultmatrix dtransform exch atan def
/DiacriticEncoding [
/.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 /quotesingle /parenleft
/parenright /asterisk /plus /comma /hyphen /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 /grave /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 /Adieresis /Aring /Ccedilla /Eacute
/Ntilde /Odieresis /Udieresis /aacute /agrave /acircumflex /adieresis
/atilde /aring /ccedilla /eacute /egrave /ecircumflex /edieresis
/iacute /igrave /icircumflex /idieresis /ntilde /oacute /ograve
/ocircumflex /odieresis /otilde /uacute /ugrave /ucircumflex
/udieresis /dagger /.notdef /cent /sterling /section /bullet
/paragraph /germandbls /registered /copyright /trademark /acute
/dieresis /.notdef /AE /Oslash /.notdef /.notdef /.notdef /.notdef
/yen /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/ordfeminine /ordmasculine /.notdef /ae /oslash /questiondown
/exclamdown /logicalnot /.notdef /florin /.notdef /.notdef
/guillemotleft /guillemotright /ellipsis /.notdef /Agrave /Atilde
/Otilde /OE /oe /endash /emdash /quotedblleft /quotedblright
/quoteleft /quoteright /.notdef /.notdef /ydieresis /Ydieresis
/fraction /currency /guilsinglleft /guilsinglright /fi /fl /daggerdbl
/periodcentered /quotesinglbase /quotedblbase /perthousand
/Acircumflex /Ecircumflex /Aacute /Edieresis /Egrave /Iacute
/Icircumflex /Idieresis /Igrave /Oacute /Ocircumflex /.notdef /Ograve
/Uacute /Ucircumflex /Ugrave /dotlessi /circumflex /tilde /macron
/breve /dotaccent /ring /cedilla /hungarumlaut /ogonek /caron
] def
/ReEncode {
dup
length
dict begin
{
1 index /FID ne
{def}
{pop pop} ifelse
} forall
0 eq {/Encoding DiacriticEncoding def} if
currentdict
end
} bind def
/graymode true def
/bwidth FMLOCAL
/bpside FMLOCAL
/bstring FMLOCAL
/onbits FMLOCAL
/offbits FMLOCAL
/xindex FMLOCAL
/yindex FMLOCAL
/x FMLOCAL
/y FMLOCAL
/setpattern {
/bwidth exch def
/bpside exch def
/bstring exch def
/onbits 0 def /offbits 0 def
freq sangle landscape {90 add} if
{/y exch def
/x exch def
/xindex x 1 add 2 div bpside mul cvi def
/yindex y 1 add 2 div bpside mul cvi def
bstring yindex bwidth mul xindex 8 idiv add get
1 7 xindex 8 mod sub bitshift and 0 ne
{/onbits onbits 1 add def 1}
{/offbits offbits 1 add def 0}
ifelse
}
setscreen
{} settransfer
offbits offbits onbits add div FMsetgray
/graymode false def
} bind def
/grayness {
FMsetgray
graymode not {
/graymode true def
orgxfer cvx settransfer
orgfreq organgle orgproc cvx setscreen
} if
} bind def
/HUE FMLOCAL
/SAT FMLOCAL
/BRIGHT FMLOCAL
/Colors FMLOCAL
FMPrintInColor
{
/HUE 0 def
/SAT 0 def
/BRIGHT 0 def
% array of arrays Hue and Sat values for the separations [HUE BRIGHT]
/Colors
[[0 0 ] % black
[0 0 ] % white
[0.00 1.0] % red
[0.37 1.0] % green
[0.60 1.0] % blue
[0.50 1.0] % cyan
[0.83 1.0] % magenta
[0.16 1.0] % comment / yellow
] def
/BEGINBITMAPCOLOR {
BITMAPCOLOR} def
/BEGINBITMAPCOLORc {
BITMAPCOLORc} def
/BEGINBITMAPTRUECOLOR {
BITMAPTRUECOLOR } def
/BEGINBITMAPTRUECOLORc {
BITMAPTRUECOLORc } def
/K {
Colors exch get dup
0 get /HUE exch store
1 get /BRIGHT exch store
HUE 0 eq BRIGHT 0 eq and
{1.0 SAT sub setgray}
{HUE SAT BRIGHT sethsbcolor}
ifelse
} def
/FMsetgray {
/SAT exch 1.0 exch sub store
HUE 0 eq BRIGHT 0 eq and
{1.0 SAT sub setgray}
{HUE SAT BRIGHT sethsbcolor}
ifelse
} bind def
}
{
/BEGINBITMAPCOLOR {
BITMAPGRAY} def
/BEGINBITMAPCOLORc {
BITMAPGRAYc} def
/BEGINBITMAPTRUECOLOR {
BITMAPTRUEGRAY } def
/BEGINBITMAPTRUECOLORc {
BITMAPTRUEGRAYc } def
/FMsetgray {setgray} bind def
/K {
pop
} def
}
ifelse
/normalize {
transform round exch round exch itransform
} bind def
/dnormalize {
dtransform round exch round exch idtransform
} bind def
/lnormalize {
0 dtransform exch cvi 2 idiv 2 mul 1 add exch idtransform pop
} bind def
/H {
lnormalize setlinewidth
} bind def
/Z {
setlinecap
} bind def
/fillvals FMLOCAL
/X {
fillvals exch get
dup type /stringtype eq
{8 1 setpattern}
{grayness}
ifelse
} bind def
/V {
gsave eofill grestore
} bind def
/N {
stroke
} bind def
/M {newpath moveto} bind def
/E {lineto} bind def
/D {curveto} bind def
/O {closepath} bind def
/n FMLOCAL
/L {
/n exch def
newpath
normalize
moveto
2 1 n {pop normalize lineto} for
} bind def
/Y {
L
closepath
} bind def
/x1 FMLOCAL
/x2 FMLOCAL
/y1 FMLOCAL
/y2 FMLOCAL
/rad FMLOCAL
/R {
/y2 exch def
/x2 exch def
/y1 exch def
/x1 exch def
x1 y1
x2 y1
x2 y2
x1 y2
4 Y
} bind def
% The following commented out code did not work for tangent lines of zero
% length. The code following it was provided by Frame to patch this error.
%
%/RR {
% /rad exch def
% normalize
% /y2 exch def
% /x2 exch def
% normalize
% /y1 exch def
% /x1 exch def
% newpath
% x1 y1 rad add moveto
% x1 y2 x2 y2 rad arcto
% x2 y2 x2 y1 rad arcto
% x2 y1 x1 y1 rad arcto
% x1 y1 x1 y2 rad arcto
% closepath
% 16 {pop} repeat
% } bind def
/rarc
{rad
{arcto} stopped
} bind def
/RR {
/rad exch def
normalize
/y2 exch def
/x2 exch def
normalize
/y1 exch def
/x1 exch def
mark
newpath
x1 y1 rad add moveto
x1 y2 x2 y2 rarc
x2 y2 x2 y1 rarc
x2 y1 x1 y1 rarc
% x2 y1 x1 y1 rarc
x1 y1 x1 y2 rarc
closepath
cleartomark
} bind def
/C {
grestore
gsave
R
clip
} bind def
/FMpointsize FMLOCAL
/F {
FMfonts exch get
FMpointsize scalefont
setfont
} bind def
/Q {
/FMpointsize exch def
F
} bind def
/T {
moveto show
} bind def
/RF {
rotate
0 ne {-1 1 scale} if
} bind def
/TF {
gsave
moveto
RF
show
grestore
} bind def
/P {
moveto
0 32 3 2 roll widthshow
} bind def
/PF {
gsave
moveto
RF
0 32 3 2 roll widthshow
grestore
} bind def
/S {
moveto
0 exch ashow
} bind def
/SF {
gsave
moveto
RF
0 exch ashow
grestore
} bind def
/B {
moveto
0 32 4 2 roll 0 exch awidthshow
} bind def
/BF {
gsave
moveto
RF
0 32 4 2 roll 0 exch awidthshow
grestore
} bind def
/G {
gsave
newpath
normalize translate 0.0 0.0 moveto
dnormalize scale
0.0 0.0 1.0 5 3 roll arc
closepath fill
grestore
} bind def
/A {
gsave
savematrix
newpath
2 index 2 div add exch 3 index 2 div sub exch
normalize 2 index 2 div sub exch 3 index 2 div add exch
translate
scale
0.0 0.0 1.0 5 3 roll arc
restorematrix
stroke
grestore
} bind def
/x FMLOCAL
/y FMLOCAL
/w FMLOCAL
/h FMLOCAL
/xx FMLOCAL
/yy FMLOCAL
/ww FMLOCAL
/hh FMLOCAL
/FMsaveobject FMLOCAL
/FMoptop FMLOCAL
/FMdicttop FMLOCAL
/BEGINPRINTCODE {
/FMdicttop countdictstack 1 add def
/FMoptop count 4 sub def
/FMsaveobject save def
userdict begin
/showpage {} def
FMNORMALIZEGRAPHICS
3 index neg 3 index neg translate
} bind def
/ENDPRINTCODE {
count -1 FMoptop {pop pop} for
countdictstack -1 FMdicttop {pop end} for
FMsaveobject restore
} bind def
/gn {
0
{ 46 mul
cf read pop
32 sub
dup 46 lt {exit} if
46 sub add
} loop
add
} bind def
/str FMLOCAL
/cfs {
/str sl string def
0 1 sl 1 sub {str exch val put} for
str def
} bind def
/ic [
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0223
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0223
0
{0 hx} {1 hx} {2 hx} {3 hx} {4 hx} {5 hx} {6 hx} {7 hx} {8 hx} {9 hx}
{10 hx} {11 hx} {12 hx} {13 hx} {14 hx} {15 hx} {16 hx} {17 hx} {18 hx}
{19 hx} {gn hx} {0} {1} {2} {3} {4} {5} {6} {7} {8} {9} {10} {11} {12}
{13} {14} {15} {16} {17} {18} {19} {gn} {0 wh} {1 wh} {2 wh} {3 wh}
{4 wh} {5 wh} {6 wh} {7 wh} {8 wh} {9 wh} {10 wh} {11 wh} {12 wh}
{13 wh} {14 wh} {gn wh} {0 bl} {1 bl} {2 bl} {3 bl} {4 bl} {5 bl} {6 bl}
{7 bl} {8 bl} {9 bl} {10 bl} {11 bl} {12 bl} {13 bl} {14 bl} {gn bl}
{0 fl} {1 fl} {2 fl} {3 fl} {4 fl} {5 fl} {6 fl} {7 fl} {8 fl} {9 fl}
{10 fl} {11 fl} {12 fl} {13 fl} {14 fl} {gn fl}
] def
/sl FMLOCAL
/val FMLOCAL
/ws FMLOCAL
/im FMLOCAL
/bs FMLOCAL
/cs FMLOCAL
/len FMLOCAL
/pos FMLOCAL
/ms {
/sl exch def
/val 255 def
/ws cfs
/im cfs
/val 0 def
/bs cfs
/cs cfs
} bind def
400 ms
/cip {
is
0
cf cs readline pop
{ ic exch get exec
add
} forall
pop
/tot w 1 sub def
0 1 tot {
/indx exch def
/indxa is indx get def
/placer nredt indxa get def
/placeg ngreent indxa get def
/placeb nbluet indxa get def
cris indx placer 255 mul cvi put
cgis indx placeg 255 mul cvi put
cbis indx placeb 255 mul cvi put
} for pop cris
} bind def
/ip {
is
0
cf cs readline pop
{ ic exch get exec
add
} forall
pop
} bind def
/wh {
/len exch def
/pos exch def
ws 0 len getinterval im pos len getinterval copy pop
pos len
} bind def
/bl {
/len exch def
/pos exch def
bs 0 len getinterval im pos len getinterval copy pop
pos len
} bind def
/s1 1 string def
/fl {
/len exch def
/pos exch def
/val cf s1 readhexstring pop 0 get def
pos 1 pos len add 1 sub {im exch val put} for
pos len
} bind def
/hx {
3 copy getinterval
cf exch readhexstring pop pop
} bind def
/h FMLOCAL
/w FMLOCAL
/d FMLOCAL
/lb FMLOCAL
/bitmapsave FMLOCAL
/is FMLOCAL
/cf FMLOCAL
/wbytes {
dup
8 eq {pop} {1 eq {7 add 8 idiv} {3 add 4 idiv} ifelse} ifelse
} bind def
/BEGINBITMAPBWc {
1 {} COMMONBITMAPc
} bind def
/BEGINBITMAPGRAYc {
8 {} COMMONBITMAPc
} bind def
/BEGINBITMAP2BITc {
2 {} COMMONBITMAPc
} bind def
/COMMONBITMAPc {
/r exch def
/d exch def
gsave
translate rotate scale /h exch def /w exch def
/lb w d wbytes def
sl lb lt {lb ms} if
/bitmapsave save def
r
/is im 0 lb getinterval def
ws 0 lb getinterval is copy pop
/cf currentfile def
w h d [w 0 0 h neg 0 h]
{ip} image
bitmapsave restore
grestore
} bind def
/BEGINBITMAPBW {
1 {} COMMONBITMAP
} bind def
/BEGINBITMAPGRAY {
8 {} COMMONBITMAP
} bind def
/BEGINBITMAP2BIT {
2 {} COMMONBITMAP
} bind def
/COMMONBITMAP {
/r exch def
/d exch def
gsave
translate rotate scale /h exch def /w exch def
/bitmapsave save def
r
/is w d wbytes string def
/cf currentfile def
w h d [w 0 0 h neg 0 h]
{cf is readhexstring pop} image
bitmapsave restore
grestore
} bind def
/proc1 FMLOCAL
/proc2 FMLOCAL
/newproc FMLOCAL
/Fmcc {
/proc2 exch cvlit def
/proc1 exch cvlit def
/newproc proc1 length proc2 length add array def
newproc 0 proc1 putinterval
newproc proc1 length proc2 putinterval
newproc cvx
} bind def
/ngrayt 256 array def
/nredt 256 array def
/nbluet 256 array def
/ngreent 256 array def
/gryt FMLOCAL
/blut FMLOCAL
/grnt FMLOCAL
/redt FMLOCAL
/indx FMLOCAL
/cynu FMLOCAL
/magu FMLOCAL
/yelu FMLOCAL
/k FMLOCAL
/u FMLOCAL
/colorsetup {
currentcolortransfer
/gryt exch def
/blut exch def
/grnt exch def
/redt exch def
0 1 255 {
/indx exch def
/cynu 1 red indx get 255 div sub def
/magu 1 green indx get 255 div sub def
/yelu 1 blue indx get 255 div sub def
/k cynu magu min yelu min def
nredt indx 1 0 cynu max sub redt exec put
ngreent indx 1 0 magu max sub grnt exec put
nbluet indx 1 0 yelu max sub blut exec put
ngrayt indx 1 k sub gryt exec put
} for
} bind def
/tran FMLOCAL
/fakecolorsetup {
/tran 256 string def
0 1 255 {/indx exch def
tran indx
red indx get 77 mul
green indx get 151 mul
blue indx get 28 mul
add add 256 idiv put} for
currenttransfer
{255 mul cvi tran exch get 255.0 div}
exch Fmcc settransfer
} bind def
/BITMAPCOLOR {
/d 8 def
gsave
translate rotate scale /h exch def /w exch def
/bitmapsave save def
colorsetup
/is w d wbytes string def
/ris w d wbytes string def
/gis w d wbytes string def
/bis w d wbytes string def
/cf currentfile def
w h d [w 0 0 h neg 0 h]
{cf is readhexstring pop
/tot w 1 sub def
0 1 tot {
/indx exch def
/indxa is indx get def
/placer nredt indxa get def
/placeg ngreent indxa get def
/placeb nbluet indxa get def
ris indx placer 255 mul cvi put
gis indx placeg 255 mul cvi put
bis indx placeb 255 mul cvi put
} for pop ris}
{gis} {bis} true 3 colorimage
bitmapsave restore
grestore
} bind def
/BITMAPCOLORc {
/d 8 def
gsave
translate rotate scale /h exch def /w exch def
/lb w d wbytes def
sl lb lt {lb ms} if
/bitmapsave save def
colorsetup
/is im 0 lb getinterval def
/cris lb string def
/cgis lb string def
/cbis lb string def
ws 0 lb getinterval is copy pop
/cf currentfile def
w h d [w 0 0 h neg 0 h]
{cip} {cgis} {cbis} true 3 colorimage
bitmapsave restore
grestore
} bind def
/BITMAPTRUECOLORc {
gsave
translate rotate scale /h exch def /w exch def
/bitmapsave save def
/is w string def
ws 0 w getinterval is copy pop
/cf currentfile def
w h 8 [w 0 0 h neg 0 h]
{ip} {gip} {bip} true 3 colorimage
bitmapsave restore
grestore
} bind def
/BITMAPTRUECOLOR {
gsave
translate rotate scale /h exch def /w exch def
/bitmapsave save def
/is w string def
/gis w string def
/bis w string def
/cf currentfile def
w h 8 [w 0 0 h neg 0 h]
{ cf is readhexstring pop }
{ cf gis readhexstring pop }
{ cf bis readhexstring pop }
true 3 colorimage
bitmapsave restore
grestore
} bind def
/BITMAPTRUEGRAYc {
gsave
translate rotate scale /h exch def /w exch def
/bitmapsave save def
/is w string def
ws 0 w getinterval is copy pop
/cf currentfile def
w h 8 [w 0 0 h neg 0 h]
{ip gip bip w gray} image
bitmapsave restore
grestore
} bind def
/ww FMLOCAL
/r FMLOCAL
/g FMLOCAL
/b FMLOCAL
/i FMLOCAL
/gray {
/ww exch def
/b exch def
/g exch def
/r exch def
0 1 ww 1 sub { /i exch def r i get .299 mul g i get .587 mul
b i get .114 mul add add r i 3 -1 roll floor cvi put } for
r
} bind def
/BITMAPTRUEGRAY {
gsave
translate rotate scale /h exch def /w exch def
/bitmapsave save def
/is w string def
/gis w string def
/bis w string def
/cf currentfile def
w h 8 [w 0 0 h neg 0 h]
{ cf is readhexstring pop
cf gis readhexstring pop
cf bis readhexstring pop w gray} image
bitmapsave restore
grestore
} bind def
/BITMAPGRAY {
8 {fakecolorsetup} COMMONBITMAP
} bind def
/BITMAPGRAYc {
8 {fakecolorsetup} COMMONBITMAPc
} bind def
/ENDBITMAP {
} bind def
end
/ALDsave FMLOCAL
/ALDmatrix matrix def ALDmatrix currentmatrix pop
/StartALD {
/ALDsave save def
savematrix
ALDmatrix setmatrix
} bind def
/InALD {
restorematrix
} bind def
/DoneALD {
ALDsave restore
} bind def
%%EndProlog
%%BeginSetup
(3.0) FMVERSION
1 1 612 792 0 1 10 FMDOCUMENT
0 0 /Palatino-Roman FMFONTDEFINE
1 0 /Times-Roman FMFONTDEFINE
2 0 /Times-Bold FMFONTDEFINE
3 0 /Times-Italic FMFONTDEFINE
4 0 /Courier FMFONTDEFINE
5 0 /Courier-Bold FMFONTDEFINE
32 FMFILLS
0 0 FMFILL
1 0.1 FMFILL
2 0.3 FMFILL
3 0.5 FMFILL
4 0.7 FMFILL
5 0.9 FMFILL
6 0.97 FMFILL
7 1 FMFILL
8 <0f1e3c78f0e1c387> FMFILL
9 <0f87c3e1f0783c1e> FMFILL
10 <cccccccccccccccc> FMFILL
11 <ffff0000ffff0000> FMFILL
12 <8142241818244281> FMFILL
13 <03060c183060c081> FMFILL
14 <8040201008040201> FMFILL
16 1 FMFILL
17 0.9 FMFILL
18 0.7 FMFILL
19 0.5 FMFILL
20 0.3 FMFILL
21 0.1 FMFILL
22 0.03 FMFILL
23 0 FMFILL
24 <f0e1c3870f1e3c78> FMFILL
25 <f0783c1e0f87c3e1> FMFILL
26 <3333333333333333> FMFILL
27 <0000ffff0000ffff> FMFILL
28 <7ebddbe7e7dbbd7e> FMFILL
29 <fcf9f3e7cf9f3f7e> FMFILL
30 <7fbfdfeff7fbfdfe> FMFILL
%%EndSetup
%%Page: "1" 1
%%BeginPaperSize: Letter
%%EndPaperSize
612 792 0 FMBEGINPAGE
0 8 Q
0 X
0 K
(Silicon Graphics Pr) 72 750.67 T
(oprietary) 139.57 750.67 T
72 54 540 54 2 L
0.25 H
2 Z
N
(Diskless Ar) 72 42.62 T
(chitectur) 112.52 42.62 T
(e) 143.48 42.62 T
(Febr) 258.9 42.62 T
(uary 8, 1994) 274.69 42.62 T
(1) 500 42.62 T
1 24 Q
(Diskless Architecture) 202.41 704 T
2 16 Q
(1.0 Intr) 72 655.33 T
(oduction) 127.23 655.33 T
1 12 Q
-0.14 (A couple of factors necessitated a modi\336ed diskless architecture. The major change was the adop-) 72 628 P
(tion of SVR4 directory hierarchies. Get a copy of) 72 614 T
3 F
(\322Dir) 311.82 614 T
(ectory Structur) 334.7 614 T
(e Re-or) 406.54 614 T
(ganization in IRIX) 441.73 614 T
(5.x) 72 600 T
1 F
(\323 if you are unfamiliar with SVR4 hierarchies. A postscript copy is stored in the RCS tree as) 86.32 600 T
-0.29 (\322.../irix/cmd/diskless/dir) 72 586 P
-0.29 (-reor) 188.04 586 P
-0.29 (g.ps\323. A good familiarity with the IRIX directory structure change is) 211.12 586 P
-0.28 (pertinent to understanding this architecture document. A second factor was the need to allow shar-) 72 572 P
(ing across architectural boundaries and make our implementation look similar to other vendors.) 72 558 T
-0.16 (It is not the intent of this document to describe the installation process in detail. Instead, pertinent) 72 532 P
-0.14 (details required to understand the af) 72 518 P
-0.14 (fects on pre-ops, post-ops, & exit-ops are given. A discussion) 243.28 518 P
(of developer concerns is at the end of the document.) 72 504 T
2 16 Q
(2.0 Diskless operation) 72 463.33 T
1 12 Q
(W) 72 436 T
(ithout discussing speci\336cs about installation, this section will detail the bootup sequence. This) 82.84 436 T
(information is important to know before installation speci\336cs are explained.) 72 422 T
2 14 Q
(2.1 Pr) 72 388.67 T
(eliminary details) 111 388.67 T
1 12 Q
(A few general items must be satis\336ed before booting can commence.) 72 362 T
2 F
(2.1.1 client) 72 330 T
1 F
-0.3 (While at the prom prompt, some prom variables must be set before the client can behave as a disk-) 72 304 P
(less client. All platforms \050R3k & R4k\051 must set the) 72 290 T
2 F
(diskless) 319.53 290 T
1 F
( variable to 1. R3k systems must set) 358.86 290 T
(the additional variable boot\336le to re\337ect where to pick up the kernel. An example might be:) 72 276 T
4 9 Q
(setenv bootf) 90 258 T
(ile bootp\050\051foo:/var/boot/bar/unix) 154.71 258 T
1 12 Q
(where) 72 234 T
2 F
(foo) 104.3 234 T
1 F
( is the diskless server and) 120.29 234 T
2 F
(bar) 245.53 234 T
1 F
( is the diskless client.) 263.52 234 T
(R4k machines \050except Crimson\051 must set two analogous variables,) 72 208 T
2 F
(SystemPartition) 394.45 208 T
1 F
( &) 477.07 208 T
2 F
(OSLoader) 72 194 T
1 F
(.) 124.65 194 T
2 F
(2.1.2 server) 72 162 T
1 F
(Diskless client software must be installed onto the diskless server) 72 136 T
(. Details will be given later) 385.47 136 T
(.) 514.72 136 T
FMENDPAGE
%%EndPage: "1" 2
%%Page: "2" 2
612 792 0 FMBEGINPAGE
0 8 Q
0 X
0 K
(Silicon Graphics Pr) 72 750.67 T
(oprietary) 139.57 750.67 T
72 54 540 54 2 L
0.25 H
2 Z
N
(Diskless Ar) 72 42.62 T
(chitectur) 112.52 42.62 T
(e) 143.48 42.62 T
(Febr) 258.9 42.62 T
(uary 8, 1994) 274.69 42.62 T
(2) 500 42.62 T
2 14 Q
(2.2 bootp & tftp pr) 72 710.67 T
(otocols) 188.35 710.67 T
1 12 Q
(The bootp protocol is used to \336nd the unix image sitting on the diskless server) 72 684 T
(. A client worksta-) 446.46 684 T
(tion\325) 72 670 T
(s prom parses the) 94 670 T
2 F
(boot\336le) 180.6 670 T
1 F
( variable and treats bootp as a pseudo-device driver) 218.58 670 T
(. It passes the) 464.39 670 T
(name of the server and the \336lename to the bootp protocol code which is burned into the prom.) 72 656 T
-0.35 (Once the server is found, the tftp protocol is used to download the kernel to the client. This is only) 72 642 P
(loading the kernel image) 72 628 T
(across the network; no execution has occurred.) 193.91 628 T
2 14 Q
(2.3 bootparam pr) 72 594.67 T
(otocol) 179.8 594.67 T
1 12 Q
(Once the kernel is loaded, it starts running. At this point, there is no root \336lesystem and no init) 72 568 T
-0.13 (process. The running client kernel decides it is running diskless due to the) 72 554 P
2 F
-0.13 (diskless) 428.11 554 P
1 F
-0.13 ( prom variable) 467.44 554 P
(which was set earlier) 72 540 T
(. The bootparam protocol is used to query the diskless server about the cli-) 172.25 540 T
(ent\325) 72 526 T
(s partitions to mount.) 89.99 526 T
(Three variables or partitions are gathered with this protocol: root, /sbin, & /swap. The root parti-) 72 500 T
(tion is private; only the client will write to it. The /sbin partition is a read-only partition which) 72 486 T
(contains those \336les which are shareable across architectures but needed to bring a machine up to) 72 472 T
(single user mode. The /swap partition is just space for swapping.) 72 458 T
2 14 Q
(2.4 \336nish booting) 72 424.67 T
1 12 Q
(After all three bootparam partitions are NFS mounted, the client continues booting just as a nor-) 72 398 T
(mal diskfull machine boots. Along the way) 72 384 T
(, it reads the local /etc/fstab \336le to \336nd out where its) 278.1 384 T
(/etc partition is located. /usr is mounted read-only; it holds \336les which are shareable across all) 72 370 T
(architectures but not needed until after single-user mode.) 72 356 T
2 16 Q
(3.0 Installation synopsis) 72 315.33 T
1 12 Q
(Installation requires running two shell scripts,) 72 288 T
3 F
(client_inst) 294.86 288 T
1 F
( and) 344.84 288 T
3 F
(shar) 368.15 288 T
(e_inst) 389.03 288 T
1 F
(. They are both available) 417.69 288 T
(in the) 72 274 T
2 F
(nfs.sw) 101.98 274 T
(.diskless_server) 132.97 274 T
1 F
( subsystem. After both scripts complete, a client\325) 213.26 274 T
(s system software) 447.44 274 T
-0.17 (will be installed on the server in three trees: the client tree, the share tree, and the swap tree. For a) 72 260 P
(detailed discussion of diskless installation, see \322) 72 246 T
3 F
(Diskless W) 302.86 246 T
(orkstation Administration Guide) 354.72 246 T
1 F
(\323) 510.65 246 T
(\050document # 007-0855-030\051.) 72 232 T
3 F
(shar) 72 206 T
(e_inst) 92.88 206 T
1 F
( gets executed \336rst; and at some point, the familiar) 121.53 206 T
3 F
(inst) 367.04 206 T
1 F
( menu appears. Subsystems are) 384.37 206 T
(chosen as during a diskfull install. However) 72 192 T
(, one additional subsystem must be installed to com-) 282.38 192 T
(plete the diskless environment,) 72 178 T
2 F
(nfs.sw) 223.57 178 T
(.diskless_client) 254.56 178 T
1 F
(. This subsystem is only available during) 330.87 178 T
(diskless installations. Client tree installations, using) 72 164 T
3 F
(client_inst) 323.21 164 T
1 F
(, are performed against speci\336c) 373.19 164 T
-0.23 (share trees. As such, the subsystems available for installation into a client tree are restricted to the) 72 150 P
(subset installed in the share tree. Swap trees only contain swap partitions and are built as a side) 72 136 T
(ef) 72 122 T
(fect to running) 81.1 122 T
3 F
(client_inst) 154.72 122 T
1 F
(.) 204.7 122 T
FMENDPAGE
%%EndPage: "2" 3
%%Page: "3" 3
612 792 0 FMBEGINPAGE
0 8 Q
0 X
0 K
(Silicon Graphics Pr) 72 750.67 T
(oprietary) 139.57 750.67 T
72 54 540 54 2 L
0.25 H
2 Z
N
(Diskless Ar) 72 42.62 T
(chitectur) 112.52 42.62 T
(e) 143.48 42.62 T
(Febr) 258.9 42.62 T
(uary 8, 1994) 274.69 42.62 T
(3) 500 42.62 T
2 14 Q
(3.1 Shar) 72 710.67 T
(e T) 125 710.67 T
(r) 143.01 710.67 T
(ees) 148.97 710.67 T
1 12 Q
(The share tree contains those \336les which are shareable across architectures. Man pages, binaries,) 72 684 T
(libraries \050while everything is MIPS1\051, and data \336les are good examples. Because objects are) 72 670 T
(shareable, they are exported from the server in read-only \336lesystems. In a diskless setup, there) 72 656 T
(should be one share tree per release. For example, if one Indigo R3k and one Indigo R4k want to) 72 642 T
-0.09 (use IRIX 5.0, they would both use one share tree. If three Indies wanted to run IRIX 5.1.1.1, they) 72 628 P
(would use a dif) 72 614 T
(ferent share tree.) 145.4 614 T
2 F
(3.1.1 Speci\336cs of a shar) 72 582 T
(e tr) 193.38 582 T
(ee) 210.81 582 T
1 F
(Everything under the following directories is shareable.) 72 556 T
5 F
(\245) 72 536 T
1 F
(/usr) 85.75 536 T
5 F
(\245) 72 516 T
1 F
(/sbin) 85.75 516 T
5 F
(\245) 72 496 T
1 F
(/lib) 85.75 496 T
5 F
(\245) 72 476 T
1 F
(/stand) 85.75 476 T
(Therefore, a share tree looks like:) 72 450 T
(Although the share tree contains all the binaries on a running system, it is not a complete root.) 72 307 T
(Therefore, using \322chroot\323 in a pre-op, post-op, or exit-op is) 72 293 T
2 F
(not) 359.45 293 T
1 F
( guaranteed to operate properly) 376.11 293 T
-0.19 (since there are only four directories in the share tree root. Even so, some pre/post/exit-ops are per-) 72 279 P
(formed against the share tree. A /dev directory with a few \336les has been created in the share tree) 72 265 T
(\050not shown above\051; so well-known, often executed chroots succeed. It was needed because rld) 72 251 T
(must open /dev/zero on start-up. In summary) 72 237 T
(, the commands performed in the operation will) 286.74 237 T
(determine the success of the pre-op, post-op, or exit-op.) 72 223 T
2 F
(3.1.2 About \322shar) 72 191 T
(e_inst\323) 165.4 191 T
3 F
(shar) 72 165 T
(e_inst) 92.88 165 T
1 F
( is a shell script which calls) 121.53 165 T
3 F
(inst) 256.45 165 T
1 F
( with extra options. It \336rst creates a /dev directory and) 273.78 165 T
(\336lls it with required devices like /dev/zero. A symlink is created from \322lib -> sbin/lib\323. Rather) 72 151 T
(than create another directory analogous to /sbin, this forces) 72 137 T
3 F
(inst) 358.45 137 T
1 F
( to install /lib library \336les into the) 375.78 137 T
(directory /sbin. Architecture speci\336c binaries located under /stand are placed under /sbin/stand) 72 123 T
(and given architecture independent names. When) 72 109 T
3 F
(client_inst) 311.47 109 T
1 F
( runs, it installs architecture speci\336c) 361.45 109 T
-0.05 (symlinks from /stand to this directory) 72 95 P
-0.05 (. As stated previously) 251.2 95 P
-0.05 (, /sbin is a directory for shareable \336les) 354.21 95 P
(required to boot to single-user) 72 81 T
(. It takes on additional objects in the diskless environment.) 215.91 81 T
72 63 540 720 C
128.81 329 483.19 420 C
1 12 Q
0 X
0 K
(share tree root directory) 245.81 402.82 T
299.81 393 173.81 357 2 L
1 H
2 Z
N
299.81 393 254.81 357 2 L
N
299.81 393 335.81 357 2 L
N
299.81 393 425.81 357 2 L
N
(usr) 164.81 341.6 T
(sbin) 245.81 341.6 T
(lib) 332.15 341.6 T
(stand) 416.81 341.6 T
72 63 540 720 C
0 0 612 792 C
FMENDPAGE
%%EndPage: "3" 4
%%Page: "4" 4
612 792 0 FMBEGINPAGE
0 8 Q
0 X
0 K
(Silicon Graphics Pr) 72 750.67 T
(oprietary) 139.57 750.67 T
72 54 540 54 2 L
0.25 H
2 Z
N
(Diskless Ar) 72 42.62 T
(chitectur) 112.52 42.62 T
(e) 143.48 42.62 T
(Febr) 258.9 42.62 T
(uary 8, 1994) 274.69 42.62 T
(4) 500 42.62 T
3 12 Q
(inst) 72 712 T
1 F
( is called as such:) 89.33 712 T
4 9 Q
(inst -r$SHARE -s -C -d usr -d sbin -d lib) 90 694 T
4 12 Q
(\322-s\323) 85.75 667 T
1 F
( tells) 114.53 667 T
3 F
(inst) 140.52 667 T
1 F
( that this is a share tree) 157.85 667 T
4 F
(\322-C\323) 85.75 649 T
1 F
( tells) 114.53 649 T
3 F
(inst) 140.52 649 T
1 F
( to read) 157.85 649 T
2 F
(/var/boot/.dl_classes) 196.82 649 T
1 F
( which contains valid diskless architectures) 299.77 649 T
4 F
(\322-d usr\323) 85.75 631 T
1 F
( tells) 143.31 631 T
3 F
(inst) 169.3 631 T
1 F
( to install \336les beginning with /usr into the share tree.) 186.63 631 T
4 F
(\322-r $SHARE\323) 85.75 613 T
1 F
( tells) 164.9 613 T
3 F
(inst) 190.89 613 T
1 F
( where the root of the share tree is located.) 208.22 613 T
(Therefore, if an exit-op is attached to a \336le which begins with /usr and that speci\336c sub-system) 72 587 T
(gets installed, it will get run when) 72 573 T
3 F
(inst) 237.9 573 T
1 F
( exits during a share tree install. The operation will not get) 255.24 573 T
(run during a client tree install.) 72 559 T
(Lastly) 72 533 T
(,) 101.2 533 T
3 F
(shar) 107.2 533 T
(e_inst) 128.08 533 T
1 F
( NFS exports /sbin and /usr) 156.73 533 T
(.) 287.01 533 T
2 14 Q
(3.2 Client T) 72 499.67 T
(r) 144.82 499.67 T
(ees) 150.78 499.67 T
1 12 Q
(The client tree contains everything which is not in the share tree. Files beginning with names) 72 473 T
-0.02 (other than those listed in the share tree \050see) 72 459 P
-0.02 (3.1.1\051 are placed in each client tree. The relationship) 285.02 459 P
(between client trees and share trees is many to one.) 72 445 T
2 F
(3.2.1 Speci\336cs about client tr) 72 276 T
(ees) 221.37 276 T
1 F
(A client tree might look like:) 72 250 T
-0.36 (There is no way a client tree can be made into a viable root \336lesystem. There are no binaries in the) 72 102 P
-0.17 (tree, not even a shell. In the above picture, there is no /bin directory! Therefore, any pre-ops, post-) 72 88 P
72 63 540 720 C
185.62 304 426.37 415 C
282.75 378.5 330.87 408.25 R
1 H
2 Z
0 X
0 K
N
1 12 Q
(share) 295.94 398.45 T
(tree) 298.65 384.2 T
219.5 323 267.62 352.75 R
N
(client) 232.69 342.95 T
(tree) 235.4 328.7 T
345 323.12 393.12 352.87 R
N
(client) 358.19 343.07 T
(tree) 360.9 328.82 T
294.4 370.34 306.24 372.25 297.21 364.35 295.8 367.35 4 Y
V
270 355.37 295.81 367.35 2 L
N
315.45 365.17 306.25 372.87 318.13 371.21 316.79 368.19 4 Y
V
343.13 356.62 316.79 368.19 2 L
N
72 63 540 720 C
0 0 612 792 C
72 63 540 720 C
109.69 124 502.31 220 C
1 12 Q
0 X
0 K
(client tree root) 271.69 202 T
307.69 193 154.69 139 2 L
1 H
2 Z
N
307.69 193 460.69 139 2 L
N
307.69 193 208.69 139 2 L
N
307.69 193 415.69 139 2 L
N
(var) 148.37 130.82 T
(etc) 203.7 130.82 T
(dev) 406.69 130.82 T
(tmp) 451.69 130.82 T
307.69 193 244.69 139 2 L
N
(debug) 233.38 130.82 T
307.69 193 361.69 139 2 L
N
(opt) 352.69 130.82 T
307.69 193 307.69 139 2 L
N
(unix) 295.36 130.82 T
72 63 540 720 C
0 0 612 792 C
FMENDPAGE
%%EndPage: "4" 5
%%Page: "5" 5
612 792 0 FMBEGINPAGE
0 8 Q
0 X
0 K
(Silicon Graphics Pr) 72 750.67 T
(oprietary) 139.57 750.67 T
72 54 540 54 2 L
0.25 H
2 Z
N
(Diskless Ar) 72 42.62 T
(chitectur) 112.52 42.62 T
(e) 143.48 42.62 T
(Febr) 258.9 42.62 T
(uary 8, 1994) 274.69 42.62 T
(5) 500 42.62 T
1 12 Q
(ops, or exit-ops using \322chroot\323 will fail. Shell scripts should be re-written to use full pathnames) 72 712 T
(from the miniroot root.) 72 698 T
2 F
(3.2.2 About \322client_inst\323) 72 666 T
3 F
-0.4 (client_inst) 72 640 P
1 F
-0.4 ( is a shell script which invokes) 121.98 640 P
3 F
-0.4 (inst) 269.45 640 P
1 F
-0.4 (. It creates the client\325) 286.79 640 P
-0.4 (s /etc/fstab \336le, NFS exports the) 385.46 640 P
-0.03 (client\325) 72 626 P
-0.03 (s root and swap partitions, and enters a line into the server) 101.98 626 P
-0.03 (\325) 381.22 626 P
-0.03 (s /etc/bootparams \336le. The boot-) 384.56 626 P
(param entry contains the client\325) 72 612 T
(s root, sbin, and swap partitions which are mounted when the ker-) 223.23 612 T
(nel starts.) 72 598 T
(The script then calls) 72 572 T
3 F
(inst) 171.93 572 T
1 F
( as such:) 189.26 572 T
4 9 Q
(inst -r$CL_ROOT -S $SHARE -m$MACH ...) 90 554 T
4 12 Q
-0.43 (\322-S $SHARE\323) 72 530 P
1 F
-0.18 ( tells) 150.73 530 P
3 F
-0.18 (inst) 176.36 530 P
1 F
-0.18 ( that this is a client tree install and to install only those \336les not installed) 193.69 530 P
-0.41 (in the share tree rooted at) 72 516 P
4 F
-0.98 ( $SHARE) 191.52 516 P
1 F
-0.41 (.) 240.91 516 P
4 F
-0.98 (\322-m$MACH\323) 246.5 516 P
1 F
-0.41 ( are mach tags for this client. Other tags include) 311.26 516 P
4 F
(GFXBOARD) 72 502 T
1 F
(,) 129.57 502 T
4 F
(CPUARCH) 135.57 502 T
1 F
(,) 185.94 502 T
4 F
(CPUBOARD) 191.93 502 T
1 F
(, &) 249.5 502 T
4 F
(VIDEO) 267.83 502 T
1 F
(.) 303.81 502 T
(Following installation of idb \336les,) 72 476 T
3 F
(client_inst) 237.93 476 T
1 F
(cobbles up a local /etc/hosts \336le; chkcon\336gs nfs,) 290.9 476 T
(network, verbose, & timed; lboots a unix kernel for the client; creates a /var/yp/ypdomain \336le;) 72 462 T
-0.02 (makes necessary symlinks like /lib -> sbin/lib and /stand -> sbin/stand; and creates an /etc/sys_id) 72 448 P
(\336le.) 72 434 T
2 14 Q
(3.3 Swap T) 72 400.67 T
(r) 140.94 400.67 T
(ee) 146.9 400.67 T
1 12 Q
-0.3 (This has not changed from the past implementation. A swap \336le for each machine is placed in this) 72 374 P
(tree. The size of the swap \336le determines the size of the swap partition on the client.) 72 360 T
FMENDPAGE
%%EndPage: "5" 6
%%Page: "6" 6
612 792 0 FMBEGINPAGE
0 8 Q
0 X
0 K
(Silicon Graphics Pr) 72 750.67 T
(oprietary) 139.57 750.67 T
72 54 540 54 2 L
0.25 H
2 Z
N
(Diskless Ar) 72 42.62 T
(chitectur) 112.52 42.62 T
(e) 143.48 42.62 T
(Febr) 258.9 42.62 T
(uary 8, 1994) 274.69 42.62 T
(6) 500 42.62 T
2 14 Q
(3.4 Mapping of client dir) 72 710.67 T
(ectories to diskless server dir) 223.34 710.67 T
(ectories) 395.63 710.67 T
1 12 Q
(The above \336gure shows the mapping of client directories to directories on the server machine.) 72 453 T
(Explicit mounts are:) 72 439 T
4 9 Q
(/) 108 421 T
(->) 144 421 T
(server:/diskless/client/foo) 180 421 T
(/sbin) 108 410 T
(->) 144 410 T
(server:/diskless/share/sbin) 180 410 T
(/swap) 108 399 T
(->) 144 399 T
(server:/diskless/swap/foo) 180 399 T
(/usr) 108 388 T
(->) 144 388 T
(server:/diskless/share/usr) 180 388 T
1 12 Q
-0.26 (As stated previously) 72 364 P
-0.26 (, the \336rst three mounts are performed when the kernel \336rst starts running. /usr) 168.63 364 P
(is mounted when /etc/bcheckrc is run. Note that the client tree shows symlinks from) 72 350 T
4 9 Q
(/stand) 180 332 T
(-> sbin/stand) 216 332 T
(/lib) 180 321 T
(-> sbin/lib) 216 321 T
1 12 Q
-0.11 (From the picture above, it should be clear that the /var and /etc directories reside on the root parti-) 72 297 P
(tion of the client. They are not separate mount points,) 72 283 T
(and /var does not point to usr/var as on a) 331.83 283 T
(diskfull machine.) 72 269 T
2 14 Q
(3.5 Important facts to r) 72 235.67 T
(emember) 214.75 235.67 T
1 12 Q
(Con\336guration \336les belong in /etc or /var) 72 209 T
(. In general, con\336guration \336les have been moved to /etc) 263.89 209 T
(with lar) 72 195 T
(ge \336les or directories being placed in /var) 108.76 195 T
(. On a diskless workstation both directories are) 306.95 195 T
(on the root partition. Remember that in a diskless environment, we are not concerned about the) 72 181 T
(size of the root partition as much as maximizing sharing of non-root objects. On diskfull) 72 167 T
(machines, however) 72 153 T
(, the space allocated to root is important. This is why /var is a symlink to usr/-) 164.11 153 T
-0.31 (var on diskfull machines. By placing lar) 72 139 P
-0.31 (ge con\336guration \336les or directories in /var) 262.12 139 P
-0.31 (, we move them) 461.63 139 P
(of) 72 125 T
(f the root partition.) 81.78 125 T
(Given the split of \336les among two dif) 72 99 T
(ferent trees, pre-ops, post-ops, and exit-ops must operate) 251.35 99 T
(only on those \336les in that particular tree. For example, coding a post-op for the \336le /usr/lib/foo) 72 85 T
-0.41 (which needs to look at /etc/passwd will not work. Even if the \336le /etc/passwd were made available) 72 71 P
72 63 540 720 C
85.89 475 526.11 680 C
496.25 565.37 M
475 576.65 445.69 563.13 442.41 537.87 D
438.46 507.39 484.92 509.54 503.13 515.71 D
518.09 520.77 531.31 545.67 512.5 553.53 D
506.5 556.04 501.78 560.61 496.88 564.75 D
4 X
0 K
V
0.5 H
2 Z
0 X
N
298.53 635.18 M
293.14 644.18 274.49 645.55 273.23 632.68 D
271.46 614.68 278.7 594 300.4 591.74 D
317.16 590 319.89 612.14 310.69 622.05 D
307.45 625.54 305.5 633.22 298.53 634.55 D
14 X
V
0 X
N
14 X
90 450 18 18 355.89 563 G
0 X
90 450 18 18 355.89 563 A
436.89 500 M
453.33 517.17 427.26 530.5 418.23 544.62 D
412.27 553.96 388.44 557.06 387.92 540.25 D
387.39 523.45 373.6 492.99 401.25 493.81 D
413.14 494.17 429.96 486.58 437.5 499.62 D
5 X
V
0 X
N
246.88 639.62 M
223.54 651.73 187.55 640.82 194.9 609 D
198.41 593.81 205.9 575.37 220.63 574.89 D
242.41 574.19 281.31 547.16 282.79 571.5 D
284.26 595.78 280.97 642.3 248.13 640.87 D
5 X
V
0 X
N
6 X
90 450 18 18 373.89 536 G
0 X
90 450 18 18 373.89 536 A
192.5 622.12 M
184.99 629.57 169.97 626.84 173.76 614 D
186.18 571.95 153.9 565.36 123.13 550.57 D
114.92 546.63 111.22 526.79 126.88 522.93 D
170.93 512.09 243.66 502.28 261.45 535.87 D
280.77 572.34 237.53 561.3 215.63 565.14 D
189.22 569.77 191.51 599.04 192.5 619.62 D
6 X
V
0 X
N
178.75 654.62 M
151.71 650.03 107.02 658.29 96.87 627.75 D
82.31 583.95 115.22 558.6 155.63 569.73 D
176.09 575.37 164.41 600.97 166.87 613.37 D
169.88 628.56 193.01 638.9 179.38 655.25 D
4 X
V
0 X
N
1 12 Q
(/) 172.55 641.42 T
103.89 631.6 265.89 631.6 2 L
N
103.89 631.6 103.89 622.6 2 L
N
(etc) 98.9 614.42 T
130.89 631.6 130.89 622.6 2 L
N
157.89 631.6 157.89 622.6 2 L
N
184.89 631.6 184.89 622.6 2 L
N
211.89 631.6 211.89 622.6 2 L
N
238.89 631.6 238.89 622.6 2 L
N
265.89 631.6 265.89 622.6 2 L
N
175.89 631.6 175.89 640.6 2 L
N
(var) 124.57 614.42 T
(unix) 148.89 614.42 T
(usr) 175.89 614.42 T
(sbin) 200.89 614.42 T
(stand) 229.89 614.42 T
(lib) 262.22 614.42 T
(client workstation - foo) 139.89 662 T
130.89 608 130.89 599 2 L
N
103.89 599 148.89 599 2 L
N
103.89 599 103.89 590 2 L
N
148.89 599 148.89 590 2 L
N
(yp) 100.89 581.82 T
(sysgen) 134.24 581.82 T
211.89 608 211.89 590 2 L
N
211.89 590 265.89 590 2 L
N
265.89 590 265.89 581 2 L
N
238.89 590 238.89 581 2 L
N
(stand) 231.57 572.82 T
(lib) 265.89 572.82 T
184.89 608 184.89 554 2 L
N
139.89 554 247.89 554 2 L
N
139.89 554 139.89 545 2 L
N
166.89 554 166.89 545 2 L
N
193.89 554 193.89 545 2 L
N
220.89 554 220.89 545 2 L
N
247.89 554 247.89 545 2 L
N
(cpu) 130.89 536.82 T
(bin) 160.56 536.82 T
(share) 184.89 536.82 T
(gfx) 211.89 536.82 T
(sbin) 238.89 536.82 T
265.26 631.25 292.26 631.25 2 L
N
292.01 631.1 292.01 622.1 2 L
N
(swap) 280.63 614 T
241.75 598.57 238.75 593.37 235.75 598.57 238.75 598.57 4 Y
V
238.75 611.5 238.75 598.57 2 L
N
268.63 599.19 265.63 594 262.63 599.19 265.63 599.19 4 Y
V
265.63 610.87 265.63 599.19 2 L
N
(diskless server) 399.38 662.12 T
(/) 426.64 637.7 T
427.89 635 427.89 626 2 L
N
400.89 626 463.89 626 2 L
N
400.89 626 400.89 617 2 L
N
(diskless) 382.89 608.82 T
400.89 608 400.89 599 2 L
N
373.89 599 445.89 599 2 L
N
373.89 599 373.89 590 2 L
N
409.89 599 409.89 590 2 L
N
445.89 599 445.89 590 2 L
N
(swap) 358.24 581.82 T
(share) 400.89 581.82 T
(client) 436.89 581.82 T
373.89 581 373.89 572 2 L
N
(foo) 346.89 554.82 T
409.89 581 409.89 545 2 L
N
445.89 581 445.89 572 2 L
N
436.89 572 472.89 572 2 L
N
436.89 572 436.89 563 2 L
N
472.89 572 472.89 563 2 L
N
(foo1) 429.9 554.82 T
(foo) 463.89 554.82 T
373.89 545 409.89 545 2 L
N
391.89 572 355.89 572 2 L
N
391.89 572 391.89 563 2 L
N
(foo1) 378.9 554.82 T
355.89 572 355.89 563 2 L
N
373.89 545 373.89 536 2 L
N
400.89 545 400.89 536 2 L
N
(usr) 368.23 527.82 T
(sbin) 391.89 527.82 T
400.89 527 400.89 518 2 L
N
391.89 518 418.89 518 2 L
N
391.89 518 391.89 509 2 L
N
418.89 518 418.89 509 2 L
N
(lib) 388.22 500.82 T
(stand) 409.89 500 T
463.89 626 463.89 617 2 L
N
472.89 554 472.89 545 2 L
N
454.89 545 499.89 545 2 L
N
454.89 545 454.89 536 2 L
N
499.89 545 499.89 536 2 L
N
(var) 445.89 529.6 T
(etc) 493.57 527.82 T
72 63 540 720 C
0 0 612 792 C
FMENDPAGE
%%EndPage: "6" 7
%%Page: "7" 7
612 792 0 FMBEGINPAGE
0 8 Q
0 X
0 K
(Silicon Graphics Pr) 72 750.67 T
(oprietary) 139.57 750.67 T
72 54 540 54 2 L
0.25 H
2 Z
N
(Diskless Ar) 72 42.62 T
(chitectur) 112.52 42.62 T
(e) 143.48 42.62 T
(Febr) 258.9 42.62 T
(uary 8, 1994) 274.69 42.62 T
(7) 500 42.62 T
1 12 Q
-0.05 (to the share tree, it would be only one /etc/passwd. Remember) 72 712 P
-0.05 (, there will be multiple /etc/passwd) 369.43 712 P
(\336les in each client tree for one /usr/lib/foo \336le in the share tree. Running a post-op just once will) 72 698 T
(not buy much.) 72 684 T
3 F
(inst) 72 658 T
1 F
( now has an environment variable called) 89.33 658 T
2 F
(diskless) 286.18 658 T
1 F
(which has three values, depending on the) 328.5 658 T
(type of installation. pre/post/exit-ops can query this variable and perform installation speci\336c) 72 644 T
(actions.) 72 630 T
4 9 Q
(diskless=share|client|none) 144 612 T
1 12 Q
-0.31 (There is currently no easy-to-use mechanism to install patches or software which come in formats) 72 588 P
(other than the) 72 574 T
3 F
(inst) 140.95 574 T
1 F
( format. Until an automated mechanism exists, packages can be unpacked on a) 158.28 574 T
(diskless client which has mounted /usr read/write after the diskless server exports /usr read/) 72 560 T
(write.) 510.68 560 T
(In general, please do not change pre/post/exit-ops to be no-ops when diskless installs are happen-) 72 534 T
(ing. If you have a problem, consult with someone more familiar with the diskless architecture.) 72 520 T
2 16 Q
(4.0 Other information) 72 479.33 T
1 12 Q
(This \336le is available in the RCS tree as \322.../irix/cmd/diskless/diskless-arch.ps\323.) 72 452 T
2 14 Q
(4.1 Revision history) 72 418.67 T
1 12 Q
(Originally written by Michael Nishimoto \050December) 72 392 T
(, 1993\051) 325.01 392 T
2 14 Q
(4.2 Other documents) 72 358.67 T
1 12 Q
(Diskless W) 72 332 T
(orkstation Administration Guide \050document number: 007-0855-030\051) 126.01 332 T
(\322Directory Structure Re-or) 72 306 T
(ganization in IRIX 5.x\323 available in the RCS tree as \322.../irix/cmd/disk-) 200.34 306 T
(less/dir) 72 292 T
(-reor) 106.41 292 T
(g.fm\323) 129.5 292 T
FMENDPAGE
%%EndPage: "7" 8
%%Trailer
%%BoundingBox: 0 0 612 792
%%Pages: 7 1
%%DocumentFonts: Palatino-Roman
%%+ Times-Roman
%%+ Times-Bold
%%+ Times-Italic
%%+ Courier
%%+ Courier-Bold