<<

FQA 8 − Using 9front

9DAn =FFlEA@ ?onIEIJAnJlO, IEmFlA ?onLAnJEonI ?=n ?om>EnA Jo FHoLE@A FoMAHBKl HAIKlJI. 1n 2l=n ', conventions =HA FHABAHHA@ Jo rules. 6DEI IA?JEon ANFloHAI JDA 2l=n ' =FFHo=?D Jo=?JK=llOKIEnCJDA?omFKJAH. ­ ­

8.1 − rc

rc was a startup script from very early times in , shortened, as Ken was wont to do, from runcom, the nearest thing CTSS had to a shellߞit could run up to six prespecified commands in background. The name runcom came to be applied to the scripts as well as to their interpreter. ߞ ,oKCM?1lHoO

6DA rc IDAll M=I MHEJJAn >O 6om ,KBB BoH 4AIA=H?D 7N1: L . 1J M=I l=JAH =@oFJA@ =I JDA IDAll BoH 2l=n '. 5omA oB EJI ?onLAnJEonI =HA KnKIK=l ?omF=HA@ MEJD oJDAH ?omm=n@ EnJAHFHAJAHI EnBlKAn?A@ >O JDA *oKHnA IDAll. )lJDoKCD EJI IOnJ=N m=O IAAm IJH=nCA =J BEHIJ, D=LA F=JEAn?A; rc M=I @AIECnA@ JDEI M=O on FKHFoIA. On?A EJI BAM, >KJ FoMAHBKl BA=JKHAI=HAEnJAHn=lEzA@, rc IEmFlOCAJIoKJoBJDAM=O.

4A=@: Rc − The Plan 9 Shell, rc(1)

8.1.1 − Prompts

+HA=JEnC =n rc BKn?JEon MEJD JDA I=mA n=mA =I OoKH FHomFJ =lloMI OoK Jo A=IElO @oK>lA-?lE?k Jo IAlA?J =J JDA An@ oB = FHALEoKIlO JOFA@ lEnA =n@ JDAn send EJ KIEnC JDA moKIA >KJJon mAnK IAA JDA @EI?KIIEon oB mAnKI, >AloM. 6DEI ?=n >A KIA@ Jo =FFHoNEm=JA = BoHm oB ?omm=n@ DEIJoHO IAA =lIo JDA ?omm=n@I  =n@ , MDE?D FHEnJ =n@ANA?KJAJDAFHALEoKI?omm=n@,HAIFA?JELAlO.

)@@IomAJDEnClEkAJDEIJoOoKH $home/profile: fn term%{ $* }

1n rc JDA ; ?D=H=?JAH BoH?AI JDA An@ oB = lEnA =n@ EI JHA=JA@ =I = nooF MDAn EJ =FFA=HI =lonA, Io EJ EI =lIo FoIIE>lA Jo ?HA=JA = IEmFlA FHomFJ JD=J MoKl@ HAGKEHA no IFA?E=l FHomFJ BKn?JEon En oH@AH BoH JDA FHomFJ Jo >A ABBA?JELAlO ECnoHA@ MDAn IAlA?JEnC =n@ IAn@EnC: prompt=´; ´

O>LEoKIlO,JDAFHomFJ?=n>An=mA@DoMALAHJDAKIAHIAAIBEJ.

8.1.2 − /env

Note: +onJAnJI oB JDA /env @EHA?JoHO =HA FHoLE@A@ >O JDA kAHnAl =n@ HAFHAIAnJ = IAF=­ H=JA =??oKnJEnC oB JDA IDAllߣI AnLEHonmAnJ; rc HA=@I /env onlO on IJ=HJKF, =n@ BlKIDAI/MHEJAI /env onlO>ABoHAANA?KJEnCFHoCH=mI. ­!­

8.2 − rio

rio EI JDA 2l=n ' MEn@oM IOIJAm. MoHA =??KH=JAlO, rio mKlJEFlANAI EnFKJ @ALE?AI MEJD =n@ IAHLAI = BElA EnJAHB=?A Jo = IAHEAI oB HA?J=nClAI, EnIE@A JDA >oKn@=HEAI oB MDE?D =HA @H=Mn =n =H>EJH=HO =HH=nCAmAnJ oB FENAlI. +onJHollEnC JDA HA?J=nClAI EI moHA IJH=ECDJBoH­ M=H@, =n@ =J JDA I=mA JEmA moHA BlANE>lA, JD=n MD=J EI ?ommonlO ANFA?JA@ BHom moIJ MEn@oMm=n=CAHI.

4A=@: rio(1), rio(4)

6o ABBA?JELAlO KIA rio, OoK nAA@ = JDHAA >KJJon moKIA. 1B OoK onlO D=LA = JMo >KJJon moKIA OoK?=nAmKl=JAJDAmE@@lA>KJJon>ODol@EnC@oMnJDA shift kAOMDElIJFHAII­ EnCJDAHECDJ>KJJon.

Note: *KJJon , , =n@ ! =HA KIA@ Jo HABAH Jo JDA lABJ, mE@@lA, =n@ HECDJ >KJJonI HAIFA?­ JELAlO.

8.2.1 − The Pop−up Menu

2HAIIEnC =n@ Dol@EnC @oMn moKIA >KJJon ! on JDA CH=O @AIkJoF oH on = IDAll MEn@oM MEllCELAOoK=mAnKMEJDJDABolloMEnCoFJEonI:

New

Resize

Move

Delete

Hide

2HAIIEnC=n@Dol@EnC@oMnmoKIA>KJJon on=IDAllMEn@oMHAIKlJIEn=mAnK MEJD JDA ­"­

BolloMEnCoFJEonI: cut paste snarf plumb look send scroll

5AlA?J =n EJAm >O HAlA=IEnC JDA >KJJon oLAH JDA mAnK EJAm. 4Eo KIAI JDA I=mA >KJJon JD=J IJ=HJA@ =n =?JEon JDHoKCDoKJ JD=J oFAH=JEon. 1B OoK FHAII =noJDAH >KJJon @KHEnC JDA =?JEonJDAoFAH=JEonEI=>oHJA@=n@=nOEnJAHmA@E=JA?D=nCAI=HAHALAHIA@.

-=?D mAnK =?JI =I = =?JEon LAH> IAlA?JoH MDE?D JDAn HAGKEHAI =n o>jA?J E.A. MEn@oM Jo >A FE?kA@ Jo En@E?=JA MDE?D MEn@oM JDA LAH> EI Jo =?J on. ) BKHJDAH moKIA =?JEon m=O JDAn>AHAGKEHA@.

8.2.2 − Window control

+lE?kEnCon=MEn@oM>HEnCIEJJoJDABHonJ.

;oK ?=n @EHA?JlO ?D=nCA JDA ID=FA oB = MEn@oM >O ?lE?kEnC =n@ @H=CCEnC on JDA A@CA oH ?oHnAH oB JDA MEn@oM >oH@AH. MoKIA >KJJon oH MEll =lloM OoK Jo @H= JDA A@CA oH ?oHnAHJo=nAMIEzA,=n@moKIA>KJJon!MEll=lloMOoKJomoLAJDAMEn@oM.

6DA moKIA >KJJon ! mAnK ?onJ=EnI = lEIJ oB =ll MEn@oMI JD=J =HA ?oHHAnJlO o>IJHK?JA@ >O oJDAHMEn@oMI.5AlA?JEnC=l=>AlJoFIJDAMEn@oM.

6DA FoF-KF mAnK HAmAm>AHI JDA l=IJ ?omm=n@ ?DoIAn, Io =I = IDoHJ?KJ OoK ?=n jKIJ FHAII =n@ HAlA=IA >KJJon ! MEJDoKJ moLEnC JDA moKIA >AJMAAn FHAIIEnC =n@ HAlA=IEnC JoIAlA?JJDAFHALEoKI?omm=n@=C=En.

1n =@@EJEon, rio IAHLAI = L=HEAJO oB BElAI BoH HA=@EnC, MHEJEnC, =n@ ?onJHollEnC MEn@oMI. 5omA oB JDAm =HA LEHJK=l LAHIEonI oB IOIJAm BElAI BoH @A=lEnC MEJD JDA @EIFl=O, kAO>o=H@, =n@moKIA; oJDAHI ?onJHol oFAH=JEonI oB JDA MEn@oM IOIJAm EJIAlB. 6DAIA BElAI, =I MAll =I JDA window(1) ?omm=n@, =lloM BoH ?onJHollEnC MEn@oMI FHoCH=mm=JE?=llO >O HA=@EnC =n@ MHEJEnC JANJ IJHEnCI. 6DKI IEmFlEBOEnC JDA =KJom=JA@ oFAnEnC =n@ Fl=?AmAnJ oB L=HE­ oKIMEn@oMIMEJDKIAHI?HEFJI.

4A=@: rio(4)

8.2.3 − Text in rio windows

6ANJ En = rio MEn@oM m=O >A BHAAlO m=nEFKl=JA@, A@EJA@, =lJAHA@, @AlAJA@ =n@/oH =?JA@ KFon KIEnC AEJDAH moKIA ?DoH@I oH JDA oFJEonI BHom JDA moKIA >KJJon mAnKI. .oH =n ­#­

AN=mFlA,IAAJDA@EI?KIIEonoBJDAKIAoB rc FHomFJI,=>oLA.

6DA IFA?E=l BElA /dev/text BoH JDA ?KHHAnJ MEn@oM, oH /mnt/wsys/n/text BoH MEn@oM n ?onJ=EnI =ll JANJ JD=J D=I =lHA=@O =FFA=HA@ En JDA MEn@oM. 6DA ?onJAnJI oB JDEI BElA m=O IAHLA =I = FHEmEJELA BoHm oB ?omm=n@ DEIJoHO =n@ m=O >A =?JA@ KFon KIEnCIJ=n@=H@?omm=n@lEnAJoolI,>KJ=HAloIJMDAnJDAMEn@oMEI?loIA@.

5AHEoKIlO,HA=@: rio(4)

8.2.4 − Scrolling

*O @AB=KlJ, = rio MEn@oM MEll BEll KF MEJD JANJ =n@ JDAn >lo?k, o>LE=JEnC JDA nAA@ BoH = IAF=H=JAF=CAHFHoCH=mJDoKCDJDA p(1) F=CAHFHoCH=mIJEllIDEFIMEJDJDAIOIJAm.

-n@lAIII?HollEnCm=O>AAn=>lA@>OIAlA?JEnC scroll BHomJDAmoKIA>KJJon mAnK.

6DA up oH down =HHoM kAOI =n@ pgup oH pgdwn kAOI m=O >A KIA@ Jo I?Holl KF oH @oMnEn?onIEIJAnJlOmA=IKHA@En?HAmAnJI.

0ol@EnC @oMn JDA shift kAO =n@ FHAIIEnC JDA KF oH @oMn =HHoM kAO MEll I?Holl = IEnClA lEnAEnJDAHAIFA?JELA@EHA?JEon.

'BHonJߣI rio IKFFoHJI moKIAMDAAl I?HollEnC. 6DA DAKHEIJE? AmFloOA@ EI HoKCDlO JDA I=mA =I JD=J oB ?lE?kEnC En JDA I?Holl>=H on JDA lABJ oB JDA MEn@oM: MDAn JDA moKIA FoEnJAH EI nA=H JDA JoF oB JDA MEn@oM JDA I?HollEnC En?HAmAnJ EI Im=ll, MDElA =I JDA moKIA FoEnJAH =FFHo=?DAI JDA >oJJom oB JDA MEn@oM JDA I?HollEnC En?HAmAnJ CHoMI FHo­ CHAIIELAlO l=HCAH. 2HAIAnJlO JDEI >AD=LEoH EI lEmEJA@ Jo rio, , =n@ mothra >KJ m=O l=JAH>AANJAn@A@JooJDAHFHoCH=mI.

Note: 9DElA JDA >AD=LEoH oB JDA =HHoM =n@ F=CA kAOI EI =EHlO ?onIEIJAnJ >AJMAAn FHo­ CH=mI,moKIAMDAAlI?HollEnCEInoJ.5oB=H, shift up oH down EIonlOIKFFoHJA@En rio MEn@oMI.

8.2.5 − Mouse Chording

)lmoIJ =nOMDAHA ߞ sam(1), (1), window(1) ߞ OoK ?=n KIA JDA BolloMEnC moKIA?DoH@I: mb1 ߞ 5AlA?JJANJ. mb1 double click ߞ 5AlA?J MoH@ Kn@AH ?KHIoH, oH =J JDA An@/IJ=HJ oB = lEnA, IAlA?J JDAMDolAlEnA.

)BJAHIAlA?JEnCMEJD mb1 =n@MDElAIJEllDol@EnC mb1 @oMnJDAIA?DoH@I=lIo MoHk MEJD JANJ IAlA?JA@ >O @oK>lA-?lE?kEnC, JDA @oK>lA-?lE?k ANF=nIEon D=FFAnI MDAn JDAIA?on@ ?lE?kIJ=HJI,noJMDAnEJAn@I: mb2 ߞ +KJJANJ. mb3 ߞ 2=IJAJANJ?=n>AHALAHJA@>O?lE?kEnC mb2 EmmA@E=JAlO=BJAHM=H@I. ­$­

6oIn=HB?oFO,?lE?k mb2 EmmA@E=JAlOBolloMA@>O mb3.

8.2.6 − Keyboard Shortcuts

)lmoIJ =nOMDAHA ߞ sam(1), acme(1), window(1) ߞ OoK ?=n KIA JDA BolloMEnC IDoHJ?KJI:

Ctrl−u ߞ ,AlAJABHom?KHIoHJoIJ=HJoBlEnA.

Ctrl−w ߞ ,AlAJAMoH@>ABoHAJDA?KHIoH.

Ctrl−h ߞ ,AlAJA?D=H=?JAH>ABoHAJDA?KHIoH.

Ctrl−a ߞ MoLA?KHIoHJoIJ=HJoBJDAlEnA.

Ctrl−e ߞ MoLA?KHIoHJoAn@oBJDAlEnA.

Ctrl−b ߞ MoLA?KHIoHJoJDAFoIEJEonEmmA@E=JAlO=BJAHJDAFHomFJ.rio onlO

4A=@:7N1:KAO>o=H@*En@EnCI

1n= rio(1) MEn@oM,I?HollKFoH@oMnonAlEnA>ODol@EnC shift =n@ FHAIIEnC JDA KF oH@oMn=HHoM. ­%­

8.2.7 − Color scheme rio lookIlEkAJDEI:

rioߣI ?oloH I?DAmA m=O >A mo@EBEA@ >O A@EJEnC JDA .? ?onBECKH=JEon BElAI =n@ HA- ?omFElEnC:

Note: 5omAonAMEllmo?kOoKBoH@oEnCJDEI.

5AA:DJJF://Fl=n'.IJ=nlAOlEA>AH.?om/HEo,DJJFI://BJHL.IA/ " ­&­

4o>2EkA,HEoߣI=KJDoH,M=I=lllEkA:

JDA ?lA=n =FFA=H=n?A oB JDA I?HAAn ?omAI moIJlO BHom l=zEnAII, >KJ JDA ?oloH I?DAmA EI o>LEoKIlO @AlE>AH=JA. JDA EnJAnJ M=I Jo >KEl@ on =n o>IAHL=JEon >O A@M=H@ JKBJA JD=J JDA DKm=n IOIJAm lEkAI n=JKHA =n@ n=JKHA EI BKll oB F=lA ?ol­ oHI, Io IomAJDEnC OoKߣHA CoEnC Jo look =J =ll @=O mECDJ >AIJ IAHLA EB EJ MAHA =lIo En HAl=NEnC ID=@AI. HAnAA BHAn?D DAlFA@ mA MEJD JDA IFA?EBE?I oB JDA ?oloH I?DAmA IDAߣI = FHoBAIIEon=l EllKIJH=JoH =n@ mO ?oloH LEIEon EI IKIFA?J, on?A Eߣ@ BECKHA@ oKJ DoM E M=nJA@ EJ Jo look. JDAHA =HA IJEll IomA BA=JKHAI oB JDA ?oloH IOIJAm JD=J E FKJ En JD=J E JDEnk no onA D=I ALAH noJE?A@. JD=JߣI = Coo@ JDEnC, En mO oFEnEon; JDA ?oloHI IDoKl@ B=@A =M=O, EB OoKߣll F=H@on JDA ANFHAIIEon. D=LEnC KIA@ oJDAH IOIJAmI MEJD @EBBAHAnJ =FFHo=?DAI Jo ?oloH I?HAAnI,moIJAIFA?E=llOMEn@oMI:2ANJH=FKkAO,EJDEnkJKBJAM=IHECDJ.

4o>2EkA, !

6DA ?oloH I?DAmA M=I =n =JJAmFJ Jo DonoH = FoEnJ m=@A oHECEn=llO En = lEJJlA >Ho?DKHA >O -@M=H@ 6KBJA JD=J JDA ?oloHI oB n=JKHA =HA IoBJ =n@ GKEAJ =n@ FA=?ABKl Jo look =J, MDElA moIJ ?omFKJAH I?HAAnI =HA ?oLAHA@ En Cl=HEnC >HECDJ ?oloHI. 9DAn?oloH?=mAJoJDAIOIJAm1M=nJA@EJJo>AFlA=I=nJ.

4o>2EkA, &

5AA:A@M=H@JKBJA.?om

8.2.8 − Why is rio like this?

9En@oM IOIJAmI IDoKl@ >A JH=nIF=HAnJ. 6D=JߣI JDA =HCKmAnJ FKJ BoHM=H@ En JDA B=moKI F=FAH>OHEoߣI=KJDoH,4o>2EkA. ­'­

*AOon@ JDEI, 4o> oBBAHA@ =n ANFl=n=JEon En HAIFonIA Jo = GKAIJEon on JDA 'B=nI m=ElEnC lEIJoBIomAoBJDA?DoE?AIm=@AEnJDA@AIECnoB 8½ =n@ rio:

>BKn?JEonEnC?KHIoHkAOIMoKl@IJEll>A=IFAA@>AnABEJ.

6DEI BAAlI JHKA >KJ EI B=lIA. 6DAHA MAHA IomA B=I?En=JEnC ANFAHEmAnJI @onA = BAM OA=HI =Co En MDE?D FAoFlA MAHA CELAn = lonC, JA@EoKI A@EJEnC J=Ik. 5omA oB JDA FAoFlA MAHA kAO>o=H@ B=nI, IomA MAHA moKIA B=nI. *oJD BolkI MAHA =IkA@ Jo @o JDA J=Ik JMo M=OI, En H=n@om oH@AH, on?A KIEnC JDA moKIA Jo @o JDA A@EJEnC, on?A KIEnC ?KHIoH kAOI AJ?. 4AC=H@lAII oB JDAEH FHA@ElA?JEonI, MDE?D M=I IJ=JA@ KF BHonJ, =BJAH JDA ANFAHEmAnJ ALAHOonA MDo @E@ JDA J=Ik =CHAA@ JD=J EJ M=I B=IJAH Jo KIA JDA kAO>o=H@ JD=n JDA moKIA Jo ?omFlAJA JDA J=Ik. -LAHOonA. 0AHAߣI JDA kE?kAH: ALAHOonA M=I MHonC. 6DAO MAHA >AEnC JEmA@, =n@ En B=?J JDA HALAHIA M=I JHKA. )lJDoKCD JDAO JDoKCDJ JDA kAO>o=H@ M=I B=IJAH, @oEnC JDA J=Ik KIEnC JDA moKIA M=I B=IJAH BoH ALAHOonA, >O = IK>­ IJ=nJE=lBH=?JEon.

6DA ANFl=n=JEon, >AIE@AI JDA o>LEoKI JD=J =HHoM kAOI =HA =?JK=llO FHAJJO IloM EB OoKߣHA CoEnC moHA JD=n = lEnA oH ?D=H=?JAH, EI JD=J FAoFlA BAAl JDA moKIA M=IJAI JEmA >A?=KIA OoK nAA@ Jo CH=> EJ =n@ moLA EJ, >KJ EJߣI JEmA MAll IFAnJ. 6DA F=HJ oB JDA >H=En JD=J KIAI kAO>o=H@ ?omm=n@I Jo moLA JDA ?KHIoH EI = DECDAH-oH@AH BKn?JEon, =n@ JDEnkEnC =n@ Fl=nnEnC DoM Jo KIA JDA kAOI Jo CAJ Jo JDA @AIJEn=JEon >lo?kI JDEnkEnC =>oKJ JDA A@EJEnC J=Ik =J D=n@. *KJ KIEnC JDA moKIA EI @onA >O = loMAH-oH@AH F=HJ oB JDA >H=En, MDE?D kAAFI JDA A@EJEnC F=HJ oB JDA >H=En ?lA=H. 6DAHAߣI lAII J=Ik IMEJ?DEnC CoEnC on MDAn OoK KIAJDA moKIA,IoOoKMoHkmoHAABBE?EAnJlO.

1BOoK@onߣJ>AlEALAmA,JDAIJoHOEIDAHA:

DJJF://MMM.=IkJoC.?om/HA=@AHM=El/ '''- 4A=@AHM=El.DJml

6D=nkI Jo IomA BoHCoJJAn 'B=n MDo mAnJEonA@ JDEI = MDElA >=?k. 1 @E@nߣJ knoM =>oKJ JDAIA ANFAHEmAnJI MDAn 1 I=E@, lonC =Co, JD=J KIEnC =HHoM kAOI Jo ­ ­

FoEnJ =J = @EIFl=O EI lEkA JAllEnC IomAonA DoM Jo Co IomAMDAHA >O CELEnC @EHA?JEonI, MDElA KIEnC = moKIA EI lEkA FoEnJEnC =J = m=F. 1n B=?J, 1 nALAH KIA@ =I?HAAnA@EJoHKnJEl1D=@=moKIA,BoHjKIJJDEIHA=Ion.

4o>2EkA, 

8.2.9 − tips

8.2.9.1 − Taking a screenshot

6o?=FJKHAJDAAnJEHAI?HAAn: topng screen.png

6o?=FJKHAonlOJDA?KHHAnJMEn@oM: topng window.png

1JEI=lIoFoIIE>lAJo?=FJKHA other MEn@oMI: topng [email protected] MDAHA n EIJDAnKm>AHoBJDAMEn@oM>AEnC?=FJKHA@.

4A=@: rio(4)

8.2.9.2 − Prevent console messages from overwriting the screen

6o?=FJKHA?onIolAmAII=CAIEn= rio MEn@oM,oFAn=nAMMEn@oM=n@: cat /dev/kprint

8.3 Text Editors

8.3.1 − sam

6DA JANJ A@EJoH sam M=I ?HA=JA@ >O 4o> 2EkA, =n@ En?lK@A@ En 4AIA=H?D 7N1: 8' ?EH?= '&$,=n@l=JAHEn?lK@A@MEJD2l=n'.

5AA:DJJF://I=m.?=J-L.oHC

4A=@:

The sam ߞ 6DAoHECEn=lF=FAH>O4o>2EkA.

A Tutorial for the Sam Command Language ߞ ,o?KmAnJIJDAA@EJEnCl=nCK=CA. sam quick reference card sam(1) m=nF=CA ­ ­

DJJF://I=m.?=J-L.oHC/I=m-B=nI/ߞ I=m-B=nIm=ElEnClEIJ=H?DELA

,=n.l=LEn, Document for Untitled (to the innovator of Wheeling Peachblow), '$&

8.3.1.1 − Scrolling

'BHonJߣI IlECDJlO mo@EBEA@ LAHIEon oB sam IKFFoHJI moKIAMDAAl I?HollEnC En JDA I=mA m=nnAH=I rio.

4A=@: FQA 8.2.4 − Scrolling

8.3.1.2 − Mouse Chording

'BHonJ sam IKFFoHJIJDAI=mAmoKIA?DoH@EnC=I rio.

4A=@: FQA 8.2.5 − Mouse Chording

8.3.1.3 − Why does sam have a separate snarf buffer from rio?

6DAFHoCH=mߣI=KJDoH,4o>2EkA,I=OI:

M=I = ?onIAGKAn?A oB HKnnEnC oLAH  >=K@ MDAn I=m M=I BEHIJ MHEJJAn. OoK @E@nߣJ M=nJ ALAHO ?KJ =n@ F=IJA Jo >oKn?A oBB JDA HAmoJA An@ =J JD=J IFAA@. noM=@=OI JD=J =HCKmAnJ D=I lAII MAECDJ. on JDA oJDAH D=n@, E IJEll kEn@= lEkA JD=J OoK ?=n D=LA =n A@EJEnC IAIIEon JD=J @oAInߣJ ?oHHKFJ MD=J OoK D=LA En HEoߣI In=HB >KBBAH. E JHEA@ JDA KnEBEA@ M=O En =?mA =n@ E oBJAn noJ =lM=OImEIIJDAol@M=O.

4o>2EkA, ! ­ ­

8.3.1.4 − Keyboard Shortcuts

Esc ߞ +KJ=n@?onIAGKAnJlO,In=HBJDAIAlA?JA@JANJ.

Ctrl−b ߞ 5MEJ?DBo?KIJoJDAA@EJMEn@oM.

8.3.2 − acme

There is also an alternative , acme(4), that some people use as their editor. ߞ /AoBB+ollOAH

6DA JANJ A@EJoH acme M=I ?HA=JA@ >O 4o> 2EkA. 1J >KEl@I on JDA sam ?omm=n@ l=nCK=CA,=n@=@@InAMBA=JKHAI,MDE?DD=LAFHoLAnLAHOFoFKl=H.

5AA:

DJJF://=?mA.?=J-L.oHC

6DA)?mA4A=@mA

Acme: A User Interface for Programmers ߞ 6DAoHECEn=lF=FAH>O4o>2EkA.

=?mA ߞ +omm=n@I:=?mA,MEn,=M@,EnJAH=?JELAJANJMEn@oMI.

=?mA"ߞ 6DABElAIOIJAmEnJAHB=?A:?onJHolBElAIBoHJANJMEn@oMI.

) 6oKH OB )?mA ߞ 8E@Ao JKJoHE=l >O 4KII +oN ANFl=nEnC JDA m=En BA=JKHAI =n@ FHEn?EFlAIoB)?mA.

0=n@m=@A?O?loCH=m>O4KIIE=n?oImon=KJ,/AoHCE/HA?Dko. ­ !­

8.4 − Internet

5An@EnC=n@HA?AELEnC>EJILE==lEAnFHoJo?olI.

8.4.1 − Mail

4A=@: mail(1), FQA 7.7 − Mail server configuration and maintenance

8.4.1.1 − upasfs

.Hom upasfs(4): .IEI=KIAHlALAlBElAIOIJAmJD=J?=?DAIm=El>oNAI=n@ FHAIAnJI JDAm =I = BElA IOIJAm. ) KIAH noHm=llO IJ=HJI BI En DEI/DAH FHoBElA =BJAH IJ=HJEnC FlKm>AH" =n@ >ABoHA IJ=HJEnC = MEn@oM IOIJAm, IK?D =I HEo  oH =?mA . 6DA BElA IOI­ JAm EI KIA@ >O nA@m=El , =?mA ߣI m=El HA=@AH, =n@ Em=F"@ =n@ FoF! >oJD FoF!& Jo F=HIA mAII=CAI. .I =lIo CAnAH=JAI FlKm>EnC mAII=CAI KIA@ >O >EBB=n@B=?AI JoFHoLE@Am=El=nnoKn?AmAnJI.

4A=@: upasfs(4), pop3(8), faces(1)

8.4.1.1.1 − Reading gmail via IMAP upas/fs −f /imaps/imap.gmail.com/[email protected]

6DA BEHIJ JEmA JDEI ?omm=n@ EI HKn, OoK IDoKl@ IAA =n AHHoH JD=J lookI IomAJDEnC lEkA JDEI: upas/fs imap: server certificate 22471E10D5C1E41768048EF5567B27F532F33 not recognized upas/fs: opening mailbox: bad server certificate ­ "­

6o=@@JDEI?AHJEBE?=JAJoOoKHIOIJAm,JOFA: echo ´x509 sha1=22471E10D5C1E41768048EF5567B27F532F33´ \ >>/sys/lib/tls/mail

On?A upas/fs EIHKnnEnC,OoK?=noFAn=Im=nO=@@EJEon=l Cm=El m=El>oNAI l=>AlI =I OoKMEID: echo open /imaps/imap.gmail.com/[email protected]/yourlabel \ yourlabel >/mail/fs/ctl

Note: OFAnEnCl=HCAm=El>oNAIoLAH=IloM'FlEnkMEll>ALAHOIloM.

8.4.1.1.2 − Sending mail with gmail

)@@OoKHCm=ElF=IIMoH@JoJDAB=?JoJKm: echo ’key proto=pass server=smtp.gmail.com service=smtp \ [email protected] !password=yourpassword’\ >/mnt/factotum/ctl

Mo@EBO /mail/lib/remotemail JoC=JAM=Om=ElJDHoKCDOoKHCm=El=??oKnJ: #!/bin/rc shift [email protected] shift addr=tcp!smtp.gmail.com!587 shift fd=‘{/bin/upas/aliasmail −f $sender} switch($fd){ case *.* ; case * fd=gmail.com } exec /bin/upas/smtp −u [email protected] −a −h $fd $addr $sender $*

*ABoHAJDEIMEllMoHk OoK nAA@ Jo HAJHEALA JDA ?AHJEBE?=JA D=ID. 6DEI ?=n >A @onA >O JHOEnC JoIAn@=nA-m=El=n@JDAnlookEnCBoHJDAD=IDEnJDAloC: echo hello | mail −s test [email protected]

6DAnlookEn /sys/log/smtp BoHJDABolloMEnCAHHoH: cert for smtp.gmail.com not recognized: sha256=wnu7Uuzq4MlyJHP90+8f2smoh6x3cj0dG5z02jJlX42

)@@JDA?AHJEBE?=JAJoOoKHIOIJAm: echo ’x509 sha256=wnu7Uuzq4MlyJHP90+8f2smoh6x3cj0dG5z02jJlX42’ \ >> /sys/lib/tls/smtp

;oKIDoKl@noM>A=>lAJoIAn@A-m=ElJDHoKCDCm=El 1ߣmIoHHO.

Note: 6DEI?onBECKH=JEon>HA=kIlo?=lA-m=El@AlELAHO. ­ #­

8.4.1.2 − nedmail

nedmail EI = ?omm=n@ lEnA m=El ?lEAnJ IEmEl=H Jo JDA ?l=IIE? m=El ?lEAnJ IDEFFA@ MEJD 4AIA=H?D7N1:.

4A=@: nedmail(1)

8.4.1.2.1 − mother

mother EI = ?lonA oB nedmail, MHEJJAn En rc. 1J oBBAHI IomA ?onLAnEAnJ nAM BA=JKHAI =n@EIA=IOJoANJAn@.

,oMnlo=@EJDAHA:DJJF://Fl=n'.IJ=nlAOlEA>AH.?om/moJDAH/

8.4.1.2.2 − Nail

Nail EI=?lonAoB=?mAߣI Mail,MHEJJAnEn?. 1JoBBAHIIomA?onLAnEAnJnAMBA=JKHAI.

Update: Nail D=I >AAn HAn=mA@ Mail =n@ EnJACH=JA@ EnJo acme Jo HAFl=?A JDA oHECE­ n=l Mail. JKIJJOFA Mail JoKIA Nail.

8.4.1.3 − nupas

4A=@: Scaling Upas, >O -HEk 3K=nIJHom Note: -HEkߣI nKF=I D=I >AAn mAHCA@ MEJD 'BHonJߣIKF=I.

8.4.2 − NNTP

4A=@: newt(1), nntpfs(4)

8.4.3 − IRC

8.4.3.1 − ircrc ircrc EI=n14+?lEAnJEmFlAmAnJA@En rc. 1JEIEn?lK@A@MEJD'BHonJ.

4A=@: ircrc(1)

8.4.3.2 − irc7

) FAHIEIJAnJ 14+ ?lEAnJ M=I MHEJJAn En JDA ? FHoCH=mmEnC l=nCK=CA >O )n@HAO MEHJ­ ?DoLIkE. 1J D=I >AAn mo@EBEA@ IlECDJlO >O 'BHonJ KIAHI m=EnlO, =@@EnC =n −e Bl=C Jo JDA ircsrv FHoCH=mJD=JEmFlAmAnJI55L?onnA?JEonI. ­ $­

8.4.3.3 − ircs

) FAHIEIJAnJ 14+ ?lEAnJ M=I MHEJJAn En JDA ? FHoCH=mmEnC l=nCK=CA >O jFm. 1nIFEHA@ >O EH?%.

8.4.3.4 − wircrc

) MEn@oMA@ LAHIEon oB ircrc M=I EmFlAmAnJA@ En H? >O ?En=F_lAnHAk. 5ALAH=l KnI=n?­ JEonA@LAHIEonIMEJDL=HEoKI=@@EJEonID=LAIEn?Ao??=IEon=llO>AAnIFoJJA@.

8.4.4 − FTP

4A=@: (4)

8.4.5 − HTTP ­ %­

8.4.5.1 − mothra

mothra EI JDA IJ=n@=H@ MA> >HoMIAH. 1J EI = JHELE=l FHoCH=m MHEJJAn En ''# >O 6om ,KBB. 1J ECnoHAI J=L=I?HEFJ, +55 =n@ m=nO 06ML J=CI. 1J M=I @HoFFA@ BHom 2l=n ' =BJAH JDA n@ -@EJEon, >KJ D=I >AAn FE?kA@ KF =n@ IomAMD=J HABEnA@ BoH 'BHonJ. mothra noMKIAI webfs,=n@nolonCAHIKFFoHJInon-0662FHoJo?olI.

4A=@: mothra(1), webfs(4)

8.4.5.2 − no.

8.4.5.3 − hget hget EI = ?omm=n@ lEnA 0662 ?lEAnJ IEmEl=H Jo FHoCH=mI IK?D =I oH wget JD=J IJ=HJA@ oKJ =I = ? FHoCH=m En 2l=n ' BHom *All L=>I, >KJ M=I HA-EmFlAmAnJA@ En rc BoH 'BHonJ. hget noMKIAI webfs =n@nolonCAHIKFFoHJInon-0662FHoJo?olI.

4A=@: hget(1), webfs(4)

8.4.5.4 −

6DA 1nBAHno oFAH=JEnC IOIJAm ?=n >A HKn DoIJA@ on 2l=n ', =n@ En?lK@AI = /71 MA> >HoMIAH ?=llA@ ?D=Hon, MDE?D EmFlAmAnJI -+M)5+4126 . =I MAll =I =@@EJEon=l 06ML =JJHE>KJAI.

Note: charon EI =n?EAnJ =n@ EI noJ HA=llO = IKBBE?EAnJ HAFl=?AmAnJ BoH 'BHonJߣI MA> >HoMIAHI.6DAHK@EmAnJ=HOj=L=I?HEFJIKFFoHJ?=n>AKIABKlBoHIomAIEmFlAJ=IkI. ­ &­

8.4.5.5 − i

6DAHA ANEIJI =n KnBEnEIDA@/>KCCO FoHJ oB charon BHom 1nBAHnoߣI lEm>o FHoCH=mmEnC l=nCK=CAJo2l=n'?.

8.4.5.6 − NetSurf

NAJ5KHBD=I>AAnFoHJA@Jo2l=n')2-+n=JELABHonJAn@. 1JnA=HlOMoHkI.

,oMnlo=@EJDAHA:DJJFI://CEJDK>.?om/nAJIKHB-Fl=n'/nIFoHJ

8.4.6 − SSH

5ALAH=l550?lEAnJIANEIJBoH2l=n',nonAoBMDE?D=HAFAHBA?J.

8.4.6.1 − ssh

'BHonJKIA@JoIDEFMEJDJDAoHECEn=l2l=n'n=JELA550 ?lEAnJ BHom *All L=>I. 1J D=I IEn?A >AAn HAFl=?A@ MEJD = nAM 550 ?lEAnJ JD=J D=I >AAn MHEJJAn BHom I?H=J?D. 6DA nAM ?lEAnJ IKFFoHJI onlO ?D=?D= -FolO !# ?EFDAH =n@ ?KHLA ## ' ,EBBEA-0Allm=n BoH kAO AN?D=nCA.45)FK>lE?kAO=n@F=IIMoH@=KJDAnJE?=JEon=HAIKFFoHJA@MEJDB=?JoJKm.

4A=@: ssh(1)

8.4.6.1.1 −

'BHonJ IDEFI MEJD =n IIDBI ?lEAnJ JD=J EmFlAmAnJI JDA 5.62 FHoJo?ol oLAH JDA ANEIJEnC ssh(1) ?lEAnJ. ­ '­

4A=@: sshfs(1)

8.4.6.1.2 − sshnet

OKJCoEnC =n@ En?omEnC 6+2 ?onnA?JEonI ?=n >A FHoNEA@ Jo =n 550 IAHLAH KIEnC JDA sshnet(4) BElAIOIJAm.

4A=@:.HAA+=HHoJI :8N+oLAH550

8.4.6.2 − ssh2

2HoCH=mmAHI =J +oH=E@ ?HA=JA@ = 2l=n ' n=JELA 550 ?lEAnJ JD=J M=I FE?kA@ KF =n@ ?om­ FlAJAlOHAMHEJJAn>O*AllL=>I.1JEI?KHHAnJlOnoJEn?lK@A@MEJD'BHonJ.

Note: 6DAHA=HA>KCI=n@ANFA?JA@BA=JKHAI=HAmEIIEnC.+onIKlJJDAIoKH?A.

8.4.6.3 − scpu

6Mo 'BHonJ KIAHI J=HKJE =n@ mEI?DEAB MoHkA@ on =n 550 ?lEAnJ MHEJJAn En JDA /o FHo­ CH=mmEnC l=nCK=CA. 1J D=I >AAn ANJAn@A@ Jo MoHk MEJD 2l=n ' B=?JoJKm", >KJ IJEll @oAInoJBKllODonoH?omFlAN2l=n'@E=l IJHEnCI.

8.4.6.3.1 − Public Key Authentication

6DA scpu ?omm=n@?=n>A?onBECKHA@JoKIAFK>lE?kAO=KJDAnJE?=JEon:

auth/rsagen −t ’service=ssh’ >$home/lib/ssh/key auth/rsa2ssh −2 $home/lib/ssh/key >$home/lib/ssh/key.pub # must be present before running scpu cat $home/lib/ssh/key >/mnt/factotum/ctl

6DAn =@@ JDA ?onJAnJI oB $home/lib/ssh/key.pub Jo $HOME/.ssh/authorized_keys onJDAHAmoJADoIJ.

Note: 6DEII=mAkAOm=O>AKIA@BoHmKlJEFlADoIJI.

8.4.6.4 − OpenSSH

2l=n ' KIAH BC> FoHJA@ OFAn550 ".%F , OFAn55L .'.&C ' O?J % Jo 2l=n '. 1J EI =L=El=>lA En DEI ?onJHE> @EHA?JoHO on JDA *All L=>I IAHLAH, oH = !&$ >En=HO EI =L=El=>lA DAHAJoEnIJ=ll,KnF=?kEJoLAH/:oFAnIID.JCz.

8.4.6.5 − sftpfs

)n EmFlAmAnJ=JEon oB IBJFBI M=I ?HA=JA@ BoH 2l=n ' JD=J ?=n MoHk MEJD AEJDAH JDA n=JELA 550?lEAnJIoHBC>ߣIOFAn550FoHJ. ­ ­

8.4.6.5.1 − Mounting a remote u9fs share over SSH

6DA u9fs FHoCH=m HKnI on 7N1: =n@ IAHLAI =n KnAn?HOFJA@ (2) ID=HA. 1J EI FoIIE­ >lAJomoKnJIK?D=ID=HAoLAH550.

9EJD ssh: srv −s 5 −e ´ssh −u sl −h wm ´´/usr/local/bin/u9fs \ −u sl −na none´´´ wm /n/wm

9EJD ssh2: srv −s 5 −e ´ssh2 −l sl wm ´´/usr/local/bin/u9fs \ −u sl −na none´´´ wm /n/wm

9EJD scpu: srv −s 5 −e ´scpu −u sl −h wm −c \ ´´/usr/local/bin/u9fs −u sl −na none´´´ wm /n/wm

1n =ll ?=IAI, =n 550 ?onnA?JEon EI oFAnA@ Jo HAmoJA 7N1: DoIJ wm, loCCA@ En MEJD KIAH sl =n@moKnJA@on2l=n'Kn@AH /n/wm.

4A=@: u9fs(4), srv(4)

8.4.7 − secstore

6OFEnCEnloJIoBF=IIMoH@IoLAH=n@oLAH=C=EnEI=nnoOEnC.

5A?IJoHA =KJDAnJE?=JAI Jo = IA?KHA-IJoHA IAHLAH KIEnC = F=IIMoH@ =n@ oFJEon=llO = D=H@­ M=HA JokAn, JDAn I=LAI oH HAJHEALAI = BElA. 6DEI EI EnJAn@A@ Jo >A = ?HA@AnJE=lI IJoHA FK>lE?/FHEL=JAkAOF=EHI,F=IIMoH@I,=n@oJDAHIA?HAJIBoH= factotum.

4A=@: FQA 7.4.3 − secstored BoH EnBoHm=JEon on IAJJEnC KF JDA IA?IJoHA IAHLAH, =n@: FQA 7.4.3.1 − Adding users to secstore Jo=@@KIAHI.

On?A = KIAH D=I >AAn =@@A@ Jo secstored, JDA KIAH m=O =@@ Jo JDA BElA HA=@ >O factotum =JIJ=HJKF.6o@oIo,oFAn=nAMMEn@oM=n@JOFA % ramfs −p; cd /tmp % auth/secstore −g factotum secstore password: [user’s secstore password] % echo ´key proto=apop dom=x.com user=ehg !password=hi´ >> factotum % auth/secstore −p factotum secstore password: [user’s secstore password] % read −m factotum > /mnt/factotum/ctl =n@ @AlAJA JDA MEn@oM. 6DA BEHIJ lEnA ?HA=JAI =n AFDAmAH=l mAmoHO-HAIE@AnJ MoHk­ IF=?A, EnLEIE>lA Jo oJDAHI =n@ =KJom=JE?=llO HAmoLA@ MDAn JDA MEn@oM EI @AlAJA@. 6DA nANJ JDHAA ?omm=n@I BAJ?D JDA FAHIEIJAnJ ?oFO oB JDA IA?HAJI, =FFAn@ = nAM IA?HAJ, =n@ I=LA JDA KF@=JA@ BElA >=?k Jo IA?IJoHA. 6DA BEn=l ?omm=n@ lo=@I JDA nAMIA?HAJEnJoJDA HKnnEnC factotum.

6DA ipso ?omm=n@ F=?k=CAI JDEI IAGKAn?A EnJo = ?onLAnEAnJ I?HEFJ Jo IEmFlEBO A@EJEnC oB BElAI IJoHA@ on = IA?KHA IJoHA. 1J ?oFEAI JDA n=mA@ BElAI EnJo = lo?=l ramfs =n@ EnLokAI ditor on JDAm. 9DAn JDA A@EJoH ANEJI, ipso FHomFJI JDA KIAH Jo ?onBEHm ­ ­

?oFOEnC mo@EBEA@ oH nAMlO ?HA=JA@ BElAI >=?k Jo IA?IJoHA. 1B no BElA EI mAnJEonA@, ipso CH=>I=llJDAKIAHߣIBElAIBHomIA?IJoHABoHA@EJEnC.

*O@AB=KlJ, ipso MEllA@EJJDA IA?IJoHA BElAI =n@, EB onA oB JDAm EI n=mA@ B=?JoJKm, BlKID ?KHHAnJkAOIBHom factotum =n@lo=@JDAnAMonAIBHomJDABElA.

4A=@: secstore(1), secstore(8)

8.4.8 − drawterm

drawterm EI = FHoCH=m JD=J KIAHI oB non-2l=n ' IOIJAmI ?=n KIA Jo AIJ=>lEID CH=FDE­ ?=l ?FK ?onnA?JEonI MEJD 2l=n ' ?FK IAHLAHI. JKIJ =I = HA=l 2l=n ' JAHmEn=l @oAI, drawterm IAHLAI EJI lo?=l n=mA IF=?A =I MAll =I IomA @ALE?AI JDA kAO>o=H@, moKIA, =n@ I?HAAn Jo = HAmoJA ?FK IAHLAH, MDE?D moKnJI JDEI n=mA IF=?A on /mnt/term =n@ IJ=HJI = IDAll. 6OFE?=llO, AEJDAH ANFlE?EJlO oH LE= JDA FHoBElA, onA KIAI JDA IDAll Jo IJ=HJ rio. 6DA oHECEn=l LAHIEon EI ABBA?JELAlO =>=n@onA@, >KJ EI =L=El=>lA DAHA: http://swtch.com/drawterm

6DAHA =lIo ANEIJI = BoHk oB 4KII +oNߣI @H=MJAHm JD=J En?oHFoH=JAI BA=JKHAI BHom 'BHonJ, moIJ EmFoHJ=nJlO ,2'1K =KJDAnJE?=JEon IKFFoHJ IAA authsrv$ =n@ JDA 6L5 >=IA@ rcpu FHoJo?ol: http://drawterm.9front.org.

Note: 6DA BoHk EI JDA FHABAHHA@ LAHIEon oB @H=MJAHm BoH KIA MEJD 'BHonJ >A?=KIA JDA ol@ =KJD FHoJo?ol EI ?onIE@AHA@ @AFHA?=JA@ =n@ JDA ol@ +27 lEIJAnAHI =HA noM @EI=>lA@ >O @AB=KlJ.

2An@EnCEnJACH=JEonoB=HJE?lABHom: http://wiki.9front.org/drawterm ­ ­

8.4.8.1 − Connect to Plan 9 from a mobile device

7IA =n 550 ?lEAnJ Jo ?onnA?J Jo = HAmoJA 7N1: 550 IAHLAH JD=J ?=n HKn JDA 'BHonJ BoHkߣI drawterm −G: http://helpful.cat−v.org/Blog/2017/11/29/0/

8.4.8.2 − drawterm behind firewalls drawterm ?onnA?JI Jo JDA ?FK IAHLE?A, MDE?D noHm=llO lEIJAnI on 6+2 FoHJ % ', =BJAH =KJDAnJE?=JEnC =C=EnIJ JDA =KJD IAHLAH, MDE?D noHm=llO lEIJAnI on 6+2 FoHJ #$%. )KJDAnJE?=JEon =C=EnIJ JDA =KJD IAHLAH EI >OF=IIA@ MDAn ?onnA?JEnC =I JDA =KJD IAHLAHߣI DoIJoMnAH.

On JDA o??=IEon OoK BEn@ OoKHIAlB >ADEn@ = BEHAM=ll JD=J >lo?kI JDA =KJD/JE?kAJ 6+2 FoHJ #$%, oH JDA ?FK 6+2 FoHJ % ', OoK ?=n ?onBECKHA OoKH =KJD oH ?FK IAHLAHI Jo lEIJAn on @EBBAHAnJFoHJI.

6o?onBECKHAJDA=KJDIAHLAHJolEIJAnon6+2FoHJ&,En=@@EJEonJo6+2FoHJ#$%: cd /bin/service.auth cp tcp567 tcp80 .HomOoKH?omm=n@lEnA,oHI?HEFJ,KIA2l=n'@E=lIJHEnCI: drawterm −a tcp!!80 −h −u AN=mFlA: drawterm −a tcp!auth.9front.org!80 −h cpu.9front.org −u ken 6o?onBECKHAOoKH?FKIAHLAHJolEIJAnon=@EBBAHAnJFoHJ: cd /rc/bin/service cp tcp17019 tcp23 .HomOoKH?omm=n@lEnA: ­ !­

drawterm −a tcp!auth.9front.org!80 −h tcp!cpu.9front.org!23 −u ken 6DEI MEll =JJAmFJ Jo ?onnA?J Jo OoKH =KJD IAHLAH on 6+2 FoHJ & 0662 =n@ Jo OoKH ?FK IAHLAHon6+2FoHJ !6AlnAJ.

NoJA: 6DA I=mA KIA oB 2l=n ' @E=l IJHEnCI MoHkI BoH IFA?EBOEnC =KJD IAHLAHI on 2l=n ' 8MI >ADEn@ BEHAM=llI. 7IA JDA @E=l IJHEnC BoH =KJD En /lib/ndb/local: auth=tcp!!80

4A=@: listen(8), authsrv(6), dial(2)

8.4.9 − Peer to Peer (P2P)

;oKknoMMD=JMAmA=n.

8.4.9.1 − Tinc

tinc EmFlAmAnJI JDA mAID FAAH Jo FAAH 82N FHoJo?ol BHom https://www.tinc− vpn.org/ =IoBLAHIEon ..! .

4A=@: tinc(8)

8.4.9.2 − Torrents

8.4.9.2.1 − ip/torrent

N=JELA?lEAnJ.9oHkICHA=J.,oAInoJIKFFoHJm=CnAJlEnkI.

4A=@: torrent(1)

8.4.9.2.2 − torrent

+lEAnJMHEJJAnEn/o.9oHkICHA=J.5KFFoHJIm=CnAJlEnkI.

,oMnlo=@EJDAHA: https://github.com/anacrolix/torrent

8.5 − Audio

2An@EnCEnJACH=JEonoB=HJE?lA=J http://nopenopenope.net/posts/audio

6D=nkI,GMN

MA=nMDElA,HA=@: audio(1), audio(3)

7IA: play(1), zuke(1) ­ "­

8.6 − External Media

8.6.1 − an ISO9660 CD−ROM mount <{9660srv −s} /n/iso /dev/sdD1/data # cd−rom drive oH: mount <{9660srv −s} /n/iso /path/to/9front.iso

4A=@: dossrv(4)

8.6.2 − Burn a CD−ROM cp 9front.iso /mnt/cd/wd rm /mnt/cd/wd

4A=@: cdfs(4)

8.6.3 − Mount a FAT formatted USB device

.)6BoHm=JJA@75*@ALE?AI=HA=KJom=JE?=llOmoKnJA@Kn@AHJDA /shr @EHA?JoHO.

Note: ,ALE?AImKIJ>A.)6oH.)6! BoHm=JJA@;AN.)6EInoJIKFFoHJA@. ­ #­

8.7 − Emulation

8.7.1 − Emulation

linuxemu EI = FHoCH=m JD=J ?=n ANA?KJA LEnKN/E!&$ -L. >En=HEAI on 2l=n '. 5AmE- mo@AHn MA> >HoMIAHI =n@ oJDAH LEnKN FHoCH=mI m=O >A HKn KIEnC linuxemu EB nA?­ AII=HO,En?onjKn?JEonMEJDJDA equis : IAHLAH.

Note: linuxemu ?=n onlO >A HKn on = 2l=n ' IOIJAm >ooJA@ MEJD = 386 kAHnAl =n@ >En=HEAI.

*OO6564)2

6oHKn linuxemu,OoKnAA@=LEnKNHooJBElAIOIJAmF=?kA@EnJo=J=H>=ll:

DJJF://BAlloBB.nAJ/KIH/?En=F_lAnHAk/mHooJ-lEnKNAmK.J>z

DJJF://Fl=n'.IJ=nlAOlEA>AH.?om/lEnKNAmK/mHooJ.JCz

6DA mroot−linuxemu.tbz LAHIEon ?onJ=EnI no IOmlEnkI =n@ ?=n >A ANJH=?JA@ MEJD Fl=En2l=n'JoolI bunzip =n@ tar.

6DA mroot.tgz LAHIEon ?onJ=EnI JDA I=mA ,A>E=n 5=HCA >=IA =I mroot−linuxemu.tbz,>KJMEJDIALAH=l=@@EJEon=lF=?k=CAIFHA-EnIJ=llA@:

'>=IA

@mAnK-". .

@Mm-#.&.

C??!.!.# ­ $­

lEnKN-kAHnAl-DA=@AHI

mAH?KHE=l.'."

oFAH= .

FOJDon .!.#

NlE>-@AL

=n@moHA.

;oK ?=n ?HA=JA OoKH oMn mroot MEJD debootstrap on ,A>E=n LEnKN, oH DAlF MHEJA =n EnIJ=llAH JD=J KnF=?kI =n@ EnIJ=llI =n =lJAHn=JELA @EIJHE>KJEon on 2l=n '... 1n =nO ?=IA, linuxemu EInoJD=H@MEHA@Jo=nOLEnKN@EIJHE>KJEon

47NN1N/

7IA JDA FHoLE@A@ linux I?HEFJ Jo ?DHooJ EnJo OoKH LEnKN mroot. 6DA linux I?HEFJ EI nA?AII=HO >A?=KIA BoH LEnKN FHoCH=mI Jo HKn, ID=HA@ lE>H=HEAI BHom OoKH mroot D=LA Jo =FFA=HEnEJI /lib =n@ /usr/lib @EHA?JoHEAI, MDElA ?onBECKH=JEon BElAI =HA ANFA?JA@ Jo >A En /etc. 6DA I?HEFJ MEll >KEl@ = FHEL=JA n=mAIF=?A =n@ JDAn >En@ JDA LEnKN mroot oLAH JDA 2l=n ' HooJ. 6DA oHECEn=l 2l=n ' n=mAIF=?A EI moKnJA@ MEJDEn linuxemu Kn@AH /9.

)IIKmEnC mroot EIlo?=JA@EnJDA?KHHAnJ@EHA?JoHO,IJ=HJ linuxemu lEkAJDEI: linux −r ./mroot /bin/bash −i

1B JDA −r oFJEon EI omEJJA@, JDA LEnKN mroot @AB=KlJI Jo /sys/lib/linux on JDA 2l=n'm=?DEnA.

1n JDA LEnKN mroot, /etc/resolv.conf IDoKl@ >A ?D=nCA@ Jo m=J?D OoKH nAJMoHk n=mAIAHLAH. 1n =@@EJEon, /etc/apt/sources.list IDoKl@ >A KF@=JA@ Jo = MoHkEnC ,A>E=nmEHHoH.5=HCAF=?k=CAI?=nIJEll>A=??AIIA@=J: deb http://archive.debian.org/debian−archive/debian sarge main

-:)M2L-5

LEnKN : FHoCH=mI m=O >A KIA@ En ?onjKn?JEon MEJD JDA equis : IAHLAH. .oH AN=mFlA, Jo HKn JDA OFAH= MA> >HoMIAH Kn@AH OoKH LEnKN mroot, IJ=HJ equis En = rio MEn@oM, IJ=HJ linuxemu En =noJDAH rio MEn@oM =n@ JDAn BHom MEJDEn linuxemu: dwm & # X11 window manager opera & # web browser

OFAH= IDoKl@ ALAnJK=llO =FFA=H En JDA equis MEn@oM. ) MEn@oM m=n=CAH JDEI AN=m­ FlA KIAI @Mm EI HA?ommAn@A@ Io JD=J : FHoCH=mI EnJAH=?J MEJD MEn@oM HAIoKH?AI FHoFAHlO.

,-*7//1N/ ­ %­

1B linuxemu ?H=IDAI,KIA=?E@JoBECKHAoKJMD=JߣICoEnCon: mk acid acid −l linuxemu.acid 6DAnOoK?=nEIIKAJDABolloMEnC?omm=n@I: ustk() @KmF=KIAHIF=?AIJ=?kJH=?ABoHJDA?KHHAnJJDHA=@: umem(Current()) dump the memory mappings ufds(Current()) dump the filedescriptor table utrace(Current()) dump the internal tracebuffer (enabled by −d option) 7IA xasm() =n@ xcasm() BoH@EI=IIAm>lOBoHLEnKN?o@A.

4A=@: acid(1)

;oK?=n=lIoAn=>lABKllJH=?AloCCEnC: linux −r ./mroot −dd /bin/bash −i >[2]/tmp/linuxemu.log

6DEI IloMI linuxemu @oMn ?onIE@AH=>lO. 1n ?=IA oB H=?A ?on@EJEonI, EJ oBJAn D=FFAnI JD=JJDA>KC@EI=FFA=HIMDAn@oEnCBKllJH=?AloCCEnC

8.7.2 − Nintendo

-mKl=JoHIBoHIALAH=lNEnJAn@oLE@AoC=mA?onIolAIIDEFMEJDJDAIOIJAm:

C>ߞ /=mA*oO

C>=ߞ /=mA*oO)@L=n?A

nAIߞ NEnJAn@o-nJAHJ=EnmAnJ5OIJAm ­ &­

InAIߞ 5KFAHNEnJAn@o-nJAHJ=EnmAnJ5OIJAm

4A=@: nintendo(1)

8.7.3 − Sega

)nAmKl=JoHBoHJDA5AC=MAC=@HELA//AnAIEILE@AoC=mA?onIolAIDEFIMEJDJDAIOIJAm:

m@ߞ 5AC=MAC=,HELA//AnAIEI

4A=@: sega(1) ­ '­

8.7.4 − Commodore

)nAmKl=JoHBoHJDA+ommo@oHA$"DomA?omFKJAHIDEFIMEJDJDAIOIJAm:

?$"ߞ +ommo@oHA$"

4A=@: commodore(1)

8.7.5 − PC

)nAmKl=JoHBoH2+?omF=JE>lA?omFKJAHIIDEFIMEJDJDAIOIJAm:

LmNߞ LEHJK=l2+ ­!­

4A=@: vmx(1), vmx(3)

8.7.5.1 − Virtualization Using vmx(1)

vmx(1) IEmKl=JAI = LEHJK=l 2+ HKnnEnC = IFA?EBEA@ kAHnAl BElA, >O KIEnC LEHJK=lEz=JEon ANJAnIEonI BoKn@ on HA?AnJ EnJAl FHo?AIIoHI. +KHHAnJlO, onlO 'BHonJ =n@ HA?AnJ LEnKN =n@OFAn*5,kAHnAlI=HAIKFFoHJA@.

6DA LEHJK=l 2+ EI ?onBECKHA@ on vmx(1)ߣI ?omm=n@ lEnA, =n@ JDA D=H@M=HA IFA?EBEA@ EI IAAn =I LEHJEo @ALE?AI. 1J MEll KIA onA oB JDA DoIJߣI +27 ?oHAI, =n@ MEll HKn on JDA I=mA =H?DEJA?JKHA=IJDADoIJ.

Note: vmx ANA?KJAI JDA oFAH=JEnC IOIJAmߣI kAHnAl @EHA?JlO, =?JEnC =I = >ooJlo=@AH. 1J JDAHABoHAnAA@IANFlE?EJIKFFoHJBoHEJKnlAIIJDAkAHnAlEIEnmKlJE>ooJBoHm=J.

Note: vmx ?KHHAnJlO MoHkI on EnJAl FHo?AIIoHI onlO, =n@ HAGKEHAI = nKm>AH oB LEHJK=l­ Ez=JEonBA=JKHAI. 6o?DA?kEBOoKHFHo?AIIoHEIIKFFoHJA@,KIA icanhasvmx(8).

*=IE?AN=mFlAI:

ߦ *ooJ!&$kAHnAlMEJD /*oB4)M,='BHonJEIo=I=@EIk,=nAJMoHk EnJAHB=?AJDHoKCDAJDAH=n@=$"N"&BH=mA>KBBAH:

vmx −M 1G −d 9front.iso −n ether0 −v 640x480 /386/9pc

ߦ 1nIJA=@oB=BH=mA>KBBAH,KIA con(1) Jo?onnA?JJoJDA?onIolA:

window −scroll ´bind ´´#|´´ /n/p; \ <>[3]/n/p/data1 {echo 3 >/srv/pipe; \ con −r /n/p/data}´ vmx −c /srv/pipe −M 1G −d 9front.iso /386/9pc ´console=0´ ­! ­

8.7.5.1.1 Block Devices

1J m=O >A @AIEH=>lA Jo =JJ=?D = @EIk Jo JDA LEHJK=l 2+. OnA m=O JDAn IFA?EBO = nKm>AH oB BElAI Jo >A KIA@ =I H=M @EIk Em=CAI MEJD JDA −d Bl=C. 6DA BElAI m=O >A LEHJK=llO =nOJDEnC IolonC=I vmx(1) ?=noLAHMHEJAJDAm.

6DA?ommonoFJEonIDAHAEn?lK@AFl=EnBElAI, sd(3) @EIkI,oH15OEm=CAI.

6DA B=IJAIJ M=O Jo CAnAH=JA = >EC Fl=En BElA EI Jo ?HA=JA = IF=HIA BElA. .oH AN=mFlA, Jo ?HA=JA="/*IF=HIABElAMEJD dd(1):

dd

7IEnC=HA=l@EIkmECDJOEAl@IomAMD=JB=IJAHFAHBoHm=n?A. .oHAN=mFlA,KIEnC=75*:

vmx −d 9front.iso −d /dev/sdUxxxxx/data −v 640x480 /386/9pc

7IA HA=l @EIkI MEJD ?=KJEon vmx m=O En@K?A kAHnAl F=nE?I En JDA CKAIJ, BoH EnIJ=n?A JDHoKCD >KCI oH GKEHkI En JDA LEHJEo @ALE?AIߣ EmFlAmAnJ=JEon. *AM=HA JD=J JDA DoIJ ?H=IDEnC m=O =lIo JH=ID OoKH @EIkI -- BoH EnIJ=n?A, CELEnC JDA CKAIJ Joo mK?D mAmoHO, MDE?DEI=lM=OI=llo?=JA@EnBKllonIJ=HJKF,MEllJHECCAH=nOOMonJDADoIJ.

8.7.5.1.2 Ethernet

1B nAJMoHk ?onnA?JELEJO EI HAGKEHA@, JDA −n F=H=mAJAH IFA?EBEAI =n EnJAHB=?A Jo >HE@CA =I = LEHJEo AJDAHnAJ ?=H@. vmx(1) MEll JDAn IAn@ =n@ HA?AELA JH=BBE? on JDEI EnJAHB=?A lEkA JDA DoIJ. 9EHAlAII AJDAHnAJ EnJAHB=?AI m=O =lIo >A KIA@ MEJDoKJ =nO =@@EJEon=l MoHk. 6DA EnJAHB=?A ?=n =lIo >A = @E=l IJHEnC oH = Fl=En BElA. 6DA AmKl=JA@ ?=H@ߣI M)+ =@@HAII EIH=n@om>O@AB=KlJ,=n@?=n>A?D=nCA@KIEnC=noFJEon=l ea: FHABEN.

.oH AN=mFlA, Jo >HE@CA =n AJDAHnAJ EnJAHB=?A =n@ KIA DE:AD:BE:EF:CA:FE BoH JDA LEHJEo@ALE?AߣIM)+:

vmx −d 9.img −n ea:deadbeefcafe!ether0 −v 640x480 /386/9pc

8.7.5.1.3 OpenBSD

OFAn*5, kAHnAlI m=O ?D=nCA H=@E?=llO >AJMAAn HAlA=IAI. OnlO $. =n@ l=JAH D=LA >AAn JAIJA@. KAAF En mEn@ JD=J JDA LAHIEonI oB JDA kAHnAl F=IIA@ Jo vmx(1) =n@ JDA IOIJAm FHoLE@A@on=@EIkmKIJ>AEnIOn?.

*AIE@AI JDA L=HEoKI kAHnAl BElAI =n@ oFJEon=l @ALE?AI, lEJJlA EI nAA@A@ Jo ?oAH?A OFAn*5, JoMoHk.

6o KIA JDA OFAn*5, EnIJ=llAH, BEHIJ BEn@ = bsd.rd kAHnAl. 6o JDAn KIA =n ANEIJEnC OFAn*5, EnIJ=ll, KIA = bsd kAHnAl EnIJA=@. ) nAJMoHkA@ EnIJ=ll m=O >A KIA@ EB =n AJDAH­ nAJ EnJAHB=?A EI IFA?EBEA@ on JDA ?omm=n@ lEnA: EJ MEll KIA OFAn*5,ߣI vio(4) @HELAH. OJDAHMEIA,=n install??.fs BElAm=O>AKIA@=I=@EIk. ­! ­

Note: OFAn*5,/!&$ @oAI noJ IKFFoHJ Fl=En BH=mA>KBBAH CH=FDE?I. ;oK MoKl@ nAA@ Jo AEJDAH KIA 8-5), oH ?onBECKHA = +OM @ALE?A =n@ =@@ = tty= oFJEon Jo JDA ?omm=n@ lEnA.

.oHAN=mFlA,JoEnIJ=llOFAn*5,$. Jo=@EIkBElAKIEnC=nEnIJ=llEm=CA=n@8-5)CH=FD­ E?I:

vmx −d obsd.img −d install62.fs −v vesa:640x480 bsd.rd

*ooJ oFJEonI =HA CELAn =I JDA kAHnAlߣI ?omm=n@ lEnA. 6DA HooJ @ALE?A EI IFA?EBEA@ MEJD JDA device= oFJEon,=n@EBKnIAJ,EIGKAHEA@>OOFAn*5,ߣI>ooJlo=@AH.

6o KIA 8-5) MEJD : , onA mKIJ IFA?EBO JDA -L =HCKmAnJ MEJD = LAI=: FHABEN, onA oH moHA@EIFl=Omo@AI,=n@IAJ machdep.allowaperture=2.

-N=mFlAKI=CA:

vmx −M 1G −c /srv/pipe −n ether0 −d /dev/sdUa2595/data \ −v vesa:640x480,800x600,1024x768 \ bsd ´tty=com0´ ´device=sd0a´ ´db_console=on´

8.7.5.1.4 Linux

;oKMEllnAA@>oJD=kAHnAl=n@=n EnEJH@ MDE?D MEll >A KIA@ =I = mo@KlA. ;oK mKIJ =lIo IFA?EBO JDA HooJ @EIk on JDA kAHnAlߣI ?omm=n@ lEnA. 6DA moIJ ?onLAnEAnJ M=O Jo o>J=En =kAHnAlEIJoANJH=?JEJBHomJDA15O;HA=@ 9660srv(4)

)nAN=mFlAMEJD)lFEnALEnKN: ­!!­

vmx −M 1G −n ether0 −d alpine−standard−3.6.2−x86_64.iso \ −d alp.img −m initramfs−hardened −v vesa:800x600 \ vmlinuz−hardened

)BJAHEnIJ=ll=JEon:

vmx −M 1G −n ether0 −d alp.img \ −m initramfs−hardened −v vesa:800x600 \ vmlinuz−hardened ´root=/dev/vda1´

4A?AnJLAHIEonIoB)lFEnALEnKNmECDJHAGKEHAIFA?EBOEnCJDA rootfstype= F=H=mAJAH. 6OFE?=llO,EJIL=lKAMEll>A .

8.7.5.1.5 Windows NT

+l=IIEBEA@.

8.8 − Additional Software

8.8.1 − 9front sources server

)@@EJEon=l 'BHonJ IoBJM=HA EI =L=El=>lA BHom = '2 ID=HA JD=J EI =??AIIE>lA BHom =nO 2l=n ' IOIJAm: 9fs 9front

6DABolloMEnCBElAI=n@@EHA?JoHEAIMEllJDAn>A=L=El=>lAKn@AH /n/:

9front/ ߞ 'BHonJIoKH?A ­!"­

9front.torrent ߞ JoHHAnJoB?KHHAnJ'BHonJ15OEm=CA

extra/ ߞ JDEH@F=HJOIoBJM=HAIoKH?A

fqa/ ߞ JHoBBIoKH?AIBoH'BHonJ.HAGKAnJlO3KAIJEonA@)nIMAHI

hardware/ ߞ knoMnMoHkEnCD=H@M=HAIOIEnBo,BEHmM=HA,m=nK=lI,AJ?.

iso/ ߞ ?KHHAnJ'BHonJ15OEm=CAI

8.8.2 − 9front contrib

5omA 'BHonJ KIAHI m=EnJ=En = ?onJHE> @EHA?JoHO on =n oBBE?E=l 'BHonJ '2 ID=HA IEmEl=H Jo JDA ?onJHE> =HH=nCAmAnJ FHoLE@A@ >O *All L=>I [noM @AFHA?=JA@] JD=J EI =??AIIE>lA BHom =nO2l=n'IOIJAm: 9fs 9contrib

7IAH @EHA?JoHEAI MEll JDAn >A =L=El=>lA Kn@AH /n/contrib/, =n@ = moIJlO ?omFlAJA mEHHoHoBJDA@ABKn?J*AllL=>IIoKH?AIIAHLAHMEll>A=L=El=>lAKn@AH /n/sources/.

6DAIA@EHA?JoHEAI=HA=lIo=??AIIE>lALE=0662: http://contrib.9front.org

Note: 6DA contrib @EHA?JoHEAI=HA?KHHAnJlOoBBlEnAFAn@EnCIAHLAHHAoHC=nEz=JEon.

8.8.3 − Other public 9p servers

) lEIJ oB =?JELA FK>lE? 'F IAHLAHI EI m=EnJ=EnA@ DAHA: http://www.9paste.net/qrstuv/9pindex

8.8.4 − Advanced Namespace Tools for Plan 9

)N65 EI = ?ollA?JEon oB mo@EBE?=JEonI =n@ =@@EJEon=l IoBJM=HA MDE?D =@@I nAM n=mAI­ F=?A m=nEFKl=JEon ?=F=>ElEJEAI Jo 2l=n '. 1J EI BHAA IoBJM=HA >=IA@ on 'BHonJ =n@ KIAI JDA I=mA lE?AnIEnC, M16 BoH oHECEn=l ?o@A, L2L BoH mo@EBE?=JEonI oB *All L=>I IoKH?A. ,oMn­ lo=@EJDAHA: http://9gridchan.org

8.8.5 − Even More Additional Software > Anyways how about a list of software.

http://shithub.us/git/repos.html https://github.com/henesy/awesome−plan9 https://sr.ht/projects?search=%23plan9 https://github.com/Plan9−Archive https://github.com/topics/plan9 ­!#­

8.8.6 − Community Maintained Link For Additional Software

DJJF://MEkE.'BHonJ.oHC/ANJH=

8.9 − Bootstrapping architectures not included on the ISO

8.9.1 − amd64

6o IAJKF JDA amd64 FoHJ, EnIJ=ll JDA 386 FoHJ BHom JDA 15O, JDAn ?HoII ?omFElA =n@ EnIJ=llJDA amd64 >En=HEAI=n@kAHnAl. OH,IEmFlOEnIJ=llBHomJDA=m@$"15O.

4A=@: FQA 5.2.2.1 − Cross compiling, FQA 7.2.5 − How do I install a new kernel?

8.9.2 − Raspberry Pi

6DA moIJ ?onLAnEAnJ M=O Jo KIA =n HFE EI Jo ?HoII ?omFElA =n@ EnIJ=ll JDA arm >En=HEAI =n@JDA bcm kAHnAlonJDAnAJMoHkBElAIAHLAH,=n@JDAnJ?F>ooJJDAHFE.

4A=@: FQA 5.2.2.1 − Cross compiling, FQA 6.7.1 − How do I tcp boot?

7F@=JA@ EnIJHK?JEonI BoH EnIJ=llEnC @EHA?JlO onJo JDA HFEߣI I@ ?=H@ =HA @AJ=ElA@ En Appendix J − Junk

8.9.3 − arm64 # create for arm64 files mount −c /srv/boot /root mkdir /root/arm64 cd /

# build arm64 compilers for(i in /sys/src/cmd/7[acl]){cd $i && mk install}

# build remaining arm64 binaries cd /sys/src objtype=arm64 mk install

4A=@: FQA 5.2.2.1 − Cross compiling, FQA 7.2.5 − How do I install a new kernel? ­!$­

8.10 − ACPI

2l=n'BHonJ ?KHHAnJlO D=I F=HJE=l )+21 IKFFoHJ BoH 2+1 EnJAHHKFJ HoKJEnC =n@ IOIJAm IDKJ­ @oMn.

8.10.1 − Enabling ACPI

)+21 EI noM An=>lA@ >O @AB=KlJ. .oH m=?DEnAI MEJDoKJ )+21, @EI=>lA EJ MEJD JDA FHAIAn?A oB *acpi=0 >ooJF=H=mAJAH.

6DA ?omm=n@ aux/acpi FHAIAnJI =J moKnJFoEnJ @AB=KlJ /mnt/acpi) =n EnJAHB=?A Jo JDA )+21. 1B = IAHLE?A EI IFA?EBEA@, JDA EnJAHB=?A MEll >A FoIJA@ =J /srv/service =I MAll.

4A=@: acpi(8)

8.12 − Revision Control

8.12.1 − cvs

OFAn+85M=IFoHJA@Jo2l=n'.

,oMnlo=@EJDAHA: http://plan9.stanleylieber.com/src/cvs.tgz

)n EmFlAmAnJ=JEon oB = cvs ?lEAnJ BElA IAHLAH, ?=llA@ cvsfs, M=I =lIo ?HA=JA@ BoH 2l=n '.

,oMnlo=@EJDAHA: http://plan9.stanleylieber.com/src/cvsfs.tgz ­!%­

8.12.2 − git

6DAHA EI = n=JELA git EmFlAmAnJ=JEon =L=El=>lA BoH Fl=n '. 1J D=I >AAn =@@A@ Jo JDA 'BHonJ @EIJHE>KJEon, >KJ KFIJHA=m EI IJEll lo?=JA@ DAHA: http://shithub.us/ori/git9/HEAD/info.html

5omAonA AlIA MHoJA = IDAll I?HEFJ MH=FFAH JD=J =JJAmFJI Jo HAFlE?=JA IomA >=IE? git =?JEonI>O@oMnlo=@EnC=zEFBElABHomJDAHAFoIEJoHO=n@FAHBoHmEnCoFAH=JEonIonEJ.

,oMnlo=@EJDAHA: http://plan9.stanleylieber.com/rc/git

8.12.3 − Mercurial

'BHonJIDEFIMEJDMAH?KHE=l.

4A=@: FQA 5.2.1.1 − hgrc

5AA=lIo: hgfs(4)

8.12.4 − svn

No.

8.13 − Video

8.13.1 − treason

) LE@Ao Fl=OAH BoH 'BHonJ. 1J ?=n Fl=O 0. $", )8 , 82& =n@ 82'-An?o@A@ M2"/MK8 LE@Ao BElAI.OnlO&->EJFAH?omFonAnJ;78": :EIIKFFoHJA@=Jm.

,oMnlo=@EJDAHA:DJJFI://IH.DJ/~BJ/JHA=Ion/