%!PS-Adobe-1.0 %%Creator: devps (Pipeline Associates, Inc.) %%CreationDate: Fri Sep 13 14:23:49 1996 %%Pages: (atend) %%DocumentFonts: (atend) /devps 180 dict def devps begin /res 10.000000 def /y_offset 843 def /X{exch}bind def /mm {transform round X round X itransform} bind def /r{rmoveto}bind def /m{moveto}bind def /l{lineto}bind def /rl{rlineto}bind def /st{stroke}bind def /gs{gsave}bind def /gr{grestore}bind def /cp{currentpoint}bind def /np{newpath}bind def /ct{curveto}bind def systemdict /setpacking known { /savepacking currentpacking def true setpacking } if /m0{0 0 moveto}bind def /xc{//res div}bind def /yc{//res neg div //y_offset add}bind def /lc{yc X xc X l st}bind def /mc{yc X xc X m}bind def /el{gs /a X def a div 1 X scale cp np a xc 2 div 0 360 arc st gr}bind def /ar{cp 7 2 roll np xc 5 1 roll atan 3 1 roll atan X arc st}bind def /sp{yc X xc X 6 2 roll yc X xc X 6 2 roll yc X xc X 6 2 roll ct}bind def /V{//res neg div //y_offset add currentpoint pop X m}bind def /H{//res div 0 transform X round X itransform pop currentpoint X pop moveto}bind def /h{//res div 0 r}bind def /v{//res neg div 0 X r}bind def /S{X H show}bind def /A{H //res div 1 index stringwidth pop sub 1 index length div 0 3 2 roll ashow}bind def /psize 10 def /height 0 def /cheight { height 0 ne { height } { psize } ifelse } bind def /slant 0 def /FF{findfont X dup 30 div 0 mm pop setlinewidth /psize X def [psize 0 cheight slant sin slant cos div mul cheight 0 0] makefont setfont}bind def /shade{gs /dy X def /dx X def np m 0 /dy rl /dx 0 rl 0 /dy neg rl /dx neg 0 rl closepath .9 setgray fill gr}bind def 1 setlinecap /resolution res 72 mul def /startFig { /SavedState save def userdict maxlength dict begin currentpoint transform DocumentInitState setmiterlimit setgray setdash setlinejoin setlinecap setlinewidth setmatrix itransform moveto /ury exch def /urx exch def /lly exch def /llx exch def /y exch 72 mul resolution div def /x exch 72 mul resolution div def currentpoint /cy exch def /cx exch def /sx x urx llx sub div def /sy y ury lly sub div def sx sy scale cx sx div llx sub cy sy div ury sub translate /DefFigCTM matrix currentmatrix def /initmatrix { DefFigCTM setmatrix } def /defaultmatrix { DefFigCTM exch copy } def /initgraphics { DocumentInitState setmiterlimit setgray setdash setlinejoin setlinecap setlinewidth setmatrix DefFigCTM setmatrix } def /showpage { initgraphics } def }bind def /clipFig { currentpoint 6 2 roll newpath 4 copy 4 2 roll moveto 6 -1 roll exch lineto exch lineto exch lineto closepath clip newpath moveto }bind def /doclip { llx lly urx ury clipFig } def /endFig { end SavedState restore }bind def /globalstart { fontnum psize slant height resolution currentpoint pagesave restore gsave }bind def /globalend { grestore moveto /resolution exch def /height exch def /slant exch def /psize exch def /fontnum exch def F /pagesave save def }bind def /fontnum 1 def systemdict /setpacking known { savepacking setpacking} if end /BP{ save mark devps begin m0 /DocumentInitState [ matrix currentmatrix currentlinewidth currentlinecap currentlinejoin currentdash currentgray currentmiterlimit ] cvx def }bind def /EP{ end cleartomark restore showpage}def /Encoding-1 256 array def 0 1 255 {Encoding-1 exch /.notdef put} for Encoding-1 8#301 StandardEncoding 8#101 26 getinterval putinterval %A-B Encoding-1 8#341 StandardEncoding 8#141 26 getinterval putinterval %a-b Encoding-1 8#241 StandardEncoding 8#301 16 getinterval putinterval %accents Encoding-1 8#373 StandardEncoding 8#365 1 getinterval putinterval %dotlessi Encoding-1 dup 8#41 /copyright put dup 8#42 /registered put dup 8#43 /trademark put dup 8#44 /logicalnot put dup 8#45 /Eth put dup 8#46 /eth put dup 8#47 /Thorn put dup 8#50 /thorn put dup 8#51 /brokenbar put dup 8#52 /degree put dup 8#53 /divide put dup 8#54 /multiply put dup 8#55 /minus put dup 8#56 /onehalf put dup 8#57 /onequarter put dup 8#60 /threequarters put dup 8#101 /Aacute put dup 8#102 /Acircumflex put dup 8#103 /Adieresis put dup 8#104 /Agrave put dup 8#105 /Aring put dup 8#106 /Atilde put dup 8#107 /Ccedilla put dup 8#110 /Eacute put dup 8#111 /Ecircumflex put dup 8#112 /Edieresis put dup 8#113 /Egrave put dup 8#114 /Iacute put dup 8#115 /Icircumflex put dup 8#116 /Idieresis put dup 8#117 /Igrave put dup 8#120 /Ntilde put dup 8#121 /Oacute put dup 8#122 /Ocircumflex put dup 8#123 /Odieresis put dup 8#124 /Ograve put dup 8#125 /Otilde put dup 8#126 /Scaron put dup 8#127 /Uacute put dup 8#130 /Ucircumflex put dup 8#131 /Udieresis put dup 8#132 /Ugrave put dup 8#133 /Ydieresis put dup 8#134 /Zcaron put dup 8#135 /aacute put dup 8#136 /acircumflex put dup 8#137 /adieresis put dup 8#140 /agrave put dup 8#141 /aring put dup 8#142 /atilde put dup 8#143 /ccedilla put dup 8#144 /eacute put dup 8#145 /ecircumflex put dup 8#146 /edieresis put dup 8#147 /egrave put dup 8#150 /iacute put dup 8#151 /icircumflex put dup 8#152 /idieresis put dup 8#153 /igrave put dup 8#154 /ntilde put dup 8#155 /oacute put dup 8#156 /ocircumflex put dup 8#157 /odieresis put dup 8#160 /ograve put dup 8#161 /otilde put dup 8#162 /scaron put dup 8#163 /uacute put dup 8#164 /ucircumflex put dup 8#165 /udieresis put dup 8#166 /ugrave put dup 8#167 /ydieresis put dup 8#170 /zcaron put pop /Enc-dict 30 dict def Enc-dict /tmpstr1 50 string put Enc-dict /tmpstr2 50 string put Enc-dict /tmpstr3 50 string dup (Encoding-) exch cvs pop put /AEnc-def { % arguments: the original font's name, encoding nr Enc-dict begin tmpstr2 cvs /Enc-no exch def % Remember the number in a string dup /OrigName exch def % remember the name findfont dup maxlength dict /newdict exch def % get dictionary for new font { exch dup /FID ne { exch newdict 3 1 roll put } { pop pop } % Ignore FID ifelse } forall newdict begin /Encoding tmpstr3 9 Enc-no putinterval tmpstr3 0 9 Enc-no length add getinterval cvn load def % Replace encoding currentdict /UniqueID known { /UniqueID UniqueID Enc-no cvi 49999 mul add def } if % Derive New UniqueID end % newdict /FNlength OrigName tmpstr1 cvs length def % convert name, remember length FNlength 1 add Enc-no length add string dup 0 OrigName tmpstr1 cvs putinterval dup FNlength (-) putinterval dup FNlength 1 add Enc-no putinterval dup 0 tmpstr1 0 FNlength getinterval putinterval % Add old name cvn dup newdict /FontName 3 2 roll put newdict definefont end % Enc-dict } def /Times-Roman 1 AEnc-def pop /R-1{/Times-Roman-1 FF}def /R{/Times-Roman FF}def /B{/Times-Bold FF}def /C{/Courier FF}def %%EndProlog %%Page: 1 1 BP /slant 0 def /height 0 def 480 V 10 R 720(INIT)S 931(\()S 973(8)S 1031(\))S 2696(Eighth)S (Edition)296 2989 A 4916(INIT)S 5127(\()S 5169(8)S 5227(\))S 960 V 9 R 720(N)S 722(NA)S 790(AM)S 858(ME)S 940(E)S 1080 V 10 R 1080(init)S 10 R-1 1239(-)S 10 R (grandparent)481 1321 A 1827(of)S 1936(all)S 2062(processes)S 1248 V 9 R 720(D)S 722(DE)S 790(ES)S 848(SC)S 900(CR)S 962(RI)S 1024(IP)S 1057(PT)S 1109(TI)S 1167(IO)S 1200(ON)S 1268(N)S 1368 V 10 R 1080(The)S 1270(\256rst)S 1460(program)S 1834(started)S 2136(by)S 2269(Minix)S 2547(is)S 10 B 2647(init)S 10 R 2793(.)S 2876(The)S 3066(actions)S 3385(performed)S 3839(by)S 10 B 3973(init)S 10 R 4153(can)S 4327(be)S 4456(summarized)S 4982(by)S 5116(this)S 1488 V (pseudo)284 1080 A 1389(shell)S 1604(program:)S 1728 V 10 C 1440(#)S (Open)244 1562 A 1867(0,)S 2050(1,)S 2233(2.)S 1848 V (exec)244 1440 A (/dev/log)549 2416 A (2>&1)244 3026 A 2088 V 1440(#)S (Run)183 1562 A (the)183 1806 A (system)366 2050 A (initialization)854 2477 A (script.)427 3392 A 2208 V 1440(sh)S (/etc/rc)427 1623 A ($bootopts)549 2111 A 2448 V (>/etc/utmp)610 1440 A 2568 V (echo)244 1440 A (reboot)366 1745 A (>>/usr/adm/wtmp)915 2172 A 2808 V (while)305 1440 A 1806(:;)S 1989(do)S 2928 V 1800(#)S (Wait)244 1922 A (for)183 2227 A 2471(a)S (process)427 2593 A 3081(to)S (exit,)305 3264 A (but)183 3630 A (don't)305 3874 A (always)366 4240 A (block.)366 4667 A 3048 V (wait)244 1800 A 3288 V 1800(#)S (Record)366 1922 A (logout.)427 2349 A (\(Not)244 2898 A 3203(in)S (this)244 3386 A (dumb)244 3691 A (way,)244 3996 A 4301(of)S (course.\))488 4484 A 3408 V 1800(if)S ("pid)244 1983 A 2288(is)S 2471(in)S 2654(my)S (tables")427 2837 A ($pid)244 3325 A 3528 V (then)244 1800 A 3648 V (echo)244 2160 A ("logout)427 2465 A ($pid")305 2953 A (>/etc/utmp)610 3319 A 3768 V (echo)244 2160 A ("logout)427 2465 A ($pid")305 2953 A (>>/usr/adm/wtmp)915 3319 A 3888 V 1800(\256)S 4128 V 1800(#)S (Start)305 1922 A 2288(a)S (new)183 2410 A (session.)488 2654 A 4248 V (while)305 1800 A (read)244 2166 A (line)244 2471 A (type)244 2776 A (getty)305 3081 A (init)244 3447 A 4368 V 1800(do)S 4488 V 2160(if)S (idle)244 2343 A ($line)305 2648 A 4608 V (then)244 2160 A 4728 V ($init)305 2520 A (...)183 2886 A (<$tty)305 3130 A (>$tty)305 3496 A 4848 V ($getty)366 2520 A (<$tty)305 2947 A (>$tty)305 3313 A (2>&1)244 3679 A 3984(&)S 4968 V (pid=$!)366 2520 A 5088 V ("add)244 2520 A (pid)183 2825 A 3069(to)S (tables")427 3252 A ($pid)244 3740 A 5208 V (echo)244 2520 A ("login)366 2825 A ($line)305 3252 A ($pid")305 3618 A (>/etc/utmp)610 3984 A 5328 V (echo)244 2520 A ("login)366 2825 A ($line)305 3252 A ($pid")305 3618 A (>>/usr/adm/wtmp)915 3984 A 5448 V 2160(\256)S 5568 V (done)244 1800 A 2105(<)S (/dev/ttytab)671 2227 A 5688 V (done)244 1440 A 5928 V 10 R 1080(The)S 1265(\256rst)S 1450(action)S 1724(of)S 10 B 1836(init)S 10 R 2010(is)S 2105(to)S 2211(run)S 10 B 2373(/etc/rc)S 10 R 2671(to)S (initialize)353 2777 A 3158(the)S 3309(system)S 3616(as)S 3728(described)S 4142(in)S 10 B 4248(boot)S 10 R 4438(\(8\).)S 10 B 4634(Init)S 10 R 4819(then)S 5020(enters)S 6048 V 1080(its)S 1210(main)S (loop)178 1445 A 1657(where)S 1938(it)S 2028(waits)S 2275(for)S 2427(processes)S 2847(to)S 2959(exit,)S 3169(and)S 3348(starts)S 3595(processes)S 4015(on)S (each)185 4149 A 4368(enabled)S 4715(terminal)S 5085(line.)S 6168 V 1080(The)S 1268(\256le)S 10 B 1428(/etc/ttytab)S 10 R 1897(contains)S 2263(a)S 2339(list)S 2493(of)S 2608(terminal)S 2975(devices,)S 3333(their)S 3549(terminal)S 3916(types,)S 4184(the)S 4338(program)S 4711(to)S 4821(execute)S 5161(on)S 6288 V 1080(them)S 1308(to)S 1413(allow)S 1664(one)S 1835(to)S 1939(login)S 2171(\(usually)S 10 B 2521(getty)S 10 R 2734(\(8\)\),)S 2937(and)S 3108(the)S 3257(program)S 3624(to)S 3728(execute)S 4062(\256rst)S 4245(to)S (initialize)353 4349 A 4728(the)S 4877(line)S 5054(\(usu-)S 6408 V 1080(ally)S 10 B 1262(stty)S 10 R 1419(\(1\)\).)S 1652(These)S 1924(\256elds)S 2173(may)S 2377(be)S 2503(left)S 2669(out)S 2828(to)S 2937(indicate)S 3287(that)S 3469(a)S 3545(line)S 3728(is)S 3827(disabled)S 4194(or)S 4310(that)S (initialization)509 4493 A 5034(is)S 5133(not)S 6528 V (necessary.)417 1080 A 1547(The)S 1729(commands)S 2189(are)S 2338(searched)S 2716(using)S 2958(the)S 3106(path)S 10 B 3304(/sbin:/bin:/usr/sbin:/usr/bin)S 10 R 4492(.)S 6696 V 10 B 1080(Init)S 10 R (accepts)297 1264 A 1588(several)S 1901(signals)S 2207(that)S 2385(must)S 2608(be)S 2731(sent)S 2921(to)S 3027(process)S 3357(id)S 3463(1.)S 3591(\(It)S 3715(is)S 3810(the)S 3961(\256rst)S 4146(process,)S 4501(so)S 4618(natually)S 4970(its)S 5093(pro-)S 6816 V 1080(cess)S 1273(id)S 1376(is)S 1468(1.\))S 1627(The)S 1809(signals)S 2113(are:)S 6984 V 10 B 1080(SIGHUP)S 7104 V 10 R 1440(When)S (receiving)375 1710 A 2116(a)S (hangup)295 2192 A 2518(signal,)S 10 B 2814(init)S 10 R (will)157 2991 A 3179(forget)S (about)223 3451 A 3705(errors)S 3972(and)S 4148(rescan)S 10 B 4437(ttytab)S 10 R 4726(for)S 4875(processes)S 7224 V 1440(to)S 1550(execute.)S 10 B 1940(Init)S 10 R 2129(normally)S 2524(rescans)S 10 B 2853(ttytab)S 10 R (each)185 3143 A 3360(time)S 3571(it)S 3659(feels)S 3882(the)S 4037(need)S 4259(to)S 4369(respawn)S 4737(a)S 4814(process,)S 5172(so)S 7344 V 1440(the)S (hangup)295 1588 A 1908(signal)S 2173(is)S 2265(only)S 2468(needed)S 2778(if)S 2865(a)S 2935(line)S 3111(has)S 3270(been)S 3485(shut)S 3677(down,)S 3950(or)S 4059(after)S 4271(a)S 4342(terminate)S 4749(signal.)S 5065(Note)S 7464 V 1440(that)S 1619(after)S 1832(turning)S 2149(a)S 2221(line)S 2399(off)S (you)150 2544 A (will)157 2721 A 2905(have)S 3122(to)S (kill)134 3227 A 3388(the)S 3538(process)S (running)312 3867 A 4206(on)S 4333(that)S 4511(line)S 4689(manually,)S 10 B 5115(init)S 7903 V 10 R 720(Page)S 941(1)S 4455(September)S 4911(13,)S (1996)200 5061 A 8143 V EP %%Page: 2 2 BP /slant 0 def /height 0 def 480 V 10 R 720(INIT)S 931(\()S 973(8)S 1031(\))S 2696(Eighth)S (Edition)296 2989 A 4916(INIT)S 5127(\()S 5169(8)S 5227(\))S 960 V 1440(doesn't)S 1761(do)S 1886(that)S 2062(for)S (you.)175 2205 A 1128 V 10 B 1080(SIGTERM)S 1248 V 10 R 1440(Normally)S 1870(sent)S 2076(by)S 2220(programs)S 2644(that)S 2840(halt)S 3036(or)S (reboot)257 3165 A 3467(Minix.)S 3807(Causes)S 10 B 4137(init)S 10 R 4328(to)S 4451(stop)S 4663(spawning)S 5093(new)S 1368 V 1440(processes.)S 1536 V 10 B 1080(SIGABRT)S 1656 V 10 R 1440(Sent)S 1654(by)S 1789(the)S (keyboard)374 1947 A 2357(driver)S 2634(when)S 2888(the)S 10 B 3047(CTRL-ALT-DEL)S 10 R 3845(key)S 4026(combination)S 4564(is)S 4667(typed.)S 4976(Causes)S 1776 V 10 B 1440(init)S 10 R 1614(to)S 1720(run)S 1882(the)S 10 B 2033(shutdown)S 10 R 2481(command.)S 2955(A)S (second)279 3055 A 3361(abort)S 3595(signal)S 3862(makes)S 10 B 4146(init)S 10 R 4319(halt)S 4497(the)S 4647(system)S 4953(directly)S 1896 V 1440(with)S 1663(a)S 1752(system)S 2076(call.)S 2317(The)S (keyboard)374 2519 A 2938(driver)S 3224(halts)S 3459(the)S 3627(system,)S (without)307 3976 A 4328(a)S 4418(sync,)S 4672(after)S 4903(the)S 5071(third)S 2016 V 1440(CTRL-ALT-DEL.)S 2184 V 870(M)S 872(Mi)S 963(in)S 993(ni)S 1045(ix)S 1075(x)S 1152(v)S 1154(vs)S 1206(s.)S 1247(.)S 1299(M)S 1301(Mi)S 1392(in)S 1422(ni)S 1474(ix)S 1504(x-)S 1556(-v)S 1592(vm)S 1644(md)S 1724(d)S 2304 V 1080(There)S 1341(are)S 1490(a)S 1560(few)S 1737(differences)S 2211(between)S 2572(standard)S 2938(Minix)S 3208(and)S 3378(Minix-vmd)S 3860(on)S 3985(how)S 10 B 4183(init)S 10 R 4354(is)S 4446(run.)S 4655(The)S 10 B 4837(/etc/rc)S 10 R 5132(\256le)S 2424 V 1080(is)S 1183(executed)S (under)229 1577 A 1842(standard)S 2219(Minix)S 2500(with)S (input)206 2715 A (connected)408 2957 A 3401(to)S 10 B 3515(/dev/console)S 10 R 4035(,)S 4095(but)S (under)229 4258 A 4522(Minix-vmd)S 5014(this)S 5194(is)S 2544 V (still)151 1080 A 10 B 1261(/dev/null)S 10 R 1636(.)S 1716(This)S 1925(means)S 2212(that)S (under)229 2393 A 2652(Minix-vmd)S 3139(processes)S 3555(must)S 3780(be)S (reconnected)487 3905 A 4422(to)S 10 B 4531(/dev/console)S 10 R 5082(with)S 2664 V 1080(the)S 10 B 1233(intr)S 10 R 1426(program)S 1797(if)S 1889(they)S 2092(need)S 2312(user)S 2510(interaction.)S 3021(Minix-vmd)S 3508(passes)S 3795(the)S 3948(value)S 4196(of)S 4310(the)S 10 B 4463(bootopts)S 10 R (boot)178 4862 A 5070(vari-)S 2784 V 1080(able)S 1273(to)S 1376(/etc/rc.)S 1704(Standard)S 2087(Minix)S 2357(does)S 2566(not.)S 2952 V 9 R 720(F)S 722(FI)S 774(IL)S 807(LE)S 865(ES)S 923(S)S 3072 V 10 B 1080(/etc/ttytab)S 10 R 2330(List)S 2512(of)S 2621(terminals)S 3021(devices.)S 3240 V 10 B 1080(/etc/utmp)S 10 R 2330(List)S 2512(of)S 2621(currently)S (logged)273 3010 A 3308(in)S 3411(users.)S 3408 V 10 B 1080(/usr/adm/wtmp)S 10 R (Login/logout)524 2330 A 2879(history.)S 3576 V 9 R 720(S)S 722(SE)S 774(EE)S 832(E)S 913(A)S 915(AL)S 983(LS)S 1041(SO)S 1093(O)S 3696 V 10 B 1080(ttytab)S 10 R 1338(\(5\),)S 10 B 1506(utmp)S 10 R 1736(\(5\),)S 10 B 1904(getty)S 10 R 2117(\(8\),)S 10 B 2285(stty)S 10 R 2442(\(1\),)S 10 B 2610(boot)S 10 R 2800(\(8\).)S 3864 V 9 R 720(A)S 722(AU)S 790(UT)S 858(TH)S 916(HO)S 984(OR)S 1052(R)S 3984 V 10 R 1080(Kees)S 1307(J.)S 1396(Bot)S 1566(\(kjb@cs.vu.nl\))S 7903 V 720(September)S 1176(13,)S (1996)200 1326 A 4990(Page)S 5211(2)S 8143 V EP %%Trailer %%DocumentFonts: Times-Roman Times-Bold Courier %%Pages: 2