Kernel−based emulation for Plan 9

Ron Minnich [email protected]

ABSTRACT

+NKAmK EI = kAHnAl->=IA@ IOIJAm BoH JDA 'k L=HE=nJ oB JDA 2l=n ' kAHnAl. 1J EI @AIECnA@ Jo FHoLE@A JH=nIF=HAnJ >En=HO IKFFoHJ BoH FHoCH=mI ?om­ FElA@ BoH 1*MߣI +omFKJA No@A KAHnAl +NK on JDA *lKA /AnA IAHEAI oB IKFAH?omFKJAHI. 6DEI IKFFoHJ =lloMI KIAHI Jo >KEl@ =FFlE?=JEonI MEJD JDA IJ=n@=H@ *lKA /AnA Jool?D=En, En?lK@EnC +++ =n@ .oHJH=n ?omFElAHI. 9DElA JDA +NK EI noJ LEnKN, 1*M @AIECnA@ JDA +NK Io JD=J JDA KIAH EnJAH­ =?A D=I mK?D En ?ommon MEJD JDA LEnKN . IOIJAm ?=ll EnJAHB=?A. 6DA 2l=n ' +NK AmKl=JoH DAn?A FHoLE@AI JDA BoKn@=JEon oB kAHnAl->=IA@ LEnKN IOIJAm ?=ll IKFFoHJ on 2l=n '. 1n JDEI F=FAH MA @EI?KII ?nkAmKߣI EmFlAmAnJ=JEon =n@ IomA oB EJI moHA EnJAHAIJEnC BA=JKHAI, IK?D =I JDA =>ElEJOJoA=IElOEnJAHmEN2l=n'=n@LEnKNIOIJAm?=llI.

Introduction 9A D=LA FoHJA@ 2l=n ' Jo JDA 1*M *lKA /AnA IAHEAI oB IKFAH?omFKJAHI. 6DAHA =HA JMo IOIJAmI MA =HA ?KHHAnJlO KIEnC, onA oB MDE?D D=I  " "-?oHA 22+ "# +27I, =n@ onA MDE?DD=I",+27I.6DAIA IOIJAmI=lIoD=LA IALAH=l IFA?E=l FKHFoIA nAJMoHkI. 6DA Co=l oB JDA MoHk EI Jo AL=lK=JA 2l=n ' =I =n oFAH=JEnC IOIJAmI BoH IK?D m=?DEnAI. OnA EIIKA EI JD=J JDA Jool?D=En BoH JDAIA m=?DEnAI EI LEnKN-?AnJHE? =n@ ?=n noJ >A FoHJA@ Jo 2l=n ' En =nO HA=Ion=>lA JEmABH=mA: JDA ?omFElAHI =HA noJ =L=El=>lA En IoKH?A BoHm En IomA ?=IAI; JDA HKnJEmA lE>H=HO ?o@A ?onIEIJI oB = mEN oB + =n@ +++; JDA =FFlE­ ?=JEonI ?o@A EI = mEN BoH .oHJH=n, +, +++, =n@ 2OJDon. 4AMHEJEnC =ll JDA =FFI EI IEmFlO EmFoIIE>lA, =I JDAO ?onIEIJ oB mElEonI oB lEnAI oB ?o@A. 6DA onlOFoIIE>lA F=JDJoAL=lK=J­ EnCJDAIA =FFlE?=JEonIKn@AH2l=n'EI=nAmKl=JEonIOIJAm. OFAH=JEnC IOIJAmI oB onA JOFA D=LA >AAn =>lA Jo IKFFoHJ FHoCH=mI BHom =noJDAH oFAH­ =JEnC IOIJAm BoH = LAHO lonC JEmA. 1n HA?AnJ JEmAI, IomA kAHnAlI IK?D =I .HAA*5, D=LA FHoLE@A@ IKFFoHJ BoH LEnKN. 6DEI IKFFoHJ EI FHoLE@A@ En JDA kAHnAl, LE= = IMEJ?D Jo =n AnJEHAlO IAFAH=JA IOIJAm ?=ll J=>lA. MoHA HA?AnJlO, 2l=n ' D=I IKFFoHJA@ LEnKN >En=HEAI LE= LEnKN-M7, MDE?D HAlEAI on JDA B=?J JD=J LEnKN IOIJAm ?=llI KIA = JH=F Jo LA?JoH &, =n@ 2l=n ' KIAI = JH=F Jo LA?JoH ". 6DA LEnKN JH=F ?=n JDKI >A D=n@lA@ >O JDA 2l=n ' ______5=n@E= EI = mKlJEFHoCH=m l=>oH=JoHO oFAH=JA@ >O 5=n@E= +oHFoH=JEon, = Lo?kDAA@ M=HJEn +omF=nO, BoH JDA 7nEJA@ 5J=JAI ,AF=HJmAnJ oB -nAHCOߣI N=JEon=l NK?lA=H 5A?KHEJO )@mEnEIJH=JEon Kn@AH ?onJH=?J ,-­)+"­'")L&#. 5)N,-  -$$""+ ­ ­ noJAI mA?D=nEIm, IEn?A JDA JH=F & KIA@ >O LEnKN MEll >oKn?A BHom kAHnAl mo@A Jo KIAH mo@A EB = D=n@lAH EI IAJ KF. LEnKNAmK EI =n EnJAHAIJEnC AN=mFlA oB DoM Jo EmFlAmAnJ = Im=ll oFAH=JEnC IOIJAm En KIAH mo@A. OnA lEmEJ=JEon oB LEnKN-M7 EI FAHBoHm=n?A: JDA JH=F HAIKlJI En JDA ?HA=JEon oB = IJHEnC, MDE?D EI F=IIA@ Jo KIAH mo@A =n@ D=I Jo >A F=HIA@. )lIo, =I MA @EI?KII >AloM, JDAHA =HA IomA oFAH=JEonI JD=J D=LA Jo >A @onA >O JDA kAHnAl,JD=J JDA LEnKN-M7 =FFHo=?D?=nnoJ IKFFoHJ. )noJDAH EIIKA on JDA 2oMAH 2+ EI JD=J JDAHA EI onlO onA IOIJAm ?=ll EnIJHK?JEon BoH =ll oFAH=JEnC IOIJAmI. )ll FHoCH=mI MEll JH=F Jo JDA IOIJAm ?=ll D=n@lAH En JDA kAHnAl. 5JEll MoHIA, JDAHA EI =n oLAHl=F En JDA IOIJAm ?=ll nKm>AH IF=?A: JDAHA EI no M=O Jo @EBBAHAnJE­ =JA FHoCH=mI >=IA@ on JDA IOIJAm ?=ll LA?JoH KIA@ oH JDA IOIJAm ?=ll nKm>AH KIA@. 6DAHABoHA, JDA FHo?AII mKIJ >A m=HkA@ En IomA M=O, =n@ = IOIJAm ?=ll IMEJ?D m=@A En JDA kAHnAl. 1n JDEI F=FAH, MA @EI?KII JDA HAGKEHAmAnJI oB +NK >En=HEAI, oKH KI=CA oB +NKAmK=n@JDAnoKHEmFlAmAnJ=JEon.

CNK binaries +NK FHoCH=mI =HA IJ=JE?=llO lEnkA@, MEJD JDA ?omFonAnJI on M>OJA >oKn@=HEAI. 6DA loMAIJ =@@HAII KIA@ EI $ M>OJAI. 6DA JANJ IACmAnJ EI BEHIJ, BolloMA@ >O JDA @=J= IAC­ mAnJ. 5J=?k EI =J JDA JoF oB JDA KIAH =@@HAII IF=?A. 0A=F IJ=HJI on JDA BEHIJ M>OJA >oKn@=HO =BJAH @=J=, =n@ ANJAn@I =I nAA@A@. 0A=F mKIJ IJoF =J JDA loMAIJ M>OJA >oKn@=HO>AloM JDA IJ=?k,>KJ JDEIGK=nJEJOEI@On=mE?. 6DA FHoCH=m EI lEnkA@ MEJD IJ=n@=H@ lE>H=HEAI IK?D =I /N7 lE>?; =I MAll =I oFJEon=l lE>H=HEAI IK?D =I M21 =n@ JDA 1*M ,AAF +omFKJEnC MAII=CA .=?ElEJO ,+M.. 6DA IOIJAm ?=ll EnJAHB=?A ?onIEIJI oB JDA IJ=n@=H@ LEnKN IOIJAm ?=ll IAJ =n@ = IAJ oB +NK-IFA?EBE? IOIJAm?=llIIJ=HJEnC=J  ". On JDA 2oMAH2+ IOIJAm ?=llI =HA ANA?KJA@ LE= JDA sc EnIJHK?JEon. 5OIJAm ?=ll F=H=mAJAHI =HA EnHACEIJAHIH!-H&;HAJKHnL=lKA EIEnH!. 2HoCH=mI on JDA +NK =HA IJ=HJA@ >O JDA +NK EJIAlB. 6DA FHoCH=m JANJ =n@ @=J= =HA HA=@ EnJo mAmoHO =n@ JDA FHoCH=m IJ=HJA@ =J EJI AnJHO FoEnJ @AJAHmEnA@ BHom JDA FHoCH=m BElA. 6DAHA EI no noJEon oB IM=F: =nO F=CA B=KlJI ?=n >A @A=lJ MEJD AnJEHAlO >O MD=J EI En mAmoHO,oH>O=llo?=JEnCnAM =nonOmoKImAmoHOF=CAI. 6DA mm=F IOIJAm ?=ll EI KIA@ Jo =llo?=JA =nonOmoKI mAmoHO BoH JDA =llo?=JoH. 6DA IJ=n@=H@ /N7 m=llo? EI KIA@; ?=HA mKIJ >A J=kAn Jo AnIKHA JD=J JDA m=llo? @oAI noJ JHO Jo CELA mAmoHO >=?k LE= mKnm=F; JDEI >AD=LEoH En m=llo? EI @AIECnA@ Jo oFJEmEzA mAm­ oHO BooJFHEnJ En = JEmA-ID=HA@ no@A, =n@ EI JoJ=llO KnnA?AII=HO on = *lKA /AnA IOIJAm En MDE?D+27I=HA IEnClA-KIAH,IEnClA-FHo?AIIIOIJAmI. 6DHA=@I on JDA +NK =HA ?HA=JA@ >O = lEmEJA@-BKn?JEon LAHIEon oB JDA LEnKN ?lonA IOIJAm ?=ll. 6DA JDHA=@I ID=HA =ll mAmoHO MEJD JDA F=HAnJ FHo?AII, En?lK@EnC JDA F=HAnJ IJ=?k; DAn?A, F=HJ oB JDHA=@ ?HA=JEon EI JDA @ABEnEJEon oB JDA JDHA=@ IJ=?k. 1J EI FoIIE>lA Jo ?HA­ =JA = kAHnAl JDHA=@ >O IAJJEnC = IFA?E=l-FKHFoIA HACEIJAH 524/ Jo = IFA?E=l L=lKA, IEn?A JDA IJ=n@=H@ LEnKN ?lonA EnJAHB=?A @oAI noJ D=LA AnoKCD EnBoHm=JEon Jo En@E?=JA = kAHnAl JDHA=@EI@AIEHA@. +NK =HCKmAnJ F=IIEnC EI =I on LEnKN: =n =HC ?oKnJ =n@ =n =HH=O oB nKll- JAHmEn=JA@ IJHEnCI E.A.: =HC?, =HCL =HA F=IIA@ EnJoJDA FHoCH=mIAnJHOFoEnJ.6DA +NK IAJIKFAnLE­ HonmAnJ L=HE=>lAI En JDA KIK=l B=IDEon: nKll-JAHmEn=JA@ n=mA-L=lKA F=EHI IJ=HJEnC =J =HCL[- ]. ­!­

Using CNKemu 6o KIA +NKAmK, onA mKIJ D=LA = FHo?AII Jo IAJ JDA IOIJAm KF. 1n m=nO M=OI, JDEI IAJKF FHo?AII EIIEmEl=HJoMD=J EIEnLEnKN-M7:F=HIEnCoB =n-L.>En=HO,IAJJEnCKF?HEJE­ ?=l AnLEHonmAnJ L=HE=>lAI,=n@JDAnHKnnEnCJDA FHo?AII.9A ?=ll JDEIFHoCH=m machcnk. M=?D?nk J=kAI = ?omm=n@ n=mA =n@ oFJEonI. OFJEonI Jo m=?D?nk An=>lA kAHnAl FHEnJ­ EnC oB IOIJAm ?=ll =HCKmAnJI =n@ KHAC L=lKAI, >ABoHA =n@ =BJAH JDA IOIJAm ?=ll oH >oJD; =n@ FAH-IOIJAm ?=ll EnBoHm=JEon. M=?D?nk oFAnI =n@ L=lE@=JAI JDA -L. >En=HO KIEnC lE>­ m=?D; IAJI KF IALAH=l mAmoHO IACmAnJI BoH JDA FHoCH=m, =J LEHJK=l =@@HAIIAI m=J?DEnC JDA -L.IACmAnJI;HA=@IJDA JANJ =n@@=J= En,=n@jKmFIJoJDA AnJHOFoEnJ. )J JD=J FoEnJ, onA D=I = >En=HO HKnnEnC on 2l=n ', =FF=HAnJlO Jo JDA >En=HO En = BKll +NK AnLEHonmAnJ. 6DAHA =HA m=nO EnJAHAIJEnC FoIIE>ElEJAI, DoMALAH. 5En?A JDA >=IE? BElA IOI­ JAm ?=llI =HA E@AnJE?=l En A=?D AnLEHonmAnJ, =n@ En B=?J HKn JDHoKCD JDA I=mA ?o@A En JDA 2l=n ' kAHnAl, FHoCH=mI ?=n JAIJ MDE?D AnLEHonmAnJ JDAO =HA En >O ANEIJAn?A JAIJI on BElAI. 0An?A, JDA I=mA FHoCH=m ?=n HKn on 2l=n ' =n@ +NK, =n@ KIA =ll JDA 2l=n ' ?=F=>ElEJEAI JD=J ANEIJ -- IEn?A, on 2l=n ', onA ?=n @o jKIJ =>oKJ ALAHOJDEnC MEJD BElA 1/O. 9A =lHA=@O KIA JDEI ?=F=>ElEJO En = lEmEJA@ M=O -- En onA FHoCH=m, MA JAIJ BoH /@AL/>EnJEmA =n@ KIA JD=J EnIJA=@ oB JDA IOIJAm ?=llI BoH JEmEnC JD=J +NK m=kAI =L=El­ =>lA. MoHA EnJAHAIJEnClO, MA ?=n IMEJ?D >=?k =n@ BoHJD >AJMAAn +NK =n@ 2l=n ' n=JELA mo@AI. 6DA mo@A JD=J = FHoCH=m KIAI +NKAmK oH 2l=n ' n=JELA EI ?DoIAn >O MHEJEnC ߣ ߣ oH ߣߣ Jo #P/cnk. ) FHoCH=m ?=n HKn En 2l=n ' mo@A, IAJJEnC KF JDA n=mAIF=?A; JDAn IDEBJ CA=HI =n@ HKn =I = +NK FHoCH=m BoH = MDElA, JDAn IDEBJ >=?k Jo =lJAH JDA AnLEHonmAnJ IomA moHA. /oEnC IJEll BKHJDAH, MA ?=n MHEJA FHoCH=mI JD=J HKn =I 2l=n ' n=JELA MDElA KIEnC JDA LEnKN->=IA@ Jool?D=En. 9A ?=n JDKI KIA =@L=n?A@ ?omFElAHI =n@ >KEl@ JoolI @ALAloFA@ BoH JDA *lKA /AnA Jo ?HA=JA DECDlO oFJEmEzA@ FHoCH=mI BoH 2l=n ', =n@ Jo ?omF=HA JDA HAl=JELA ABBE?EAn?OoB JDA 2l=n~'=n@???omFElAHI. 6DEI BlANE>ElEJO =lloMI KI Jo LAHO @EHA?JlO ?omF=HA JDA HAl=JELA FAHBoHm=n?A oB JDA +NK, LEnKN,=n@2l=n'oFAH=JEnCIOIJAmIon*lKA /AnA.1nA=?D?=IA,JDA >En=HOEIJDA I=mA.

Implementation +NK AmKl=JEon EI EmFlAmAnJA@ =I = IAJ oB ?D=nCAI Jo JDA 'k 2l=n ' kAHnAl =n@ = FHo­ CH=m Jo IJ=HJ KF =n@ HKn FHoCH=mI. 6DA kAHnAl ?D=nCAI =lloM = FHo?AII Jo >A m=HkA@ =I >AEnC En +NK AmKl=JEon; =n@ En?lK@A JDA ?o@A nA?AII=HO Jo AEJDAH @EHA?JlO IKFFoHJ = +NK IOIJAm?=ll oHm=F= +NK IOIJAm?=ll JoEJI2l=n'AGKEL=lAnJ. )ImAnJEonA@=>oLA,FHo?AIIAID=LA Jo>A m=HkA@En IomA M=O. 6DA ?ommon mAJDo@ EI Jo EnJHo@K?A = nAM L=HE=>lA EnJo JDA 2Ho? IJHK?J, =n@ +NK IKFFoHJ BolloMI JDEI mo@Al. 1n 2l=n ', JDA FHo? IJHK?J EI @ABEnA@ En JDA FoHJ/FoHJ@=J.D, E.A. EJ D=I =n =H?DEJA?JKHA- En@AFAn@AnJ @ABEnEJEon. *A?=KIA +NK IKFFoHJ EI LAHO mK?D =H?DEJA?JKHA-@AFAn@AnJ, JDA Bl=C mKIJ >A EnJHo@K?A@ EnJo JDA =H?DEJA?JKHA-@AFAn@AnJ F=HJ oB JDA IJHK?J. 6DAHA =HA noJ m=nOoFJEonI,=IonA ?=nIAA EnJDA 2Ho?IJHK?JKHA: ­"­

/* * m=?DEnA IFA?EBE?BFK,mmK=n@noJEBO */ 2.27; 2MM7; 2NO61.;;

1J mECDJ >A KIABKl =J IomA FoEnJ Jo EnJHo@K?A = CAnAH=l-FKHFoIA m=?DEnA IFA?EBE? IJHK?J ?=llA@ )4+0, BoH JDEI JOFA oB JDEnC. +NK IKFFoHJ @oAInߣJ HA=llO BEJ EnJo =nO oB JDA .27, MM7,oHNO61.;IJHK?JI.NALAHJDAlIIMA DE@A EJ EnJDA 2MM7 IJHK?J BoH>CF. ,AL=H?D.? EI ANJAn@A@ MEJD = nAM BElA, ?nk, MDE?D =lloMI KF->?nk Jo >A IAJ =n@ ?lA=HA@ >OMHEJEnC= ߣ ߣ oHߣߣ Jo #P/cnk. 6DA onlO LEIE>lA ABBA?J JD=J IAJJEnC ?nk D=I EI JD=J En JDA JH=F ?o@A, JDA kAHnAl KIAI up−>cnk Jo@AJAHmEnA MDAJDAHJo?=ll JDA HACKl=HIOIJAm?=ll oH?nkIOI?=ll,LEz.: LoE@ JH=F7HAC*KH { K! EnJ @A=H,AIH; ?D=H>KB[-44M):]; EnJ A?o@A,KIAH;

KH->?=KIA =N..-; A?o@A =KH->?=KIA;

. . . IMEJ?DA?o@A{

?=IA 1N6_5;5+)LL: EBKIAH F=nE?IOI?=ll EnkAHnAl:IHH "."lK:F?F, KH->IHH ,KH->F?; EBKF->?nk ?nkIOI?=llKH; AlIA IOI?=llKH; HAJKHn; /* IOI?=ll?=llInoJEBOEJIAlB */

CNK system calls 6DA +NK IKFFoHJ ?o@A EIm=EnJ=EnA@En= nAM @EHA?JoHOEnJDA 'k JHAA ?=llA@ cnk. )n =HH=O oB IJHK?JI EI EnEJE=lEzA@ =J ?omFElA JEmA MEJD FoEnJAHI Jo BKn?JEonI oH, EB JDA ?=ll EI noJ IKFFoHJA@, FoEnJAHI Jo nEl. 9A AN?AHFJ = FoHJEon oB JDEI BElA >AloM Jo IDoM >oJD DoM EJ MoHkI =n@ =lIo JDA M=O JD=J IomA ?nk BKn?JEonI =HA @EHA?JlO m=FFA@ Jo 2l=n ' BKn?JEonI. ­#­

IJHK?J IOI?=ll { ?D=H* n; 5OI?=ll*B; EnJ n=HC; )H H; };

IJHK?J IOI?=ll ?nkIOIJ=>[]={ ["] {MHEJA,IOI_MHEJA,!,{.E =- }}, [#] {?nkoFAn,IOIoFAn, ,{.E =- }}, [ "] {CAJKE@,?nkCAJAKE@,,{.E =- }}, [ &] {FMHEJA$",IOIFMHEJA,#,{.E =- }},

6DA IJHK?J EJIAlB D=I JDA n=mA oB JDA IOIJAm ?=ll BoH @A>KC FHEnJI, = BKn?JEon FoEnJAH, F=H=mAJAH ?oKnJ, =n@ @AB=KlJ HAJKHn L=lKA. 1J EI =lmoIJ E@AnJE?=l Jo JDA IJ=n@=H@ IOI?=ll IJHK?J. )I ?=n >A IAAn, JDA JMo +NK MHEJA IOIJAm ?=llI =HA @EHA?JlO ?onnA?JA@ Jo JDAEH 2l=n ' AGKEL=lAnJI: JDA HAIKlJ EI JD=J 1O En JDA +NK AmKl=JoH D=I LAHO lEJJlA oLAHDA=@, =n@ ?AH­ J=EnlOB=HlAIIoLAHDA=@JD=nJDA noJA->=IA@mA?D=nEImKIA@BoHLEnKN-M7. NoJ =ll +NK IOIJAm ?=llI D=LA = 2l=n ' AGKEL=lAnJ: CAJAKE@ >AEnC onA AN=mFlA. 1n JDEI ?=IA MA FHoLE@A =nAmKl=JEon,=IIDoMn>AloM: LoE@ ?nkCAJAKE@)H*=H,L=_lEIJ { =H->E =; }

6DA FAHIon HKnnEnC on JDA m=?DEnA EI =lM=OI JDA oMnAH; JDA onlO HA=Ion=>lA AGKEL=lAnJ EIKE@. Mm=F EI = mK?D moHA ?omFlAN ?=IA; MA onlO nAA@ Jo IKFFoHJ JDA =nonOmoKI mAmoHO m=FFEnCBKn?JEonBoHnoM.9A MEll M=lk JDHoKCDEJ IJAF>OIJAF. LoE@?nkmm=F)H*=H,L=_lEIJ lEIJ { LoE@*L; EnJ lAnCJD,FHoJ,Bl=CI,B@; KlonCoBBIAJ;

L=L=_=HClEIJ,LoE@*; lAnCJD=L=_=HClEIJ,EnJ; FHoJ =L=_=HClEIJ,EnJ; Bl=CI=L=_=HClEIJ,EnJ; B@=L=_=HClEIJ,EnJ; oBBIAJ =L=_=HClEIJ,KlonC;

6DEI EnEJE=l ?o@A jKIJ IAJI KF JDA =HCKmAnJI. NANJ MA @AJAHmEnA EB JDA =llo?=JEon ?=n >A =??omo@=JA@: ­$­

EB B@==- { 5ACmAnJ *DA=FIAC=KF->DA=FIAC; KnIECnA@?D=H*nAML,*ol@L; KEnJFJH=HC; =HC=2/4O7N,DA=FIAC->JoF; 9A onlO =llo?=JA =nonOmoKI mAmoHO =J FHAIAnJ, DAn?A JDA if. LEnKN FHoCH=mI m=Hk =nonOmoKI mAmoHO mm=F ?=llI >O KIEnC =n B@ oB - . 6DA ?o@A IJ=HJI JDA =llo?=JEon =J JDA nANJ F=CA =>oLA JDA JoFoB JDA DA=FIACmAnJ. ?nkI>Hk=H,=HC,;

6DA ?nkI>Hk EI = nAM BKn?JEon JD=J @oAI almost AN=?JlO MD=J I>Hk @oAI, MEJD onA @EBBAH­ An?A: EJ ?=llI B=KlJ Jo FHA-AmFJELAlO =llo?=JA =ll JDA F=CAI En JDA =llo?=JA@ =HA=. 6DEI =?JEon =LoE@I BKHJDAH F=CA B=KlJI MDE?D =HA LAHO ANFAnIELA on JDA 22+ =n@ =lIo =LoE@I =nO ?D=n?A oB oLAH?omEJJEnC mAmoHO, MDE?D EI = >=@ E@A= on = m=?DEnA MEJD no IM=F. 1n BKJKHA, MDAn MA D=LA l=HCA 6L* IKFFoHJ BEn=lEzA@ En JDA kAHnAl, MA MEll BKHJDAH mo@EBO JDEI BKn?JEon Io JD=J, EB JDA =llo?=JEon KnEJ EI = mKlJEFlA oB M>OJA, EJ MEll >A =llo?=JA@ MEJD M>OJA =lECDmAnJ,IoMA ?=n>=?k EJ MEJD M>OJA 6L*I. 6o An=>lA =n@ @EI=>lA zAHo-BEllEnC on F=CA B=KlJI, MA D=LA ANJAn@A@ JDA IJ=n@=H@ 2l=n ' IACmAnJ IJHK?JKHA MEJD = nAM =JJHE>KJA, nozfod. NozBo@ =lloMI BoH ALAnJK=l IKFFoHJ oB mKnm=F. On moIJ oFAH=JEnC IOIJAmI mKnm=F EI IKFFoHJA@ >O IFlEJJEnC JDA IACmAnJ EnJo JMo, MEJD = DolA En >AJMAAn JDAm AGKEL=lAnJ Jo JDA Knm=FFA@ =HA=. 2l=n~' onlO IKFFoHJI = LAHO lEmEJA@ nKm>AH oB IACmAnJI. 9D=J MA ?=n @o EnIJA=@ EI HAmoLA JDA F=CA m=FFEnCBHomJDA DA=FIACmAnJ. 5En?A JDA IACmAnJ EI 6DA ?nk IOIJAm ?=ll ?o@A Jo ?=ll JDA BKn?JEonI EI GKEJA IEmEl=H Jo JDA IJ=n@=H@ 22+ IOI­ JAm ?=ll ?o@A I=LA BoH JDA B=?J JD=J C?? FKJI =ll IOIJAm ?=ll F=H=mAJAHI En HACEIJAHI. 6o =??omo@=JA G? ?=llEnC ?onLAnJEonI MA FKJ JDoIA =HCKmAnJI EnJo =n =HH=O =n@ JDAn ?=ll JDA BKn?JEon.6DA ?o@A,>oElA@JoEJIAIIAn?A: lEnKN=HCI[]=KHAC->H!; lEnKN=HCI[ ]=KHAC->H"; lEnKN=HCI[ ]=KHAC->H#; lEnKN=HCI[!]=KHAC->H$; lEnKN=HCI["]=KHAC->H%; lEnKN=HCI[#]=KHAC->H&; ?nkIOIJ=>[I?=llnH].B=H,L=_lEIJlEnKN=HCI;

User mode code 6DA FHoCH=m Jo IAJ KF =n@ HKn +NK >En=HEAI EI ?=llA@ m=?D?nk. 1J KIAI lE>m=?D DAn?A JDA n=mA Jo HA=@ JDA >En=HEAI En, IAJ ?o@A, @=J=, AnLEHonmAnJ,=HCKmAnJI,=n@IJ=?k KF, =n@ jKmF Jo JDA AnJHO FoEnJ oB JDA >En=HEAI. 4=JDAH JD=n IJ=HJ JDA >En=HO =I = IAFAH=JA FHoCH=m, EJ HA=@I JDA >En=HO En Jo Jo mAmoHO =n@ IAJI KF HAGKEHA@ mAmoHO IACmAnJI. 6DA >En=HOEIDAn?A AnJAHA@LE= = BKn?JEon?=ll,noJ exec. 9A MEll @AI?HE>A IomA oB JDA moHA EmFoHJ=nJ F=HJIoB JDEI?o@A. 6DA BEHIJ IJAF EI Jo HA=@ JDA BElA En =n@ ?H=?k JDA DA=@AH MEJD lE>m=?D. 6DEI EnBoHm=JEon @AJAHmEnAI JDA =@@HAII IF=?A =n@ IEzA; ?o@A, @=J=, =n@ DA=F IACmAnJI =HA =JJ=?DA@ MEJD JDA ?oHHA?J IEzAI =n@ FAHmEIIEonI. 6DA JoF oB DA=F EI JDA IJ=?k =n@ EJ mKIJ oB ?oKHIA >A EnEJE=lEzA@.9A D=LA = mo@EBEA@LAHIEonoB lE>m=?D=IMA nAA@= >EJ moHA EnBoH­ m=JEonJD=nEIFHoLE@A@>OJDA IJ=n@=H@lE>H=HO. ­%­

6DA FHoCH=m IJ=?k EI EnEJE=lEzA@ MEJD JDA =HCKmAnJ ?oKnJ, =HCKmAnJ LA?JoH, AnLEHon­ mAnJ, =n@ =KN LA?JoH, MEJD =HCKmAnJ LA?JoH =J JDA >oJJom oB IJ=?k loMAH =@@HAII. 9A ANFl=EnJDA =KNLA?JoH>AloM. 1J EI noJ FoIIE>lA Jo BKn?JEon MEJD =n AmFJO AnLEHonmAnJ. 1n B=?J onA oB JDA moIJ ?D=l­ lAnCEnC F=HJI oB JDEI ?o@A M=I BECKHEnC oKJ JDA mEnEmKm IAJ oB AnLEHonmAnJ L=HE=>lAI. /AJJEnC =ll JDA EnJAHn=JEon=lEz=JEon ?o@A Jo MoHk ?oHHA?JlO M=I @EBBE?KlJ IEmFlO >A?=KIA JDA /N7 ?o@A EI noJ =n ANAmFl=H oB ?o@EnC IJOlA. 2Ho>lAmI MEJD JDEI ?o@A ?=mA KF JDA BEHIJ JEmA JDA /N7 HKnJEmA JHEA@ Jo FHEnJ = IJ=HJKF mAII=CA, =n@ JDA ?o@A JHEA@ Jo BECKHA oKJ Jo FHEnJ MD=J En IomA F=HJI oB JDA MoHl@ EI = . =n@ En oJDAH F=HJI EI = ,. 1n moIJ ?=IAI,JDA /N7 EnJAHn=JEon=lEz=JEon ?o@A MoKl@ ANFlo@A >A?=KIA noJ =ll JDA IKFFoHJ BElAI MAHA JDAHA -- JDAHA =HA FoJAnJE=llO DKn@HA@I oB JDAm. 5En?A =ll JDA /N7 EnJAHn=JEon=lEz=­ JEon lE>H=HEAI =HA n=mA@ En JDA >En=HO, >KJ JDA BElAI JDAmIAlLAI noJ IAJ KF on JDA no@A, EJ EI ?HEJE?=l Jo ?onLEn?A JDA /N7 lE>H=HO Jo noJ ALAn >oJDAH lookEnC BoH JDAm. MDE?D EI @onA >OIAJJEnCL)N/Jo+. )noJDAH FHo>lAm EI /N7 m=llo?. 1J MEll, BoH l=HCAH =llo?=JEonI, KIA mm=F Jo =llo?=JA JDA @=J= =HA=. +onLAHIAlO, EJ KIAI mKnm=F Jo BHAA JDA @=J= -- JDEI EI = JEmA-ID=HEnC @A?E­ IEon =EmA@ =J m=kEnC mAmoHO =L=E=>lA Jo oJDAH FHoCH=mI. 5K?D ?ooFAH=JELA >AD=LEoKH EI D=H@lO nA?AII=HO on IEnClA-KIAH IKFAH?omFKJAH no@AI, DoMALAH. .HAGKAnJ ?=llI Jo mm=F/mKnm=F BoH =llo?=JEon EmF=?J =llo?=JoH FAHBoHm=n?A. 9oHIA, JDA 2l=n ' LEHJK=l mAmoHO ?o@A EI noJ ?=F=>lA oB IKFFoHJEnC =n mKnm=F oFAH=JEon, MDE?D HAGKEHAI En JDA MoHIJ ?=IA JD=J = IACmAnJ >A IFlEJ En JMo. )I EJ D=FFAnI onA ?=n @EI=>lA JDA /N7 m=llo? >AD=LEoH>OIAJJEnCJDA AnLEHonmAnJ L=HE=>lA M)LLO+_M)2_M):Jo. 6DA =KN LA?JoH EI = IAJ oB L=HE=>lAI m=EnJ=EnA@ on JDA IJ=?k jKIJ =BJAH JDA l=IJ =HCL AnJHO. 6DA =KN LA?JoH EI IEmEl=H En n=JKHA Jo 2l=n 'ߣI JoF oB IJ=?k IJHK?J, AN?AFJ JD=J EJ EI noJ = IJHK?J, >KJ H=JDAH = IAJ oB kAO-L=lKA F=EHI, MEJD JDA kAO >AEnC = >En=HO nKm>AH =n@ JDA L=lKA >AEnC = >En=HO nKm>AH. 1n = IAnIA, EJ EI = >En=HO BoHm oB JDA AnLEHonmAnJ L=HE­ =>lAI. 9EJDoKJ IomA =KN IAJJEnCI FHoCH=mI ?=n noJ HKn =J =ll; m=?D?nk IAJI JDA mEnE­ mKm. .En=llO, machcnk IAJI JDA ANA?KJEon mo@A Jo ?nk AmKl=JEon >O MHEJEnC Jo ߣ ߣ Jo #P/cnk =n@ ?=llI JDA AnJHO FoEnJ Jo JDA >En=HO =I EJ MoKl@ =nO oJDAH BKn?JEon. 0AHA EI MDAHA JDA +NK -L. l=OoKJ DAlFA@ = Coo@ @A=l. +NK ?o@A IJ=HJI =J $ M* >En=HO; JDA 2l=n ' IKFFoHJ ?o@A =n@ JDA +NK >En=HO ?=n A=IElO ?oANEIJ. 1n B=?J, EB JDA +NK m=En HAJKHnI, JDA m=?D?nk FHoCH=m?=n@oFoIJ-FHo?AIIEnCEB EJ EIALAHnAA@A@.

Results 9A =HA noM =>lA Jo ?omFElA = nKm>AH oB FHoCH=mI on LEnKN =n@ HKn JDAm on 2l=n ' oH JDA +NK MEJD no ?D=nCA, =n@ no FAHBoHm=n?A FAn=lJO. 6DA FHoCH=mI ?=n KnknoMEnClO ANFloEJ 2l=n ' ?=F=>ElEJEAI, IEn?A MH=FFAH I?HEFJI ?=n IAJ KF n=mA IF=?AI =n@ ?=?DEnC BElA IOIJAmIIK?D=IBI?BI.2AHBoHm=n?A ?omF=HEIonI=HA noM A=IOJom=kA.

Conclusions 9A D=LA ANJAn@A@ 2l=n ' Jo JH=nIF=HAnJlO IKFFoHJ >En=HEAI ?onBoHmEnC Jo JDA LEnKN . IOIJAm ?=ll EnJAHB=?A. 2HoCH=mmAHI ?=n BlEF mo@AI LAHO A=IElO, >O MHEJEnC Jo #P/cnk, IEn?A JDA JDA I=mA HA=@ =n@ MHEJA IOIJAm ?=llI =HA ?=llA@ En AEJDAH mo@A. 2HoCH=mmAHI ?=n ALAn MHEJA ߣn=JELAߣ 2l=n ' FHoCH=mI, >KEl@ JDAm MEJD JDA =@L=n?A@ LEnKN Jool ?D=En, =n@ HKn JDAm on 2l=n '. 9A D=LA JDKI m=@A = BKll IKEJA oB oFJEmEzEnC ?omFElAHI =L=El­ =>lA JoKIAHIoB 2l=n'on*//2. Easy tracing for Plan 9

Ron Minnich [email protected]

ABSTRACT

6H=?EnCIOIJAm?=llIm=kAI @A>KCCEnC A=IO =n@ B=IJ. On 2l=n ', JH=@EJEon­ =llO, IOIJAm ?=ll JH=?EnC D=I>AAnEmFlAmAnJA@MEJD acid . NAM IOIJAmI @o noJ =lM=OI EmFlAmAnJ =ll JDA ?=F=>ElEJEAI nAA@A@ BoH )?E@, F=HJE?Kl=HlO JDA =>ElEJO Jo HAMHEJA JDA FHo?AII ?o@A IF=?A Jo EnIAHJ >HA=kFoEnJI. )H?DE­ JA?JKHA IKFFoHJ lE>H=HEAI =HA noJ =lM=OI =L=El=>lA BoH )?E@, oH m=O noJ MoHk ALAn on = IKFFoHJA@ =H?DEJA?JKHA. 6DA HAGKEHAmAnJ JD=J )?E@ߣI lE>H=HEAI >A =L=El=>lA ?=n >A = FHo>lAm on IOIJAmI MEJD = LAHO Im=ll mAmoHO BooJFHEnJ, IK?D =I 0ECD 2AHBoHm=n?A +omFKJEnC IOIJAmI MDAHA ALAHO K>OJA ?oKnJI. .En=llO, )?E@ JH=?EnC EI En?onLAnEAnJ En JDA FHAIAn?A oB BoHkI, MDE?D mA=nI JH=?EnC IDAll FEFAlEnAI EI F=HJE?Kl=HlO JHoK>lAIomA. 6DA IJH=?A FHoCH=m =L=El=>lA on moIJ 7nEN IOIJAmI EI B=H moHA ?onLA­ nEAnJ Jo KIA =n@ moHA ?=F=>lA JD=n )?E@ BoH IOIJAm ?=ll JH=?EnC. ) IEmEl=H IOIJAm on 2l=n ' ?=n IEmFlEBO JHoK>lAIDooJEnC. 9A D=LA >KElJ = IOIJAm ?=llEnC JH=?EnC ?=F=>ElEJO EnJo JDA 2l=n ' kAHnAl. 1J D=I FHoLAn Jo >A moHA ?onLAnEAnJ JD=nIJH=?A EnFHoCH=mmEnCABBoHJ.OnA ?=nMHEJA = IDAll I?HEFJ Jo EmFlAmAnJ JH=?EnC, =n@ JDA + ?o@A Jo EmFlAmAnJ =n IJH=?A AGKEL=lAnJ EIIALAH=l oH@AHIoB m=CnEJK@A Im=llAH.

Introduction 5OIJAm ?=ll JH=?EnC EI =n EmFoHJ=nJ =n@ ABBA?JELA M=O Jo @A>KC FHoCH=mI. 9EJD = IOIJAm ?=ll JH=?AH, onA ?=n BEn@ MHEJAI Jo >=@ BElA @AI?HEFJoHI =I En oFAnIID on 2l=n';JH=?A JDA =KJD JH=nI=?JEonI =n@ IAA =ll JDA AHHoH ?=IAI; =n@ ALAn BEn@ =n AHHoH En mAmoHO EnEJE=l­ Ez=JEon. 1J EI F=HJE?Kl=HlO ?onLAnEAnJ Jo BolloM BoHkI, IK?D =I IDAll FEFAlEnAI, =n@ IAA AHHoHI En JDA EnJAH=?JEonI >AJMAAn FHoCH=mI En JDA FEFAlEnA. 2HoCH=mI JD=J B=El IElAnJlO =n@ mOIJAHEoKIlO ?=n oBJAn >A Kn@AHIJoo@ on?A JH=?A@ MEJD = IOIJAm ?=ll JH=?AH. *=IE? FHoCH=mmEnCAHHoHI?=n>A BoKn@=n@HAIolLA@. 2Ho>=>lO JDA moIJ ME@AlO KIA@ JH=?AH EI strace, MDE?D KIAI JDA ptrace IOIJAm ?=ll. 2JH=?A EI GKEJA loM lALAl, FHoLE@EnC lEJJlA moHA JD=n = IJ=HJ/IJoF =n@ FAAk/FokA EnJAHB=?A. OnA MoH@ oB @=J= EI HAJKHnA@ =J = JEmA. 6DKI, on?A = FHo?AII IJoFI, FHoCH=mI KIEnC FJH=?A mKIJ J=kA on JDA J=Ik oB AN=mEnEnC = CHA=J @A=l oB m=?DEnA IJ=JA Jo BECKHA oKJ MDAHA JDA FHoCH=m EI ANA?KJEnC. .oH = IEmFlA ?omm=n@ IK?D =I />En/@=JA, MDE?D FAHBoHmI "$IOIJAm?=llIonLEnKN,IJH=?A mKIJ FAHBoHmoLAH "FJH=?A IOIJAm?=llI.

______5=n@E= EI = mKlJEFHoCH=m l=>oH=JoHO oFAH=JA@ >O 5=n@E= +oHFoH=JEon, = Lo?kDAA@ M=HJEn +omF=nO, BoH JDA 7nEJA@ 5J=JAI ,AF=HJmAnJ oB -nAHCOߣI N=JEon=l NK?lA=H 5A?KHEJO )@mEn­ EIJH=JEon Kn@AH ?onJH=?J ,-­)+"­'")L&#. 5)N,-  -$ '+ ­'­

6DEI IEmFlE?EJO EI JDA ?=KIA oB =noJDAH FHo>lAm: FJH=?A mKIJ EnJAHFHAJ JDA >En=HO, =n@ EJ ?=n CAJ LAHO ?omFlE?=JA@. 6DA nAA@ BoH EnJAHFHAJ=JEon m=O =lIo ANFl=En MDO IJH=?A EI Io l=HCA.5lo??oKnJ HAFoHJIEJ =IBolloMI: 6oJ=l 2DOIE?=l 5oKH?A LEnAIoB +o@A 5LO+ =#&,"" ,ALAloFmAnJ -BBoHJ -IJEm=JA,2AHIon-;A=HI2AHIon-MonJDI= ".  %.$% *=IE?+O+OMO mo@Al,2AHIon-MonJDI= ."* K5LO+** .# 5?DA@KlA -IJEm=JA,;A=HIMonJDI = ."% %.$! *=IE?+O+OMO mo@Al,MonJDI= .#* FAHIon-monJDI**.!& -IJEm=JA@)LAH=CA NKm>AHoB ,ALAloFAHI-BBoHJ/5?DA@KlA ='.$& 6oJ=l -IJEm=JA@+oIJ Jo,ALAloF = ,' , $!

)n ANFAnIELA FHoCH=m )I BHAGKAnJlO D=FFAnI, JDA FHo>lAm MEJD JDA 7nEN MoHl@ EI JD=J JDA EnJAHB=?A EI MHonC. 6DA "-OA=H-ol@ FJH=?A IOIJAm ?=ll HAGKEHAI = ?omFlE?=JA@ EnLo­ ?=JEon =n@ CELAI >=?k =lmoIJ no @=J=. 6o ?HA=JA KIABKl @=J=, IoBJM=HA mKIJ @o = CHA=J @A=l oB EnJAHFHAJ=JEon, m=J?DEnC @=J= En JDA FHo?AII =@@HAII IF=?A MEJD JDA HAJKHn BHom JDA FJH=?A IOIJAm?=ll.1J EI= LAHO?omFlANFHo?AII. 6DA ?onJH=IJ BoH JDA ratrace Jool, MDE?D KIAI JDA nAM 2l=n ' IOIJAm ?=ll JH=?EnC IKF­ FoHJ, EI HALA=lEnC. 4=JH=?A KIAI JMo IOIJAm ?=llI BoH A=?D IOIJAm ?=ll En JDA JH=?A@ FHo­ CH=m,noJ #.4=JH=?A EI=lIomK?DIm=llAH: 6oJ=l 2DOIE?=l 5oKH?A LEnAIoB +o@A 5LO+ = # ,ALAloFmAnJ -BBoHJ -IJEm=JA,2AHIon-;A=HI2AHIon-MonJDI=.!.!! *=IE?+O+OMO mo@Al,2AHIon-MonJDI= ."* K5LO+** .# 5?DA@KlA -IJEm=JA,;A=HIMonJDI =. " .$" *=IE?+O+OMO mo@Al,MonJDI= .#* FAHIon-monJDI**.!& -IJEm=JA@)LAH=CA NKm>AHoB ,ALAloFAHI-BBoHJ/5?DA@KlA =.  6oJ=l -IJEm=JA@+oIJ Jo,ALAloF =!,%

6DA IECnEBE?=n?A oB JDEI HAIKlJ EI noJ Io mK?D En EJI IEzA =I MD=J EJ IDoMI =>oKJ JDA EmFoHJ=nJ oB CAJJEnC JDA kAHnAl EnJAHB=?A HECDJ. 6DA kAHnAl D=I knoMlA@CA oB FHo?AII IJ=JA JD=J, En JDA 7nEN ?=IA, D=I Jo >A ?=HABKllO HA?onIJHK?JA@ BHom JDA lEmEJA@ EnBoHm=­ JEon FHoLE@A@ >O FJH=?A; = CHA=J @A=l oB EnBoHm=JEon EI loIJ =I EJ EI F=IIA@ BHom JDA kAH­ nAl Jo JDA KIAH FHoCH=m. 1n JDA ?=IA oB H=JH=?A, JDA kAHnAl FHoLE@AI mK?D HE?DAH EnBoHm=­ JEon JD=J ?=n >A KIA@ @EHA?JlO =n@ A=IElO, En m=nO @EBBAHAnJ l=nCK=CAI, En?lK@EnC IDAll I?HEFJI. 1n JDA HAIJ oB JDEI F=FAH, MA MEll @AI?HE>A JDA KI=CA =n@ EmFlAmAnJ=JEon oB JDA JH=?EnC IoBJM=HA.

Usage 6DA moIJ ?ommon M=O Jo KIA JDA IOIJAm ?=ll JH=?EnC EI LE= JDA ratrace(1) FHoCH=m. 9A noM IDoM IALAH=l I?An=HEoI En MDE?D H=JH=?A ?=n >A KIA@ Jo Kn@AHIJ=n@ =n@ @A>KC FHoCH=mI. trace /bin/date 4=JH=?A ?=n >A EnLokA@ Jo JH=?A = FHo?AII oH =n En@EL@K=l ?omm=n@. 6o JH=?A = FE@, JDA KIAHJOFAI: ratrace pid ­ ­

*OB=HJDA moIJ ?ommonKI=CA EIJoJH=?A = ?omm=n@,A.C.: ratrace −c /bin/date 5DoMn>AloM EI= JH=?A oB /bin/date.

JAHm H=JH=?A -? />En/@=JA %' @=JA OFAn N '=A % ?//@AL/>EnJEmA   = !  N ?A%? #!$?%$B  N ?A%? #!%!$=%?& %' @=JA 2HA=@ N 'A" ! BBBBB/..|<2|. &  = &  N ?A%? #!?"@== & N ?A%? #!?#&=& %' @=JA OFAn N B#& %%?'//AnL/JEmAzonA  = "  N ?A%? #"&"&@$& N ?A%? #"&&"=% %' @=JA 2HA=@ N '" " BBBB&%"/-56.- &.-,6.- ""....''"! ... #$$""..." !' &...#%% && $& -N = # &  N ?A%? #""$!!A'& N ?A%? #""$$ ?B& %' @=JA +loIA N B?& " =   N ?A%? #"$&! #" N ?A%? #"$&"A ! %' @=JA 2MHEJA N"%@ BBBB@A&/5Kn.)KC. '. :!:"!.-,6.  . ' -N 5Kn )KC ' :!:"! -,6   = '  N ?A%? #"'@BB%B& N ?A%? #"@!#!#=& %' @=JA OFAn N =& %#'?/?/FE@  = "  N ?A%? #"B??>?B N ?A%? #"B?BA> %' @=JA 2HA=@ N '" " BBBBB&/...... %'.  -N =  N ?A%? ##!?$A %& N ?A%? ##!?&B">& %' @=JA +loIA N ==B " =   N ?A%? ##%@>? ? N ?A%? ##%@@'A %' @=JA -NEJI N % % /?MHEJA: /FHo?/%'/IOI?=ll: B=ElA@ >OJAI: FHo?AII ANEJA@ JAHm

.oH A=?D IOIJAm ?=ll, H=JH=?A FHEnJI oKJ JDA FE@, >En=HO n=mA, IOIJAm ?=ll n=mA, FHoCH=m ?oKnJAH, IOIJAm ?=ll =HCI, HAIKlJ, AHHIJH, =n@ AnJHO =n@ ANEJ JEmA. 6DA onlO F=HJ JD=J L=HEAI >AJMAAn @EBBAHAnJ ?=llI =HA JDA nKm>AH oB =HCKmAnJI. ,=J= =HCKmAnJI =HA FHEnJA@ En =n =@@HAII/@=J= BoHm=J. 6DA BoHm=J EI @AJAHmEnA@ >O JDA kAHnAl, noJ JDA H=JH=?A FHo­ CH=m. /oEnCJDHoKCDJDA ANA?KJEon?=ll >O?=ll,onA ?=nIAA JD=J JDA BEHIJ IOIJAm ?=ll EI =n oFAn oB /dev/bintime, mo@A N , MDE?D HAJKHnI B@ !. 6DA AHHIJH EI AmFJO JDA IOIJAm ?=ll IK??AA@A@, =n@ JDA JEmA M=I N ?A%? #!%!$=%?& - N ?A%? #!$?%$B  oH % &'&&n=noIA?on@I. 6DA FHoCH=m nANJ HA=@I JDA JEmAzonA BElA, FHo?AIIAI JDA >EnJEmA =n@ JEmAzonA EnJAH­ n=llO, =n@ MHEJAI JDA oKJFKJ LE= 2MHEJA. .En=llO, JDA FHoCH=m @oAI = CAJFE@ >O oFAnEnC, HA=@EnC,=n@?loIEnCJDA FE@BElA;=n@An@I>O?=llEnC-NEJ. ) FoEnJ oB EnJAHAIJ EI JD=J />En/@=JA on 2l=n ' EI  IOIJAm ?=llI; on LEnKN, EJ EI "$. 6DHAA oB JDAIA ?=llI ?oKl@ >A HAmoLA@ >O AlEmEn=JEnC JDA HA=@ oB JDA FE@ BElA, IEn?A, =I MA MEll IAA >AloM,= FHo?AIIFE@EI=L=El=>lA onJDA IJ=?k. 1n JDA ?=IA oB @=JA, IomAonA ?omEnC En BHom JDA 7nEN MoHl@, JHOEnC Jo Kn@AHIJ=n@ DoM 2l=n ' FHoCH=mI BEn@ JDA JEmA, ?oKl@ lA=Hn MEJDoKJ mK?D ABBoHJ DoM EJ EI @onA. 5OIJAm ?=ll JH=?EnC ?=n IFAA@ JDA FHo?AII oB lA=HnEnC DoM Jo KIA =n KnB=mElE=H oFAH=JEnC IOI­ JAm.

Identifying a problem on Linux .olloMEnC = 2l=n ' IoKH?A ?o@A KF@=JA, EJ M=I BoKn@ JD=J JDA @=JA ?omm=n@ M=I no lonCAH MoHkEnC ?oHHA?JlO. 1nIJA=@ oB FHEnJEnC JDA @=JA, EJ MoKl@ jKIJ IEJ. )J IomA FoEnJ, En @EICKIJ, KIAHI MoKl@ DEJ HAJKHn =n@ >A =M=H@A@ MEJD JDA @=JA. 6DA >AD=LEoH m=@A no IAnIA. 4=JH=?A B=?ElEJ=JA@ = GKE?k @E=CnoIEI =n@ HAIolKJEon oB JDA FHo>lAm. 6DA JH=?A =>oLA EI on O5:, =n@ KIAI = LAHIEon oB 'LN >KElJ BHom http://bitbucket.org/rminnich/vx32. .oH JDA I=mA 'LN kAHnAl ?o@A on LEnKN, MEJD JDA I=mA HooJ BElA IOIJAm, JDA JH=?A M=I LAHO @EBBAHAnJ: ­ ­

%# @=JA 2HA=@ N 'B$  BBBBAA/. &  =  N ?A%A>A!A=>& N ?A%A !$&  %# @=JA +loIA N =!  =   N ?A%A " ?>= N ?A%A " ?&@ %# @=JA OFAn N =&' % ?//@AL/>EnJEmA   =   N ?A%A "??>= N ?A%A "B@%&A& %# @=JA 2HA=@ N 'B$  BBBBAA/..~..... &  = &  N ?A%A #& !& N ?A%A #& @'% %# @=JA OFAn N BB> %%?'//AnL/JEmAzonA  = !  N ?A%A $ == ' N ?A%A $ >> & %# @=JA 2HA=@ N '" ! BBBB&#"/-56.- &.-,6.- ""....''"! ... #$$""..." !' &...#%% && $& -N = # &  N ?A%A $'>@A@& N ?A%A $'?$B$ %# @=JA +loIA N $> ! =   N ?A%A %!>"$& N ?A%A %!  && %# @=JA 2MHEJA N"&%! BBBB@?&/5Kn.)KC. '. !:":"$.-,6.  . ' -N 5Kn )KC ' !:":"$ -,6   = '  N ?A%A %==% N ?A%A %B&>!= %# @=JA OFAn N > " %#'?/?/FE@  = !  N ?A%A &'="=@ N ?A%A &'>&!# %# @=JA 2HA=@ N '" ! BBBBAA&/...... %#.  -N =  N ?A%A &BAB% N ?A%A &BB?!$ %# @=JA +loIA N ># ! =   N ?A%A '$$=B& N ?A%A '$$$?= %# @=JA -NEJI N % % /?MHEJA: /FHo?/%#/IOI?=ll: B=ElA@ >OJAI: FHo?AII ANEJA@ JAHm

6H=?EnC JKHnI = mOIJAHEoKI D=nC EnJo = lAII mOIJAHEoKI FHo>lAm: JDA FHoCH=m EI HA=@EnC & >OJAI BHom IJ@En, D=nCEnC KnJEl JDA HA=@ EI @onA. 1J IAAmI =J IomA FoEnJ JDA KIAH >A?=mA EmF=JEAnJ =n@ DEJ HAJKHn. 6D=J ?=n >A IAAn En JDA HAJKHn oB BHom JDA 2HA=@. 5En?A onA >OJA EI noJ = L=lE@ HAJKHn BHom /@AL/>EnJEmA, />En/@=JA ?loIAI B@  =lmoIJ =lM=OI = >=@ E@A= =n@ JDAn oFAnI /@AL/>EnJEmA, =n@ En JD=J ?=IA HA=@I & >OJAI >=?k. 6DA HA=@BHomB@EI?lA=HlOMHonC;JDA ?=KIA EInoJ =J =ll o>LEoKI. .KHJDAH AN=mEn=JEon IDoMA@ JD=J =nO FHoCH=m MDE?D KIA@ nIA? on JDA LEnKN->=IA@ 'LN MoKl@ D=nC on = HA=@ BHom B@ . ,=JA MoKl@ D=nC, ?FK MoKl@ D=nC, B=?JoJKm MoKl@ D=nC: =ll KIAHI oB nIA? MoKl@ D=nC, KnJEl onA DEJ =n ANJH= HAJKHn. )@@EJEon=llO, =?mA MoKl@noJ ANEJ ?oHHA?JlO.6DAHA M=I= loJ MHonCMEJD?o@A >KElJ BHomIoKH?A. 6DA EnEJE=l JH=?A =lloMA@ LAHO GKE?k E@AnJEBE?=JEon oB = Bo?KI =HA=, IEn?A m=nO FHoCH=mI ?oKl@ >A JH=?A@ Jo BEn@ onAI JD=J MoHkA@ =n@ onAI JD=J B=ElA@. )I EJ D=FFAnA@, JDA EIIKA M=I JD=J JDA $"->EJ >KEl@ oB LN! HAIKlJI En =n En?oHHA?JlO IEzA 6oI IJHK?J. 1n AIIAn?A, MEJD = $"->EJ >KEl@ oB LN! , onA EI HKnnEnC = DAJAHoCAnAoKI IOIJAm, MEJD ! ->EJ >En=­ HEAI DoIJA@ >O = $"->EJ kAHnAl. 1n JDEI ?=IA, JDA L=lKA oB 6oI->FE@ M=I En JDA MHonC Fl=?A on JDA IJ=?k BoH JDA ! ->EJ >En=HEAI =n@ =ll FHoCH=mI KIEnC 6oI->FE@ HA=@ JDA FE@ =I . 6DEI mEIJ=kA lA@ Jo loJI oB oJDAH FHo>lAmI, =I mECDJ >A Em=CA@ MAHA CAJFE@ Jo IJ=HJ HAJKHnEnC. )ll IJHK?JI JD=J =HA ID=HA@ >AJMAAn kAHnAl =n@ KIAH IF=?A mKIJ >A ?=HABKllO @ABEnA@. 1n JDEI ?=IA, JDA kAHnAl EI on = $"->EJ IOIJAm =n@ >KElJ >O C??, MDElA JDA KIAH FHoCH=mI =HA ! ->EJI =n@ >KElJ MEJD &?. 6DAHA =HA BoKH M=OI BoH JDEI ?om>En=JEon Jo HKn EnJo JHoK>lA. 9DElA JDAHA =HA LAHO BAM ID=HA@ IJHK?JI En 2l=n ', JDA 6oI IJHK?J EI = ?HK?E=l onA =n@ EJ nAA@A@ Jo >A HA@ABEnA@ En JDA LN! JHAA Io EJI IEzA =n@ l=OoKJ m=J?DA@ JD=J oB JDA ! - >EJ KIAHmo@A >En=HEAI. openssh hangs 7IAHI oB oFAnIID HAFoHJA@ JD=J En m=nO ?=IAI, EJ MoKl@ D=nC, MEJD no EnEJE=l oKJFKJ. ) JH=?A oB IIDEIIDoMn>AloM. ­ ­

& IID OFAn NB'"%!  !@?"//@AL/?onI  = #  N ?A%@?>$B> B=  N ?A%@?>%=$=A'& & IID 2MHEJA NB>#B  =%%"/6DA.=KJDAnJE?EJO.oB.DoIJ.ߣ@=n?AH.?=.I=n@E=.CoL. "$. "$. "$. ߣ. &$ -N = &$  N ?A%@?>%!'A#B  N ?A%@?>%'!>&@& & IID 2MHEJA NB>#B  =%%"/45).kAO.BEnCAHFHEnJ.EI."!:AB:" :$B:$B:>@: &:#?:#&:=#:$B:':@$:$% % -N = %  N ?A%@?>%>''#AA N ?A%@?>%B &'A%& & IID 2MHEJA NB>#B  =%%"/)HA.OoK.IKHA.OoK.M=nJ.Jo.?onJEnKA.?onnA?JEnC.OAI/no?. ## -N = ##  N ?A%@?>& &?>' N ?A%@?>&$B#$" & IID 2HA=@ NB>%'! #

6DEI EI JDA FoEnJ =J MDE?D JDA FHoCH=m nAA@I Jo =Ik =>oKJ ?onJEnKEnC. NoJA JDA oKJFKJ Jo B@ on JDA n@ JDHoKCD "JD lEnAI LE= JDA 2MHEJA IOIJAm ?=ll. 1n =n ol@AH LAHIEon, @KA Jo = >KC MDE?D IAAmI Jo D=LA >AAn BENA@, JDA oKJFKJ M=I Jo = >=@ B@. 6DA FHo>lAm M=I noJ @KA Jo = D=nC; EJ M=I JD=J = mAII=CA M=I FHEnJA@ Jo =n EnL=lE@ B@, =n@ JDAn JDA FHo­ CH=m M=EJA@ BoH = HAIFonIA MDE?D JDA KIAH @E@ noJ knoM nAA@ Jo >A m=@A. 6DA FHoCH=m M=IM=EJEnCBoHJDA KIAHJoJOFA OAI oHno. 6DEI >KC FAHIEIJA@ BoH IALAH=l OA=HI. 6DA IID ?o@A EI ?omFlAN =n@ EmFAnAJH=>lA; FAoFlA CoJ En JDA D=>EJ oB J=kEnC = look =n@ CELEnC KF. 5OIJAm ?=ll JH=?EnC =lloMA@ KI Jo HAIolLA JDA FHo>lAm=lmoIJ EnIJ=nJlO,MEJDoKJ D=LEnCJo=JJAmFJ JolA=HnJDA IID?o@A. failure 9DElA FHAF=HEnC JDEI F=FAH MA MAHA D=LEnC JHoK>lA MEJD JHoBB. 6DA JHoBB ?omm=n@ HAIKlJA@EnJDA H=JDAHKIAlAIIAHHoH: postnote 144: sys: write on closed pipe pc=0x0001f89c 6o HAIolLA JDA FHo>lAm MA JH=?A@ JDA H? BHom MDE?D MA H=n JDA ?omm=n@. 6H=?EnC H?, EnIJA=@ oB = IFA?EBE? ?omm=n@, ?=n IomAJEmAI >A JDA moIJ ABBA?JELA =FFHo=?D, AIFA­ ?E=llO MDAHA = FEFAlEnA EI EnLolLA@. 6DA JH=?A IDoMA@ JD=J JDA HA=l FHo>lAm M=I JD=J />En/CIM=ImEIIEnC,=n@JDA AHHoHM=IBHom page.

Implementation ratrace ?onIEIJI oB = LAHO IEmFlA F=J?D Jo JDA kAHnAl =n@ = KIAH FHoCH=m. 4=JH=?A EI ?KH­ HAnJlO onlO =L=El=>lA En JDA 9k =n@ 9vx kAHnAlI, JDoKCD = F=J?D D=I >AAn IK>mEJJA@ BoH JDA IJ=n@=H@ kAHnAl, =n@ D=I >AAn JAIJA@ on JDA )4M. ;oK ?=n LEAM JDA ?D=nCAI Jo LN! =J https://bitbucket.org/rminnich/vx32 =n@ JDA 'k ?D=nCAI =J https://bitbucket.org/ericvh/hare. 9A BoH JDA moIJ F=HJ @AI?HE>A JDA LN! ?D=nCAI DAHA; JDA 'k ?D=nCAI =HA =HCK=>lO >AJJAH >KJ MA ANFA?J moHA KIAHI Jo IAA JDA LN! kAHnAl,noJ JDA 'k kAHnAl.

Kernel changes 2Ho?AIIAI nAA@ Jo >A m=HkA@ MDAn JDAO =HA >AEnC JH=?A@. On?A m=HkA@, JDAO D=lJ En JDA kAHnAl =J A=?D IOIJAm ?=ll =n@ M=EJ BoH JDA ?omm=n@ Jo ?onJEnKA. 6DA ?omm=n@I =HA EIIKA@JoJDA ?Jl BElA BoHJDA FHo?. 6o En@E?=JA JH=?EnC MA =@@ = nAM AnKm, Proc_tracesyscall, Jo JDA AnKmI En portdat.h. 9A =lIo =@@ IKFFoHJ BoH IOI?=ll JH=?EnC Jo @ALFHo?.?. 1B JDA ?omm=n@ startsyscall EI MHEJJAn Jo = FHo?AII ?Jl BElA, JDAn JDA procctl IJHK?J mAm>AH EI IAJ Jo Proc_tracesyscall. ­ !­

6DA onlO oJDAH FEA?AI nAA@A@ =HA = M=O Jo ?onJHol JDA FHo?AII JH=?EnC =n@ = M=O Jo CAJ JDA @=J= BHomJDA kAHnAl.9A =@@HAIIJDA @=J= BEHIJ,IEn?A EJ EIIEmFlA. 6DA JH=?EnC EnBoHm=JEon =I kAFJ =I = IJHEnC En JDA FHo? IJHK?JKHA. 1J EI ?onJ=EnA@ En = 2Ho? IJK?J mAm>AH, char*IOI?=llJH=?A =n@ JD=J EnBoHm=JEon m=O >A HA=@ =J /proc//syscall. 6DA ?o@A Jo IKFFoHJ HA=@EnC EJ EI BoKn@ En JDA FHo?HA=@ BKn?JEon=/@ALFHo?.?En'LN: ?=IA 3IOI?=ll: EBF->IOI?=llJH=?A HAJKHn; n=HA=@IJHoBBIAJ,=,n,F->IOI?=llJH=?A; HAJKHnn;

6DA =?JK=l JH=?EnC IKFFoHJ EI En JH=F.?. 1n JDA IOI?=ll BKn?JEon, JDAHA =HA BKn?JEonI Jo BEll EnJDA IOI?=llJH=?A IJHEnC=J IOI?=ll AnJHO=n@ANEJ.6DA AnJHO?o@A EI: EBKF->FHo??Jl ==2Ho?_JH=?AIOI?=ll{ KF->FHo??Jl =2Ho?_IJoFmA; IOI?=llFHEnJKHAC; FHo??JlKF; EBKF->IOI?=llJH=?A BHAAKF->IOI?=llJH=?A; KF->IOI?=llJH=?A =nEl; IJ=HJnIA?=Jo@CAJnEl; }

*=IE?=llO, JDA ?o@A JAIJI EB JDA FHo?AII EI JH=?A@ =n@, EB Io, IAJI FHo??Jl Jo 2Ho?_IJoFmA, MDE?D MEll D=lJ JDA FHo?AII; ?=llI IOI?=llFHEnJ, Jo IAJ KF->IOI?=llJH=?A IJHEnC Io JDA JH=?­ EnC FHoCH=m ?=n HA=@ EJ; =n@ JDAn IJoF. 6DEI IJoF =lloMI JDA JH=?EnC IOIJAm Jo C=En ?on­ JHol. 6DA FHo?AII MEll >lo?k KnJEl JDA JH=?EnC FHoCH=m IAn@I = ?omm=n@ Jo IJ=HJ =C=En. NoJA JD=J JDA FHo?AII mECDJ noJ >A HAIJ=HJA@ MEJD JH=?EnC An=>lA@; JDA JH=?EnC FHoCH=m ?=nAN=mEnA EJI=?JEonI=n@@A?E@A JoIAJ JDA JH=?A@FHo?AIIBHAA. NoJA JD=J JDA JH=?EnC FHoCH=m EI noJ HAGKEHA@ Jo HA=@ JDA IOI?=llJH=?A IJHEnC; no m=JJAH MD=J EJ @oAI, JDA IJHEnC EI BHAA@ MDAn JDA FHo?AII HAIJ=HJI. 6DA IOI?=ll ANEJ ?o@A EI LAHO IEmEl=H: EBKF->FHo??Jl ==2Ho?_JH=?AIOI?=ll{ IJoFnIA?=Jo@CAJnEl; KF->FHo??Jl =2Ho?_IJoFmA; HAJFHEnJKHAC,I?=llnH,IJ=HJnIA?,IJoFnIA?; I=IFlDE; FHo??JlKF; IFlNI; EBKF->IOI?=llJH=?A BHAAKF->IOI?=llJH=?A; KF->IOI?=llJH=?A =nEl; }

) BH=?JEon oB JDA FHEnJ BKn?JEonI =HA IDoMn >AloM. 5OI?=llFHEnJ, En JDA LN! LAHIEon, EI ?=llA@MEJDKHACI,=n@IMEJ?DAIonJDA IOIJAm?=ll nKm>AH: ­ "­

IJ=JE?LoE@ IOI?=llFHEnJ7HAC*KHAC { KEnJ! *IF; EnJ IOI?=llno; LlonCoBBIAJ; .mJ BmJ; EnJ lAn; KEnJ! =HCF,=;

IF=KEnJ! *KF->FmmK.KzAHo+KHAC->KIF; IOI?=llno=KHAC->=N; oBBIAJ =; BmJIJHEnEJBmJ; BmJFHEnJBmJ,@I,KF->FE@,KF->JANJ; /* =??omo@=JA FHo?AII-FHEL=JA IOIJAm?=llI*/

EBIOI?=llno>nAlAmIOI?J=> BmJFHEnJBmJ, @N,IOI?=llno,IF[]; AlIA BmJFHEnJBmJ,IKN,IOI?J=>[IOI?=llno],IF[];

EBKF->IOI?=llJH=?A BHAAKF->IOI?=llJH=?A;

IMEJ?DIOI?=llno{ ?=IA 5;54 : BmJFHEnJBmJ,&KN&KN&KN,IF[ ],IF[ ],IF[!]; >HA=k; ?=IA _-44564: BmJKIAHIJHEnCBmJ,IF[ ],; >HA=k; ?=IA *1N,: BmJKIAHIJHEnCBmJ,IF[ ], ; BmJKIAHIJHEnCBmJ,IF[ ], ; BmJFHEnJBmJ,KN, IF[!]; >HA=k;

6DAHA =HA = BAM FHo>lAmI MEJD JDEI =FFHo=?D. .mJKIAHIJHEnC @oAI HA=llo?=JEon. .oH IAL­ AH=l HA=IonI, HA=llo? EI noJ IKFFoHJA@ En JDA 'k kAHnAl. 6DA KIA oB KHACI m=kAI JDEI ?o@A LAHO =H?DEJA?JKHA-@AFAn@AnJ MDE?D EI MDO JDA ?o@A EI En JH=F.?. 6DA 'k LAHIEon EI HAIJHK?JKHA@=n@JDA ?o@A moLA@JoFoHJ/:

______6=kA EJ =I = DEnJ JD=J onA IDoKl@ noJ @o HA=llo?=JEon ­ #­

LoE@ IOI?=llBmJEnJ IOI?=llno,L=_lEIJ lEIJ { lonCl; .mJ BmJ; LoE@*L; LlonCLl; KEnJFJHF; EnJ E[ ],lAn; ?D=H*=,**=HCL;

BmJIJHEnEJBmJ; BmJFHEnJBmJ,@I,KF->FE@,KF->JANJ;

EBIOI?=llno>nIOI?=ll BmJFHEnJBmJ, @,IOI?=llno; AlIA BmJFHEnJBmJ,I,IOIJ=>[IOI?=llno].n;

EBKF->IOI?=llJH=?A =nEl BHAAKF->IOI?=llJH=?A;

IMEJ?DIOI?=llno{ ?=IA 5;54 : F=L=_=HClEIJ,KEnJFJH; BmJFHEnJBmJ,F,F; >HA=k; ?=IA _-44564: /* @AFHA?=JA@*/ ?=IA +0,14: ?=IA -:165: ?=IA 4-MO8-: = =L=_=HClEIJ,?D=H*; BmJKIAHIJHEnCBmJ,=,; >HA=k; ?=IA *1N,: = =L=_=HClEIJ,?D=H*; BmJKIAHIJHEnCBmJ,=, ; = =L=_=HClEIJ,?D=H*; BmJKIAHIJHEnCBmJ,=, ; E[]=L=_=HClEIJ,EnJ; BmJFHEnJBmJ,KN, E[]; >HA=k;

1n JDA 'k LAHIEon, JDA KHACI IJHK?J EI noJ LEIE>lA. 4=JDAH, JDA BKn?JEon EI IAJ KF =I = IOI­ ?=ll nKm>AH =n@ L=_=HCI. MoIJ oB JDA 'k IOIJAm ?=ll JH=?EnC IKFFoHJ EI En JDA FoHJ @EHA?­ JoHO, MEJD lEmEJA@ EmF=?J on JDA =H?DEJA?JKHA @EHA?JoHEAI. .oH AN=mFlA, JDA =H?DEJA?JKHA- @AFAn@AnJ ?o@A BoHIKFFoHJEnCJDA FHEnJ lookIlEkA JDEI: IOI?=llBmJI?=llnH,L=_lEIJIF+*; 5-; ­ $­

NoJA JDA ?onLAHIEon oB = LAHO m=?DEnA-@AFAn@AnJ EJAm ߞ JDA IJ=?k FoEnJAH ߞ Jo = L=_lEIJ. 6DEI ?onLAHIEon EI LAHO IEmFlA on IomA =H?DEJA?JKHAI, =n@ mECDJ >A moHA ?om­ FlANonoJDAHI. 6DA onlO oJDAH EIIKA MEJD JH=?EnC EI Jo AnIKHA JD=J ?DEl@HAn oB BoHk EnDAHEJ JDA JH=?EnC Bl=C, =n@ JD=J JDA IOI?=llJH=?A >KBBAH =n@ FHo??Jl Bl=C =HA ?lA=HA@ on ANEJ. 6DAIA ?D=nCAI =HA EnnAMFHo?=n@FANEJHAIFA?JELAlO=n@BEn@EnCJDAmEIlABJ =I=nANAH?EIA.

Tracing code: ratrace .oH HA=IonI oB IF=?A MA MEll @EI?KII JDA ?o@A JD=J JH=?AI >O = CELAn 21,. 6DA ?omm=n@- >=IA@?o@A EIlEJJlA @EBBAHAnJ,EnJD=J EJ BoHkI= ?DEl@=n@JH=?AIJD=J ?DEl@>O21,. 6DA ?o@A IAJI KF JDHAA ?D=nnAlI, onA BoH BoHkI, onA BoH ANEJI, =n@ onA BoH FHo?AII oKJ­ FKJ. 1J kAAFI JH=?k oB DoM m=nO FHo?AIIAI EJ EI HA=@EnC BHom =n@, MDAn JD=J ?oKnJ CoAI JozAHo,EJ ANEJI.6DA >=IE?IAJKF?o@A EIJDAn: oKJ =?D=n?HA=JAIEzAoBIJHK?J 5JH*,; GKEJ =?D=n?HA=JAIEzAoB?D=H*,; BoHk?=?D=n?HA=JAIEzAoBKlonC*,; nHA=@++; FHo?HBoHkMHEJAH,nEl,& ' ,; HA=@AHLoE@*FE@;

6DA ߣoKJߣ ?D=nnAl EIBoHFHo?AIIoKJFKJ.1J J=kAIFoEnJAHIJo= 5JHIJHK?J,@ABEnA@=I: JOFA@AB IJHK?J 5JH5JH; IJHK?J 5JH{ ?D=H*>KB; EnJ lAn; }; 6DAIA IJHK?JI =HA =llo?=JA@ >O JDA FHo@K?AH JDA HA=@AH JDHA=@ BoH FHo?AII oKJFKJ =n@ BHAA@>O?onIKmAHJDA MHEJAHJDHA=@. 6DA MHEJAHJDHA=@HA=@IJDA JDHAA ?D=nnAlI=n@@oAI>ookkAAFEnC=n@oKJFKJ: ­ %­

/* +=J?DANEJI*/ =[].oF=+0)N4+8; =[].?=GKEJ; =[].L=nEl; /* +=J?D1O -- ?D=nnAl oB FoEnJAHIJo= IJHK?J */ =[ ].oF=+0)N4+8; =[ ].?=oKJ; =[ ].L=I; /* +=J?DBoHkI-- ?D=nnAl oB EnJIIoMA knoM JDA 21, */ =[ ].oF=+0)N4+8; =[ ].?=BoHk?; =[ ].L=nAMFE@; /* 6D=J EI=ll */ =[!].oF=+0)N-N,;

BoH;;{ IMEJ?D=lJ={ /* FHo?ANEJA@*/ ?=IA : nHA=@--; EBnHA=@<= CoJo@onA; >HA=k; ?=IA : /* oKJFKJ */ BFHEnJ ,I,I->>KB; BHAAI; >HA=k; ?=IA : /* FHo?BoHkA@*/ nHA=@++; >HA=k; } } @onA: ANEJInEl; }

6DA HA=@AH JDHA=@ FHo?AIIAI JDA oKJFKJ BHom JDA ?DEl@ FHo?AIIAI, lookEnC BoH HBoHk EnIJ=nJE=JEonIJD=J ?HA=JA = nAM FHo?AII. ­ &­

LoE@ HA=@AHLoE@*L { ?D=H*?Jl,*JHKII; EnJ FE@,nAMFE@; EnJ ?B@,JB@; 5JH*I; EnJ BoHkEnC=;

FE@=EnJL; ?Jl =ImFHEnJ/FHo?/@/?Jl,FE@; EB ?B@=oFAn?Jl,O9416-< @EAImFHEnJI:H,?Jl; JHKII=ImFHEnJ/FHo?/@/IOI?=ll,FE@; EB JB@=oFAnJHKII,O4-),< @EAImFHEnJI:H,JHKII;

?MHEJA?B@,?Jl,IJoF,"; ?MHEJA?B@,JHKII,IJ=HJIOI?=ll, ;

6DEI IAJKF CAJI JDA FHo?AII EnJo = JH=?A@ IJ=JA. 6DA IJoF EI onlO IJHE?JlO nA?AII=HO on JDA LAHO BEHIJ HA=@AH JD=J EI EnLokA@, >KJ @oAI no D=Hm. 6DA FHo?AII EI IJ=HJA@ =n@ JDAn HAIKmA@,=n@MEll IJoFonJDA nANJ IOIJAm?=ll. 6DA ?o@A IAJI KF Jo HA=@ = >KBBAH KF Jo & ' >OJAI Jo AnIKHA nKll JAHmEn=JEon oB =n & ' >OJA >KBBAH.6DA >KBBAHEI= 5JH,MDE?DEIMD=J EIIAnJ @oMnJDA ?D=n. I=m=llo?zIEzAoB5JH+& ' , ;/* 6DA ߣ+ߣ EInoJ = JOFo*/ I->>KB =?D=H*I[ ];

6DEI InEFFAJ =llo?=JAI ?onJECKoKI mAmoHO, MEJD JDA 5JH IJHK?J =n@ EJI @=J=. 6DAn JDA ?o@A IEmFlOD=nCIonHA=@EnCJDA IOI?=llJH=?A B@. /* * & ' EInoJ = JOFo.1J AnIKHAI= nKll-JAHmEn=JA@IJHEnC. * 6DA @ALE?A ?KHHAnJlOlEmEJIJo"'$=nOM=O */ MDElAI->lAn=FHA=@JB@,I->>KB,& ' ,7LL>{ EB BoHkEnCI->>KB[ ]==ߣ=ߣI->>KB[!]=ߣ-ߣ{ BoHkEnC=; nAMFE@=IJHJolI->>KB[!],,; IAn@FBoHk?,LoE@*nAMFE@; FHo?HBoHkHA=@AH,LoE@*nAMFE@,& ' ,; }

6DEI ?o@A AN=mEnAI JDA IOIJAm ?=ll HAJKHn L=lKA, En@E?=JA@ >O =n ߣ=ߣ =I JDA BEHIJ ?D=H=?­ JAH. 6DA ߣBoHkEnCߣ L=HE=>lAEI IAJ Jo >O JDA FHALEoKI F=II JDHoKCD JDEI looF EB JDA IOIJAm ?=ll MoKl@?HA=JA = nAM FHo?AII.0An?A:EB JDA l=IJ IOIJAm ?=ll IDoKl@ D=LA ?HA=JA@ = nAM FHo?AII; =n@ JDEI EI = IOIJAm ?=ll HAJKHn, E.A. BEHIJ >OJA EI ߣ=ߣ; =n@ EJ IK??AA@A@, En@E?=JA@ >O JDA JDEH@ >OJA noJ >AEnC = ߣ-ߣ IECn, E.A. JDA HAJKHn L=lKA oB JDA BoHk M=I noJ - ; JDAn MA nAA@ = nAM HA=@AH FHo?. 6DA ?o@A JDAn HA=@I JDA FE@ =n@ IJ=HJI = nAM HA=@AH, MDElA ­ '­

=lIoIAn@EnCJDA nAM FE@JoJDA MHEJAHJDHA=@. +=J?DEnCBoHkIEI= >EJ JHE?kO,JDEIJDHAA F=HJ JAIJ D=IMoHkA@MAll: /* 6DAHA =HA JDHAA JAIJIDAHA JoCK=H=nJAA noB=lIA FoIEJELAI*/ EB IJHIJHI->>KB, 4BoHk=nEl{ ?D=H*=[&]; ?D=H*HB; HB =IJH@KFI->>KB; EB JokAnEzAHB,=,&==#{ KnIECnA@lonCBl=CI; Bl=CI=IJHJoKl=["],, $; EB Bl=CI4.24O+ BoHkEnC= ; } BHAAHB; } IAn@FoKJ,I; ?MHEJA?B@,JHKII,IJ=HJIOI?=ll, ; I=m=llo?zIEzAoB5JH+& ' , ; I->>KB =?D=H*I[ ];

}

On?A JDA FHo?AIIGKEJI,HA=@AHIAn@I=nEn@E?=JEononJDA GKEJ ?D=n=n@ANEJI. IAn@FGKEJ,nEl; JDHA=@ANEJI=llnEl; }

Limitations 6DAHA =HA = BAM HAm=EnEnCFHo>lAmI. 9A m=@A = @A?EIEon A=HlO on BoH non-FHEnJEnC ?D=H­ =?JAHI Jo FKJ = ߣ.ߣ En JDA oKJFKJ En Fl=?A oB JDA ?D=H=?JAH. 6D=J M=I = mEIJ=kA. 1nBoHm=­ JEon EI loIJ MDAn JDA oKJFKJ EI @EIFl=OA@. 9A nAA@ = >AJJAH @=J= BoHm=J JD=J IDoMI moHA JD=n ߣ.ߣ. 6DA ߣ\NNNߣ BoHm=J EI noJ =n o>LEoKI EmFHoLAmAnJ; FoIIE>lO IOm>olI MoKl@ MoHk. +KHHAnJlO, MA onlO IDoM ! >OJAI. 6DA =moKnJ oB @=J= Jo >A IDoMn IDoKl@ >A ?onJHol­ l=>lA LE= = MHEJA Jo JDA ?Jl BElA oB = FHo?AII. 1nJAHAIJEnClO, JDEI lEmEJ=JEon D=I noJ OAJ >AAn = FHo>lAm. 6H=?EnC IloMI JDEnCI @oMn GKEJA = >EJ. 1I JDEI = HA=l FHo>lAm? 1J EI D=H@ Jo m=kA = IJHonC ?=IA AEJDAHM=O.

Conclusions 4=JH=?A EI = IOIJAm ?=ll JH=?EnC IOIJAm BoH 2l=n '. 6DAHA =HA JMo EmFlAmAnJ=JEonI, onA BoH LN! =n@ onA BoH JDA 'k L=HE=nJ oB JDA 2l=n ' kAHnAl. 9A D=LA KIA@ H=JH=?A Jo @A>KC FHoCH=mI =n@ BEn@ FHo>lAmI MEJD kAHnAlI. *A?=KIA EJ FHAIAnJI JDA @=J= Jo JDA KIAH FHo­ CH=m =I JANJ, JDA n=JKHA oB JDA EnBoHm=JEon F=IIA@ BHom kAHnAl Jo KIAH EI LAHO @EBBAHAnJ BHom ANEIJEnC JoolI BoH 7nEN, =n@ =I = HAIKlJ JH=?A FHoCH=mI B=H Im=llAH JD=n EJI 7nEN ?oKnJAHF=HJI. ­ ­

Acknowledgements 4KII +oN FHoLE@A@ BAA@>=?k =n@ EmFHoLA@ JDA LN! LAHIEon IK>IJ=nJE=llO. JEm M?KEA CHA=JlO EmFHoLA@ JDA EmFlAmAnJ=JEon oB H=JH=?A noM BoKn@ En JDA 'k kAHnAl. No=D -L=nI MHoJA JDA BEHIJ LAHIEonoB JDA H=JH=?A Jool. Recent Plan 9 Work at

Geoff Collyer [email protected]−labs.com *All L=>oH=JoHEAI MKHH=O0Ell,NAM JAHIAO%'%" 75)

)*564)+6

*All L=>I HA?AnJlO FoHJA@ 2l=n ' Jo nAM IOIJAmI MEJD non-2+ =H?DEJA?­ JKHAI. 6DEI EI = IJ=JKI HAFoHJ on JDoIA FoHJI =n@ = IKmm=HO oB MD=J DAlFA@,MD=J @E@nߣJ =n@MD=J ?oKl@.

1. Introduction 1n mO CHoKF oB 2l=n ' @ALAloFAHI =n@ KIAHI =J *All L=>I En MKHH=O 0Ell @KHEnC JDA l=IJ JMo OA=HI  &ߞ   oH Io, mK?D oB oKH MoHk D=I >AAn >=IA@ on FoHJI oB 2l=n ' Jo m=?DEnAI oJDAH JD=n JDA 1*M 2+. 6DEI J=lk MEll @AI?HE>A JDA FoHJI, MD=J MA KIA JDAm oHFl=nJoKIA JDAmBoH,=n@MD=J MA lA=HnA@. )I KIK=l, JDA >Klk oB 2l=n ' ?o@A EI IKBBE?EAnJlO FoHJ=>lA JD=J onlO JDA kAHnAl nAA@I Jo >A moLA@ Jo = nAM IOIJAm, =n@ ALAn JD=J onlO EnLolLAI FoFKl=JEnC = IK>@EHA?JoHO oB /sys/src/9 =n@ FoIIE>lO ?HA=JEnC = >ooJIJH=F FHoCH=m En /sys/src/boot.) FoHJ Jo = IOIJAm BoH MDE?D MA D=LA no ?omFElAH =n@ no IEmEl=H kAHnAl MoKl@ HAGKEHA IK>IJ=nJE=llOmoHA MoHk,=I@AI?HE>A@EnHABAHAn?A [$].

2. Non−PC Ports: Common Problems and Techniques 9A FoHJA@ 2l=n ' Jo 2oMAH2+ "#, "" =n@ "# m=?DEnAI =n@ Jo )4M ' $ =n@ +oHJAN-)&m=?DEnAI. 6DAO=ll ID=HA ?AHJ=En?l=IIAIoB o>IJ=?lAI.

2.1. Memory Barriers and Caches ) B=EHlO ?ommon mAmoHO =H?DEJA?JKHA EI = JD=J store EnIJHK?JEonI GKAKA @=J= En = write buffer En JDA FHo?AIIoH, MDE?D EI CH=@K=llO @H=EnA@ Jo = BEHIJ-lALAl ?=?DA, JDAn Jo = l=HCAH >KJ IloMAH IA?on@-lALAl ?=?DA, =n@ BEn=llO Jo ,4)M. 6DA 1*M 2+ mo@Al FHoLE@AI ?=?DA-?oDAHAnJ mAmoHO, Io JD=J MA H=HAlO D=LA Jo MoHHO =>oKJ ?=?DA m=EnJAn=n?A En JDA 2+ FoHJ. +=?DA-?oDAHAnJ mAmoHO l=HCAlO DE@AI JDA IFAA@ JHE?kI FKllA@ >O mo@AHn FHo?AIIoHI, MDE?D En?lK@A =CCHAIIELA ?=?DEnC JDHoKCD mKlJEFlA lALAlI oB ?=?DA, =n@ oKJ-oB-oH@AH oH @Al=OA@ mAmoHO IJoHAI =n@ EnIJHK?JEon ANA?KJEon. -LAn on JDA 2+, MA IJEll o??=IEon=llO D=LA Jo ANA?KJA @=J= oH EnIJHK?JEon >=HHEAH EnIJHK?JEonI >O ?=llEnC coherence Jo AnIKHA JD=J FHALEoKI EnIJHK?JEonI =n@ mAmoHO IJoHAI D=LA ?omFlAJA@; BoH AN=mFlA, En JDA EmFlAmAnJ=JEon oB lo?kI Jo =??AlAH=JA noJEBE?=JEon oB oJDAH FHo?AIIoHI JHOEnCJo=?GKEHA JDA lo?k,=n@>ABoHA oH=BJAH,M) JH=nIBAHI. *O ?onJH=IJ, JDA 2oMAH2+ D=I lonC ANFoIA@ JDA =>oLA FHo?AIIoH JHE?kI Jo JDA FHoCH=m­ mAH, =n@ )4M FHo?AIIoHI =HA noM ?=J?DEnC KF =l=I. 5o En JDA FoHJI JD=J 1 D=LA @onA, F=HJlO oKJ oB F=H=noE=, 1 M=I B=EHlO DA=LO-D=n@A@ En JDA KIA oB >=HHEAH EnIJHK?JEonI Jo =LoE@ IKHFHEIAI. NoM JD=J JDA FoHJI =HA KF =n@ HKnnEnC, IomA oB JDoIA >=HHEAHI =HA >AEnCHAmoLA@=n@ kprof D=I>AAnDAlFBKl EnBEn@EnCDoJ IFoJI@KA Jo>=HHEAHI. 6DA BKll IAGKAn?A oB oFAH=JEonI nAA@A@ Jo CK=H=nJAA JD=J = MHEJA Jo mAmoHO =@@HAII ­ ­ addr D=I ?omFlAJA@ oH =J lA=IJ EI LEIE>lA Jo =ll FAHEFDAH=lI =n@ oJDAH FHo?AIIoHI En JDAIA IOIJAmIEI: ߦ =nEnIJHK?JEon>=HHEAH,JoBoH?A JDA IJoHA EnIJHK?JEonJo?omFlAJA ߦ = @=J= >=HHEAH, Jo BlKID JDA @=J= BHom JDA FHo?AIIoHߣI mAmoHO MHEJA >KBBAH Jo lALAl L @=J= ?=?DA oHmAmoHOEB Kn?=?DA@ ߦ BlKID addrߣIlALAl @=J= ?=?DA lEnA JoJDA lALAl L ?=?DA,EB =nO ߦ BlKID addrߣIlALAl @=J= oHKnEBEA@?=?DA lEnA Jo4)M oHBKHJDAH?=?DA lALAlI 6DEI IAGKAn?A ?oKl@ D=LA Jo >A ANJAn@A@ En BKJKHA Jo =@@EJEon=l lALAlI oB ?=?DA. 6DA )4M L% =H?DEJA?JKHA ?=?DA ?onJHol HACEIJAHI FAHmEJ AECDJ lALAlI oB ?=?DA 6DA BKll IAGKAn?A EI onlO nAA@A@ BoH ?=?DA@ =?JK=llO MHEJA->=?k ?=?DA@ mAmoHO, =n@ @ALE?A HACEIJAHI =HA m=FFA@ =I Kn?=?DA@, Io JDAO onlO HAGKEHA JDA >=HHEAH EnIJHK?JEonI Jo AnIKHA JD=J IJoHAID=LA ?omFlAJA@. +=?DA lEnAI=HA oBJAn! oH$">OJAIlonC. 1n = BAM ?=IAI, BoH AN=mFlA =BJAH ,M) EnFKJ, EJߣI nA?AII=HO Jo EnL=lE@=JA ?=?DA lEnAI H=JDAHJD=nBlKIDEnCJDAm. 9DAnALAHFoIIE>lA,MAߣLA ?onBECKHA@?=?DAIJo>A MHEJA->=?k BoHm=NEmKmIFAA@. 9A EmFoHJA@ 75* ?o@A BHom JDA 2+ FoHJ Jo JDA )4M FoHJI =n@ D=@ Jo BEHIJ =@@ >=HHEAHI =n@ ?=?DA BlKIDEnC Jo EJ. 6DA 75* En-mAmoHO @=J= IJHK?JKHAI m=EnJ=EnA@ F=HJlO >O JDA 75* @HELAHI =n@ F=HJlO >O JDA DoIJ ?onJHollAHI =HA ?KHHAnJlO =llo?=JA@ BHom Kn?=?DA@ mAmoHO >A?=KIA m=n=CEnC JDA ?=?DAI En JDA FHAIAn?A oB IK?D mENA@ @=J= IJHK?JKHAI M=I Joo D=H@: ?onIE@AH = @=J= IJHK?JKHA, JDA BEHIJ F=HJ m=EnJ=EnA@ >O D=H@M=HA, JDA IA?­ on@ m=EnJ=EnA@ >O IoBJM=HA, =n@ JDA >oKn@=HO >AJMAAn JDAm EI noJ = ?=?DA-lEnA >oKn@=HO,OAJ JDA @=J= IJHK?JKHA EIHAGKEHA@>OD=H@M=HA Jo>A =lECnA@Jo= FoMAHoB .

2.2. Kernel Memory Mapping 1n JDA 8EHJAN =n@ )4M FoHJI, JDA m=NEmKm FDOIE?=l mAmoHO M=I # M* oH lAII JDoKCD noJ =lM=OI IJ=HJEnC =J FDOIE?=l =@@HAII zAHo, Io >O m=FFEnC JDA kAHnAl >=IA KZ-4O Jo LEHJK=l =@@HAIIAI 0x80000000 2oMAH2+, 0xC0000000 61 OM)2!# IOIJAm-on-=-?DEF 5o+ oH 0x60000000 M=HLAll KEHkMoo@ 5o+, MA =HA =>lA Jo =@@HAII =ll oB FDOIE?=l mAmoHO BHom JDA kAHnAl KIEnC JHELE=l LAHIEonI oB kmap =n@ kunmap, KnlEkA JDA 2+ kAHnAl, MDE?D EI m=FFA@ =J LEHJK=l 0xF0000000 OAJ nAA@I Jo >A =>lA Jo =@@HAII KF Jo !.%# /* oB mAmoHO KIEnC kAHnAl LEHJK=l =@@HAIIAI JDoIA =>oLA KZ-4O. 6DA @EBBAHAnJ >=IAI MAHA ?DoIAn Jo FAHmEJ L=HEoKI @ALE?AI Jo >A E@AnJEJO-m=FFA@BoHIEmFlE?EJO.

2.3. Kernel Debugging 6DA 8EHJAN =n@ 1/-2L >o=H@I En?lK@A = noHm=l 1nJAl-& #-?omF=JE>lA IAHE=l FoHJ =n@ = BAM L-,I Kn@AH IoBJM=HA ?onJHol, MDE?D IEmFlEBEAI EnEJE=l FoHJEnC =n@ @A>KCCEnC. 6DA )4M >o=H@I oJDAH JD=n 1/-2L D=LA ?om>EnA@ J6)/ =n@ IAHE=l FoHJI MEJD IFA?E=l ?=>lAI MEJD = 75* ?onnA?JoH =J JDA oJDAH An@. /serial noM knoMI DoM Jo @HELA JDAIA FoHJI=n@JDAHA =HA M59En@oMI@HELAHIJoo. On JDA )4M FoHJI MA D=LA An=>lA@ D=H@M=HA M=J?D@oC JEmAHI Io JD=J EB JDA kAHnAl CoAI oBB JDA H=ElI, JDA IOIJAm MEll HAIAJ EJIAlB, JDKI HAJKHnEnC ?onJHol Jo 7->ooJ. Das U−boot EI = ߢKnELAHI=lߣ oFAn-IoKH?A >ooJ lo=@AH @AHELA@ BHom LEnKN =n@ oBJAn FHoLE@A@ =I JDA IJo?k >ooJ lo=@AH on non-2+ IOIJAmI. 6DAHA EI IEmEl=H ?o@A En JDA 8EHJAN FoHJI, >KJ EJߣI?KHHAnJlOJKHnA@oBB >A?=KIA HAIAJJEnCJDA 8EHJAN>o=H@IEIlAIIKIABKl. ­ !­

2.4. ARM Kernel Initialisation 7->ooJ jKIJ l=OI JDA kAHnAlߣI Em=CA @oMn En mAmoHO, MEJDoKJ HAC=H@ BoH IACmAnJ >oKn@=HEAI, Io JDA )4M kAHnAlI HAlo?=JA JDAEH @=J= IACmAnJI Jo JDA ANFA?JA@ FDOIE?=l =@@HAIIAI=n@JDAnzAHoJDAEH*55IACmAnJI. 9A KIA 7->ooJ Jo lo=@ /cfg/pxe/$ether EnJo mAmoHO >ABoHA lo=@EnC JDA kAHnAl, MDE?DF=HIAIJDA En-mAmoHO?oFOJoIEmKl=JA MD=J 9load MoKl@D=LA @onA onJDA 2+. 7->ooJ ?onBECKHAI JDA FHo?AIIoH =n@ L=HEoKI 5o+ @ALE?AI >ABoHA lo=@EnC JDA kAHnAl, MDE?D EI = DAlF >A?=KIA JDAHA =HA m=nO, m=nO BECKH=JELA @E=lI =n@ kno>I JDoKI=n@I oB F=CAI MoHJD JD=J ?=n >A JMA=kA@ =n@ IomAJEmAI mKIJ >A jKIJ Jo CAJ >=IE? BKn?JEon=l­ EJO. OKH kAHnAlI m=kA =n ABBoHJ Jo ?onBECKHA JDA D=H@M=HA JD=J JDAO KIA, >KJ FHo>=>lO @onߣJ @o JDA BKll jo>. 6EmA EI BEnEJA >KJ D=H@M=HA ?onBECKH=JEon HACEIJAHI =n@ F=@ =n@ CFEo?onBECKH=JEonI=HA noJ oHIoEJ IAAmI.

2.5. Floating Point and Other Emulation 6DA :ElEnN 8EHJAN =n@ M=HLAll KEHkMoo@ >o=H@I D=LA no Blo=JEnC-FoEnJ KnEJI, Io JDA kAH­ nAl JH=FI =n@ AmKl=JAI Blo=JEnC-FoEnJ EnIJHK?JEonI. 6DEI EI nA?AII=HO >A?=KIA Blo=JEnC-FoEnJ EIKIA@En ,BoHAN=mFlA. 6DA )4M FoHJIMEll =lIoAmKl=JA ldrex, strex =n@ lo?=llO-EnLAnJA@ cas EnIJHK?JEonI EB JDA FHo?AIIoHJH=FIJDAm=IEllAC=l EnIJHK?JEonI.

2.6. Math Debugging 9A KIA@ = FoHJ oB 9. M. K=D=nߣI paranoia Jo M=J?D BoH AHHoHI En Blo=JEnC-FoEnJ AmKl=­ JEon. ) nAM FHoCH=m Jo LAHEBO vlong =HEJDmAJE? BoKn@ = ?o@A-CAnAH=JEon >KC En qc MDE?DD=IIEn?A >AAnBENA@.

3. PowerPC Ports 6DAIA 2oMAH2+ FoHJI=HA =ll +27 IAHLAHkAHnAlI.

3.1. Blue Gene Ports 6DEI MoHk EI >AEnC BKn@A@ >O JDA 7.5. ,AFJ. oB -nAHCO ,o- Kn@AH JDA FHojA?J n=mA ߢ0)4-ߣ* =n@ JDA m=En F=HJE?EF=nJI =HA *All L=>I, 1*M 4AIA=H?D, 5=n@E= N=JEon=l L=>I =n@ 8EJ=nKoL=. 6DA EnJAnJ EI Jo FHoLE@A BKll oFAH=JEnC IOIJAm ?=F=>ElEJEAI LE= ?omF=H=­ JELAlO lECDJMAECDJ 2l=n ' H=JDAH JD=n DA=LOMAECDJ LEnKN oH ALAn moHA FHEmEJELA oFAH=J­ EnCIOIJAmIonLAHOl=HCA-I?=lA F=H=llAl m=?DEnAI. 6DA *lKA /AnA m=?DEnAI =HA m=nO-?oHA 2oMAH2+ IOIJAmI BHom 1*M MEJD mKlJEFlA ?oHAI ID=HEnC mAmoHO on = IEnClA >o=H@, =n@ m=nO >o=H@I En = ?omFlAJA IOIJAm, ?onnA?JA@ LE= -JDAHnAJ =n@ IALAH=l JOFAI oB nAJMoHkI @ALAloFA@ >O 1*M IFA?EBE?=llO BoH JDA *lKA /AnA m=?DEnAI. 2Ho?AIIoH ?lo?k H=JAI =HA JOFE?=llO mo@AIJ A.C., Kn@AH /0z Jo HA@K?A FoMAH ?onIKmFJEon =n@ DA=J @EIIEF=JEon. .lo=JEnC-FoEnJ EnIJHK?JEonI @EBBAH BHom JDA KIK=l 2oMAH2+ EnIJHK?JEonI. 6DA ?omFlAJA IOIJAm ?=n >A F=HJEJEonA@ EnJo En@AFAn@AnJ ?lKIJAHI oB FoMAH-oB- >o=H@I. )ll JDA ?oHAI oB = IEnClA ?lKIJAH =HA EnE­ JE=llO lo=@A@ LE= J6)/ MEJD JDA I=mA kAHnAl Em=CA =n@ =ll IJ=HJA@ IOn?DHonoKIlO =J on?A. 6DA IOIJAmI MA D=LA @ALAloFA@ on =HA =J )HConnA N=JEon=l L=>. 6DA AnLEHonmAnJ EI ______* 2oHJEonI oB JDEI FHojA?J IKFFoHJA@ >O JDA ,AF=HJmAnJ oB -nAHCO Kn@AH )M=H@ NKm>AH ,--./ -&-4 #&"%. ­ "­

LAHOmK?DCA=HA@Jo >=J?D FHo?AIIEnC, Io EnJAH=?JELA @ALAloFmAnJ EI = >EJ o@@, =n@ oKH IAIIEonI=HA lEmEJA@Jo=J moIJ =nDoKHoB Al=FIA@JEmA onJDA @ALAloFmAnJ m=?DEnA. )n EnEJE=l FoHJ Jo JDA *//L MEJD $"K 2oMAH2+ "" ?oHAI M=I @onA, >KJ ?KHHAnJ MoHk EI on JDA l=HCAH *//2 MEJD $K 2oMAH2+ "# ?oHAI =n@ MEll FHo>=>lO moLA ALAnJK=llO Jo JDA IJEll l=HCAH *//3 MEJD =J lA=IJ %#, 2oMAH2+ "$? ?oHAI >AEnC >KElJ noM >O 1*M. ,HELAHI BoH JDA L=HEoKI 1*M nAJMoHkI D=LA >AAn MHEJJAn. 9AߣLA @onA IomA MoHk on moHA =CCHAIIELA '2 ?=?DEnC oB EnBHAGKAnJlO-?D=nCA@ BElAI MEJD KIAH-mo@A IAHLAHI; JDA @AJ=ElI =HA HAFoHJA@ AlIAMDAHA =J JDEI MoHkIDoF.# 1*M D=I CH=nJA@ FAHmEIIEon Jo ANFoHJ = In=FIDoJ oB JDA *//2 2l=n ' FoHJ, =n@ EJ ?=n >A ANJH=?JA@ MEJD onA oB JDAIA ?omm=n@I: hg clone http://bitbucket.org/ericvh/hare git clone http://git.anl−external.org/plan9.git NoJA JD=J JDEI EI noJ = IJo?k 2l=n ' kAHnAl >KJ EI =n EnJAHn=l @ALAloFmAnJ kAHnAl L=HE=nJ n=mA@ 9k.

3.2. Virtex 4 and 5 Ports 6DA :ElEnN 8EHJAN " .: =n@ # .:6 AL=lK=JEon >o=H@I =HA .2/)->=IA@ IOIJAmI MEJD 2oM­ AH2+ FHo?AIIoHI !M0z "#,#: =n@ "M0z @K=l-EIIKA "":#, !, % HAIFA?­ JELAlO. 6DAO D=LA L ?=?DAI >KJ no L ?=?DAI. 9A @E@ JDAIA FoHJI Jo @AmonIJH=JA JDA BA=IE>ElEJO oB =n E@A= BoH = D=H@M=HA @ALE?A Jo >A KIA@ En Am>A@@A@ IOIJAmI. 6DA JMo AL=lK=JEon >o=H@I =HA IEmEl=H =n@ JDA 8EHJAN # FoHJ EI = mEnoH L=HE=nJ oB JDA 8EHJAN " FoHJ =n@ KIAI m=nO oB EJI IoKH?A BElAI. 1J MoKl@ >A =MkM=H@ Jo ?om>EnA JDAm EnJo = IEnClA FoHJ >A?=KIA JDA loM-lALAl @AJ=ElI oB JH=FI =n@ mAmoHO m=n=CAmAnJ @EBBAH >AJMAAnJDA 2oMAH2+ "#=n@"". 6DA 2oMAH2+ "#,#: AHH=J= lEIJ M=I lonC =n@ MoHHOEnC >KJ MA MAHA =>lA Jo MoHk =HoKn@ moIJ oB JDA D=H@M=HA >KCI. 6DA "":# D=@ = mK?D IDoHJAH =n@ lAII MoHHE­ IomA AHH=J= lEIJ.

3.2.1. Virtex Bootstrapping )n .2/) EI = .EAl@-2HoCH=mm=>lA /=JA )HH=O. ) CE=nJ :ElEnN +), Jool ?HKn?DAI JDHoKCD = 80,L @ABEnEJEon oB OoKH IFA?EBE? ߢD=H@M=HAߣ @AIECn BoH !ߞ$ mEnKJAI, @oMnlo=@I JDA CAnAH=JA@ >EJ-IJHA=m, MDE?D En?lK@AI JDA IJ=JE? 4)M ?onJAnJI, EnJo JDA .2/), =n@ IJ=HJI EJ HKnnEnC >O J=kEnC JDA 2oMAH2+I oKJ oB HAIAJ. 6DA noHm=l 2oMAH2+ HAIJ=HJ IAGKAn?A IAJI JDA 2+ Jo JDA l=IJ MoH@ oB mAmoHO IJ=JE? 4)M En JDEI ?=IA =n@ >ACEnIANA?KJEon. 6DKI MA nAA@ Jo En?lK@A = IJHEFFA@-@oMn 9load >ooJIJH=F FHoCH=m En JDA IJ=JE? 4)M ?onJAnJI  &K >OJAI oB JDA >EJ-IJHA=m lo=@A@ EnJo JDA .2/). 9load lo=@I = 8EHJAN kAHnAl, /power/9vt[45]cpu, oLAH -JDAHnAJ LE= *OO62 =n@ 6.62 =n@ jKmFI Jo EJ. 5En?A >ooJIJH=FFEnC LE= @oMnlo=@A@ >EJ-IJHA=m =n@ 9load EI HAl=JELAlO IloM =n@ @EBBE­ ?KlJ Jo JHECCAH HAmoJAlO, /dev/reboot =n@ #ec MAHA EmFlAmAnJA@ =n@ @A>KCCA@ A=HlO, MDE?D =lloMA@ KI Jo HA>ooJ =J MEll, ALAn HAmoJAlO. 9A ?=HHEA@ JDEI BoHM=H@ EnJo JDA )4M FoHJIJoo,JDoKCD7->ooJ EImoHA JH=?J=>lA JD=nJDA 8EHJAN>ooJ FHo?AII. 6DA 8EHJAN # ?=n >A ?onBECKHA@ Jo D=LA JMo 2oMAH2+ ?oHAI, >KJ EJI ?=?DAI =HA FAH- FHo?AIIoH =n@ noJ m=EnJ=EnA@ ?oDAHAnJlO, Io ?ooH@En=JEnC JDA JMo ?oHAI EI F=EnBKl =n@ oKH ANEIJEnC IOmmAJHE? mKlJEFHo?AIIEnC ?o@A EInߣJ IKBBE?EAnJ. 1B ?onBECKHA@ BoH JMo ?oHAI, 2l=n ' ?KHHAnJlO FKJI JDA IA?on@ onA Jo IlAAF. 1@A=llO, EJ MoKl@ >A nE?A Jo KIA JDA IA?on@?oHA JoHKnJDA H=JDAH@Km>-JDAHnAJ ?onJHollAH. ­ #­

3.2.2. Virtex Performance 6DAIA 2oMAH2+I D=LA onlO $" JH=nIl=JEon look=IE@A >KBBAHI 6L*I En JDAEH mAmoHO m=n=CAmAnJ KnEJI MM7I, =n@ JD=J nKm>AH EI @HoFFEnC B=IJ En nAMAH 2oMAH2+ @AIECnI, Io MA noM HoKn@ IACmAnJI on JDA power =H?DEJA?JKHA KF Jo M* mKlJEFlAI, MDE?D MEll =lloM KI Jo KIA F=CAI l=HCAH JD=n "K >OJAI =n@ JDKI J=kA BAMAH F=CA B=KlJI =n@nAA@JoHAlo=@JDA 6L*IEnIoBJM=HAlAIIoBJAn. *oJD >o=H@I KIA = ?omFlE?=JA@ ?om>En=JEon oB ,M) AnCEnAI, D=H@M=HA .1.OI >OJA oH MoH@ GKAKAI =n@ -JDAHnAJ ?onJHollAH, MDE?D jKIJ @oAInߣJ Co LAHO B=IJ. 5omAJEmAI JDA ,M) AnCEnAI =HAnߣJ mK?D B=IJAH JD=n ?oFOEnC JDA >OJAI MEJD memmove, =n@ KIEnC JDAm ?omFlE?=JAI JDA -JDAHnAJ @HELAH. 9A @o KIA JDA ,M) AnCEnAI En JDA 8EHJAN FoHJI. 6DAIA FoHJI =HA noJE?A=>lO IloMAH JD=n JDA M=HLAll KEHkMoo@ FoHJ =n@ noJ jKIJ >A?=KIA JDA FHo?AIIoHI =HA IloMAH. 9A ?onIEIJAnJlO KIA@ =I oKH >An?Dm=Hk >KEl@EnC JDA KEHk­ Moo@ kAHnAl on GKEAI?AnJ @EIklAII m=?DEnAI MEJD JDAEH HooJ BElA IOIJAmI on oKH m=En BElA IAHLAH: /sys/src/9/kw # 2nd mk will have system caches loaded { mk clean; mk; mk clean; time mk } >/dev/null NoJA JD=J JDA mkfile lEnkI JDA kAHnAl JME?A: on?A MEJD IOm>olI =n@ on?A MEJDoKJ. On JDA 8EHJAN#oLAHCEC=>EJ -JDAHnAJ,JDEIHAFoHJI: 44.32u 35.60s 99.80r mk # virtex 5 gb 5m=ll lALAl ?=?DAI =n@ JDA l=?k oB = lALAl ?=?DA =HA lEkAlO HAIFonIE>lA BoH EJI oLAH=ll IloMnAII. .oH ?omF=HEIon, JDEI EI DoM lonC EJ J=kAI on oKH m=En BoKH-?oHA .# /0z +oHA :Aon 2+ +27 IAHLAHKIEnCCEC=>EJ -JDAHnAJ: 2.26u 2.46s 4.01r mk # quad xeon pc gb on= onA-?oHA . /0z )M, K&2+ JAHmEn=l KIEnCCEC=>EJ -JDAHnAJ: 2.95u 2.34s 8.31r mk # amd k8 pc =n@ = # M0z 5oAkHEI nAJ## -% )M, /Ao@A L: #&$ 2+ +27 IAHLAH KIEnC M>/I -JDAHnAJ: 20.78u 11.42s 49.48r mk # 586 pc 100mb

3.2.3. Virtex Port Availability and Desirability )nOonA MDo M=nJI onA oB JDA 8EHJAN FoHJI IDoKl@ m=El mA. NoJA Joo JD=J nAM 8EHJAN .2/) @AIECnIA.C.,8EHJAN$KIA )4M FHo?AIIoHIH=JDAHJD=n2oMAH2+ FHo?AIIoHI.

4. ARM Ports 6DAIA )4M FoHJI =HA =ll +27 IAHLAH kAHnAlI Io B=H, JDoKCD JDAHA EI MoHk En FHoCHAII Jo ?onLAHJ IomA oB JDA )4M IOIJAmIEnJoJAHmEn=lIJoo. 6DA )4M IOIJAmIJD=J MA FoHJA@Jo=ll ?omA MEJD U−boot =I JDAEH >ooJ lo=@AH, >KJ A=?D LAn@oH ?KIJomEIAI EJ, Io A=?D EnIJ=n?A oB 7->ooJ >AD=LAI @EBBAHAnJlO, JDoKCD moIJ ?=n >ooJ LE= 2:- *OO62 =n@ 6.62 ALAnJK=llO. 6DA *A=ClA>o=H@ߣI 7->ooJ @oAInߣJ ALAn =lloM 2:- >ooJEnC oLAH 75* -JDAHnAJ, Io EJ JOFE?=llO EI >ooJA@ BHom =n 5,1O mAmoHO ?=H@,MDE?Dm=kAIJAIJEnCnAM kAHnAlIF=EnBKl. 6DA moIJ KIABKl >O-FHo@K?J oB JDA MoHk MEJD )4M +oHJAN-)& FHo?AIIoHI m=O >A JD=J MA MEll >A ?loIAH Jo @HELEnC +oHJAN-)' mKlJE-?oHA FHo?AIIoHI oH oJDAH L% =H?DEJA?JKHA ­ $­

)4M IOIJAmIMDAnJDAO=FFA=H.

4.1. OMAP35: Beagleboard 9A IJ=HJA@ FoHJEnC 2l=n ' Jo JDA *A=ClA>o=H@ MEJD JDA EnJAnJ oB KIEnC EJ =I = Im=ll, FoHJ=>lA JAHmEn=l JD=J ?oKl@ >ooJ GKE?klO E.A., MEJDoKJ JDA 1*M 2+ߣI FoMAH-on IAlB- JAIJ. 6DA FHo?AIIoH EI = # M0z @K=l-EIIKA )4M L%-= =H?DEJA?JKHA! ?DEF JDA +oHJAN-)&" MEJD L =n@ L ?=?DAI. 6DA >o=H@ ?oIJI 75 "', JDoKCD JD=J En?lK@AI no cables, no case, and no power supply. *O JDA JEmA OoK BEnEID =@@EnC FAHEFDAH=lI, FoMAHA@ 75* DK>I, FoMAH IKFFlO, =n@ ?=>lAI, EJߣI noJ Io FoHJ=>lA oH ?DA=F. 6DA >o=H@ En?lK@AI = IAHE=l FoHJ =n@ ?omFlE?=JA@ LE@Ao ?onJHollAH. 9A noM D=LA = @HELAH BoHJDEILE@Ao?onJHollAH,>=IA@on= BEHIJ @H=BJ >O2AHO@lKn@. 7nBoHJKn=JAlOJDA 6AN=I 1nIJHKmAnJI 61 OM)2 !#! 5o+& JD=J JDA *A=ClA>o=H@ EI >KElJ =HoKn@ M=I @AIECnA@ BoH ?All-FDonA oH IEmEl=H >=JJAHO-FoMAHA@ oFAH=JEon =n@ EI GKEJA ?omFlE?=JA@ =n@ IomAMD=J >KCCO. 1JI >ECCAIJ @ABA?J EI JD=J EJ l=?kI = >KElJ-En -JDAHnAJ EnJAHB=?A. 1n FHEn?EFlA MA ?oKl@ KIA 75* -JDAHnAJ @EICKIJEnC JDoKCD EJ EI >KJ MA D=LAnߣJ CoJ JDA !#!ߣI 75* Jo MoHk OAJ =n@ JDAHA =HA IomA n=IJO-lookEnC 75*-HAl=JA@ >KCIEnJDA !#!AHH=J= lEIJ. )I= HAIKlJ,JDA *A=ClA>o=H@EInߣJ HA=llOKI=>lA OAJ. 6DA +oHJAN-)& FHo?AIIoH En?lK@AI 8.2L! Blo=JEnC-FoEnJ D=H@M=HA, >KJ JDA kAHnAl @oAInߣJ OAJ I=LA =n@ HAIJoHA .27 HACEIJAHI =n@ oJDAH IJ=JA @KHEnC = ?onJANJ IMEJ?D. 6D=JߣI ok=O BoH noM >A?=KIA 5c @oAInߣJ OAJ CAnAH=JA 8.2 oF-?o@AI BoH Blo=JEnC-FoEnJ EnIJHK?JEonI,>KJ H=JDAHoF-?o@AIBoHJDA ol@)4M %#.

4.1.1. IGEPv2 and Gumstix Overo MA=nMDElA, MA >oKCDJ =n 1/-2L >o=H@ BHom 15-- En *=H?Alon=. 6DA 1/-2 EI =lIo >KElJ on JDA !#! 5o+ =n@ EI IKFFoIA@ Jo >A GKEJA IEmEl=H Jo JDA *A=ClA>o=H@ AN?AFJ JD=J EJ =@@I IomA ANJAHn=l @ALE?AI IK?D =I M>/I -JDAHnAJ LE= JDA 5M5+ ' . )lIo, JDA +27 ?=n >A HKn =J %  M0z H=JDAH JD=n # M0z, =n@ oKH FoHJ @oAI Io. 9A HKn JDA I=mA kAHnAl on JDA *A=ClA>o=H@, JDA 1/-2L >o=H@ =n@ JDA $ M0z /KmIJEN OLAHo -=HJD, MDE?D =lIo FHoLE@AI JDA 5M5+ ' -JDAHnAJ ?onJHollAH >KJ EI >=IA@ on JDA OM)2 !#! noJ !#! 5o+. 7nlEkA JDA KEHkMoo@, MA D=LAnߣJ CoJ =??AII Jo JDA N)N, Bl=ID mAmoHO Jo MoHk OAJ; EJߣI noJ MAll @o?KmAnJA@. )J lA=IJ on JDA 1/-2 >o=H@ MA D=LA En JDA 7nEN 4oom, FlKCCEnC En = ,81 ?=>lA @EI=>lAI JDA -JDAHnAJ ?onJHollAH, Io JDA 1/-2 m=OnALAH>A KI=>lA =I= JAHmEn=l. 6DA /KmIJEN@onߣJ D=LA JDEIFHo>lAm. OH@AHEnC JDA 1/-2 BHom 5F=En =n@ CAJJEnC EJ JDHoKCD 75 ?KIJomI M=I = ?D=llAnCA; 1 @onߣJ HA?ommAn@ >KOEnC onA lECDJlO EB OoK =HA En NoHJD )mAHE?=. 6DA /KmIJEN IDoKl@ >A A=IOJoo>J=EnEnIJA=@.

4.1.2. OMAP35 Performance 7nBoHJKn=JAlO, JDA HK@EmAnJ=HO ' -JDAHnAJ ?onJHollAH EI IomAMD=J lEkA JDA 8EHJAN -JDAHnAJ ?onJHollAH, =n@ JDKI ?onIKmAI AnoKCD IOIJAm JEmA Jo m=kA JDA 1/-2 B=EHlO IloM. +KHHAnJlO MA @o noJ KIA ,M) >KJ H=JDAH FHoCH=mmA@ 1/O Jo ?oFO @=J= >AJMAAn m=En mAmoHO =n@ JDA -JDAHnAJ .1.OI, MDE?D IEmFlEBEAI JDA @HELAH ?omF=HA@ Jo KIEnC ,M). 4KnnEnCoKH>An?Dm=Hk onJDA 1/-2 =n@/KmIJENoLAH M>/I-JDAHnAJ OEAl@I: 24.58u 30.07s 70.65r mk # igep 100mb 28.88u 38.38s 81.67r mk # gumstix overo 100mb ­ %­

4.2. Kirkwood: Sheevaplug, Guruplug and OpenRD 6DA oJDAH )4M FoHJI MAHA CoEnC IloMlO =n@ MA noJE?A@ JDA A=HlO =@LAHJEIEnC BoH JDA 5DAAL=FlKC, >=IA@ on M=HLAllߣI KEHkMoo@ 5o+ &&.$ & , , ' BoH 75 . 6DA FHo?AI­ IoH EI = . /0z )4M L# =H?DEJA?JKHA ?DEF JDA )4M ' $-J-5 MEJD L =n@ L ?=?DAI. 6DA 5o+ EI moHA JH=?J=>lA JD=n JDA OM)2!# 5o+, JDoKCD IJEll IomAMD=J JA@EoKI Jo EnE­ JE=lEIA. 6DA /KHKFlKC EI F=HJE?Kl=HlO EnJAHAIJEnC >A?=KIA EJ D=I JMo CEC=>EJ -JDAHnAJ EnJAHB=?AI =n@ 4J"# ?onnA?JoHI, =n@ JDKI mECDJ m=kA =n EnJAHAIJEnC BEHAM=ll oH oJDAH nAJMoHk @ALE?A, oH = IAHLAH oB IomA kEn@ A.C., IA?KHA IJoHA En Bl=ID mAmoHO, FoIIE>lO IJ=n@=lonA. )ll oB JDAIA IOIJAmI HKn JDA I=mA kAHnAl. 9A IJ=HJA@ MEJD JDA 1nBAHno KEHkMoo@ FoHJ, MDE?D DAlFA@ KI CAJ CoEnC. 9A D=LA CoJ moIJ oB JDA F=HJI JD=J MA ?=HA =>oKJ MoHkEnC, En?lK@EnC=??AIIJoBl=IDmAmoHO=n@ALAnJDA >Ez=HHA ?HOFJoCH=FDE?=??AlAH=JoH.

4.2.1. Kirkwood Performance 6DA EnJACH=l M=HLAll $ CEC=>EJ -JDAHnAJ ?onJHollAH =KJonomoKIlO FAHBoHmI ,M) En =n@oKJ oB >KBBAHHEnCI,IoJDA FoHJ EIB=EHlOzEFFO=n@GKEJA KI=>lA: 16.66u 8.39s 31.44r mk # guruplug gb

5. The Legendary AMD64 PC Port OnA FoHJ JD=J MA D=LAnߣJ @onA mK?D MoHk on l=JAlO EI JDA amd64 FoHJ. .oH = IJ=HJ, EJߣI >=IA@ on = non-IJo?k kAHnAl 9k >AJJAH IKEJA@ Jo $"->EJ m=?DEnAI. .oH AN=mFlA, EJ KIAI varargs Jo ANJH=?J IOIJAm ?=ll =HCKmAnJI. 6DA EnEJE=l J=HCAJ M=I )M, K& IOIJAmI BoH ,o- MoHk IALAH=l OA=HI =Co =n@ JDA FoHJ EI = mEnEm=l +27 IAHLAH kAHnAl. 6DA ,o- MoHk ?D=nCA@@EHA?JEon=n@JDAHA D=I>AAnlEJJlA @ALAloFmAnJ oB JDA FoHJ IEn?A. 1J @oAI noJ HKn !&$ >En=HEAI. 5omA -JDAHnAJ ?onJHollAHI moIJlO DECDAH-FAHBoHm=n?A onAI =n@ 7)46I D=LA @HELAHI, JOFE?=llO EmFoHJA@ BHom JDA 2l=n ' 2+ FoHJ. 6DAIA JDEnCI @o noJ OAJ MoHk: =K@Eo, LE@Ao, 75*, BloFFEAI, @EIkI, =n@ l=FJoF IJKBB IK?D =I 2+M+1). 5omA oB JDEI MEll >A A=IO Jo EmFoHJ >KJ EJ MoKl@ >A nE?A Jo J=kA JDA oFFoHJK­ nEJO Jo @HoF lAC=?O IKFFoHJ BoH ol@ @ALE?AI =n@ FHo?AIIoHI MDAn EmFoHJEnC. 0oMALAH, LE@Ao MEll >A F=EnBKl: JDA kAHnAl AEJDAH D=I Jo HKn JDA 8-5) *1O5 En $->EJ HA=l mo@A oH AmKl=JA EJ. 7IEnC JDEI FoHJ =lIo HAGKEHAI 6[] =n@ libmach amd64 IKFFoHJ, =n@ = mo@EBEA@ 9load, =ll oB MDE?DANEIJ.

6. Performance Summary 6=>lA IKmm=HEIAI JDA =>oLA time  oKJFKJ lEnAI IoHJA@ >O KIAH-mo@A JEmA, IloMAIJ BEHIJ, =n@ =@@I oJDAH IOIJAm ?D=H=?JAHEIJE?I. OB JDAIA IOIJAmI, onlO JDA 8EHJAN # l=?kI =n L ?=?DA. 6DA ߢEIIKAߣ ?olKmn EI JDA ?l=EmA@ m=NEmKm nKm>AH oB EnIJHK?JEonI JD=J m=O >A EIIKA@ FAH ?lo?k ?O?lA. M=?DEnAI =>oLA JDA mE@@lA @ELE@EnC lEnA D=LA -JDAHnAJ ?onJHollAHIJD=J @onߣJ KIA >KBBAHHEnCI. ) BAM o>IAHL=JEonI: JDA IK>-/0z @K=l-EIIKA m=?DEnAI =HA JDA IloMAIJ En oKH I=mFlA. 6DA IloMAIJ m=?DEnAI =ll D=LA ?lKmIO ,M)/.1.O/-JDAHnAJ ?om>oI =n@ JDA B=IJAIJ =ll D=LA -JDAHnAJ ?onJHollAHI JD=J KIA >KBBAH HEnCI =n@ EnEJE=JA ,M) =KJonomoKIlO noJA JDA L=HE=JEonEnIOIJAmJEmAI. ­ &­

______JEmAI n=mA ?FKM0z -JDAHnAJ EIIKA "".! K!#.$I''.&H LEHJAN# " /> &.&&K!&.!&I& .$%H CKmIJENoLAHo $ M> ______".#&K!.%I%.$#H ECAF %  M> .%&K ." I"'."&H #&$F? # M> $.$$K&.!'I! .""H CKHKFlKC ,  /> .'#K .!"I&.! H =m@k&F? ,  /> ______. $K ."$I". H GK=@NAonF? ,# />

6=>lA :2AHBoHm=n?A 5Kmm=HO 7. Hardware Documentation ,o?KmAnJ=JEon BoH JDA 8EHJAN F=HJI M=I KnEBoHmlO >AJJAH JD=n BoH JDA )4M F=HJI, l=HCAlO >A?=KIA 1*M MHoJA = loJ oB JDA 2oMAH2+ @o?KmAnJ=JEon. :ElEnNߣI ?onJHE>KJEonI MAHA lAII ?lA=H, MEJD BEnA FoEnJI IomAJEmAI ECnoHA@. 5o BoH JDA 8EHJAN FoHJI, EJ M=I KIK=llOFoIIE>lA JoIKIFAn@@EI>AlEAB,JHKIJ JDA @o?KmAnJ=JEon=n@CAJ JDEnCIJoMoHk.

7.1. ARM Documentation 6DA )4M FoHJI =HA =noJDAH IJoHO. 6DAHA =HA =J lA=IJ JDHAA HABAHAn?A m=nK=lI nAA@A@ BoH A=?D FoHJ: JDA FHo?AIIoH =H?DEJA?JKHA m=nK=l BHom )4M, JDA FHo?AIIoHm=nK=l BHom )4M =n@ IomAJEmAI =noJDAH BHom JDA 5o+ LAn@oH, =n@ JDA 5o+ m=nK=l BHom M=HLAll oH 61. 6DA l=JJAH JMo JOFAI oB m=nK=lI FoEnJ Jo JDA A=HlEAH m=nK=lI BoH IFA?EBE?I. .oH AN=mFlA, JDA 5o+ m=nK=l MEll FoEnJ Jo JDA FHo?AIIoH m=nK=l BoH @AJ=ElI oB DoM JDA FHo­ ?AIIoH @oAI IomAJDEnC, =n@ EJ En JKHn MEll FoEnJ Jo JDA ?oHHAIFon@EnC =H?DEJA?JKHA m=n­ K=l Jo @AI?HE>A = ?ommon mA?D=nEIm. 1B OoKߣHA lK?kO, JDA >o=H@ m=nKB=?JKHAH MEll En?lK@A IomA >o=H@@o?KmAnJ=JEonJoo. 6DA =H?DEJA?JKHA HABAHAn?A m=nK=lI BHom )4M D=LA >AAn CAJJEnC >AJJAH: moHA FHA?EIA =n@ ?omFlAJA, lAII IlEFFAHO. 6DA +27 =n@ 5o+ JA?DnE?=l HABAHAn?A m=nK=lI, DoMALAH, ?om>EnA ANJHAmA LAH>oIEJO MEJD EmFHA?EIEon, En?omFlAJAnAII, >KCCEnAII =n@ = CAnAH=l l=?k oB HECoKH JD=J EI m=@@AnEnC. 6DAHA EI = JAn@An?O Jo MHEJA ߢߢJDEI HACEIJAH EI KIA@ Jo @o:ߣߣ,MEJDoKJ ANFl=EnEnCDoM oHMDO. OnA An@I KF BlEFFEnC >AJMAAn JDA JDHAA oH BoKH m=nK=lI, =n@ JDA OM)2!# m=nK=l =lonA EI = IEnClA 2,. BElA oB !,# F=CAI, Io D=LEnC = Coo@ 2,. LEAMAH EI AIIAnJE=l. !,# F=CAI IDoKl@ >A AnoKCD Jo @AI?HE>A =lmoIJ =nOJDEnC, OAJ EJߣI En?omFlAJA; GKEJA =n=??omFlEIDmAnJ. 6DA J=>lA oB ?onJAnJI,BECKHAI=n@J=>lAI=lonA EI $F=CAIlonC. 2AHD=FIIAF=H=JA FHoCH=mmAHIߣ HABAHAn?A m=nK=lI=HA nAA@A@.

7.2. Poor SoC Design and Documentation 6DA 5o+ m=nK=lI =HA F=HJE?Kl=HlO FooH. 6DA 5o+I JDAmIAlLAI =FFA=H Jo D=LA >AAn Il=FFA@ JoCAJDAH BHom ANEIJEnC EnJAllA?JK=l FHoFAHJO JD=J JDA ?omF=nEAI D=@ lOEnC =HoKn@, MEJDoKJ mK?D JDoKCDJ BoH DoM JDAO mECDJ >A KIA@ JoCAJDAH, =n@ JDA m=nK=lI HABlA?J JDEI: A=?D ?D=FJAH @AI?HE>AI = IAF=H=JA IJ=n@=lonA @ALE?A. 6DA m=nK=lI =FFA=H Jo >A MHEJJAn BoH oJDAH D=H@M=HA @AIECnAHI oH EmFlAmAnJoHI =n@ m=kA m=nO =IIKmF­ JEonI =>oKJ >=?kCHoKn@ knoMlA@CA. 6DAHA EI lEJJlA ?oDAHAnJ ANFl=n=JEon oB MDO JDEI I=?k oB ?omFonAnJI M=I IlKnC JoCAJDAH oH MD=J JDA EnJAH?onnA?JEonI =HA oH DoM OoK mECDJ nAA@ Jo KIA JDAm Jo @o IomAJDEnC, IK?D =I =??AII JDA Bl=ID mAmoHO oH@HELA JDA LE@AooH-JDAHnAJ ?onJHollAH. 6DAHA EI = CHA=J @A=l oB loM-lALAl ANFl=n=JEon oB JDA JA@EoKI C=mAI oB ߢMoJDAH-m=O-1ߣ ­ '­

JD=J onA mKIJ Fl=O Jo ALAn CAJ JDA D=H@M=HA Jo BKn?JEon. .oH AN=mFlA, ?lo?kI D=LA Jo >A An=>lA@, >A?=KIA JDAO =HAnߣJ =lM=OI =lHA=@O An=>lA@. 7nJEl JDAO =HA An=>lA@, =??AIIEnC IomA @ALE?A HACEIJAHI ?=KIAI =@@HAII B=KlJI. )lIo, L=HEoKI F=HJI oB JDA 5o+I D=LA Jo D=LA JDAEH FoMAH JKHnA@ on. )J lA=IJ onA 5o+ D=I EnJAHn=l ߢBEHAM=llIߣ JD=J D=LA Jo >A @EI=>lA@ oH IK>LAHJA@. 1n CAnAH=l, JDA D=H@M=HA @oAInߣJ ?omA KF En = I=nA IJ=JA =n@ 7->ooJ @oAInߣJ =lM=OI BEN JD=J JDoKCD EJ @oAI lA=LA IomA JDEnCI En = I=nA IJ=JA. .=ElEnC JD=J, JDA @o?KmAnJ=JEon oKCDJ Jo ?onJ=En = ?on?EIA =n@ ?omFlAJA lEIJ oB AN=?JlO MD=J IJAFI=HA HAGKEHA@JoEnEJE=lEIA = F=HJE?Kl=H@ALE?A.

7.3. Marvell Documentation ) @H=M>=?k oB KIEnC JDA KEHkMoo@ 5o+ EI JD=J M=HLAll IAAm Jo HAC=H@ =lmoIJ =ll oB JDAEH m=nK=lI =I FHoFHEAJ=HO. /ELAn JDAEH loM GK=lEJO, M=HLAll m=O jKIJ >A JHOEnC Jo HA@K?A JDAEH Am>=HH=IImAnJ. )l?=JAl-LK?AnJ D=I = non-@EI?loIKHA =CHAAmAnJ MEJD M=HLAll, >KJ ALAn MEJD JD=J, MA =HA noJ =>lA Jo CAJ =ll JDA @o?KmAnJ=JEon MA nAA@. +onJH=HO Jo M=HLAllߣI >AlEAB, LEnKN oH 7->ooJ @HELAHI =HA noJ = IK>IJEJKJA BoH Coo@ D=H@M=HA @o?KmAnJ=JEon noH BoH Kn@AHIJ=n@EnC, >KJ MA D=LA IomAJEmAI D=@ Jo HAIoHJ JoHA=@EnCJDAm.

7.4. Board Documentation /lo>=l 6A?DnoloCEAI B=>HE?=JA@ JDA 5DAAL=FlKC, /KHKFlKC, AJ?. 15-- En *=H?Alon= m=@A JDA 1/-2L >o=H@, =n@ JDA *A=ClA>o=H@ M=I =n oFAn-IoKH?A D=H@M=HA FHojA?J. 6DA *A=ClA>o=H@ @o?KmAnJ=JEon EI FHAJJO JDoHoKCD. 6DA 1/-2L @o?KmAnJ=JEon EI lAII JDoHoKCD, IFA?EBE?=llO MDAn ?oLAHEnC =??AII Jo Bl=ID mAmoHO MDE?D @EBBAHI BHom JDA *A=ClA>o=H@ߣI =n@ JDA @ALE?AI =@@A@ Jo JDA IJo?k *A=ClA>o=H@, noJ=>lO -JDAHnAJ. /lo­ >=l 6A?DnoloCEAI D=LA @onA = FHAJJO Coo@ jo> oB @o?KmAnJEnC JDA FlKCI, JDoKCD JDA 5DAAL=FlKCEI>AJJAH?oLAHA@JD=nJDA /KHKFlKC.

8. Lessons Learned and Recommendations

8.1. Kernel Debugging -BBoHJ Jo ?onnA?J JDA L=HEoKI J6)/ EnJAHB=?AI LE= 75* Jo db oH acid MoKl@ lEkAlO F=O oBB MDAn JDA FHo?AIIoH mOIJAHEoKIlO CoAI =M=O. -LAn jKIJ D=LEnC 7->ooJ FHEnJ JDA FHo?AIIoHߣIIJ=JA =J JDA EnIJ=nJ JD=J 7->ooJ HAC=EnA@?onJHol MoKl@DAlF. ,A>KCCEnC ?=n >A =IIEIJA@ >O D=LEnC = @A=@-IEmFlA L=HE=nJ oB iprint JD=J MEll =lM=OI MoHk, En?lK@EnC >ABoHA JDA EnJAHHKFJ ?onJHollAH EI EnEJE=lEIA@, En EnJAHHKFJ-IAHLE?A HoK­ JEnAI,=n@MDAnEnJAHHKFJI=HA m=IkA@. ) lEJJlA @A>KCCEnC ?o@A En /sys/src/9/port/portclock.c ?=n @E=CnoIA EnBE­ nEJA looFI ?=KIA@ >O En?oHHA?J EmFlAmAnJ=JEon oB JDA ?lo?k FHEmEJELAI. )n =@@A@ JAIJ En /sys/src/9/port/xalloc.c ?=n @AJA?J = ?O?lA En JDA Hole lEIJ =n@ =LoE@ =n EnBEnEJA looF.

8.2. Hardware Sanity (or Lack Thereof) 6DAHA EI = CHA=J m=HkAJ oFFoHJKnEJO BoH IomAonA Jo >KEl@ = ?DA=F IAnIE>lA CAnAH=l- FKHFoIA )4M IOIJAmMEJDCoo@@o?KmAnJ=JEon,IEn?A JDAHA =FFA=HJo>A nonA noM. 0=H@M=HA ?=?DA ?oDAHAn?O DAlFI ?oHHA?JnAII =n@ FAHBoHm=n?A, AIFA?E=llO En mKlJEFHo­ ?AIIoHIOIJAmI. 6DA FAHBoHm=n?A oB =n -JDAHnAJ ?onJHollAH =I @E?J=JA@ >O EJI @AIECn ?=n @AJAHmEnA JDA KI=>ElEJO oB = 2l=n ' FoHJ. 9A IDoKl@ >A F=IJ JDA AH= oB FHoCH=mmA@1/O =n@.1.OI=n@ ­!­

IAF=H=JA ,M) AnCEnAI, =n@ klK@CAI lEkA -JDAHnAJ LE= 75*, BoH -JDAHnAJ ?onJHollAHI. )ll BKJKHA -JDAHnAJ ?onJHollAHI IDoKl@ FAHBoHm ,M) Jo =n@ BHom >KBBAH HEnCI MEJDoKJ nAA@­ EnC DoIJ EnJAHLAnJEon Jo EnEJE=JA A=?D F=?kAJ JH=nIBAH. 1JߣI noJ nA?AII=HO Jo D=LA =ll JDA BA=JKHAI oB JDA M=HLAll $, MDE?D CoAI IomAMD=J oLAH>o=H@, JDoKCD. )lIo, CEC=>EJ -JDAHnAJ EIFHAJJO?DA=FnoM =n@oKCDJ Jo>A IJ=n@=H@. 0=H@M=HA IDoKl@?omA oKJ oB HAIAJ En= I=nA =n@KI=>lA IJ=JA. 0=H@M=HA @o?KmAnJ=JEon IDoKl@ En?lK@A IOIJAm FHoCH=mmAHI =I F=HJ oB JDA EnJAn@A@ =K@EAn?A, =n@ IDoKl@ >A FK>lE?, ?omFlAJA, ?lA=H =n@ ?on?EIA. /21O CAnAH=l-FKHFoIA 1/O FEnI =n@ IEmEl=H Ell-@ABEnA@ >EJI, =n@ JDAEH KIAI, nAA@ Jo >A @o?KmAnJA@ En CHA=J @AJ=El =J JDA +27, 5o+ =n@ >o=H@ lALAlI Jo =LoE@ JDA BEnCAH-FoEnJEnC Io oBJAn IAAn En ANEIJEnC m=nK=lI, MDE?D m=kAI EJ m=@@AnEnClO @EBBE?KlJ Jo FEn @oMn AN=?JlO MD=J mKIJ >A @onA Jo CAJ IomA @ALE?A Jo MoHk. 1n CAnAH=l, ?ommAnJI lEkA ߢIAA OoKH >o=H@ @o?K­ mAnJ=JEon BoH IFA?EBE?Iߣ =HA KnDAlFBKl KnlAII JDA >o=H@ @o?KmAnJ=JEon =?JK=llO @oAI @AI?HE>A IEmFlO =n@ @EHA?JlO MD=JߣI nAA@A@. 6oo oBJAn JDAIA FoEnJAHI =HA jKIJ ?oF- oKJI, MEJD no onA J=kEnC HAIFonIE>ElEJO BoH CAJJEnC =ll JDA nA?AII=HO EnBoHm=JEon FK>­ lEIDA@. 6DA IoHJ oB JHA=IKHA DKnJ JD=J MA Kn@AHJook Jo @AJAHmEnA JDA 143 nKm>AH =n@ mAmoHO =@@HAII BoH JDA 1/O HACEIJAHI oB JDA 1/-2ߣI ' -JDAHnAJ ?onJHollAH IDoKl@ noJ D=LA Jo>A HAFA=JA@.

9. Acknowledgements 5=lL= 2AEHó=n@MA?DEAl LKkkEAnFoHJA@n=JELA 1nBAHnoJoJDA KEHkMoo@5o+. 4=A M?LAll=n DAlFA@ mA @A?HOFJ LolKmEnoKI OAJ oBJAn KnDAlFBKl D=H@M=HA @o?KmAnJ=­ JEon. 0A =n@+l=K@E= +ollOAHFHoLE@A@KIABKl ?ommAnJIon@H=BJIoB JDEIF=FAH. 6DAIA FoHJI MAHA m=@A BA=IE>lA >O JDA ANEIJEnC 2l=n ' 2oMAH2+ =n@ )4M ?omFElAH IKEJAI,=n@m=@A A=IEAH>OANEIJEnC2l=n'kAHnAlIBoHoJDAH2oMAH2+ =n@)4M IOIJAmI.

10. References

. )4M, ARM Architecture Reference Manual,,,1  1, #. . )4M, ARM926EJ−S Technical Reference Manual,,,1  '&-, &. !. )4M, ARM Architecture Reference Manual, ARM v7−A and ARM v7−R edition, ,,1 "$*, &. ". )4M, Cortex−A8 Technical Reference Manual,,,1 !""J, '. #. /AoBB +ollOAH +D=HlAI .oHIOJD, ߢߢ) +=?DA Jo *=ID BoH '2,ߣߣ Fifth International Work• shop on Plan 9,5A=JJlA O?Jo>AH  . $. *o> .l=n@HAn=, ߢߢ)@@EnC )FFlE?=JEon 5KFFoHJ BoH = NAM )H?DEJA?JKHA En 2l=n ',ߣߣ En Plan 9 Programmer’s Manual, Fourth Edition )FHEl  . %. 1*M, PPC440x5 CPU Core User’s Manual, Preliminary, 5) "- $ !-!, JKlO #, !. &. 6AN=I 1nIJHKmAnJI, OMAP35x Applications Processor Technical Reference Manual, 5247.'&,,O?Jo>AH '. '. M=HLAll, Unified Layer 2 (L2) Cache for Sheevaࡊ CPU Cores Addendum, M8- 5 "&#&-,4AL.*,5AFJAm>AH &, &. . M=HLAll, 88F6180, 88F6190, 88F6192, 88F6280, and 88F6281 Integrated Con• troller Functional Specifications,M8-5 "&$-,4AL.-,5AFJAm>AH %, '. ­! ­

. 5M5+, High−Performance 16−bit Non−PCI 10/100 Ethernet Controller with Vari• able Voltage I/O,L)N' @=J=IDAAJ 4ALEIEon .$, -"-&. . :ElEnN, PowerPC Processor Reference Guide, 7/ L . , @AI?HE>AI "#,#, J=n­ K=HO ', %. !. :ElEnN, Embedded Processor Block in Virtex−5 FPGAs Reference Guide, 7/  L .$,@AI?HE>AI"":#,J=nK=HO , '. A Cache to Bash for

Geoff Collyer *All L=>oH=JoHEAI MKHH=O0Ell,NAM JAHIAO%'%" [email protected]−labs.com

Charles Forsyth 8EJ= NKoL= MMM.LEJ=nKoL=.?om [email protected]

)*564)+6

9A nAA@A@ Jo HA@K?A JDA lo=@ on JDA BElA IAHLAH ID=HA@ >O JDoKI=n@I oB no@AI En = *lKA /AnA 2l=n ' ?lKIJAH. 2l=n ' D=@ JMo ANEIJEnC ?=?DEnC mA?D=nEImI BoH '2 BElA IAHLAHI: = Lol=JElA ?=?DA ?onJHollA@ >O devmnt, =n@ = FAHIEIJAnJ @EIk->=IA@?=?DA m=n=CA@>OJDA KIAH-lALAl IAHLAH cfs. *oJD IAnJ JDA IAHLAH =ll '2 HAGKAIJI AN?AFJ HA=@I I=JEIBEA@ >O JDA ?=?DA. Cfs M=I GKE?klO ?onLAHJA@ Jo = ramcfs JD=J KIA@ JDA l=HCA mAmoHO oB = *lKA /AnA 1/O no@A EnIJA=@ oB = @EIk, >KJ moIJ '2 JH=BBE? IJEll F=IIA@ JDHoKCD. ) HA@AIECn FHo@K?A@ fscfs, MDE?D >HA=kI JDA @EHA?J lEnk >AJMAAn EJI ?lEAnJߣI '2 JH=nI=?JEonI =n@ JDoIA EJ m=kAI Jo JDA IAHLAH, FHo@K?EnC= @H=m=JE?HA@K?JEonEnJH=BBE?IAAn>OJDA IAHLAH.

Introduction )I F=HJ oB = FHojA?J , ANFloHEnC =lJAHn=JELAI En @EIJHE>KJA@ IOIJAmI EnBH=IJHK?JKHA on KlJH=I?=lA Fl=JBoHmI, MA FoHJA@ 2l=n ' BHom *All L=>I! Jo IALAH=l mo@AlI oB 1*MߣI *lKA /AnA IOIJAm. *lKA /AnA" ?omFHEIAI KF Jo $#,#!$ ?omFKJA no@AI =n@ , " 1/O no@AI, MDE?D =HA F=HJEJEonA@ EnJo FHo?AIIEnC IAJI oH psets. -=?D FIAJ D=I=n1/O no@A FHoLE@EnC IOIJAm IAHLE?AI Jo KF Jo $" ?omFKJA no@AI. OnlO JDA 1/O no@AI =HA ?on­ nA?JA@ Jo =n ANJAHn=l -JDAHnAJ. -=?D no@A on JDA *lKA /AnA/2 mo@Al D=I " 2oMAH2+ FHo?AIIoHI. No@AI D=LA no FAHm=nAnJ IJoH=CA AN?AFJ = JEnO N84)M. )ll IJoH=CA BoH FHoCH=mI =n@ BElAI EI FHoLE@A@ >O ANJAHn=l BElA IAHLAHI, =??AIIA@ >O JDA 1/O no@AI LE= -JDAHnAJ, =n@ =??AIIE>lA Jo JDA +27 no@AI onlO LE= = IFA?E=lEIA@ nAJMoHk ?onnA?JEnC JDAmJoJDA 1/O no@AI. 1n oKH ANFAHEmAnJ=l AnLEHonmAnJ, MA HKn 2l=n ' JDHoKCDoKJ, MEJD @EBBAHAnJ ?onBECKH=­ JEon =n@ EnEJE=lEI=JEon BoH +27 no@AI =n@ 1/O no@AI. L=?kEnC = n=JELA 2l=n ' BElA IAHLAH =J JDA *lKA /AnA IEJA, MA IAHLA BElAI BHom = LEnKN IAHLAH HKnnEnC DoIJA@ 1nBAHno.# )ll no@AI >ooJ MEJD = >KElJ-En BElA IOIJAm paqfs" JD=J FHoLE@AI = lEmEJA@ IAJ oB BElAI BoH >ooJIJH=F. OHECEn=llO, A=?D 1/O no@A EmFoHJA@ = BKll BElA IOIJAm BHom JDA 1nBAHno IAHLE?A on LEnKN, >oKn@ EJ EnJo = moHA Al=>oH=JA n=mA IF=?A KIA@>OoKHmo@Al BoH@EIJHE>KJA@?omFKJ=­ JEon,$ =n@ m=@A JD=J ?omFoIEJA n=mA IF=?A =L=El=>lA Jo EJI +27 no@AI KIEnC exportfs". +onIAGKAnJlO ALAHO non-lo?=l BElA =??AII FAHBoHmA@ =J = +27 no@A M=I BoHM=H@A@ >O JDA 1/O no@A Jo JDA BElA IAHLAH. 1J M=I o>LEoKI JD=J D=LEnC =ll no@AI KlJE­ m=JAlO IAn@ =ll BElA IAHLE?A HAGKAIJI @EHA?JlO oH En@EHA?JlO Jo = IEnClA 2l=n ' BElA IAHLAH ­!!­

MoKl@ >A IloM, >KJ MA M=nJA@ Jo Bo?KI on @ALAloFEnC oKH mo@Al oB ?omFKJ=JEon, >ABoHA MoHHOEnC =>oKJ m=kEnC EJ ABBE?EAnJ. 7nBoHJKn=JAlO, =I MA H=n ANFAHEmAnJI on ALAn mo@AIJ ?onBECKH=JEonI, EJ >A?=mA ?lA=H JD=J JDA n=ELA IJHK?JKHA lA@ Jo B=ElKHAI, =n@ =n KnKI=>lA IOIJAm. 1n F=HJE?Kl=H, JDA LEnKN IAHLAH H=n oKJ oB BElA @AI?HEFJoHI MEJD onlO = BAM DKn@HA@ no@AI, >KJ Jo >A B=EH ALAn = n=JELA BElA IAHLAH MoKl@ HKn IDoHJ oB IomA HAIoKH?A ALAnJK=llO. 6o ?omFAnI=JA, MA ?oKl@ JDA HAFlE?=JA JDA BElA IOIJAm =?HoII m=nO IAHLAHI, >KJ =ll JDA HAGKAIJI ߞ =n@ JDA @=J= ߞ MoKl@ IJEll JH=LAHIA JDA I=mA nAJMoHk. 6DAHA EI =n =lJAHn=JELA IJHK?JKHA JD=J ?=n I?=lA MEJD JDA nKm>AH oB no@AI: EJ =HH=nCAI JDA no@AI EnJo = JHAA. 9A ?=n JDAn =LoE@ JH=nImEJJEnC HA@Kn@=nJ ?oFEAI oB JDA @=J= >O EnJHo@K?EnC ?=?DEnC EnJo JDA JHAA.% 9A ?=n BKHJDAH =LoE@ nAA@lAII @KFlE?=JEon oB BElA IOIJAm oFAH=JEonI =?HoII =ll no@AI >O ?=?DEnC JDA HAIKlJI oB = CELAn IAJ oB oFAH=JEonI BoHl=JAHKIA EB JD=J IAJ HA?KHI.

Underlying assumptions and requirements 2l=n ' EI HKnnEnC on m=nO JDoKI=n@I oB no@AI, IKFFoHJEnC = BAM I?EAnJEBE? ?omFKJEnC FHoCH=mI BoH = CELAn HKn. 6DA FHoCH=mI =HA JOFE?=llO = BAM mAC=>OJAI, =n@ En?HA=I­ EnClO HAGKEHA = ?ollA?JEon oB IKFFoHJEnC IOIJAm BElAI, noJ jKIJ 2l=n ' ANA?KJ=>lAI, >KJ JDA lE>H=HEAI BoH I?HEFJEnC l=nCK=CAI IK?D =I 2AHl oH 2OJDon. 5K?D ID=HA@ BElAI =HA HA=@, noJ KIK=llO MHEJJAn; BElAI JD=J =HA MHEJJAn =HA KnlEkAlO Jo >A ID=HA@ ?on?KHHAnJlO. 9HEJA HAGKAIJI =HA Kn?ommon. *EC @=J= BElAI ?onIKmA@ oH FHo@K?A@ >O JDA =FFlE?=JEon =HA m=n=CA@ >O =noJDAH IAHLE?A, BoH EnIJ=n?A JDHoKCD ?D=nnAlI FHoLE@A@ >O JDA ?lKIJAHEnC IoBJM=HA.$ ,KHEnC >oJD EnEJE=lEI=JEon =n@ IK>IAGKAnJ FD=IA ?D=nCAI oB =n =FFlE?=JEon, IOIJAm ?=ll JH=?AI IDoM JD=J IEmEl=H IAJI oB ?omm=n@I =n@ BElA =??AIIAI =HA ANA?KJA@ on=ll +27 no@AI,IomAJEmAI=J nA=HlOJDA I=mA JEmA. )lJDoKCD EnEJE=llO MA MoKl@ >KEl@ JDA ?=?DEnC IJHK?JKHA ANFlE?EJlO, JDA @AIECn IDoKl@ =lloM ANJAnIEon Jo IKFFoHJ = JHKlO DEAH=H?DE?=l ?=?DA, FAHD=FI KIEnC IomA E@A=I BHom -nLoO.%

9P .EHIJ, = GKE?k HALEAM oB HAlAL=nJ =IFA?JI oB JDA '2 FHoJo?ol. ) file server En 2l=n ' EI =nO FHoCH=m JD=J EmFlAmAnJI JDA IAHLAH IE@A oB JDA BElA IAHLE?A FHoJo?ol, '2.& ) '2 ?lEAnJ IAn@I = HAGKAIJ Jo = '2 IAHLAH =n@ HA?AELAI = HAFlO. ) '2 IAHLAH EI F=IIELA: EJ CAnAH=JAI no mAII=CA AN?AFJ En HAIFonIA Jo =n ANFlE?EJ HAGKAIJ BHom JDA ?lEAnJ. -=?D HAGKAIJ D=I = tag JD=J nKm>AHI JDA HAGKAIJ, =n EnJACAH type JD=J @AnoJAI JDA @AIEHA@ oFAH=JEon, =n@ = IAJ oB F=H=mAJAH L=lKAI BoH JDA oFAH=JEon. 2=H=mAJAHI ?=n >A EnJA­ CAHI, IJHEnCI, >OJA =HH=OI, =n@ IJHK?JKHA@ L=lKAI IK?D =I Qid =n@ Dir. 6DA FoIEJEon =n@ JOFA oB A=?D F=H=mAJAH EI ?omFlAJAlO @AJAHmEnA@ >O JDA oFAH=JEon JOFA. 6DAHA =HA no L=HE=nJI. 4AFlEAID=LA = IEmEl=HIJHK?JKHA. 6DA HAFlOJo= HAGKAIJ D=I= J=C AGK=l Jo JDA J=C oB JDA HAGKAIJ, = JOFA @AHELA@ BHom JDA HAGKAIJ JOFA, =n@ = IAJ oB HAIKlJI JD=J @AFAn@I on JD=J JOFA. )lJAHn=JELAlO, = IAHLAH ?=n HAIFon@ Jo =nO HAGKAIJ MEJD =n AHHoH mAII=CA. 6=CI =lloM JDA IAHLAH Jo I=JEIBO 1/O HAGKAIJI oKJ oB oH@AH, =lJDoKCD JD=J @oAInoJ D=FFAnDAHA. )KJDAnJE?=JEon @=J= EI ?=HHEA@ =I oF=GKA @=J= AN?D=nCA@ KIEnC Tread =n@ Rread HAGKAIJI JDHoKCD = IFA?E=l fid AIJ=>lEIDA@ >O = Tauth HAGKAIJ. 6DKI, onlO JDA An@­ FoEnJInAA@JoknoM JDA BoHm=JI=n@?onJAnJ oB JDA =KJDAnJE?=JEon@=J=. *A?=KIA JDA mAII=CA BoHm=JI =HA IEmFlA =n@ ?omFlAJAlO @ABEnA@, =n@ =KJDAnJE?=JEon @=J= EI D=n@lA@ ?lA=nlO, onA ?=n A=IElO MHEJA = L=HEAJO oB IAHLE?AI JD=J =?J =I ­!"­

EnJAHmA@E=HEAI Jo '2 ?onLAHI=JEonI. 1n F=HJE?Kl=H, = ?=?DEnC IAHLE?A ?=n IEmFlO EnJAH­ FoIA EJIAlB on = '2 ?onnA?JEon. 6DA @AIECn oB =nO '2 ?=?DEnC IAHLE?A EI @HELAn >O ?on­ IE@AHEnC JDA @AIEHA@ HAIFonIA Jo JDA HAGKAIJI En JDA FHoJo?ol, En mK?D JDA M=O JD=J = ?omFElAH @AIECn EI @HELAn >O JDA =>IJH=?J IOnJ=N oB EJI l=nCK=CA. 6DAO =HA lEIJA@ En 6=>lA . ______ Tversion tag msize version IJ=HJ = nAM IAIIEon   Tauth tag afid uname aname oFJEon=llO =KJDAnJE?=JA IK>IAGKAnJ =JJ=?DAI     Tattach tag fid afid uname aname =JJ=?D Jo JDA HooJ oB = BElA JHAA   Twalk tag fid newfid nwname nwname*wname M=lk KF oH @oMn En JDA BElA JHAA   Topen tag fid mode oFAn = BElA @EHA?JoHO ?DA?kEnC FAHmEIIEonI   Tcreate tag fid name perm mode ?HA=JA = nAM BElA   Tread tag fid offset count HA=@ @=J= BHom =n oFAn BElA     Twrite tag fid offset count data MHEJA @=J= Jo =n oFAn BElA   Tclunk tag fid @EI?=H@ = BElA JHAA HABAHAn?A EA, ?loIA   Tremove tag fid HAmoLA = BElA   Tstat tag fid HAJHEALA = BElAߣI =JJHE>KJAI   Twstat tag fid stat IAJ = BElAߣI =JJHE>KJAI    ______Tflush tag oldtag BlKID FAn@EnC HAGKAIJI AC, on EnJAHHKFJ 

Table 1 '2HAGKAIJI

Existing caching support 2l=n ' D=I lonC En?lK@A@ JDA ?=?DA BElA IOIJAm cfs, = KIAH-lALAl BElA IAHLAH EnJAHFoIA@ on JDA ?onnA?JEon >AJMAAn = 2l=n ' ?lEAnJ =n@ = HAmoJA BElA IAHLAH. 1J ?=?DAI BElA @=J= on = lo?=l @EIk, Jo HA@K?A l=JAn?O. 1J EnJAH?AFJI =ll '2 AN?D=nCAI on JDA ?onnA?JEon. MoIJ mAII=CAI =HA IAnJ on Kn?D=nCA@, >KJ EJ =@@I =nO BElA @=J= EJ IAAI Jo JDA ?=?DA, =n@ I=JEIBEAI BElA HA=@I BHom JDA ?=?DA EB FoIIE>lA. 6DA ?=?DA EI MHEJA-JDHoKCD, Io JDA ?=?DA@ @=J= EI nALAH moHA HA?AnJ JD=nJDA IAHLAHߣI. .ElAI=n@BElA @=J= =HA >oJDkAFJ on = lA=IJ-HA?AnJlO-KIA@ >=IEI, KF Jo JDA IEzA oB JDA @EIk F=HJEJEon =llo?=JA@ Jo JDA ?=?DA. Cfs KIAI JDA 3E@ L=lKA HAJKHnA@ >O A=?D open Jo @AJA?J =n@ @EI?=H@ oKJ-oB-@=JA ?=?DA@ @=J=. 6DA ?=?DA FAHIEIJI on = @EIk F=HJEJEon >AJMAAn >ooJI, >KJ >A?=KIA JDA ?=?DA EIMHEJA-JDHoKCDEJ ?=nIEmFlO>A HABoHm=JJA@EB EnL=lE@. 1n JDA .oKHJD -@EJEon, 2l=n ' =?GKEHA@ = kAHnAl-lALAl ?=?DA. 1J EI =n oFJEon=l kAHnAl ?omFonAnJ, =lJDoKCD EJ EI KIK=llO ?onBECKHA@. 1J mKIJ =lIo >A ANFlE?EJlO An=>lA@, >O JDA M+)+0- oFJEon oB JDA IOIJAm ?=ll, >A?=KIA EJ ?D=nCAI JDA IAm=nJE?I oB =??AII Jo BElA IJHK?JKHAI IOnJDAIEIA@ on JDA BlO, En?lK@EnC @ALE?AI =n@ IAHLE?AI IK?D =I upasfs". 1B FHAIAnJ =n@ An=>lA@, EJ MEll ?=?DA @=J= BHom BElAI IAHLA@ >O JD=J moKnJ. 7nlEkA cfs, JDA ?=?DA HAIE@AI En FDOIE?=l mAmoHO F=CAI, =n@ JDA ?=?DA EI loIJ on HA>ooJ. OJDAHMEIA EJ EI IEmEl=H: ?lEAnJ HA=@I =HA I=JEIBEA@ BHom JDA ?=?DA EB FoIIE>lA; @=J= AN?D=nCA@ MEJD JDA IAHLAH JDHoKCD HA=@ =n@ MHEJA MEll >A =@@A@JoJDA ?=?DA;BElAI =n@@=J= =HA m=n=CA@lA=IJ-HA?AnJlO-KIA@; =n@ oKJ-oB-@=JA ?=?DA AnJHEAI =HA @AJA?JA@ KIEnC JDA 3E@ L=lKA HAJKHnA@ >O open. 6DA ?=?DA F=CAI =HA onlO >HEABlO m=FFA@ EnJo JDA kAHnAl =@@HAII IF=?A MDAn =??AIIA@, HA@K?EnC JDA FHAIIKHA on JDA kAHnAl =@@HAII IF=?A, =n@ onlO = lEmEJA@ =moKnJ oB @=J= FAH BElA ?=n >A ?=?DA@, Jo DAlF ?onIJH=En JDA FDOIE?=l mAmoHO@A@E?=JA@JoJDA ?=?DA. ­!#­

Ramcfs Ramcfs M=I JDA BEHIJ =JJAmFJ =J mEJEC=JEnC JDA FHo>lAm. 1J M=I ?HA=JA@ >O ?D=nCEnC = ?oFO oB cfs Jo KIA = HACEon oB mAmoHO =I EJI ?=?DA H=JDAH JD=n = HACEon oB @EIk. 7nlEkA cfs, ramcfs EnEJE=lEIAI JDA ?=?DA A=?D JEmA EJ IJ=HJI, IEn?A JDAHA EI no FAHIEIJAnJ IJoH=CA. 9A =@@A@ = −r oFJEon JD=J @A?l=HAI JD=J =ll JDA BElAI =HA Kn?D=nCEnC HA=@onlO =n@ JDKI m=O >A ?=?DA@ moHA =CCHAIIELAlO. On >ooJ, A=?D 1O no@A MoKl@ BEHIJ EnIAHJ ramcfs on EJI ?onnA?JEon Jo JDA ?AnJH=l BElA IAHLAH. 6DKI, JDA IK>IAGKAnJ =??AII >O JDA 1/O no@AߣI+27 no@AIMoKl@F=IIJDHoKCDJDA ?=?DA onJDA 1/O no@A. Ramcfs D=@EJIoMn @EI=@L=nJ=CAI. 1J =lM=OI HAIAHLA@ = >EC ?DKnk oB mAmoHO, Jo m=kA = LEHJK=l >lo?k @ALE?A. 5En?A JDA ?=?DA HKnI on 1/O no@AI noJ +27 no@AI, JD=J @oAI noJ lEmEJ JDA mAmoHO =L=El=>lA Jo = ?omFKJ=JEon, >KJ EJ M=I IJEll = >EJ oB = D=?k. MoHA IAHE­ oKIlO, >A?=KIA ramcfs M=I >=IA@ on cfs EJ =lIo BoHM=H@A@ =ll HAGKAIJI EnLolLEnC mAJ=­ @=J= JoJDA HAmoJA IAHLAH.

Fscfs -NEIJEnC ?omFonAnJI MAHA En=@AGK=JA, Io MA EmFlAmAnJA@ = nAM onA, fscfs JD=J noJ onlO ?=?DAI @=J=, >KJ HA@K?AI JDA nKm>AH oB oFAH=JEonI IAAn >O JDA BElA IAHLAH. LEkA cfs =n@ ramcfs,EJ =?JI=I = MHEJA-JDHoKCD ?=?DA BoH @=J=, >KJ MDAn m=nO FHo?AIIAI =HA m=kEnC E@AnJE?=l BElA IOIJAm HAGKAIJI oLAH JEmA, EJ ABBA?JELAlO =CCHAC=JAI JDAm EnJo IEn­ ClA HAGKAIJI =J JDA IAHLAH. 6DEI D=I = @H=m=JE? ABBA?J. 6=>lA IDoMI IJ=JEIJE?I mA=­ IKHA@ =J = IEnClA 1O no@A. 6DA L=lKAI on JDA oJDAH 1O no@AI En JDA HKn MAHA IEmEl=H. 6DA EnJAHL=l EI BHom JDA EnEJE=l ?onnA?JEon Jo JDA BElA IAHLAH KF Jo JDA FoEnJ MDAHA JDA +27 no@AI D=@ IJ=HJA@ =ll JDAEH nAJMoHk IAHLE?AI =n@ MAHA HA=@O BoH @KJO. 6DA J=>lA CELAI JDA nKm>AH oB L=HEoKI BElA IOIJAm oFAH=JEonI IAAn >O JDA 1O no@A, =I FHo@K?A@ >O EJI $" +27 no@A ?lEAnJI, =n@ JDA nKm>AH oB oFAH=JEonI EJ D=@ Jo IAn@ on Jo JDA IAHLAH. 6DA BEn=l HoM IDoMI JDA nKm>AH oB >OJAI HA=@ >O =ll ?lEAnJI, =n@ JDA nKm>AH oB >OJAI HA=@ BHom JDA IAHLAH =n@ ?=?DA@ =J JDA 1O no@A Jo I=JEIBO JDA ?lEAnJ HA=@ HAGKAIJI. 6DA @EBBAHAn?A EI @H=m=JE?. 6DA HA@K?JEon En lo=@ IAAn >O JDA IAHLAH MEll =lIo>A m=CnEBEA@>OJDA =@@EJEonoB A=?DnAM 1O no@A =n@EJI?lKIJAH. ______ Op IO node Server   Tversion     Tattach   Twalk %,&## #$   Topen ,"&$ %%   Tread $,& ! !!   Tclunk ",%"'    Tstat ", " ", "      ______>OJAIHA=@ ',' !,'' "$ ,% 

Table 2 5J=JEIJE?IBHom fscfs on=n1Ono@AMEJD$"+27no@AI.

Design and implementation Fscfs EI = noHm=l, KIAH-lALAl + =FFlE?=JEon, KIEnC libthread BoH EnJAHn=l ?on?KH­ HAn?O. LEkA cfs,EJ EI= '2 JH=nI@K?AH:EJ =?JI=I= ?lEAnJ Jo= HAmoJA '2 BElA IAHLAHononA ?onnA?JEon,=n@=?JI=I = '2 IAHLAH Jo EJI ?lEAnJ on =noJDAH ?onnA?JEon. On?A JD=J ?on­ nA?JEon EI moKnJA@ En JDA n=mA IF=?A, m=nO ?lEAnJ FHo?AIIAI ?=n ID=HA EJ. 6o FHoLE@A @=J= ?=?DEnC, fscfs KIAI JDA I=mA IJH=JACO =I JDA ANEIJEnC ?=?DAI: EJ m=kAI = ?oFO oB ­!$­

@=J= =I EJ F=IIAI JDHoKCD En AEJDAH @EHA?JEon, =n@ IJoHAI EJ En = lo?=l ?=?DA. 5K>IAGKAnJ Tread HAGKAIJI BoH JDA I=mA @=J= MEll >A I=JEIBEA@ BHom JDA ?=?DA. Twrite HAGKAIJI =HA F=IIA@ JDHoKCD Jo JDA IAHLAH, HAFl=?EnC @=J= En JDA ?=?DA EB IK??AIIBKl. +=?DA@ @=J= EI =IIo?E=JA@ MEJD A=?D =?JELA BElA, >KJ JDA mAmoHO EJ o??KFEAI EI m=n=CA@ on = lA=IJ-HA?AnJlO-KIA@ >=IEI =?HoII JDA MDolA IAJ oB BElAI. 9DAn = IFA?EBEA@ JDHAIDol@ BoH JDA ?=?DA D=I>AAnHA=?DA@,JDA ol@AIJ ?=?DA@@=J= EI@EI?=H@A@. 7nlEkA JDA ANEIJEnC ?=?DAI, DoMALAH, fscfs D=n@lAI moHA '2 HAGKAIJI EJIAlB MEJDoKJ @Al­ AC=JEnC JDAm Jo JDA IAHLAH. 6DoIA HAGKAIJI En?lK@A Twalk, Topen, =n@ Tclunk. 5KFFoHJ BoH Tstat D=IIEn?A >AAn=@@A@,=n@EInoJ HABlA?JA@EnJDA HAIKlJI. 6o @o JD=J HAGKEHA@ JMo IECnEBE?=nJ ?D=nCAI BHom FHALEoKI I?DAmAI. 9A ANFl=En JDAm >OHABAHAn?A JoIALAH=l EnJAHn=l @=J= JOFAI,IDoMn?on?EIAlO>AloM: 1Omo@A:: 4|9|49 .E@ :: BE@:K! EnJ GE@:3E@ F=JD:2=JDoFAnA@:5.E@ mo@A:1Omo@A 5.E@ :: BE@:K! EnJ

2=JD :: n=mA:IJHEnC GE@:3E@ F=HAnJ:2=JD kE@I:IAJoB2=JD 8=lE@|1nL=lE@ 8=lE@ :: IBE@:5.E@ BElA:oFJEon=l.ElA 1nL=lE@:: HA=Ion:IJHEnC

.ElA :: oFAn:1Omo@A¦5.E@ @EH:,EH ?lAnCJD:K$"EnJ ?=?DA@:IF=HIA=HH=OoB,=J= .EHIJ, fscfs IAF=H=JAI EJI ?lEAnJ BHom JDA IAHLAH, >O m=n=CEnC JMo IAJI oB BE@I. OnA IAJ EI =llo?=JA@ >O EJI ?lEAnJ, =I >ABoHA; JDoIA =HA IAAn onlO >O fscfs, MDE?D HAmAm>AHI JDAm En L=lKAI oB JDA .E@ JOFA. 6DA oJDAH IAJ oB BE@I EI =llo?=JA@ =n@ ?onJHollA@ >O fscfs; onlO JDoIA BE@I =HA IAAn >O JDA IAHLAH. 1J HA?oH@I JDAm En 5.E@ L=lKAI. 5A?on@, KIEnC JDA @EIJEn?JEon >AJMAAn BE@ IAJI, fscfs ?=?DAI JDA HAIKlJI oB M=lkI =n@ oFAnI. 6DA @EIJEn?JEon =lloMI = ?=?DA@ BE@ knoMn Jo JDA IAHLAH Jo oKJlELA = BE@ =llo?=JA@ >O JDA ?lEAnJ. 1J =lIo =lloMI IALAH=l ?lEAnJ BE@I Jo ID=HA = IEnClA IAHLAH BE@. 6D=J =lonA HA@K?AI JDA HAIoKH?A HAGKEHAmAnJI =J JDA IAHLAH =I JDA nKm>AH oB ?lEAnJ HABAHAn?AI CHoMI. .Hom A=?D Tattach HABAHHEnC Jo = BElA IAHLAHߣI JHAA, fscfs CHoMI = Path JHAA HAFHAIAnJ­ EnC =ll JDA F=JDI M=lkA@ En JD=J JHAA, IK??AIIBKllO oH KnIK??AIIBKllO. ) IK??AIIBKl M=lk HAIKlJI En =n An@-FoEnJ JD=J HA?oH@I JDA 5.E@ HABAHHEnC Jo JD=J FoEnJ En JDA IAHLAHߣI DEAH­ =H?DO. NoJA JD=J EnJAHmA@E=JA n=mAI nAA@ noJ D=LA IAHLAH BE@I. 1B = M=lk BHom = CELAn FoEnJ B=ElA@ =J IomA IJ=CA, JD=J EI noJA@ >O = IFA?E=l 2=JD L=lKA =J JD=J FoEnJ En JDA JHAA, MDE?D CELAI JDA AHHoH IJHEnC ANFl=EnEnC MDO JDA M=lk B=ElA@. 1B = IK>IAGKAnJ Twalk BHom JDA ?lEAnJ HAJH=?AI =n ANEIJEnC 2=JD, fscfs ?=n IAn@ JDA =FFHoFHE=JA HAIFonIA EJIAlB, En?lK@EnC B=ElKHAI =n@ M=lkI JD=J MAHA onlO F=HJE=llO IK??AIIBKl. 1B n=mAI HAm=En En JDA M=lk HAGKAIJ =BJAH JH=LAHIEnC JDA ANEIJEnC 2=JD, fscfs =llo?=JAI = nAM 5.E@ BoH JDA nAM 2=JD An@-FoEnJ, IAn@I JDA MDolA HAGKAIJ Jo JDA IAHLAH, =n@ KF@=JAI JDA 2=JD =FFHoFHE=JAlO BHom JDA IAHLAHߣI HAIFonIA. 4AmAm>AHEnC B=ElKHAI EI = CHA=J DAlF MDAn, BoH EnIJ=n?A, m=nO FHo?AIIAI on m=nO no@AI =HA AnKmAH=JEnC FoIIE­ >lA n=mAI BoH @EBBAHAnJ FoIIE>lA LAHIEonI oB I=O 2OJDon lE>H=HO BElAI oH ID=HA@ lE>H=HEAI, moIJ oB MDE?D @o noJ ANEIJ. 1J MoKl@ >A moHA H=JEon=l Jo ?D=nCA JDA IoBJ­ M=HA noJ Jo @o FoEnJlAII IA=H?DAI, >KJ EJ EI noJ =lM=OI FoIIE>lA Jo ?D=nCA ?omFonAnJI BHomIJ=n@=H@@EIJHE>KJEonI. 9DAn = BElA oH @EHA?JoHO D=I >AAn oFAnA@, JDA ?oHHAIFon@EnC 2=JD MEll D=LA = File IJHK?­ JKHA. 1J IJoHAI JDA 5.E@I BoH A=?D mo@A HA=@, MHEJA, HA=@/MHEJA MEJD MDE?D = ?lEAnJ D=I oFAnA@ JDA BElA, JDA ?KHHAnJlO knoMn BElA lAnCJD, =n@ =nO @=J= ?=?DA@ BoH JD=J BElA. 6DA .ElAߣI 5.E@ EI @EIJEn?J BHom JD=J En JDA 2=JD >A?=KIA JDA l=JJAH mECDJ l=JAH >A M=lkA@ ­!%­

AlIAMDAHA, =n@ EJ EI EllAC=l Jo M=lk =n oFAn BE@. .KHJDAHmoHA, BElAI ?=n =nOM=O >A oFAnA@ IEmKlJ=nAoKIlO MEJD @EBBAHAnJ mo@AI, A=?D nAA@EnC = @EIJEn?J BE@ on JDA IAHLAH Jo?=HHOJDA ?oHHA?J mo@A. .ElAI En 2l=n ' ?=n =lIo >A oFAnA@ ߢHAmoLA-on-?loIAߣ O4+LO5-. )I = IFA?E=l ?=IA, JDA ?lEAnJ .E@ BoH IK?D = BElA MEll >A CELAn EJI oMn KnEGKA 5.E@ on oFAn, Jo AnIKHA JD=J JDA JEmEnCoB JDA HAmoLA HAm=EnIJDA I=mA BHom JDA ?lEAnJߣI FoEnJ oB LEAM. 6DA BElA MEll >A HAmoLA@MDAnJD=J F=HJE?Kl=H?lEAnJ ?loIAIEJ. 5omA HAGKAIJI KF@=JA JDA BElA IOIJAm: Twrite, Tcreate, Topen MEJD OTRUNC, Twstat, =n@ Tremove. 6DoIA =HA @AlAC=JA@ Jo JDA IAHLAH, =n@ on IK??AII JDA lo?=l IJ=JA EI KF@=JA@ Jo m=J?D. 1n oJDAH MoH@I, JDA 2=JD =n@ .ElA ?=?DAI =HA MHEJA-JDHoKCD. .oH EnIJ=n?A, = IK??AIIBKl Twrite HAGKAIJ MEll =@@ JDA @=J= MHEJJAn Jo JDA ?=?DA. ) IK??AIIBKl Tcreate MEll ANJAn@ JDA ?KHHAnJ 2=JD JHAA, FoIIE>lO HAFl=?EnC = FHALEoKI 1nL=lE@ AnJHO BoH JDA nAMlO-?HA=JA@ n=mA, =n@ JDAn oFAn = nAM 5.E@ BoH JDA BElA. ) moHA IK>JlA ?=IA EI Tremove, MDE?D =lM=OI BHAAI =nO ANEIJEnC sfid BoH JDA BElA, =I HAGKEHA@ >O remove#, >KJ onlO on IK??AII @oAI EJ m=Hk JDA BElA =I removed EnJDA 2=JD JHAA =n@@EI?=H@=nO?=?DA@@=J=. Fscfs =lM=OI @AlAC=JAI oFAH=JEonI on ?AHJ=En JOFAI oH ?l=IIAI oB BElAI Jo JDA IAHLAH, IFA?EBE?=llO =KJDAnJE?=JEon BElAI, =FFAn@-onlO, =n@ AN?lKIELA-KIA BElAI. +KHHAnJlO EJ =lIo @AlAC=JAI Topen =n@ Tread BoH @EHA?JoHEAI, >A?=KIA read# @oAI noJ =lloM = IAAk En = @EHA?JoHO AN?AFJ Jo JDA IJ=HJ. 9A =HA ?KHHAnJlO ?D=nCEnC JDA IoBJM=HA Jo ?=?DA JDA MDolA @EHA?JoHO on JDA BEHIJ HA=@, Io JD=J @EHA?JoHO HA=@EnC @oAI noJ FHoLokA AN?AIIELA lo=@onJDA BElA IAHLAH.

Discussion and further work 6DAHA EI no CHA=J mOIJAHO =>oKJ EmFlAmAnJEnC = ?=?DA BoH = BElA IOIJAm, MDAJDAH @EHA?JlO En = kAHnAl, =I MEJD JDA 7N1: >KBBAH ?=?DA, oH >O EnJAH?AFJEnC = BElA IAHLE?A FHo­ Jo?ol,=IMEJDN.5oH'2. -LAnIo,JDAHA =HA JOFE?=llOIomA IK>JlA FoEnJI. Fscfs EI jKIJ oLAH , lEnAI oB + ?o@A, En?lK@EnC IomA EnJAn@A@ BoH BKJKHA KIA. 1J D=I moHA JD=n I=JEIBEA@ oKH EnEJE=l HAGKEHAmAnJI, =lJDoKCD mK?D moHA ?=n >A @onA. 1J =CCHAC=JAI ?ommon oFAH=JEonI En = CAnAH=l >KJ IJH=ECDJBoHM=H@ M=O. 1JI 2=JD ?=?DA EI IEmEl=H Jo M=JKIzAkߣI BElA D=n@lA ?=?DA En DEI N.5 ?=?DA,' =n@ ?loIAH Jo '2 DomA, IomA oB JDA IK>JlA ?=IAI En BE@ D=n@lEnC En fscfs IAAm Jo JKHn KF En JDA EmFlAmAnJ=JEon oB '2 EnJDA LEnKNkAHnAl,MDAHA LEnKNl=?kI=nOJDEnC?oHHAIFon@EnCAN=?JlOJo= BE@.  +KHHAnJlO, =I EI JHKA En oKH AnLEHonmAnJ, fscfs =IIKmAI JD=J JDA ?lEAnJ HAGKAIJI =lM=OI HAFHAIAnJ JDA I=mA KIAH. 4AmoLEnC JD=J =IIKmFJEon HAGKEHAI CHoMEnC IAF=H=JA 2=JD JHAAI BHom @EIJEn?J Tauth =n@ Tattach EnIJ=n?AI, Jo AnIKHA JD=J AHHoHI AC, ߢFAHmEI­ IEon @AnEA@ߣ =HA HAFoHJA@ En JDA ?oHHA?J ?onJANJ. 1nIJA=@ oB D=LEnC = 2=JD HABAH @EHA?JlO Jo = .ElA, JDA 2=JD MoKl@ HA?oH@ onlO JDA 3E@, =n@ JDA .ElA MoKl@ >A BoKn@ En = 3E@Jo.ElA m=F,JoAnIKHA ?=?DA@@=J= EI?oHHA?JlOID=HA@=n@KF@=JA@. MoHA EnJAHAIJEnC =@@EJEonI MoKl@ >A Jo m=kA oKH BElA IOIJAm =??AII B=KlJ-JolAH=nJ =n@ moHA ABBE?EAnJ. /ELAn JDA IJHK?JKHA@ n=JKHA oB oKH J=HCAJ nAJMoHkI =n@ IOIJAmI, onA =JJH=?JELA =FFHo=?D EI Jo KIA = L=HE=nJ oB H=n@om JHAAI, MDE?D ?oKl@ =lIo FHoLE@A lo=@ IFHA=@EnC. OKJIE@A oKH FA?KlE=H AnLEHonmAnJ, MA =lIo EnJAn@ Jo ANFAHEmAnJ MEJD EnJAHFoIEnC fscfs >AJMAAn = ?lEAnJ =n@ = '2 IAHLE?A JD=J KIAI = ?loK@->=IA@ IJoH=CA IK>IOIJAmIK?D=I)m=zonߣI5!. ­!&­

Acknowledgement 6DEI MoHk D=I >AAn IKFFoHJA@ >O JDA ,AF=HJmAnJ oB -nAHCO FHojA?J Holistic Aggre• gated Resource Environment ߢ0)4-ߣKn@AH)M=H@NKm>AH,--./ -&-4 #&"%.

References

. 4on=l@ / MEnnE?D, M=JJDAM J 5oJJElA, 5KnC--Kn +DoE, -HEk 0An@HEkI JEm M?KEA, ߢߢ4ECDJ-MAECDJ kAHnAlI: =n oBB-JDA-IDAlB =lJAHn=JELA Jo ?KIJom lECDJ-MAECDJ kAHnAlI,ߣߣ ACM SIGOPS Operating Systems Review 40 ,FF. - &)FHEl $. . 4on MEnnE?D, JEm M?KEA, +D=HlAI .oHIOJD, L=J?DAI=H 1onkoL, )n@HAO MEHJ?DoLIkE, -HE? 8=n 0AnI>AHCAn 8olkAH 5JHKmFAH, ߢߢ4ECDJMAECDJ KAHnAlI,ߣߣ FastOS PI Meeting and Work• shop,5=nJ= +l=H=,+=lEBoHnE=,DJJF://Coo.Cl/7C.NJKnA %. !. 4o> 2EkA, ,=LA 2HAIoJJo, 5A=n ,oHM=H@, *o> .l=n@HAn=, KAn 6DomFIon, 0oM=H@ 6HE?kAO 2DEl 9EnJAH>oJJom, ߢߢ2l=n ' BHom *All L=>I,ߣߣ Computing Systems 8!, FF. - #"5KmmAH ''#. ". ) /=H=, M ) *lKmHE?D, , +DAn, / L-6 +DEK, 2 +oJAKI, M - /E=mF=F=, 4 ) 0=HEnC, 2 0AE@Al>AHCAH, , 0oAnE?kA, / 8 KoF?I=O, 6 ) LEA>I?D, M ODm=?DJ, * , 5JAEnm=?DAH- *KHoM, 6 6=kkAn 2 8H=n=I, ߢߢOLAHLEAM oB JDA *lKA /AnA/L IOIJAm =H?DEJA?JKHA,ߣߣ IBM Journal of Research and Development 49 -!,FF. '#-  #. #. The Inferno Programmer’s Manual, 8EJ= NKoL= 0ol@EnCILEmEJA@ . $. -HE? 8=n 0AnI>AHCAn, No=D 2=Kl -L=nI 2DEllEF 5J=nlAO-M=H>All, ߢߢ) KnEBEA@ ANA?KJEon mo@Al BoH ?loK@ ?omFKJEnC,ߣߣ ACM SIGOPS Operating Systems Review 44 , FF. - % )FHEl  . %. 4 / 4oII, ߢߢ+lKIJAH IJoH=CA BoH ?ommo@EJO ?omFKJ=JEon,ߣߣ 7+)M-+L-64-$', 7nE­ LAHIEJOoB +=m>HE@CA +omFKJAHL=>oH=JoHOJKnA %. &. + 0 .oHIOJD, ߢߢ6DA 7>EGKEJoKI BElA 5AHLAH En 2l=n ',ߣߣ Proceedings of the Libre Soft• ware Meeting,,Ejon,.H=n?A  #. '. 5JAFDAnM=JKIzAk, Effectiveness of an NFS cache,DJJF://Coo.Cl/7C.N. . -HE? 8=n 0AnI>AHCAn 4on MEnnE?D, ߢߢ/H=LA 4o>>AHI BHom OKJAH 5F=?A: 7IEnC '2  7n@AH LEnKN,ߣߣ Proceedings of the USENIX 2005 Annual Technical Conference, FREENIX Track,FF.&!-'",75-N1: #. . ,=LE@ K=HCAH, -HE? LADm=n, 6om LAECDJon, 4En= 2=nECH=DO, M=JJDAM LALEnA ,=nEAl LAMEn, ߢߢ+onIEIJAnJ D=IDEnC =n@ H=n@om JHAAI: @EIJHE>KJA@ ?=?DEnC FHoJo?olI BoH HAlEAL­ EnC DoJ IFoJI on JDA 9oHl@ 9E@A 9A>,ߣߣ Proceedings of the twenty−ninth annual ACM symposium on Theory of Computing,-l 2=Io,6AN=I,FF.$#"-$$! ''%. HTTP−Like Streams for Plan 9

John Floren ([email protected]) Ron Minnich Andrey Mirtchovski 4o?DAIJAH1nIJEJKJA oB 6A?DnoloCO 4o?DAIJAH,N;

)*564)+6

1n 2l=n ', =ll BElA oFAH=JEonI, MDAJDAH lo?=l oH oLAH JDA nAJMoHk, J=kA Fl=?A JDHoKCD JDA '2 BElA FHoJo?ol. )lJDoKCD '2 EI >oJD IEmFlA =n@ FoM­ AHBKl, @ALAloFmAnJI En ?omFKJAH =n@ nAJMoHk D=H@M=HA D=LA oLAH JEmA oKJIJHEFFA@ JDA FAHBoHm=n?A oB '2. 6o@=O, BElA oFAH=JEonI, F=HJE?Kl=HlO HA=@EnC =n@ ?oFOEnC BElAI oLAH = DECD-l=JAn?O nAJMoHk, =HA mK?D IloMAH MEJD '2 JD=n MEJD IEmFlAH FHoJo?olI IK?D =I 0662 oH .62. 1n =n ABBoHJ Jo EmFHoLA JDA IFAA@oB '2,JDA =>ElEJOJoIJHA=mBElAI=?HoIIJDA nAJMoHk En = m=nnAHIEmEl=HJoJD=J oB 0662 MEll >A EmFlAmAnJA@En'2.

Motivation 6H=nIBAHHEnC = l=HCA BElA oLAH JDA 1nJAHnAJ LE= '2 ?=n >A = BHKIJH=JEnC ANFAHEAn?A. 9DAn 2l=n ' M=I MHEJJAn, BElAI MAHA Im=llAH, moIJ oB JDA KIAHI MAHA on = B=IJ EnJAHn=l nAJ­ MoHk, =n@ FAoFlA MAHA KIA@ Jo ?omFKJAHI >AEnC = >EJ IloM =nOM=O. 6o@=O, oB ?oKHIA, BElAI D=LA CoJJAn l=HCAH En CAnAH=l =n@ JH=nIBAHI =HA mK?D moHA lEkAlO Jo J=kA Fl=?A =?HoII JDA ?oKnJHO oH =HoKn@ JDA MoHl@. 1n JDAIA ?on@EJEonI, '2 EI IECnEBE?=nJlO IloMAH JD=n0662 oH.62,HAGKEHEnC= noJE?A=>lOlonCAH=moKnJ oB JEmA JoJH=nIBAH= BElA. '2 EI =n 42+ IOIJAm; EB = FHoCH=m ?=llI read(), EJ >lo?kI KnJEl JDA mAII=CA CAJI IAnJ =?HoII JDA ?oKnJHO, FHo?AIIA@ >O JDA HAmoJA ?omFKJAH, =n@ HAFlEA@ Jo. ?=llI read() oLAH =n@ oLAH MDAn ?oFOEnC = BElA; A=?D JEmA EJ M=nJI Jo CAJ = ?DKnk & K* =J = JEmA, EJ mKIJ M=EJ BoH JDA AnJEHA FEnC-FonC l=JAn?O JEmA oB JDA ?onnA?JEon >ABoHA EJ HA?AELAIJDA @=J=,MHEJAIEJ JoJDA @AIJEn=JEonBElA,=n@CAJIJDA nANJ ?DKnk. 0662,onJDA oJDAHD=n@,J=kAI=nANJHAmAlOIEmFlA-mEn@A@=FFHo=?D Jo @=J= JH=nIBAH. ) HAGKAIJ EI IAnJ Jo JDA IAHLAH, JDA IAHLAH IAn@I >=?k JDA AnJEHA BElA Jo JDA ?lEAnJ, JDA ?lEAnJ FHo?AIIAIJDA BElA =J EJIlAEIKHA. 9A JDoKCDJ EJ MoKl@ >A EnIJHK?JELA Jo JH=nIBAH IomA l=HCA BElAI oLAH lEnkI MEJD HA=lEIJE? l=JAn?O, ?omF=H=>lA Jo 1nJAHnAJ l=JAn?EAI. 6Mo 2l=n ' IOIJAmI MAHA IAJ KF MEJD = LEnKN C=JAM=O >AJMAAn JDAm; JDA C=JAM=O ?oKl@ =@@ =nO =moKnJ oB l=JAn?O @AIEHA@. 6DA '2 nKm>AHI MAHA o>J=EnA@ >O moKnJEnC JDA BElA IAHLAHߣI HooJ =n@ JEmEnC DoM lonC EJ Jook Jo ?oFO = HAmoJA BElA Jo /dev/null  cp, noJ fcp, M=I KIA@ BoH JDA mA=IKHA­ mAnJI. 6DA 0662 nKm>AHI MAHA ?ollA?JA@ >O D=LEnC onA IOIJAm HKnnEnC ip/httpd/httpd =n@ ?=llEnC hget on JDA oJDAH IOIJAm, HA@EHA?JEnC JDA oKJFKJ Jo /dev/null. 6DA I=mA H=n@omlO-CAnAH=JA@ BElAI MAHA KIA@ BoH A=?D JAIJ. 6DA HAIKlJI=HA IDoMnEn6=>lAI =n@ . ­"­

____________.ElA 5EzA '2 0662       M* '.#%I ".&I   #M* "%.""I %.& I   M* '$.$I ".!&I  ______M* #'.'"I & .$!I  6=>lA , #mI466 ____________.ElA 5EzA '2 0662       M* %$. $I '."!I   #M* !%".%I '&.&&I   M* %"%. !I '%.'I  ______M* # .! I ".I  6=>lA ,#mI466 1n JAIJI BoH , #, , =n@  mAC=>OJA BElAI, '2 J=kAI =>oKJ JME?A =I lonC =I 0662 MEJD = # mI 466, =n@ =HoKn@ BoKH JEmAI =I lonC BoH # mI 466. +oFOEnC =  M* BElA J=kAI oLAH # mEnKJAI MEJD '2, >KJ lAII JD=n % mEnKJAI MEJD 0662. ) # mI 466 EI noJ KnKIK=l BoH JDA 1nJAHnAJߞ=J JDA JEmA oB MHEJEnC, JDA 466 BHom NAM ;oHk Jo +=lEBoHnE= M=I =>oKJ &% mI. +lA=HlO, Fl=En '2 EI noJ E@A=l BoH JH=nIBAHHEnC BElAI oLAH ME@A-=HA= nAJ­ MoHkI.

Streams +oFOEnC =n AnJEHA BElA EI =n ANJHAmAlO ?ommon oFAH=JEon JD=J @EIFl=OI JDA l=JAn?O FHo>lAm MAll. 6DA IoKH?A BoH cp EI onlO %% lEnAI. 1J IEmFlO HA=@I IomA >OJAI BHom JDA IoKH?A BElA, MHEJAI JDAm Jo JDA @AIJEn=JEon, =n@ HAFA=JI. 1JߣI =n AnJEHAlO IAGKAnJE=l oFAH=JEonߞEB >OJAI -'' D=LA jKIJ >AAn HA=@, JDA nANJ >OJAI HAGKAIJA@ MEll >A - ''=n@Ioon. 5En?A IAGKAnJE=l BElA HA=@EnC EI LAHO ?ommon and = FHEmA LE?JEm oB JDA l=JAn?O FHo>­ lAm, MA @A?E@A@ Jo JHO ANJAn@EnC '2ߞ=n@ JDAHABoHA JDA FHoCH=mm=JE? BElA 1/O BKn?JEonIߞJo IFA?EBE?=llO D=n@lA IAGKAnJE=l HA=@I. 4=JDAH JD=n HA=@ En = MDolA BElA >O IAn@EnC loJI oB Tread mAII=CAI =n@ M=EJEnC BoH JDA Rreads, MA M=nJ Jo >A =>lA Jo IAn@ = IEnClA Tstream =n@ CAJ =n =H>EJH=HO nKm>AH oB Rstream mAII=CAI >=?k, A=?D?=HHOEnC= ?DKnk oB JDA @=J=. ____________+lEAnJ 5AHLAH      6IJHA=mJ=CBE@oBBIAJ     4IJHA=mJ=C?oKnJ @=J=    4IJHA=mJ=C?oKnJ @=J=    î  ______ 4IJHA=mJ=C  6=>lA !,I=mFlA IJHA=mEnCIAIIEon 6=>lA ! IDoMI JDA JOFE?=l AN?D=nCA oB mAII=CAI >AJMAAn ?lEAnJ =n@ IAHLAH. 6HECCAHA@ >O = stream() IOIJAm ?=ll, JDA ?lEAnJ IAn@I = Tstream MDE?D ?onJ=EnI = J=C, = BE@, =n@ =n oBBIAJ. 7Fon HA?AELEnC JDA mAII=CA, JDA IAHLAH >ACEnI IAn@EnC m=nO Rstream HAFlEAI, A=?D ?onJ=EnEnC = J=C, JDA nKm>AH oB >OJAI oB @=J=, =n@ = ?DKnk oB @=J=. 9DAn JDA BElA D=I >AAn AND=KIJA@, JDA IAHLAH IAn@I = mAII=CA MEJD  >OJAI oB @=J=. 6DA @=J= IAnJ En JDA 4IJHA=m mAII=CAI HAm=EnI En JDA ?lEAnJߣI >KBBAHI KnJEl sread() EI ?=llA@, ­" ­

MDE?D?onIKmAIF=HJ oB JDA IJHA=m. 2HALEoKI ABBoHJI =J EmFHoLEnC FAHBoHm=n?A oLAH loM->=n@ME@JD, DECD-l=JAn?O nAJMoHkI D=LA Bo?KIA@ l=HCAlO on JH=nIF=HAn?OߞIAA JDA OF FHoJo?ol, BoH AN=mFlA, oH IEmFlO ?onIE@AHJDA KIA oB ?=?DEnC.9A @A?E@A@JomoLA =M=OBHomJD=J;= FHoCH=mmAH IDoKl@ knoM MDAn = BElA MEll >A HA=@ En IAGKAnJE=llO =n@ ?=n JDKI @A?E@A MDAn Jo KIA IJHA=mI oH MDAn noJ Jo KIA IJHA=mI. 5En?A IJHA=mEnC MEll noJ mo@EBO JDA M=O ANEIJEnC BElA oFAH­ =JEonI MoHk, ol@ ?o@A MEll noJ HAGKEHA mo@EBE?=JEon, >KJ nAM FHoCH=mI ?=n J=kA =@L=n­ J=CA oB IJHA=mEnCEB @AIEHA@. .oH moIJ FAoFlA, =ll JDA MoHl@ߣI = 6+2 ?onnA?JEon. /ELAn JD=J, MAߣLA J=kAn IomA lE>AH­ JEAI En JDA @AIECn oB JDA Tstream/Rstream mAII=CAI. 5En?A ALAHOJDEnC EI CK=H=n­ JAA@ Jo IDoM KF, =n@ En oH@AH, JDAHA =HA no IAGKAn?A nKm>AHI EnIE@A JDA mAII=CAI. Rstream mAII=CAI ?=n >A =lloMA@ Jo HAm=En on JDA ?onnA?JEonߣI HA=@ GKAKA KnJEl JDA FHoCH=m ?=llI sread() =n@ JDAO =HA ?onIKmA@. 6DAHA EI no nAA@ BoH BloM ?onJHol, >A?=KIA 6+2 D=IEJIoMnBloM ?onJHol >KElJ-En.

Implementation 6DA EmFlAmAnJ=JEon oB IJHA=mI EI En FHoCHAII. )I = BEHIJ ANFAHEmAnJ, onlO HA=@EnC BHom IJHA=mIMEll >A EmFlAmAnJA@;JDEIEI= ?ommon=n@A=IO-Jo-JAIJ IEJK=JEon. 6Mo IOIJAm ?=llI, stream(int fd) =n@ sread(int fd, void *buf, long nbytes) MEll >A =@@A@; stream IAJI KF = IJHA=m on =n oFAn BElA =n@ D=I JDA '2 IAHLAHIJ=HJ IAn@EnC@=J=. sread EIKIA@JoHA=@= FoHJEonoB JDA HA?AELA@@=J=. 6DA devmnt @ALE?A MEll =lIo >A mo@EBEA@ Jo D=n@lA IJHA=m HAGKAIJI. 5En?A HAmoJA BElA =??AII EI D=n@lA@ >O @ALmnJ, EJ EI JDA o>LEoKI ?DoE?A BoH mo@EBE?=JEon, >KJ =nO oJDAH kAHnAl @ALE?AI?oKl@=lIo>A mo@EBEA@Jo=??AFJ IJHA=mI. /AJJEnC = FHoCH=m Jo J=kA =@L=nJ=CA oB IJHA=mI MEll >A = JMo-F=HJ FHo?AII. .EHIJ, '2 IAHLAHI IK?D =I  mKIJ >A HA-MHEJJAn Jo D=n@lA IJHA=mI. 6DAn, JDA FHoCH=m EJIAlB  cp oH mp3dec, BoH EnIJ=n?A mKIJ >A HA-MHEJJAn Jo FAHBoHm IAGKAnJE=l HA=@EnC KIEnC IJHA=mI. 6o JAIJ JDA IJHA=mI IOIJAm, fossil =n@ cp MEll >A mo@EBEA@ Jo D=n@lA IJHA=mI.

Caveats OKJIE@A oB JDA ?onBEnAI oB JAIJEnC, ?omF=JE>ElEJO MEll >A =n EIIKA. .oH EnIJ=n?A, IKFFoIA = IJHA=mI-An=>lA@ cp =JJAmFJA@ Jo ?oFO = BElA BHom = non-IJHA=mEnC BElAIAHLAH. cp MoKl@ IAn@ = Tstream mAII=CA, >KJ JDA IAHLAH MoKl@ noJ HA?oCnEzA EJߞ= Rerror MoKl@ >A HAJKHnA@. LK?kElO, JDEI FHo>lAm IDoKl@ >A A=IO Jo =LoE@ >O m=kEnC stream =n@ sread moHA @ALEoKI. 1B = IJHA=m HAGKAIJ EI mAJ MEJD =n AHHoH, = Bl=C ?=n >A IAJ MDE?D ?=KIAI sread Jo >AD=LA En = ?omF=JE>ElEJO mo@A, EIIKEnC = noHm=l Tread MDAn?=llA@H=JDAHJD=nHA=@EnCBHomIJHA=mA@@=J=.

Conclusion 2HoFAHlO EmFlAmAnJA@, IJHA=mI IDoKl@ =lloM FHoCH=mmAHI Jo IAGKAnJE=llO HA=@ =n@ ALAnJK=llO MHEJA BElAI moHA ABBA?JELAlO MDElA IJEll m=EnJ=EnEnC ?omF=JE>ElEJO MEJD ol@AH IoBJM=HA. *O KIEnC IJHA=mI En =FFHoFHE=JA Fl=?AI, MA DoFA Jo m=kA '2 = mK?D moHA ?omFAJEJELA =n@ HA=lEIJE? mAJDo@ BoH JH=nIBAHHEnC BElAI, FAHBoHmEnC >=?kKFI, =n@ IEmFlO KIEnC= HAmoJA BElAIOIJAm. Effective Resonant Frequency Tracking With Inferno

∗ Jeff Sickel ߤ and Paul Nordine ߥ ߤ +oHFKI+=lloIKm+oHFoH=JEon,-L=nIJon,1L$  75). ߥ 2DOIE?=l 2HoFAHJOMA=IKHAmAnJI,1n?.,-L=nIJon,1L$  75). ࢩ )KJDoHBoH?oHHAIFon@An?A j=I(?oHFKI-?=lloIKm.?om

)*564)+6

9A @AI?HE>A = @ECEJ=l JA?DnEGKA BoH JH=?kEnC JDA HAIon=nJ BHAGKAn?EAI oB FEAzoAlA?JHE? JH=nI@K?AHI KIA@ Jo @HELA =n =AHo­=?oKIJE? lALEJ=JoH. 4A=l­JEmA I=mFlEnC oB JDA LolJ=CA =n@ ?KHHAnJ FD=IA @EBBAHAn?A EI KIA@ En= loM­FHEoHEJOBAA@>=?k looFJo?onJHol @HEBJ =n@IJ=>ElEon.

6DA EmFlAmAnJ=JEon lALAH=CAI 'F on Am>A@@A@ $­>EJ @I21+!!. @ECEJ=l IECn=l ?onJHollAHI. ,=J= ?ollA?JEon =n@ FHo?AIIEnC =HA FAHBoHmA@ MEJD L=HEoKI 'F ?lEAnJI. 6DEI F=FAH @AI?HE>AI JDA KIA oB 'F =n@ 1nBAHno Jo JH=?k, =@jKIJ, =n@ oFJEmEzA oKJFKJ BHAGKAn?O =n@ IoKn@ FHAIIKHA lALAlI onJDA EnIJHKmAnJ.

11. Introduction 6DA FHo?AII oB @ALAloFEnC = nAM =AHo­=?oKIJE? lALEJ=JoH ))L[ ] FHoLE@A@ =n oFFoHJK­ nEJO Jo IolLA = FAHIEIJAnJ FHo>lAm En FHEoH LAHIEonI: JDA IEN En@AFAn@AnJ FEAzoAlA?JHE? JH=nI@K?AHI, KIA@ Jo ?HA=JA IJ=n@EnC M=LAI JD=J FHoLE@A lALEJ=JEon, FoIEJEon, =n@ IFEn ?onJHol, MoKl@ @HEBJ oKJ oB HAIon=n?A. 6DA JH=nI@K?AHI D=LA MAll­m=J?DA@ HAIon=nJ BHA­ GKAn?EAI =J =m>EAnJ JAmFAH=JKHA, MEJDEn ± 0z En , 0z. *KJ =I JDAO M=Hm KF MDAn oFAH=JA@, JDA HAIon=nJ BHAGKAn?EAI ?D=nCA =J H=JAI @AFAn@AnJ on JDA JH=nI@K?AH 3­B=?JoHI, JDA @AIEHA@ oKJFKJ IoKn@ FHAIIKHA lALAl 52L, =n@ @EBBAHAn?AI En JDA FEAzo­ AlA?JHE? m=JAHE=l FHoFAHJEAI. 6DA H=nCA oB HAIon=nJ BHAGKAn?EAI m=O En?HA=IA IK?D JD=J EJ >A?omAI EmFoIIE>lA Jo m=EnJ=En AGK=l =n@ ?onIJ=nJ 52L L=lKAI BHom =ll IEN JH=nI@K?­ AHI. )I = JH=nI@K?AH CoAI oBB HAIon=n?A =J ?onIJ=nJ LolJ=CA oFAH=JEon, JDA ?KHHAnJ @A?HA=IAI =n@ JDA ?KHHAnJ­LolJ=CA FD=IA @EBBAHAn?A ?D=nCAI. 6DA 52L ?D=nCAI FHoFoH­ JEon=llO Jo JDA ?KHHAnJ­LolJ=CA FD=IA oBB oB HAIon=n?A. ) ?onIJ=nJ 52L EI m=EnJ=EnA@ KIEnC = BAA@>=?k looF Jo monEJoH JDA HAIon=nJ =n@ oFAH=JEnC BHAGKAn?O @EBBAHAn?A =n@ =@jKIJEnCJDA oKJFKJ LolJ=CA JoJDA =?oKIJE?=mFlEBEAH. ) FHALEoKI CAnAH=JEon oB JDA ))L KIA@ = FEAzoAlA?JHE? BElm FE?kKF =JJ=?DA@ Jo = HACEon on JDA HALAHIA IE@A oB JDA JH=nI@K?AH DoHn. 6DA FE?kKF FHoLE@A@ HABAHAn?A IECn=lI BoH JDA oKJFKJ BHAGKAn?O =n@ =mFlEJK@A oB JDA DoHn. 6DA IAnIoH oKJFKJ M=I DECDlO IAnIE­ JELA Jo Fl=?AmAnJ. +oHHA?JlO Fl=?EnC =n@ IA?KHEnC JDA BElm FHoLA@ FHo>lAm=JE?, Jo JDA FoEnJ JD=J @HELEnCJDA JH=nI@K?AHJoDECD52LL=lKAIHAGKEHA@BoHIolE@­lEGKE@FD=IA JH=n­ IEJEonIJ=>ElEz=JEonJAn@A@JoIAF=H=JA JDA BElmBHomJDA DoHn. 2HEoH HKnJEmA FHoJo?olI HAGKEHA@ KIAH monEJoHEnC oB JDA JH=nI@K?AH oKJFKJ lALAlI =n@ m=nK=llO IAlA?JEnC onA JH=nI@K?AH =I JDA ߣm=IJAHߣ BoH JH=?kEnC JDA BHAGKAn?O @KHEnC =n ANFAHEmAnJ. 6DA loCE? M=I Jo FE?k JDA JH=nI@K?AH JD=J MoKl@ IMAAF KF oH F=IJ JDA HAI­ on=nJ BHAGKAn?EAI oB JDA oJDAH JH=nI@K?AHI =I EJI oMnHAIon=nJ BHAGKAn?O@HoFFA@=IEJ DA=JA@ KF. 6DEI =?JEon MoKl@ MoHk BoH IDoHJ ANFAHEmAnJI >KJ KlJEm=JAlO lEmEJA@ JDA @KH=JEon oB lALEJ=JEon ANFAHEmAnJI @KA Jo 52L =n@ BHAGKAn?O @HEBJ =I JDA JAmFAH=JKHAI oB A=?DJH=nI@K?AHBlK?JK=JA@. 6DA nAM IOIJAm HAmoLAI JDA KIAH IAlA?JEon ?HEJAHE= >O monEJoHEnC JDA LolJ=CA, ?KHHAnJ, =n@ LolJ=CA­?KHHAnJ FD=IA @EBBAHAn?A oB A=?D JH=nI@K?AH. 6DA HAIon=nJ BHAGKAn?EAI =HA @AJAHmEnA@ BHom JDA 8­1 FD=IA @EBBAHAn?AI =n@ JDA IOIJAm EI oFAH=JA@ =J JDAEH =LAH=CA L=lKA. 6DA 52L oB A=?D JH=nI@K?AH =JJ=EnA@ >O ?=l?Kl=JEnC JDA =mFlEBEAH oKJFKJ FoMAH EI =@jKIJA@ Jo m=J?D = @AIEHA@ IAJ FoEnJ BoH JDA =mFlEBEAH oKJFKJ LolJ=CA. 6DA H=nCA oB HAIon=nJ BHAGKAn?EAI EI ?onJHollA@ =I JDA JH=nI@K?AHI M=Hm KF >O IEmFlO JKHnEnC JDA ?oolEnCB=nIonoHoBB EB JDA =mFlEBEAHBHAGKAn?OEI CHA=JAH oH lAII JD=n JDA HAIon=nJ L=l­ KAI. 6DA nAM JA?DnEGKA EI EmFlAmAnJA@ >O I=mFlEnC JDA oKJFKJ LolJ=CA =n@ ?KHHAnJ on =n Am>A@@A@ IOIJAm, JH=?kEnC FD=IA @EBBAHAn?AI >AJMAAn JDA ?KHHAnJ =n@ LolJ=CA, JDAn ?onJHollEnC JDA ?oolEnC B=nI =n@ =@jKIJEnC oKJFKJ C=En =n@ IAJJEnC JDA oFAH=JEnC BHA­ GKAn?O Jo JDA =LAH=CA HAIon=nJ BHAGKAn?O. ) HAmoJA FHoCH=m HKnnEnC En 1nBAHno D=I FHoLAn IECnEBE?=nJlO IEmFlAH Jo mo@Al =n@ EmFlAmAnJ, =I JDA FHoBElEnC @=J= on A=?D JH=nI@K?AH EI IJoHA@ En = DKm=n HA=@=>lA BElA =n@ ?=n >A A=IElO KF@=JA@ =I nA?AII=HO. 6DA AnD=n?A@ =@jKIJmAnJ =n@ JKnEnC ?=F=>ElEJEAI FHoLE@A oFJEm=l IJ=>ElEz=JEon =n@ IEmFlA IAJKFBoHJKnEnCANFAHEmAnJI. 1nBAHnoM=I?DoIAn=I= BHonJ An@ BoH IALAH=l HA=IonI, moIJ EmFoHJ=nJ >AEnC FoHJ=>ElEJO >AJMAAn Fl=JBoHmI =n@ JDA IKFFoHJ BoH 'F 5JON[ ]. 6DA FHoCH=mmEnC l=nCK=CA LEm>o[!] D=I FHoLAn = H=FE@ Jool BoH EmFlAmAnJEnC Blo=JEnC FoEnJ =lCoHEJDmI["], =n@ ?on?KHHAnJlOI?DA@KlEnCmA=IKHAmAnJ FHo?AIIAIBoHHKnnEnCJH=nI@K?AHFHoBElEnCJAIJI.

11.1. Resonance -=?D =?oKIJE? JH=nI@K?AH EI ?omFoIA@ oB IolE@ =lKmEnKm =lloO MEJD = FEAzoAlA?JHE? JH=nI@K?AH =I JDA @HELAH @AIECnA@ BoH = HAIon=nJ BHAGKAn?O >AJMAAn . =n@ . # k0z[ ]. .oH?A@ ?onLA?JEon ?oolEnC EI ?onJHollA@ >O = LEm>o FHoCH=m = ?D=nCA BHom FHEoH LAHIEonI; IAA EmFlAmAnJ=JEon. 6DA m=nKB=?JKHEnC FHo?AII EnJHo@K?AI ?AHJ=En L=HE=JEonI En JDA oLAH=ll m=II =n@ ?D=H=?JAHEIJE? FHoBElA oB = JH=nI@K?AH, HAIKlJEnC En = L=HOEnC 3­B=?JoHI. 6DA IK>JlA @EBBAHAn?AI En FDOIE?=l ?D=H=?JAHEIJE?I ?=KIA A=?D JH=nI­ @K?AH Jo @HEBJ oBB HAIon=nJ BHAGKAn?O @EBBAHAnJlO =I JDAEH JAmFAH=JKHA BlK?JK=JAI oLAH @EBBAHAnJ oKJFKJ LolJ=CAI. )BJAH =IIAm>lO, A=?D JH=nI@K?AH EI FHoBElA@ >O mA=IKHEnC IoKn@ FHAIIKHA lALAlI MEJD = ?=lE>H=JA@ mE?HoFDonA =J IAlA?JA@ @HELEnC LolJ=CAI =n@ JH=?kEnC ?D=nCA oLAH JEmA. 6DA @=J= =HA KIA@ Jo @AJAHmEnA JDA 3 oB A=?D JH=nI@K?AH, JDA BKn?JEon=l HAl=JEonIDEFI >AJMAAn 52L =n@ =mFlEBEAH FoMAH, =n@ JDA 8­1 FD=IA =I EJ HAl=JAI Jo JDA HAIon=nJ­oFAH=JEnC BHAGKAn?O @EBBAHAn?A. +loIAlO m=J?DEnC JH=nI@K?AHI =HA F=EHA@ on =n =NEI. 6DHAA IAJI oB JH=nI@K?AHI =HA JDAn EnIJ=llA@ EnJo JDA ))L on oHJDoCon=l =NAI, MDAHA BKHJDAH ?=lE>H=JEon JAIJEnC EI HAGKEHA@. 6DA FHoBElA @=J= =HA IJoHA@ En = DKm=n­HA=@=>lA BElA =n@ KIA@ En JDA ?onJHol FHoCH=m Jo JH=?k =n@ mA=IKHA 52L =I JH=nI@K?AHI Co on =n@ oBB HAIon=n?A. 6DA KIA oB IAF=H=JA BElAI =lloMI JDA KIAH Jo GKE?klO ?D=nCA ?onBECKH=JEonI, =I JH=nI@K?AHI =HA HA=HH=nCA@ oH ?D=nCA@ oKJ @KHEnC JDA ?=lE>H=JEonFD=IA oB JDA EnIJHKmAnJ. ­""­

11.2. Voltage•Current Phase Tracking 6DA LolJ=CA­?KHHAnJ FD=IA @EBBAHAn?A EI KIA@ Jo @AJAHmEnA DoM = JH=nI@K?AH EI >AEnC @HELAn En ?omF=HEIon Jo EJI HAIon=nJ BHAGKAn?O. 9DAn JDA JH=nI@K?AH EI oBB HAIon=n?A, JDA oKJFKJ FoMAH oB JDA ?onIJ=nJ­LolJ=CA =mFlEBEAH @A?HA=IAI =n@ =n En?HA=IA@ LolJ=CA EIHAGKEHA@Jo=JJ=EnJDA @AIEHA@52L. 6DA ?onJHollAH >o=H@I F=EHA@ MEJD A=?D =?oKIJE? JH=nI@K?AH @HELA JDA oKJFKJ JDHoKCD =n on>o=H@ ,)+ M=NEm M):#!#! =n@ ,,5 )n=loC ,ALE?AI ),'&!". 6DA @I21+!!. ),+ ?D=nnAlI =HA KIA@ Jo mA=IKHA JDA oKJFKJ LolJ=CA =n@ ?KHHAnJ. ) :ElEnN :+'#!$:L +2L, ?=l?Kl=JAI HAJKHn LolJ=CA =n@ ?KHHAnJ FD=IAI =n@ FHoLE@AI EnJAHHKFJI Jo = C=JA@ JEmAH on JDA @I21+!!.. 6DEI JEmEnC @=J= FHoLE@AI JDA lA=@EnC oH l=CCEnC FD=IAI oB JDA ?KHHAnJ JoJDA LolJ=CA =n@EIKIA@=IBAA@>=?k EnJoJDA ?onJHol IOIJAm.

12. Firmware Implementation 6DA m=En ?ommKnE?=JEon >o=H@ KIAI JDA @I21+!!. IAHE=l 7)46 mo@KlA Jo FHAIAnJ = @ALE?A ?omm=n@ mo@A =n@ @EHA?J 'F l=OAHEnC BoH EnJAH=?JEon MEJD 2l=n ' =n@ 1nBAHno @ALAloFmAnJ m=?DEnAI. 'F on JDA @I21+!!. M=I =??omFlEIDA@ >O FoHJEnC lib9 =n@ lib9p IoKH?A BHom [#] Jo IKFFoHJ JDA $­>EJ =H?DEJA?JKHA oB JDA @I21+!!.. 6DA ?ommKnE?=JEon >o=H@ EI ?onBECKHA@ Jo IJ=HJ JDA IAHE=l 7)46 En = H=M ?omm=n@ mo@A =n@ MEll =KJom=JE?=llO IMEJ?D Jo 'F >O InEBBEnC BoH = 6LAHIEon mAII=CA[$] En JDA IAHE=l EnFKJ IJHA=m. On HA?AEFJ oB JDA 6LAHIEon DA=@AH, JDA 7)46 @HELAH IMEJ?DAI Jo = ,M) mo@A Jo HA@K?A JDA 7)46HA?AELA EnJAHHKFJIonJDA @I21+!!.BHomonA FAH>OJA Jo JMo ,M) EnJAHHKFJI: = BoKH­>OJA IEzA BEAl@, =n@ JDA HAm=EnEnC mAII=CA lAnCJD. 6DEI An?=FIKl=JEonoB 'FIEmFlEBEA@JDA ?o@A HAGKEHA@BoHAHHoH?DA?kEnC=n@HA?oLAHO.

12.1. Application Programmers Interface 6DA ?lKIJAH oB Am>A@@A@ ?onJHollAHI EI =??AIIA@ JDHoKCD = IEnClA IAHE=l EnJAHB=?A. )n 1OL)N @ALE?A IAHLAH EI KIA@ Jo ANJAn@ JDA 'F ?onnA?JEon oLAH JDA nAJMoHk. )n 1OL)N @ALE?A IAHLAH EI ?onBECKHA@ Jo onlO =lloM onA ?onnA?JEon =J = JEmA. 6DoKCD JDA ?lKIJAH ?=n >A =??AIIA@@EHA?JlOMEJDoKJ KIEnCJDA 'FFHoJo?ol,JDA m=joHEJOoB JDA BKn?­ JEon=lEJO D=I >AAn EmFlAmAnJA@ >O lALAH=CEnC JDA BElA IOIJAm FHoLE@A@ oLAH 'F. 6DA ))L ?ommKnE?=JEonI ?onJHollAH FHoLE@AI = IEnClA­lALAl BElA IOIJAm JD=J EI =??AIIA@ JDHoKCD = IDAll oH FHoCH=m. 6DA BElA IOIJAm =n@ Kn@AHlOEnC IEnClA lALAl IJHK?JKHA EI FoHJH=OA@En.ECKHA .

6DA ctl, data, stats, status BElAI =HA KIA@ BoH @EHA?J =??AII Jo JDA m=En ?ommKnE?=JEonI >o=H@. 6DA t* BElAI =lECn Jo A=?D JH=nI@K?AH ?onJHol >o=H@. )I EI JOFE?=l En 2l=n ', JDA ctl BElA EI KIA@ Jo IAn@ ?omm=n@I Jo JDA >o=H@. 4A=@EnC JDA stats BElA @KmFI DKm=n­HA=@=>lA @=J= BoH =ll JDA onlEnA >o=H@I =I IAAn En JDA FHEoH AN=mFlA. 6DA data BElA FHoLE@AI =n =HH=O oB >OJAI F=?kA@ BoH A=?D JH=nI@K?AH HoM En JDA stats BElA. 6DA status FHoLE@AI EnBoHm=JEon on JDA ?KHHAnJ IJ=JA oB JDA m=En ?ommKnE?=JEonI >o=H@. -n@ KIAH FHoCH=mI ?=n HA=@ JDA ?KHHAnJ IJ=JA oB JDA IOIJAm >O oFAnEnC =n@ HA=@EnC JDA stats BElA. )lJAHn=JELAlO, En@ELE@K=l >o=H@ @=J= ?=n >A HA=@ JDHoKCD JDA tN BElAI,FHo­ LE@EnCIEnClA ?D=nnAl monEJoHEnC=n@?onJHol. ) HA=@oB JDA tNerr BElA HAJKHnI =n@ AHHoH IKmm=HOJH=?kA@>OJDA m=En?onJHol >o=H@BoHA=?D?=H@. 1n FH=?JE?A, = I?DA@KlA@ HA=@ oB JDA data oH stats BElAI EI FAHBoHmA@ Jo KF@=JA JDA En mAmoHO HAFHAIAnJ=JEon oB JDA ))L @=J=. 6D=J @=J= =HA KIA@ BoH =nO FHo?AIIEnC KnJEl ­"#­

% mount −A tcp!iolan!aal9p /n/aal % lc /n/aal ctl status t1err t2err t3err t4err t5err t6err data t1 t2 t3 t4 t5 t6 stats t1ctl t2ctl t3ctl t4ctl t5ctl t6ctl

% /n/aal/stats ID Ai Fi Phi Mper Mfreq Flags Vo PhiV Io PhiI F t1 2000 221677 3756 0 0.00 65 2221 0 1654 3151 0 t2 2029 221677 2048 0 0.00 193 1982 0 1640 3275 0 t3 2400 221677 0 0 0.00 65 2439 0 1538 3212 1 t4 1655 221677 2048 0 0.00 193 2636 2938 1294 0 t5 2031 221677 0 0 0.00 65 2044 0 1691 3075 0 t6 1866 221677 2048 0 0.00 65 2372 0 1724 3295 1

Figure 1 1nBAHnomoKnJ?omm=n@=n@))LBElAIOIJAm=??AII. JDA FAHEo@An@I=n@= IK>IAGKAnJ HA=@D=I>AAnFAHBoHmA@.

12.1.1. Ctl commands 6DA m=En ?ommKnE?=JEon >o=H@ =n@ IEN JH=nI@K?AH ?onJHollAH >o=H@I ?=n >A ?onJHollA@ MEJD = IEmFlA IAJ oB ?omm=n@I. 9HEJEnC = IJHEnC Jo JDA ctl BElA AEJDAH FHo@K?AI = Clo>=l ?D=nCA oH= ?D=nCA =lonC=n=NE=l F=EHoB >o=H@I=I@AI?HE>A@En6=>lA!.

fb N -n=>lAI ߣ ߣ oH @EI=>lAI ߣߣ FoIEJEon BAA@>=?k FHo?AIIEnC on =ll JH=nI@K?AH?onJHol >o=H@I. freq N /lo>=llOIAJ BHAGKAn?OJo N @0z. gain N /lo>=llO IAJ JDA ,)+ C=En Jo N. LEnA=H BHom mEn !#&" Jo m=N# . reset 4AIAJ JH=nI@K?AHIJo@AB=KlJ oKJFKJ L=lKAI. spin str str N +D=nCA IFEn oB X, Y, oH Z =NEI ߣKFߣ oH ߣ@oMnߣ N ,,5 -"'$ ࢐ -!$@ACHAAI.

Table 3 +ommKnE?=JEon>o=H@ ctl ?omm=n@I. ­"$­

12.1.2. Transducer ctl commands +D=nCAI Jo En@AFAn@AnJ >o=H@I =HA D=n@lA@ JDHoKCD JDA t?ctl BElAI =I @AFE?JA@ En 6=>lA ". 6DA IFA?EBEA@ JH=nI@K?AH ?omm=n@I =HA KIA@JoJKnA JDA oKJFKJ @KHEnC= HKn­ nEnC ANFAHEmAnJ. 6DAO ?=n =lIo >A KIA@ BoH ?KIJom =FFlE?=JEonI JD=J JAIJ = F=HJE?Kl=H JH=nI@K?AH.

debug N -n=>lAI ߣ ߣ oH @EI=>lAI ߣߣ @A>KCCEnC oKJFKJ oLAH ANJAHn=l 7)46. fan N 6KHnJH=nI@K?AH?oolEnCB=nonߣ ߣ oHoBB ߣߣ. fb N -n=>lAIߣ ߣ oH@EI=>lAIߣߣ FoIEJEonBAA@>=?k FHo?AIIEnC. freq N 5AJ BHAGKAn?OJo N @0z KIA m=En ctl EnIJA=@. gain N 5AJ ?D=nnAl oKJFKJ ,)+ C=EnJo N. mod N n )mFlEJK@A mo@Kl=JA N ±   =J n 0z. phase N 5AJ ,,5FD=IA Jo N ,,5-"'$࢐ -!$@ACHAAI. reset 4AIAJ JoIJ=HJKFL=lKAI.

Table 4 6H=nI@K?AH ctl ?omm=n@I

13. Modeling 6DA BElA IOIJAmHAFHAIAnJ=JEonoB oKH))L?onJHollAH >o=H@I =lloMA@ KI Jo ?HA=JA IEmFlA IDAll I?HEFJI oH FHoCH=mI Jo FHoLE@A GKE?k @=J= ?ollA?JEon =n@ =n=lOIEI. .oH AN=mFlA, JDA KIA oB =n I?HEFJ Jo I?=n JDA JH=nI@K?AHI =n@ ?ollA?J @=J= BoH JAIJEnC BKHJDAH =IFA?JIoB oKH?onJHol looF?=n>A IAAnEn.ECKHA .

log = $home/tests/gainfreqsweep.log Start ‘{date} >> $log echo reset > ctl

for(g in ‘{ 3000 −20 2400}) { echo gain $g > ctl for(f in ‘{seq 221500 10 222500}) { echo freq $f > ctl echo gain: $g freq: $f cat stats >> $log } }

echo reset > ctl echo Completed ‘{date} >> $log

Figure 2 -N=mFlAoB=C=En=n@BHAGKAn?OIMAAF. ­"%­

6DA JH=nI@K?AH?onJHollAH>o=H@I@onoJ I=mFlA JDA oKJFKJ BHomJDA =mFlEBEAHI @EHA?JlO. 9A m=nK=llO LAHEBO JDA lEnA=H oKJFKJ BoH LolJ=CA =n@ ?KHHAnJ =n@ KIA JDoIA @=J= Jo ?on­ IJHK?J = ?=lE>H=JA@ FHoBElA IAJ oB ?onIJ=nJI KIA@ En IK>IAGKAnJ AGK=JEonI. 6DA ?=lE>H=­ JEon FHo?A@KHA EI =lIo FAHBoHmA@ MEJD = IEmFlA 4? BKn?JEon =n@ m=nK=l AnJHO =I En .EC­ KHA !.

log = $home/tests/run.log fn s { ts = ‘{date −n} ID=‘{echo t$1} delta=‘{echo $2} PkV=‘{echo $3} PkI=‘{echo $4} measure=‘{cat $ID} Ai=‘{echo $measure | awk ’{print $2}’} Fi=‘{echo $measure | awk ’{print $3}’} Vo=‘{echo $measure | awk ’{print $8}’} PhiV=‘{echo $measure | awk ’{print $9}’} Io=‘{echo $measure | awk ’{print $10}’} PhiI=‘{echo $measure | awk ’{print $11}’} echo $ts $ID $Ai $Fi $Vo $PhiV $Io $PhiI $delta $PkV $PkI >> $log }

cd /n/aal echo freq 221900 > ctl echo gain 2920 > t6ctl

# record transducer 6 measurements # delta in µs # ouput voltage and current recorded in volts from a scope s 6 7.2 2.98 .184

Figure 3 4?@=J=?ollA?JEonBKn?JEon=n@?omm=n@I.

13.1. Equations 6DA @=J= HA=@ BHom JDA data =n@ stats BElAI EI En EnJACAH BoHm=J. )ll Blo=JEnC FoEnJ ?on­ LAHIEon EI @onA En LEm>o. ) J=>lA oB ?=lE>H=JA@ FHoBElA @=J= EI KIA@ MEJD JDA mA=IKHA@ @=J= BHom oKH ?=l?Kl=JEonI. 6DA BolloMEnC AGK=JEonI KIA mA=IKHA@ =n@ IAJ L=lKAI BHom 6=>lA#.

V o ),+ ­>EJ mA=IKHA@LolJ=CA oKJFKJ JoJH=nI@K?AH. I o ),+ ­>EJ mA=IKHA@?KHHAnJ oKJFKJ JoJH=nI@K?AH. F 1nJACAHHAFHAIAnJ=JEonoB BHAGKAn?OEn@0z. V g ­>EJ L=lKA MHEJJAnJoJDA ,)+. φ V +2L, ?=l?Kl=JA@ ­>EJ LolJ=CA FD=IA. φ I +2L, ?=l?Kl=JA@ ­>EJ ?KHHAnJ FD=IA. Fosc @I21+!!.IOIJAm?lo?k, %.!%&× %

Table 5 MA=IKH=>lAEnFKJ=n@oKJFKJBHomJH=nI@K?AH?onJHollAH.

+=lE>H=JEon?onIJ=nJIBHomoKHFHoBElA =HA: A V, A I, B I, D I, A φ, B φ, A SPL, A G, B G. ­"&­

6DA BEHIJ IJAFEIJo?=l?Kl=JA JDA =mFlEBEAHoKJFKJ LolJ=CA,@AI?HE>A@>O

V = A V ·V o,   MDAHA V EI JDA ?=l?Kl=JA@ FA=k-Jo-FA=k LolJ=CA IKFFlEA@ Jo JDA JH=nI@K?AH. 6DA mA=­ IKHA@ oKJFKJ LolJ=CA V o EI KIA@ MEJD = ?=lE>H=JEon ?onIJ=nJ A V @ABEnA@ JDHoKCD FHEoH FHo>A@ANFAHEmAnJI. 6DA ?=l?Kl=JA@?KHHAnJ @AlELAHA@JoJDA JH=nI@K?AHEI

I = A I Io + B I ·I o + D I  

MEJD I JDA ?=l?Kl=JA@ ?KHHAnJ, I o EI mA=IKHA@ oKJFKJ ?KHHAnJ, =n@ JDA FHoBElA ?=lE>H=JEon ?onIJ=nJI =HA A I, B I, =n@ D I. 1B = JH=nI@K?AH EI IM=FFA@ oKJ, oH MA nAA@ Jo ?D=nCA =@@EJEon=l D=H@M=HA, MA ?=n A=IElO ?=l?Kl=JA nAM FHoBElA ?onIJ=nJI =I HAGKEHA@ Jo BEJ JDA lEnA=HH=nCA KIA@MDAnHKnnEnCJDA IOIJAm. 6DA mA=IKHA@ ?KHHAnJ­LolJ=CA FD=IA @EBBAHAn?A En =mFlEBEAH oKJFKJ EI @AJAHmEnA@ JDHoKCD   φ I + φ V  φ C = Signφ I − φ V  ·  − ______·ω· & !  Fosc·  6DA BHAGKAn?O, ω, EI HAFoHJA@ En k0z MEJD HAIolKJEon @AJAHmEnA@ >O JDA ,,5 En @A?E­ DAHJz. 6DA HAIKlJ BHom AGK=JEon ! MEll >A ?oHHA?JA@ En AGK=JEon " Jo =??ommo@=JA BoH = FD=IA IDEBJ En@K?A@ En oKH AlA?JHonE?I. 9A ?=n KIA φ C MEJDoKJ =@jKIJmAnJI Jo JDA @=J= ?ollA?JA@ BHom A=?D JH=nI@K?AHEnoH@AHJo@AFE?J @EBBAHEnCHAIon=nJ BHAGKAn?EAI=J = BENA@oKJFKJ C=En=IIAAnEn.ECKHA".

' J æ J ¡ J! × J" ࢩ J# + "# J$ ∆ ...... ¡  ...... ࢩࢩࢩ ¡¡ æææ×××∆∆++ ...... -"#

-'

. # . . #

Figure 4 2loJ oB mA=IKHA@ LolJ=CA­?KHHAnJ FD=IA @EBBAHAn?A. 6DA BHA­ GKAn?O IMAAF M=I FAHBoHmA@ =J = BENA@ C=En, IDoMEnC JDA HAIon=nJ BHA­ GKAn?OL=HE=JEon=?HoII=llIENJH=nI@K?AHI.

6o =??omo@=JA BoH = FD=IA IDEBJ EnJHo@K?A@ En oKH AlA?JHonE?I, = JHKA 8­1 FD=IA @EBBAH­ An?A ?oHHA?JEonEIFAHBoHmA@,

φ = φ C + B φ " )mFlEBEAHFoMAH, P,EnKnEJI>=IA@onFA=k­Jo­FA=k V =n@ I mA=IKHAmAnJIEI@ABEnA@=I V·I P = _____ ·cosφ #  ­"'­

6DA @ELEIEon >O  EI JDA HAIKlJ oB oKH =n=lOIEI KIEnC = V mA=IKHAmAnJ MEJD = : FHo>A =n@HAFoHJEnC I Enm=. 6DA FoMAH HAGKEHA@ Jo m=J?D = IFA?EBEA@ 52L, mA=IKHA@ En LolJI BHom = *HKAl  KjæH FHAIIKHA-BEAl@mE?HoFDonA lo?=JA@%.#?mBHomJDA JH=nI@K?AHIKHB=?A,EI

SPL = A SPL · P , $ SPL P =  _____  $.  A SPL 6DA nAM C=EnL=lKAI=HA ?=l?Kl=JA@>O

V C = A G ·G + B G, % MDAHA JDA G L=lKA EI = C=En F=H=mAJAH IKFFlEA@ >O JDA An@ KIAH oH JDA IoBJM=HA @KHEnC JDA BAA@>=?k looF. 6DA nAM LolJ=CA BoH= IFA?EBEA@52L=HA

V ·I V ·I = ______= ______V V  , V C V C  &  V C ·I C  V C ·I C =n@ JDAn BA@ >=?k Jo ?=l?Kl=JA = nAM C=En L=lKA Jo MHEJA Jo JDA ,)+. 6DA FHo?AII EI HAFA=JA@=J = @ABEnA@EnJAHL=l En= JDHA=@HKnnEnCEnoKH1nBAHno=FFlE?=JEon.

6DA FHEoH AGK=JEonI =HA EmFlAmAnJA@ En LEm>o =n@ HA@K?A EnJo JDA BolloMEnC LEm>o BKn?JEon:

splgain(spl: real, tp: ref Tprofile, ts: ref Tstats): real { ng := 0.0; V := math−>fabs(ampvolt(tp, ts)); P1 := math−>fabs(amppower(tp, ts)); if(P1 != 0.0) { P2 := math−>fabs(splpower(spl, tp)); V2 := V * math−>sqrt(P2/P1); Vc2 := V2/tp.Av; ng = (−tp.Bg + Vc2)/tp.Ag; } return ng; }

Figure 5 LEm>o BKn?JEon KIA@ Jo =JJ=En = lEnA=H ­>EJ C=En L=lKA. 6DA ?D=nCA EI FAHBoHmA@ >O MHEJEnC JDA nAM C=En Jo JDA JH=nI@K?AH ?on­ JHollAH ctl BElA.

6DA HAIon=nJ BHAGKAn?O oB = JH=nI@K?AH EI ?=l?Kl=JA@ KIEnC ?onIJ=nJI A ! Jo A  En = ?K>E?AGK=JEonHAl=JEnCBHAGKAn?OJo8­1 FD=IA @EBBAHAn?A, ! ω r − ω = A ! φ + A φ + A φ + A , '

MDAHA ω r EIJDA HAIon=nJ BHAGKAn?O=n@ ω EIJDA oFAH=JEnCBHAGKAn?O. ­#­

14. Inferno control system 6DA FHEoH =lCoHEJDmI =HA A=IElO EmFlAmAnJA@ En = LEm>o mo@KlA Jo D=n@lA =ll ?=lE>H=­ JEon HoKJEnAI HAGKEHA@ BoH JDA HKnnEnC IOIJAm. 1n oH@AH Jo oFJEmEzA JDA IOIJAm, MA KIA = JEmAH Jo FAHEo@E?=llO Foll JDA /n/aal/data BElA oB JDA ))L =n@ KIA JDA @=J= Jo KF@=JA JDA oFAH=JEnC BHAGKAn?O =n@ m=J?D FHA-=mF C=En HAGKEHA@ Jo =?DEALA JDA @AIEHA@ 52L L=lKAI BoH A=?D JH=nI@K?AH. 6DA JEmAH ?=ll>=?k KIAI JDA ?=l?Kl=JA@ =LAH=CA oB HAIon=nJ BHAGKAn?EAI@AJAHmEnA@JDHoKCDJDA HAIKlJ oB AGK=JEon'. *O mA=IKHEnC JDA 8­1 FD=IA @EBBAHAn?A, JDA JH=?kEnC =lCoHEJDm EI KIA@ Jo JKnA JDA IOI­ JAm Kn@AH L=HOEnC lo=@I. 6DA ?oolEnC B=nI BoH A=?D JH=nI@K?AH =HA JKHnA@ on oH oBB EB JDA oFAH=JEnC BHAGKAn?O EI CHA=JAH oH lAII JD=n JDA HAIon=nJ BHAGKAn?O. 6DEI =KJo­ m=JA@ ?onJHol >HEnCI JDA JH=nI@K?AHI EnJo = ±  0z H=nCA BHom JDA oFAH=JEnC BHA­ GKAn?O. 6DA HAIKlJ oB JDEI ?onJHol EI JD=J JDA HAIon=nJ BHAGKAn?EAI ?onLAHCA JoM=H@I JDA oFAH=JEnCBHAGKAn?O=IJDA JH=nI@K?AHIM=HmKF,=IEllKIJH=JA@En.ECKHA$.

æ . $  # . # æ ω r − ω  ω 0z -# . " k0z æ -  æ æ ω æ . ! æ

  " $

Figure 6 .HAGKAn?O JH=?kEnC .' 52L oLAH JEmA En IA?on@I. 6DA lABJ =NEI @AFE?JI JDA =>ElEJO Jo kAAF JH=nI@K?AH HAIon=nJ BHAGKAn?O ω r, MEJDEn  0z oB JDA oFAH=JEnC BHAGKAn?O ω. 6DA HECDJ =NEI FHAIAnJI JDA @HoFoBJDAoFAH=JEnCBHAGKAn?O.

6DA ?onJHol IOIJAm =lloMI BoH B=IJ IJ=HJKF JEmAI MDAHA MA ?=n GKE?klO >HEnC =ll IEN JH=nI@K?AHI EnJo = MoHkEnC IJ=JA BHom = ?ol@ IJ=HJ. -LE@An?A oB JDEI EI @AJ=ElA@ En .EC­ KHA%MDAHA MA FloJ = FAHEo@MDAHA JDA JH=?kEnCIOIJAmEInoJ EnoFAH=JEon. On?A JDA BHAGKAn?O =n@ 52L JH=?kEnC IOIJAm EI An=>lA@, JDA JH=nI@K?AHI =HA >HoKCDJ EnJo = m=n=CA=>lA H=nCA =I MA ?=n IAA En .ECKHA&. 6DoKCD JDAHA EI=KJom=JA@?onJHol oB JDA IOIJAm, =n oFAH=JoH ?=n A=IElO ?D=nCA F=H=mAJAHI JD=J ABBA?J 52L, I=mFlA FoIE­ JEon, IFEn MDElA monEJoHEnC JDA 1nBAHno ?onIolA =n@ FAHBoHmEnC LEIK=l EnIFA?JEon oB JDA C=IBloM H=JA,JAmFAH=JKHA,=n@FoIEJEonoB JDA I=mFlA.

14.1. Console MoIJ oB JDA J=IkI KIA@ En ?onJHollEnC JDA IOIJAm =HA FAHBoHmA@ MEJDEn JDA KIAH ?on­ IolA. *O @AB=KlJ JDAIA =HA IEmFlA BKn?JEonI IF=MnA@ oBB =BJAH moKnJEnC JDA ))L BElA IOIJAm. 6DA ?onIolA FHoLE@AI JDA oFAH=JoH MEJD IEmFlA m=n=CAmAnJ JoolI Jo IAJ JDA 52L, oFAH=JEnC BHAGKAn?O, FD=IA HAl=JEonIDEFI BoH FoIEJEon =n@ IFEn ?onJHol, =n@ =mFlE­ JK@A mo@Kl=JEon. 1J =lIo FHoLE@AI = IEmFlA CH=FDE?=llO @HELAn mA?D=nEIm Jo JKHn 52L =n@ BHAGKAn?O JH=?kEnC oH oBB =n@ An=>lEnC FoIEJEon BAA@­>=?k FHo?AIIEnC KIA@ Jo IJ=­ >ElEzA = I=mFlA. ­# ­

×+ + + + + + × × + .%# . × + ∆ × + + + ∆ × + ∆ × + .% æ ∆ × + ¡ ∆ × + ¡ ∆ × + + ∆ + . ¡æ ∆ × + + æ ¡ × + æ ∆ × + + ࢩ ∆ + ¡ æ ∆ ×∆ + æ ¡ ∆ × .$# ¡ ¡æ ×∆ ×∆ ¡ ࢩ ¡æ æ ×∆ ×∆ ࢩ æ ¡ ∆ × ࢩ ¡ ¡æ ¡æ ¡æ æ ×∆ æ ¡ ∆ × . ' ¡ ¡æ ¡æ ࢩ ¡ ∆ × ࢩ ࢩ ࢩ æ ¡ ¡∆ × .$ ࢩ ࢩ ࢩ ࢩ ࢩ ࢩ ࢩ ࢩ æ ¡∆ ¡∆ ס ࢩ ࢩ ࢩ æ æ æ ∆ ࢩ ࢩ ࢩ æ æ æ . & ࢩ ࢩ ࢩ .##

Figure 7 .HAGKAn?O =n@ 52L JH=?kEnC oBB. 6DA lABJ =n@ HECDJ IE@AI ?oLAH JDA I=mA JEmA FAHEo@ oB JMAnJO mEnKJAI MEJD JDA BHAGKAn?O = ?onIJ=nJ . $# k0z =n@ JDA 52L IAJ Jo .%. On JDA lABJ, JDA IEN JH=nI@K?AHI HAIon=nJ BHAGKAn?EAI @HEBJ loMAH =I JDAO DA=J KF oLAH JEmA. On JDA HECDJ, JDA =?JK=l 52L BoH A=?D JH=nI@K?AH L=HEAI =I JDA LolJ=CA­?KHHAnJ FD=IA@EBBAHAn?A?D=nCAI.

.%#

¡∆+ ¡∆+ ¡∆+ ¡∆+ . ࢩæ ࢩæ ࢩ× ࢩ×æ .% + × × æ + ×∆ + + ¡æ + . ' ×∆æ .$# ¡ ×∆æ ࢩ ¡ ¡×∆æ ¡×∆æ . & .$ ࢩ ࢩ ࢩ ࢩ . % .##

Figure 8 .HAGKAn?O =n@ 52L JH=?kEnC JKHnA@ on =n@ HKn BoH =FFHoNE­ m=JAlO  mEnKJAI. 6DA lABJ IDoMI JDA =LAH=CA BHAGKAn?O @HoFFEnC BHom . &&& Jo . & ! k0z. On JDA HECDJ, JDA 52L IJ=>ElEzA@ =J JDA J=HCAJoKJFKJoB.%. 6DA CH=FDE?I =FFlE?=JEonI JD=J @ABEnA JDA ?onIolA =HA ?KHHAnJlO m=@A KF oB BoKH IAF=­ H=JA I?HAAnI: JDA FHEm=HO ?onIolA, = CH=FDE?=l I?oFA, = IJ=JEIJE?I I?HAAn, =n@ = FoIEJEon IAnIoH I?HAAn. 6DAIA I?HAAnI =HA KIA@ Jo m=n=CA JDA IOIJAm =I MAll =I FHoLE@A loC­ CEnC@=J= oB JDA IJ=JEIJE?I?ollA?JA@@KHEnCJDA HKnJEmA.

15. Conclusion 6DA KIA oB = 'F >=IA@ BElA IOIJAm D=I B=?ElEJ=JA@ JDA ?HA=JEon oB = MoHkEnC EnJAHB=?A Jo JDA ))L JD=J =lloMI A=IO KIAH m=nEFKl=JEon MEJDoKJ HAGKEHEnC =@@EJEon=l FDOIE?=l ?on­ JHolI. *O FHoLE@EnC = IEnClA lALAl BElA IOIJAm MEJD A=IO Jo Kn@AHIJ=n@ ?omm=n@I MA D=LA >AAn =>lA Jo FHoLE@A = IJHK?JKHA BoH GKE?klO >HEnCEnC JDA IOIJAm KF =n@ monEJoH­ EnC EJI IJ=JA. 6DA A=IA oB KIEnC LEm>o FHoCH=mI oH oJDAH IDAll AnLEHonmAnJI Jo =??AII JDA IOIJAm D=I EmFHoLA@ oKH =>ElEJO Jo ?on@K?J ANFAHEmAnJI =n@ C=JDAH @=J= HAGKEHA@ BoHBKHJDAH=n=lOIEIJD=J D=LA DEIJoHE?=llO>AAnmoHA @EBBE?KlJ Jo=??omFlEID. ­# ­

16. Acknowledgements 9A MoKl@ lEkA Jo JD=nk 5JALA .EnklAm=n, -@K=H@o LoFAz /El, ,AnnEI MAHklAO, =n@ J=mAI 4ENBoHJDAEHABBoHJIEn@AIECnEnC=n@@ALAloFEnCJDA ))L.

17. References [ ] J.K. 4. 9A>AH, ,. 5. 0=mFJon, ,. 4. MAHklAO, +. ). 4AO, M. M. Z=J=HIkE, =n@ 2. +. NoH@EnA. )AHo­=?oKIJE? lALEJ=JEon: ) mAJDo@ BoH ?onJ=EnAHlAII lEGKE@­FD=IA FHo?AIIEnC =J DECD JAmFAH=JKHAI. Review of Scientific Instruments, $# :"#$-"$#, .A>HK=HO ''". [ ] 4. 2EkA, =n@ ,. M. 4EJ?DEA, 6DA 5JON )H?DEJA?JKHA BoH ,EIJHE>KJA@ 5OIJAmI. Bell Labs Technical Journal, # , )FHEl-JKnA '''. [!] ,. M. 4EJ?DEA, 6DA LEm>o 2HoCH=mmEnC L=nCK=CA, En Inferno Programmer’s Manual, Volume Two, 8EJ= NKoL= 0ol@EnCI LJ@., ;oHk, . ["] -. /HoIIA. 4A=l 1nBAHno. 1n Proceedings of the IFIP TC2/WG2.5 working conference on Quality of numerical software, F. %- %', J=nK=HO, ''%, ONBoH@, 7nEJA@ KEnC@om. [#] 4. +oN. Plan 9 from User Space. DJJF://IMJ?D.?om/Fl=n'FoHJ/ [$] DJJF://Fl=n'.>All-l=>I.?om/m=CE?/m=n DJml/#/EnJHo