<<

'.4ON6 .4-37-N6L; 37-561ON-, )N59-45 6DEI >ook M=I JOFAIAJ troff -ms -mpictures|lp -dstdout|ps2pdf En LK?E@= 5=nI >OJDA=KJDoH,KIEnC=6DEnk2=@:$ 6=>lAJHKnnEnCJDA'BHonJoFAH=JEnCIOIJAm.

4An@AHA@:  -"-

'.4ON6 'BHonJ.oHC

15*N- !:'%'&##!'!$&'

6DEI EI = MoHk oB BE?JEon. N=mAI, ?D=H=?JAHI, Fl=?AI =n@ En?E@AnJI AEJDAH =HA JDA FHo@K?J oB JDA =KJDoHߣI Em=CEn=JEon oH =HA KIA@ BE?JEJEoKIlO, =n@ =nO HAIAm>l=n?A Jo =?JK=l FAH­ IonI, lELEnC oH @A=@, >KIEnAIIAI, ?omF=nEAI, ALAnJI oH lo?=lAI EI AnJEHAlO ?oEn?E@AnJ=l. 4E?D=H@ MEllAH =n@ 5JALA 5J=llEon =HA noJ =BBElE=JA@ MEJD 'BHonJ. 6DA oFAH=JEnC IOIJAm @oAInoJD=LA=noBBE?E=lFoHJIJHAA.

M16/++/2K>lE?,om=En The study of this Book is forbidden. It is wise to destroy this copy after the first reading. Whosoever disregards this does so at his own risk and peril. These are most dire. Those discuss the contents of this Book are to be shunned by all, as centres of pestilence. All questions of the Law are to be decided only by appeal to my writings, each for himself. There is no law beyond Do what thou wilt.

9FRONT FREQUENTLY QUESTIONED ANSWERS

ACHTUNG! 'BHonJ@=ID m=nK=lEIMHEJJAn>O=n@BoH'BHonJKIAHI.

Those who can do, those who can’t write and those who can’t write make ezines. ߞ 5=FAMKllAn@AH

ACHTUNG! 1nBoHm=JEon FHoLE@A@ >O JDEI @o?KmAnJ EI 7NO..1+1)L =n@ m=O >A oKJ@=JA@ oHjKIJFl=En94ON/.7IAOoKH>H=En.NO4-.7N,5.

_sl’s info is incorrect. ߞ =nJD_N

ACHTUNG! 'BHonJ EI =>IolKJAlO =n@ Kn=lJAH=>lO oFFoIA@ Jo H=?EIm, IANEIm, DomoFDo­ >E=, JH=nIFDo>E=, n=JEon=lEIm, AJDno?AnJHEIm, HAlECEoKI BKn@=mAnJ=lEIm, =n@ oFFHAIIELA =n@?oAH?ELAFoMAHIJHK?JKHAIoB=llkEn@I.

Nobody wants 2 take the weight − The responsibility ߞ 2HEn?A, Avalanche

ACHTUNG! ,onߣJHA=@JoomK?DEnJoMD=JOoKBEn@DAHA.

Unless this publication states otherwise, masculine nouns and pronouns do not refer exclusively to men. ߞ .M!"-$+O7N6-41N6-LL1/-N+-

# 0 − Introduction to Plan 9

. -9D=JEI2l=n'?

. . -2l=n'EInoJ7N1:

. . . -2l=n'EInoJFl=n'FoHJ

. . . -2l=n'EInoJ1nBAHno

. . -2l=n'EInoJ=FHo@K?J

. .!-2l=n'EInoJBoHOoK

. -9DO2l=n'?

. . -9D=J@oFAoFlAlEkA=>oKJ2l=n'?

. . . -9D=J@oOoKKIA2l=n'BoH?

. . -9D=J@oFAoFlAD=JA=>oKJ2l=n'?

. . . -9D=JEInoJEn2l=n'

. .!-9DO@E@2l=n'ߣI?HA=JoHICELAKFon2l=n'?

. .!. -9DO@E@2l=n'ߣIKIAHICELAKFon2l=n'?

. .!. -9DO@E@+1)CELAKFon2l=n'?

. ."-9D=JEIJDA@A=lMEJD2l=n'ߣIMAEH@lE?AnIA?

$ . .". -4E?D=H@5J=llm=nD=JAIJDA2l=nNEnAlE?AnIA?EH?= 

. .". -6DAo@A4==@JD=JAIJDA2l=n'lE?AnIA?EH?= !

. .".!--LAHOonAD=JAIJDA2l=n'lE?AnIA?EH?=  "

. ."."-24)15-.O4'.4ON6ߣ5*OL,)+61ON4-:L1+-N51N/

. .".#--LAHOonAloLAIJDA2l=n'lE?AnIA?EH?=  

.!-.KHJDAH4A=@EnC

.!. -2l=n'F=FAHI

.!. -M=nF=CAI

.!.!-9A>F=CAI

.!."-*ookI

1 − Introduction to 9front

. -9D=JEI'BHonJ?

. . -+EHno

. -OnMD=JIOIJAmI@oAI'BHonJHKn?

.!-9DOmECDJ1M=nJJoKIA'BHonJ?

.!.-9DOmECDJ1noJM=nJJoKIA'BHonJ?

.!.. -9DO@E@'BHonJIJoFm=kEnCBKnoBN=zEI?

.!. -NAM.A=JKHAI

.!. . -NAM2HoCH=mI

.!. . -NAM0=H@M=HA5KFFoHJ

."-1I'BHonJHA=llOBHAA?

.#-0oM?=n1DAlFIKFFoHJ'BHonJ?

.$-9Dom=EnJ=EnI'BHonJ?

.%-9DAnEIJDAnANJHAlA=IAoB'BHonJ?

.&-9D=JEIEn?lK@A@MEJD'BHonJ?

.'-+=n1KIA'BHonJ=I=@AIkJoFIOIJAm?

. -9DOEI/EInߣJ2Ho@K?J:En?lK@A@?

% . -.EnA,MDAHA?=n1CAJ'BHonJ?

. . -MEHHoHI

. . . -'BHonJ.EIo

. . . -MAH?KHE=lHAFoIEJoHO

2 − Getting to know 9front

. -9A>2=CAI

. -M=ElEnCLEIJI

. . -M=ElEnCLEIJ)H?DELAI

. . -OJDAHKIABKlm=ElEnClEIJI

.!-M=nK=l2=CAI

.!. -0oM@o1MHEJAmOoMnm=nK=lF=CA?

."-4AFoHJEnC*KCI

.". -;oKH>KCHAFoHJ57+K5

.". -0oM@o1CAJmoHAKIABKlEnBoBoH@ALAloFAHI?

.". . -6=kA=FDoJooBJDAF=nE?I?HAAn

.". . -M=kA=IJ=?kJH=?AoB=?H=IDA@FHo?AII

.". .!-M=kA=FHo?AIIIn=FIDoJ

.#-5An@EnC.ENAI

.#. -0oM@o1MHEJACoo@F=J?DAI?

.#. -0oM@o1IAn@EnmOF=J?DAI?

3 − Hardware

!. -5AlA?JEnC0=H@M=HA

!. -KnoMn9oHkEnC0=H@M=HA

!. .-1nFKJ,ALE?AI

!. .. -ME?A

!. .. . -1*M/LAnoLo

& !. .. -KAO>o=H@I

!. .. . -1*M/LAnoLo

!. .. . -6-:-lA?JHonE?I

!. . -)K@Eo

!. . -/H=FDE?I

!. . . -)/2

!. . . -1nJACH=JA@

!. . .!-2+1-NFHAII

!. .!-NAJMoHkEnC

!. .!. --JDAHnAJ

!. .!. . -1nJACH=JA@

!. .!. . -75*

!. .!. .!-2+M+1)

!. .!. -9E.E

!. .!. . -*HE@CAANJAHn=l

!. .!. . -MEnE-2+1

!. .!. .!-MEnE-2+1-NFHAII

!. .!. ."-2+1

!. .!. .#-2+M+1)

!. ."-6=>lAJ,ECEJEzAHI

!. .". -5AHE=l

!. .". . -1nJACH=JA@

!. .". -75*

!. .". . -1nJACH=JA@

!. .". . --NJAHn=l

!. .#-L=FJoFI

!. .#. -)?AH

' !. .#. -1*M/LAnoLo

!. .#. . -6DEnk2=@

!. .#.!-6oIDE>=

!. .#.!. -5=JAllEJA

!. .$-,AIkJoFI

!. .$. -AM=?DEnAI

!. .$. -1CAl

!. .$.!-5oAkHEI

!. .$."-1*M/LAnoLo

!. .$.". -6DEnk+AnJHA

!.!-8EHJK=lM=?DEnAI

!.!. -3AmK

!.!. . -1nIJ=ll=JEon

!.!. . -2oIJ-1nIJ=ll=JEon*ooJEnC

!.!. . . -MKlJE>ooJ

!.!. ."-NAJMoHkEnC

!.!. .". -LEnKN8,-

!.!. .". -OFAn*5,6)2

!.!. .".!-9En@oMI6)2

!.!. ."."-LEnKN6)2

!.!. .#-)K@Eo

!.!. .$-/H=FDE?I

!.!. -8EHJK=l>oN

!.!. . --JDAHnAJ

!.!. . -)K@Eo

!.!. .!-/H=FDE?I

!.!. ."-KnoMn9oHkEnC8AHIEonI

 !.!.!-8EHJEo

4 − 9front Installation Guide

". -2HA-EnIJ=ll=JEon+DA?klEIJ

". -+HA=JEnC>ooJ=>lA'BHonJEnIJ=llmA@E=

". . -15OEm=CA

". . -75*@HELA

". . . -+HA=JEnCon2l=n'

". . . -+HA=JEnConLEnKN

". . .!-*ooJ=HCI

".!-2AHBoHmEnC=IEmFlAEnIJ=ll

".!. ->ooJ

".!. ->ooJ=HCI

".!.!-KIAH

".!."- LC=IEzA,monEJoH,moKIAFoHJ

".!.". -+D=nCEnCI?HAAnHAIolKJEon

".!.#- EnIJ/IJ=HJ

".!.$-?onBECBI

".!.$. -?MBIno-@KmF?onBECKH=JEon

".!.%- F=HJ@EIk

".!.&-FHAF@EIk

".!.'-moKnJBI

".!. -?onBEC@EIJ

".!. -?onBECnAJ

".!. . -@D?F

".!. . -m=nK=l

".!. -moKnJ@EIJ

".!. !-?oFO@EIJ

 ".!. "-IOIn=mA

".!. #-JzIAJKF

".!. $->ooJIAJKF

".!. %-BEnEID

"."--n?HOFJA@2=HJEJEonI

5 − Building the System from Source

#. -9DOIDoKl@1>KEl@mOIOIJAmBHomIoKH?A?

#. -*KEl@EnC'BHonJBHomIoKH?A

#. . -7F@=JAIoKH?AI

#. . . -DCH?

#. . -*KEl@EnCBHomIoKH?A

#. . . -+HoII?omFElEnC

#.!-*KEl@EnC=n15O

#."-+ommon2Ho>lAmIMDAn+omFElEnC=n@*KEl@EnC

#.". -7FCH=@EnC?omFElAHI

6 − Networking

$. -*ABoHAMACo=nOBKHJDAH

$. -NAJMoHk?onBECKH=JEon

$. . -0oIJn=mA

$. . -1@AnJEBOEnC=n@IAJJEnCKFOoKHnAJMoHkEnJAHB=?AI

$. . . -9E.E

$. . . . -1nJAHB=?AI

$. . . . . -M=LAl=n

$. . . . . -M=LAl=nF?E

$. . . . .!-EMl

$. . . . ."-HJ &$

 $. . . . .#-MFE

$. . . . -92)

$. . . .!-9E.E4o=mEnC

$. . . ."-9E.E,A>KC

$. .!-12=@@HAII

$. ."-,AB=KlJ=JAM=O

$. .#-,N54AIolKJEon

$. .#. -+=?DEnC,N5IAHLAH

$. .#. -,N5=KJDoHEJ=JELAn=mAIAHLAH

$. .#. . -6HoK>lAIDooJEnC,N5=KJDoHEJ=JELAn=mAIAHLAH

$. .$-NAJMoHk-ME@A?onBECKH=JEon

$. .%-)?JEL=JEnCJDA?D=nCAI

$. .%. -N1+

$. .%. -?I

$. .%.!-@nI

$. .&-8AHEBOEnCnAJMoHkIAJJEnCI

$. .&. -+DA?kEnCHoKJAI

$. .&. . -)@@EnCIJ=JE?HoKJAI

$. .'-5AJJEnCKFOoKH'BHonJ>oN=I=BoHM=H@EnCC=JAM=O

$. . -5AJJEnCKF=lE=IAIon=nEnJAHB=?A

$.!-0oM@o1BElJAH=n@BEHAM=llMEJD'BHonJ?

$."-,On=mE?0oIJ+onBECKH=JEon2HoJo?ol,0+2

$.". -,0+2?lEAnJ

$.". -,0+2IAHLAH

$.#-222

$.$-5AJJEnCKF=nAJMoHk>HE@CAEn'BHonJ

$.%-0oM@o1>ooJBHomJDAnAJMoHk?

! $.%. -0oM@o1J?F>ooJ?

$.%. . -2=IIEnC=HCKmAnJIJoEF?onBEC=JJDA>ooJ=HCIFHomFJ

$.%. -0oM@o1>ooJKIEnC2:-?

7 − System Management

%. -2l=n'5AHLE?AIOLAHLEAM

%. . -9D=JEIJDAkAHnAl?

%. . -9D=JEIJDABElAIAHLAH?

%. .!-9D=JEIJDA=KJDIAHLAH?

%. ."-9D=JEIJDA?FKIAHLAH?

%. .#-9D=JEI=JAHmEn=l?

%. -KAHnAl?onBECKH=JEon=n@m=EnJAn=n?A

%. . -0oM@o1moKnJJDA'B=JF=HJEJEon?

%. . -0oM@o1mo@EBOFl=n'.EnE?

%. .!-KAHnAl?onBECKH=JEonBElA

%. ."-KAHnAl@HELAHI

%. .#-0oM@o1EnIJ=ll=nAMkAHnAl?

%.!-.ElAIAHLAH?onBECKH=JEon=n@m=EnJAn=n?A

%.!. -)@@EnCKIAHI

%.!. -+onBECKHEnCnLH=m

%.!.!-5AJJEnCKF=lEIJAnAHBoHnAJMoHk?onnA?JEonI

%.!.!. -5JoF?MBIBHom=lloMEnCKIAHnonAJo=JJ=?DMEJDoKJ=KJDAnJE?=JEon

%.!.!. . -noJAIonKIAHnonA

%.!."-MoKnJEnC=BElAIOIJAmBHomKIAHIF=?A

%.!.#-@KmF

%.!.#. -m=nK=llOJHECCAHJDA@KmF

%."-)KJDIAHLAH?onBECKH=JEon=n@m=EnJAn=n?A

%.". -+onBECKHEnC=n=KJDIAHLAH

" %.". . -)LoE@EnC=nn@>AnJHOBoHJDA=KJDIAHLAH

%.". -)@@EnCKIAHI

%.".!-IA?IJoHA@

%.".!. -)@@EnCKIAHIJoIA?IJoHA

%.".!. -+onLAHJEnCBHomF'Ik Jo@F'Ek

%.#-+FKIAHLAH?onBECKH=JEon=n@m=EnJAn=n?A

%.#. -+onBECKHEnC=?FKIAHLAH

%.$-6AHmEn=l?onBECKH=JEon=n@m=EnJAn=n?A

%.$. -+onBECKHEnC=JAHmEn=l

%.$. -+onBECKHEnC=6AHmEn=lJo)??AFJ?FK+onnA?JEonI

%.$.!-76+6EmAIOn?

%.%-M=ElIAHLAH?onBECKH=JEon=n@m=EnJAn=n?A

%.%. -ImJF@.?onB

%.%. -HAMHEJA

%.%.!-n=mAI.lo?=l

%.%."-HAmoJAm=El

%.%.#-5M62oLAH6L5

%.%.$-1M)2"oLAH6L5

%.%.%-5F=m.ElJAHEnC

%.%.%. -H=JBI

%.%.%. -I?=nm=El

%.%.&-6HoK>lAIDooJEnCJDAm=ElIAHLAH

%.%.'-5AJJEnCKF=m=ElEnClEIJ

%.%.'. -mlmCH

%.&-9A>IAHLAH?onBECKH=JEon=n@m=EnJAn=n?A

%.&. -EF/DJJF@

%.&. -H?-DJJF@

# %.'-6L5?AHJEBE?=JAI

8 − Using 9front

&. -H?

&. . -2HomFJI

&. . -/AnL

&. -HEo

&. . -6DA2oF-KFMAnK

&. . -9En@oM?onJHol

&. .!-6ANJEnHEoMEn@oMI

&. ."-5?HollEnC

&. .#-MoKIA+DoH@EnC

&. .$-KAO>o=H@5DoHJ?KJI

&. .%-+oloHI?DAmA

&. .&-9DOEIHEolEkAJDEI?

&. .'-JEFI

&. .'. -6=kEnC=I?HAAnIDoJ

&. .'. -2HALAnJ?onIolAmAII=CAIBHomoLAHMHEJEnCJDAI?HAAn

&.!-6ANJ-@EJoHI

&.!. -I=m

&.!. . -5?HollEnC

&.!. . -MoKIA+DoH@EnC

&.!. .!-9DO@oAII=mD=LA=IAF=H=JAIn=HB>KBBAHBHomHEo?

&.!. ."-KAO>o=H@5DoHJ?KJI

&.!. -=?mA

&."-1nJAHnAJ

&.". -M=El

&.". . -KF=IBI

$ &.". . . -4A=@EnCCm=ElLE=1M)2

&.". . . -5An@EnC m=ElMEJDCm=El

&.". . -nA@m=El

&.". . . -moJDAH

&.". . . -N=El

&.". .!-nKF=I

&.". -NN62

&.".!-14+

&.".!. -EH?H?

&.".!. -EH?%

&.".!.!-EH?I

&.".!."-MEH?H?

&."."-.62

&.".#-0662

&.".#. -moJDH=

&.".#. -=>=?o

&.".#.!-DCAJ

&.".#."-?D=Hon

&.".#.#-E

&.".#.$-NAJ5KHB

&.".$-550

&.".$. -IID

&.".$. . -IIDBI

&.".$. . -IIDnAJ

&.".$. -IID

&.".$.!-I?FK

&.".$.!. -2K>lE?KAO)KJDAnJE?=JEon

% &.".$."-OFAn550

&.".$.#-IBJFBI

&.".$.#. -MoKnJEnC=HAmoJAK'BIID=HAoLAH550

&.".%-IA?IJoHA

&.".&-@H=MJAHm

&.".&. -+onnA?JJo2l=n'BHom=mo>ElA@ALE?A

&.".&. -@H=MJAHm>ADEn@BEHAM=llI

&.".'-2AAHJo2AAH2 2

&.".'. -6En?

&.".'. -6oHHAnJI

&.".'. . -EF/JoHHAnJ

&.".'. . -JoHHAnJ

&.#-)K@Eo

&.$--NJAHn=lMA@E=

&.$. -MoKnJ=n15O'$$+,-4OM

&.$. -*KHn=+,-4OM

&.$.!-MoKnJ=.)6BoHm=JJA@75*@ALE?A

&.%--mKl=JEon

&.%. -LEnKN-mKl=JEon

&.%. -NEnJAn@o

&.%.!-5AC=

&.%."-+ommo@oHA

&.%.#-2+

&.%.#. -8EHJK=lEz=JEon7IEnCLmN 

&.%.#. . *lo?k,ALE?AI

&.%.#. . -JDAHnAJ

&.%.#. .!OFAn*5,

& &.%.#. ."LEnKN

&.%.#. .#9En@oMIN6

&.&-)@@EJEon=l5oBJM=HA

&.&. -'BHonJIoKH?AIIAHLAH

&.&. -'BHonJ?onJHE>

&.&.!-OJDAHFK>lE?'FIAHLAHI

&.&."-)@L=n?A@N=mAIF=?A6oolIBoH2l=n'

&.&.#--LAnMoHA)@@EJEon=l5oBJM=HA

&.&.$-+oKmmKnEJOM=EnJ=EnA@LEnk.oH)@@EJEon=l5oBJM=HA

&.'-*ooJIJH=FFEnC=H?DEJA?JKHAInoJEn?lK@A@onJDA15O

&.'. -=m@$"

&.'. -4=IF>AHHO2E

&.'.!-=Hm$"

&. -)+21

&. . --n=>lEnC)+21

&. -4ALEIEon+onJHol

&. . -?LI

&. . -CEJ

&. .!-MAH?KHE=l

&. ."-ILn

&. !-8E@Ao

&. !. -JHA=Ion

9 − Troubleshooting

'. -.EHIJ

'. -*ooJEnC

'. . -*HA=kEnJo=IDAll

'. .!--@EJEnCFl=n'.EnE

' '. ."-*ooJmA@E=noJHA?oCnEzA@

'. .#-1moLA@mOD=H@@HELA>AJMAAnFoHJI

'.!-/H=FDE?I

'.!. -4EoB=ElIJoIJ=HJ

'.!. -8-5)*1O5@oAInoJ?onJ=En=L=lE@mo@A

'."-NAJMoHkEnC

'.". -NAJMoHkEnCEInoJMoHkEnC

'.". -+=nnoJHAIolLA@om=Enn=mAI

'.".!-/mnJ/MA>/?lonA@oAInoJANEIJ

'."."-2+M+1)9E.EIJoFFA@MoHkEnC=BJAHHA>ooJ

'.#-75*

'.#. -,ALE?AInoJHA?oCnEzA@oHnoJMoHkEnC

'.#. -5OIJAmBHAAzAI=BJAHIDoMEnCmAmoHOIEzAI

'.$-=KJD

'.''''''''''''''''''''''''''''''''''''''-/18-72

Appendix

*-*oKnJEAI

/-/5O+

J-JKnk

L-L=nCK=CAI

6-6O,O

Z-/AJJEnC5J=HJA@9EJD'BHonJ

  FQA 0 − Introduction to Plan 9

0.1 − What is Plan 9?

2l=n ' EI = HAIA=H?D oFAH=JEnC IOIJAm BHom JDA I=mA CHoKF MDo ?HA=JA@ 7N1: =J *All L=>I +omFKJEnC 5?EAn?AI 4AIA=H?D +AnJAH +54+. 1J AmAHCA@ En JDA l=JA '&I, =n@ EJI A=HlO @ALAloFmAnJ ?oEn?E@A@ MEJD ?onJEnKEnC @ALAloFmAnJ oB JDA l=JAH LAHIEonI oB 4AIA=H?D 7N1:. 2l=n ' ?=n >A IAAn =I =n =JJAmFJ Jo FKID IomA oB JDA I=mA E@A=I JD=J EnBoHmA@ 7N1: even further EnJo JDA AH= oB nAJMoHkEnC =n@ CH=FDE?I. 4o> 2EkA D=I @AI?HE>A@ 2l=n ' =I =n =HCKmAnJ BoH IEmFlE?EJO =n@ ?l=HEJO, MDElA oJDAHI D=LA @AI?HE>A@ EJ=I7N1:,onlOmoHAIo.

.Hom The Use of Name Spaces in Plan 9:

 2l=n ' =HCKAI JD=J CELAn = BAM ?=HABKllO EmFlAmAnJA@ =>IJH=?JEonI EJ EI FoIIE­ >lA Jo FHo@K?A = Im=ll oFAH=JEnC IOIJAm JD=J FHoLE@AI IKFFoHJ BoH JDA l=HCAIJ IOIJAmIon=L=HEAJOoB=H?DEJA?JKHAI=n@nAJMoHkI.

.HomJDA intro(1) m=nF=CA:

2l=n ' EI = @EIJHE>KJA@ ?omFKJEnC AnLEHonmAnJ =IIAm>lA@ BHom IAF=H=JA m=?DEnAI =?JEnC =I JAHmEn=lI, +27 IAHLAHI, =n@ BElA IAHLAHI. ) KIAH MoHkI =J = JAHmEn=l, HKnnEnC = MEn@oM IOIJAm on = H=IJAH @EIFl=O. 5omA MEn@oMI =HA ?onnA?JA@ Jo +27 IAHLAHI; JDA EnJAnJ EI JD=J DA=LO ?omFKJEnC IDoKl@ >A @onA En JDoIA MEn@oMI >KJ EJ EI =lIo FoIIE>lA Jo ?omFKJA on JDA JAHmEn=l. ) IAF=­ H=JABElAIAHLAHFHoLE@AIBElAIJoH=CABoHJAHmEn=lI=n@+27IAHLAHI=lEkA.

6DAJMomoIJEmFoHJ=nJE@A=IEn2l=n'=HA:

ߦ FHEL=JAn=mAIF=?AIA=?DFHo?AII?onIJHK?JI=KnEGKALEAMoBJDADEAH=H?DE?=l BElA IOIJAm

ߦ BElA EnJAHB=?AI B=mElE=H BHom 7N1:, >KJ J=kAn Jo JDA ANJHAmA: =ll HAIoKH?AI En 2l=n 'looklEkABElAIOIJAmI

MoIJALAHOJDEnCAlIAEnJDAIOIJAmB=llIoKJoBJDAIAJMo>=IE?E@A=I.

Plan 9 really pushes hard on some ideas that has that haven’t really been fully developed, in particular, the notion that just about everything in the system is accessible through a file. In other words, things look like an ordinary disk file. So all the devices are controlled this way by means of ASCII strings, not complicated data structures. For example, you make network calls by writing an ASCII string, not the files. This notion is something that’s actually leaking quite fast.

The second thing is of more subtle and sort of hard to appreciate until you’ve actually played with it. That is that the set of files an individual program can see depends on that program itself. In a standard kind of system, either with Unix remote file systems or Windows attached file systems, all the programs running in the machine see the same thing. In Plan 9, that’s adjustable per program. You can set up specialized name stations that are unique to a particular program. I mean, it’s not associated with the program itself but with the process, with the execution of the process.

ߞ ,AnnEI4EJ?DEA

4A=@: intro(1); Plan 9 from ; Designing Plan 9, oHECEn=llO @AlELAHA@ =J JDA 7K77/ +onBAHAn?A En Lon@on, JKlO ''; =n@ FQA 7 − System Management; BoH = moHA @AJ=ElA@oLAHLEAMoB2l=n'ߣI@AIECn.

! 6o@=O,2l=n'?onJEnKAIEnEJIoHECEn=lBoHm,=IMAll=IEnIALAH=l@AHEL=JELAI=n@BoHkI.

The United States of Plan 9

2l=n ' BHom *All L=>I ߞ 6DA oHECEn=l 2l=n '. -BBA?JELAlO @A=@, =ll JDA @ALAloFAHI D=LA >AAnHKnoKJoBJDAL=>I=n@/oH=HAon@EIFl=O=J/ooClA.

2l=n'BHom7IAH5F=?Aߞ 2l=n'KIAHIF=?AFoHJA@/EmEJ=JA@BoH7N1:IFA?EBE?=llOO5:.

'lAC=?O ߞ ,=LE@ @K +olom>EAHߣI ?DAHHO FE?kA@ ?ollA?JEon oB F=J?DAI BHom L=HEoKI FAoFlA/BoHkIJo*AllL=>I2l=n'.EJEInoJ=BoHk

'=Jom ߞ -HEk 3K=nIJHomߣI BoHk oB 2l=n ', m=EnJ=EnA@ Jo AHEkߣI nAA@I =n@ o??=IEon=llO FElBAHA@>O'BHonJ.

'BHonJߞ JD=JߣIKIMAHKlAMAߣHAJDAJKnnAlIn=kAI

N1: ߞ 0ECD FAHBoHm=n?A ?loK@ ?omFKJEnC EI N1: ߞ EmFlo@A@ En = ?loK@ oB FolEJE?=l =?HE­ monO=n@HAJ=H@A@>KHA=K?H=JE?EnBECDJEnC.

NNMߞ )kAHnAlBoHm=nO?oHAIOIJAmIߞ nALAHIFoJJA@EnJDAMEl@.

+lELA ߞ ) nAM oFAH=JEnC IOIJAm BHom .H=n?EI?o J. *=llAIJAHoI, @AIECnA@ Jo CAnAH=JA CH=nJMHEJEnCFH=?JE?Am=JAHE=l=n@HAIA=H?DFHojA?JIBoHoJDAHMEIAEn@olAnJIJK@AnJI.

)k=HoI ߞ )k=HoI EI =n oFAn IoKH?A, /2L-lE?AnIA@ oFAH=JEnC IOIJAm BoH m=nO?oHA =H?DE­ JA?JKHAI. 0=Ino>A=HEnCon=nOJDEnC>KJD=I=JJH=?JA@CH=nJmonAO.

0=HLAOߞ 0=HLAOEI=nABBoHJJoCAJJDA2l=n'?o@AMoHkEnCMEJDC??=n@?l=nC.

1nBAHno ߞ 1nBAHno EI = @EIJHE>KJA@ oFAH=JEnC IOIJAm IJ=HJA@ =J *All L=>I, >KJ EI noM @ALAloFA@ =n@ m=EnJ=EnA@ >O 8EJ= NKoL= 0ol@EnCI =I BHAA IoBJM=HA. JKIJ kE@@EnC EJ EI noJ @ALAloFA@oHm=EnJ=EnA@.

" )N65 ߞ )@L=n?A@ N=mAIF=?A 6oolI BoH 2l=n '. )N65 EI = ?ollA?JEon oB mo@EBE?=JEonI =n@=@@EJEon=lIoBJM=HAMDE?D=@@InAMn=mAIF=?Am=nEFKl=JEon?=F=>ElEJEAIJo2l=n'.

JAD=nnAߞ JAD=nnA:0=HLAO::9EllE=mKEnC0=HLAO:J.-@C=H0ooLAH

2l=n'.oKn@=JEonߞ NoMoBBAHEnC@oMnlo=@IoBDEIJoHE?=l2l=n'HAlA=IAI.

0.1.1 − Plan 9 is not UNIX

1nJDAMoH@IoBJDA*AllL=>I2l=n'MEkE:

2l=n' EI noJ 7nEN. 1B OoK JDEnk oB EJ =I 7nEN, OoK m=O >A?omA BHKIJH=JA@ MDAn IomAJDEnC @oAInߣJ ANEIJ oH MDAn EJ MoHkI @EBBAHAnJlO JD=n OoK ANFA?JA@. 1B OoK JDEnk oB EJ =I 2l=n ', DoMALAH, OoKߣll BEn@ JD=J moIJ oB EJ MoHkI LAHO Imo­ oJDlO, =n@ JD=J JDAHA =HA IomA JHKlO nA=J E@A=I JD=J m=kA JDEnCI mK?D ?lA=nAH JD=nOoKD=LAIAAn>ABoHA.

+onBKIEon EI ?omFoKn@A@ >O JDA B=?J JD=J m=nO 7N1: ?omm=n@I ANEIJ on 2l=n ' =n@ >AD=LA En IEmEl=H M=OI. 1n B=?J, IomA oB 2l=n 'ߣI KIAHl=n@ IK?D =I JDA upas m=El EnJAHB=?A, JDA JANJ A@EJoH, =n@ JDA rc IDAll =HA ?=HHEA@ oLAH @EHA?JlO BHom 4AIA=H?D 7N1: JD -@EJEon. .KHJDAH EnLAIJEC=JEon HALA=lI JD=J m=nO E@A=I BoKn@ En 2l=n 'MAHAANFloHA@EnmoHAFHEmEJELABoHmEnJDAl=JAHA@EJEonIoB4AIA=H?D7N1:.

0oMALAH, 2l=n ' EI = ?omFlAJAlO nAM oFAH=JEnC IOIJAm JD=J m=kAI no =JJAmFJ Jo ?onBoHm Jo F=IJ FHAjK@E?AI. 6DA FoEnJ oB JDA ANAH?EIA ?EH?= JDA l=JA '&I M=I Jo =LoE@ F=IJFHo>lAmI=n@ANFloHAnAMJAHHEJoHO.2l=n'EInoJ7N1: for a reason.

4A=@: UNIX to Plan 9 translation, UNIX Style, or −v Considered Harmful

# 0.1.1.1 − Plan 9 is not plan9port

2l=n ' BHom 7IAH 5F=?A =lIo knoMn =I Fl=n'FoHJ oH F'F EI = FoHJ oB m=nO 2l=n ' BHom *All L=>I lE>H=HEAI =n@ =FFlE?=JEonI Jo 7N1:-lEkA oFAH=JEnC IOIJAmI. +KHHAnJlO EJ D=I>AAn JAIJA@ on = L=HEAJO oB oFAH=JEnC IOIJAmI En?lK@EnC: LEnKN, M=? O5 :, .HAA*5,, NAJ*5,, OFAn*5,,5ol=HEI=n@5KnO5.

2l=n'FoHJ ?onIEIJI oB = ?om>En=JEon oB moIJlO Kn=lJAHA@ 2l=n ' KIAHl=n@ KJElEJEAI F=?k­ =CA@ =lonCIE@A L=HEoKI =JJAmFJI Jo EmEJ=JA 2l=n 'ߣI kAHnAl EnJAB=?AI KIEnC mEI?All=nAoKI =L=El=>lA 7N1: FHoCH=mI =n@ ?omm=n@I. 5omA oB JDA EmEJ=JEonI =HA moHA IK??AIIBKl JD=n oJDAHI. 1n =ll, Fl=n'FoHJ @oAI noJ =??KH=JAlO HAFHAIAnJ JDA ANFAHEAn?A oB KIEnC =?JK=l 2l=n ', >KJ @oAI FHoLE@A AnoKCD BKn?JEon=lEJO Jo m=kA IomA KIAHI ?onJAnJ MEJD HKnnEnC=?mAonJDAEHM=?>ookI.

0.1.1.2 − Plan 9 is not Inferno

1nBAHno EI = @EIJHE>KJA@ oFAH=JEnC IOIJAm =lIo ?HA=JA@ =J *All L=>I, >KJ MDE?D EI noM @ALAloFA@ =n@ m=EnJ=EnA@ >O 8EJ= NKoL= 0ol@EnCI =I BHAA IoBJM=HA. 1J AmFloOI m=nO E@A=IBHom2l=n'=n@ALAnID=HAIIomAIoKH?A?o@A,>KJEI=?omFlAJAlO@EBBAHAnJO5.

Note: 1nBAHno ID=HAI IomA ?omF=JE>lA EnJAHB=?AI MEJD 2l=n ', En?lK@EnC JDA '2/5JON FHo­ Jo?ol.

$ 0.1.2 − Plan 9 is not a product

2=JD:KJzooKJCFKM=JAHM=Jm=JD?lO@A>All?oHAB=lEnAJDKmFAHKlOIIAIIm> .Hom:I...(KlOIIAI.DomAH.nj.=JJ.?om5JALAn*AlloLEn NAMICHoKFI:?omF.KnEN.MEz=H@I 5K>jA?J:4A:2l=n'?+oJDAHI MAII=CA-1,:< #!!(KlOIIAI.DomAH.nj.=JJ.?om> ,=JA: !)KC&& $: ':"/M6 4ABAHAn?AI:<&"$(OKnANKI.77+2>< & (Km>Eo.M1)M1.-,7><&"&(OKnANKI.77+2> OHC=nEz=JEon:)66*AllL=>oH=JoHEAI,MKHH=O0Ell LEnAI:!!

ߢߢ2l=n'ߣߣ EInoJ=FHo@K?J,=n@EInoJEnJAn@A@Jo>A. 1JEIHAIA=H?D-- =nANFAHEmAnJ=lEnLAIJEC=JEonEnJo=@EBBAHAnJM=OoB?omFKJEnC. 6DA @ALAloFAHIIJ=HJA@BHomIALAH=l>=IE?=IIKmFJEonI: JD=J+27I=HALAHO ?DA=F>KJJD=JMA@onߣJHA=llOknoMDoMJo?om>EnAJDAmABBA?JELAlO;JD=J *Coo@*nAJMoHkEnCEILAHOEmFoHJ=nJ;JD=J=nEnJAllECAnJKIAHEnJAHB=?A ?omFlAJAMEJD@oJ-m=FFA@@EIFl=O=n@moKIAEI=4ECDJ,A?EIEon;JD=J ANEIJEnCIOIJAmIMEJDnAJMoHkI,mE?A,AJ?.,=HAnoJJDA?oHHA?JM=OJo @oJDEnCI,=n@EnF=HJE?Kl=HJD=JJo@=OߣIMoHkIJ=JEonI=HAnoJJDAM=OJo Co. No,1MonߣJ>oJDAHJoANFl=En=llJDAEHHA=IonEnC;JD=JߣI=lonC =n@IAF=H=JA=HJE?lA. .En=llO,JDA7N1:IOIJAmFAHIAEI@A=@=I= LADE?lABoHIAHEoKIHAIA=H?DEnJooFAH=JEnCIOIJAmIJHK?JKHA;EJD=ICHoMn Jool=HCA,=n@EIJoo?onIJH=EnA@>O #+OA=HIoBDEIJoHO.

NoM--CELAnJDoIA=IIKmFJEonI,JDAO@A?E@A@JoJDHoM=M=OMD=JMAD=LA Jo@=O=n@@AIECn=nAMIOIJAm. +omF=JE>ElEJOEInߣJ=nEIIKA--JDAO=HA noJEnJDAFHo@K?J->KEl@EnC>KIEnAII. NoH=HAJDAOEnJDAߢߢlAJߣIm=kA =noJDAH?lALAHD=?kߣߣ >KIEnAII. OB?oKHIA=IFA?JIoB2l=n'HAIAm>lA JDA7N1:IOIJAmGKEJAIJHonClO--EIEJ=nOIKHFHEIAJD=J2EkA,6DomFIon, AJ=l.,JDEnkJD=JJD=JߣI=@A?AnJmo@AlJoBolloM? *KJ2l=n'EInߣJ, =n@EInoJmA=nJJo>A,=HA-EmFlAmAnJ=JEonoBJDA7N1:IOIJAm. 1BOoK M=nJ,?=llEJ=7N1:-lEkAIOIJAm.

9Ell2l=n'ALAH>AHAlA=IA@? 1D=LAnoE@A=. 9EllEJHAm=En>KHEA@? 1DoFAnoJ. L=HCA?omF=nEAI@onoJIFonIoHl=HCAHAIA=H?DoHC=nEz=JEonI jKIJBoHJDAFHAIJECA;JDAODoFABoH=nALAnJK=l?on?HAJAHAJKHnEnJDA BoHmoB?on?AFJIJD=J?=n>Am=@AEnJooHEn?oHFoH=JA@EnJoFHo@K?JI.

--5JALA*AlloLEn

,EI?l=EmAH: JDEI=HJE?lAEInoJ,oB?oKHIA,=noBBE?E=lIJ=JAmAnJBHom)66. NoHEIEJ=noBBE?E=lIJ=JAmAnJoBJDAHA=IonEnC>ADEn@2l=n'. 1@oJDEnk EJߣI=??KH=JA,JDoKCD,=n@1ߣmIKHA1ߣll>AJol@EB1ߣmMHonC...

0.1.3 − Plan 9 is not for you

Let’s be perfectly honest. M=nO BA=JKHAI JD=J Jo@=OߣI ?omFKJAH ANFAHJI ?onIE@AH Jo >A AIIAnJE=l Jo ?omFKJEnC j=L=I?HEFJ, +55, 06ML#, AJ?. AEJDAH @E@ noJ ANEIJ MDAn 2l=n ' M=I =>=n@onA@, oH MAHA FKHFoIAlO lABJ oKJ oB JDA oFAH=JEnC IOIJAm. ;oK mECDJ BEn@ JDEI Jo >A =n Kn=??AFJ=>lA o>IJ=?lA Jo =@oFJEnC 2l=n ' EnJo OoKH @=ElO MoHkBloM. 1B OoK

% ?=nnoJ Em=CEnA = KIA BoH = ?omFKJAH JD=J @oAI noJ EnLolLA = MA> >HoMIAH, 2l=n ' m=O noJ>ABoHOoK.

5AA:DJJF://D=HmBKl.?=J-L.oHC/IoBJM=HA/

0.2 − Why Plan 9?

;oK m=O =Ik OoKHIAlB, MAll, DoM @E@ 1 CAJ DAHA? 1n JDA MoH@I oB 2l=n ' ?onJHE>KJoH 4KII +oN:

9DO2l=n'En@AA@. 1InߣJ2l=n'jKIJ=noJDAH7nEN?lonA? 9Do?=HAI?

2l=n'FHAIAnJI=?onIEIJAnJ=n@ A=IO Jo KIA EnJAHB=?A. On?A OoKߣLA IAJJlA@ En, JDAHA =HA LAHO BAM IKHFHEIAI DAHA. )BJAH 1 IMEJ?DA@ Jo LEnKN BHom 9En@oMI !. , 1 noJE?A@ =ll m=nnAH oB En?onIEIJAnJ >AD=LEoH En 9En@oMI !. JD=J LEnKN @E@ noJ D=LA. 5MEJ?DEnC Jo 2l=n ' BHom LEnKN DECDlECDJA@ jKIJ =I mK?D En LEnKN.

OnA HA=Ion 2l=n ' ?=n @o JDEI EI JD=J JDA 2l=n ' CHoKF D=I D=@ JDA lKNKHO oB D=LEnC =n AnJEHA IOIJAm, Io FHo>lAmI ?=n >A BENA@ =n@ BA=JKHAI =@@A@ MDAHA JDAO >AlonC, H=JDAH JD=n MDAHA JDAO ?=n >A. .oH AN=mFlA, JDAHA EI no JJO @HELAH En JDA kAHnAl. 6DA MEn@oM IOIJAm D=n@lAI JDA nK=n?AI oB JAHmEn=l EnFKJ.

1B2l=n'M=IjKIJ=HA=llO?lA=n7nEN?lonA,EJmECDJ >A MoHJD KIEnC, oH EJ mECDJ noJ. 6DA nA=J JDEnCI IJ=HJ D=FFAnEnC MEJD KIAH-lALAl BElA IAHLAHI =n@ FAH- FHo?AII n=mAIF=?A. 1n 7nEN, /@AL/JJO HABAHI Jo JDA ?KHHAnJ MEn@oMߣI oKJFKJ @ALE?A, =n@ mA=nI @EBBAHAnJ JDEnCI Jo @EBBAHAnJ FHo?AIIAI. 6DEI EI = IFA?E=l D=?k An=>lA@ >O JDA kAHnAl BoH = IEnClA BElA. 2l=n ' FHoLE@AI BKll->loMn FAH- FHo?AII n=mAIF=?AI. 1n 2l=n ' /@AL/?onI =lIo HABAHI Jo JDA ?KHHAnJ MEn@oMߣI oKJFKJ @ALE?A, =n@ mA=nI @EBBAHAnJ JDEnCI Jo @EBBAHAnJ FHo?AIIAI, >KJ JDA MEn­ @oM IOIJAm oH JAlnAJ @=Amon, oH IID @=Amon, oH MD=JALAH =HH=nCAI JDEI, =n@ @oAI JDA I=mA BoH /@AL/moKIA, /@AL/JANJ JDA ?onJAnJI oB JDA ?KHHAnJ MEn@oM,AJ?.

5En?A FEA?AI oB BElA JHAA ?=n >A FHoLE@A@ >O KIAH-lALAl IAHLAHI, JDA kAHnAl nAA@ noJ knoM =>oKJ JDEnCI lEkA ,O5ߣI .)6 BElA IOIJAm oH /N7/LEnKNߣI -:6 BElA IOIJAmoH N.5, AJ?. 1nIJA=@, KIAH-lALAl IAHLAHI FHoLE@A JDEI BKn?JEon=lEJO MDAn @AIEHA@. 1n 2l=n ', ALAn .62 EI FHoLE@A@ =I = BElA IAHLAH: OoK HKn BJFBI =n@ JDA BElAIonJDAIAHLAH=FFA=HEn/n/BJF.

9A nAA@ noJ IJoF =J FDOIE?=l BElA IOIJAmI, JDoKCD. OJDAH BElA IAHLAHI IOnJDA­ IEzA BElAI JD=J HAFHAIAnJ oJDAH HAIoKH?AI. .oH AN=mFlA, KF=I/BI FHAIAnJI OoKH m=El >oN =I = BElA JHAA =J /m=El/BI/m>oN. 6DEI mo@AlI JDA HA?KHIELA IJHK?JKHA oBM1M-mAII=CAIAIFA?E=llOMAll.

)I =noJDAH AN=mFlA, ?@BI FHAIAnJI =n =K@Eo oH @=J= +, =I = BElA IOIJAm, onA BElA FAH JH=?k. 1B EJߣI = MHEJ=>lA +,, ?oFOEnC nAM BElAI EnJo JDA /mnJ/?@/M= oH /mnJ/?@/M@ @EHA?JoHEAI @oAI ?HA=JA nAM =K@Eo oH @=J= JH=?kI. 9=nJ Jo BEN=JA JDA+,=I=K@EooH@=J=? 4AmoLAonAoBJDA@EHA?JoHEAI.

2l=n ' BEJI MAll MEJD = nAJMoHkA@ AnLEHonmAnJ, BElAI =n@ @EHA?JoHO JHAAI ?=n >A EmFoHJA@ BHom oJDAH m=?DEnAI, =n@ =ll HAIoKH?AI =HA BElAI oH @EHA?JoHO JHAAI,

& EJߣI A=IO Jo ID=HA HAIoKH?AI. 9=nJ Jo KIA = @EBBAHAnJ m=?DEnAߣI IoKn@ ?=H@? 1mFoHJ EJI /@AL/=K@Eo. 9=nJ Jo @A>KC FHo?AIIAI JD=J HKn on =noJDAH m=?DEnA? 1mFoHJ EJI /FHo?. 9=nJ Jo KIA = nAJMoHk EnJAHB=?A on =noJDAH m=?DEnA? 1mFoHJEJI/nAJ. )n@Ioon.

4KII+oN

0.2.1 − What do people like about Plan 9?

,AI?HEFJELA JAIJmonO >O lonC JEmA 2l=n ' KIAHI +D=HlAI .oHIJOD, )nJDonO 5oH=?A =n@ /AoBB+ollOAH:

DJJFI://'F.Eo/MEkE/Fl=n'/MD=J_@o_FAoFlA_lEkA_=>oKJ_Fl=n_'/[email protected]

0.2.1.1 − What do you use Plan 9 for?

+omFKJEnC.

4A=@: How I Switched To Plan 9

5AA: FQA 8 − Using 9front

0.2.2 − What do people hate about Plan 9?

JoDnBloHAnFHoLE@AI=DKmoHoKI?oLAHLEAMoB=JOFE?=lnAMKIAHߣIHA=?JEonIJo2l=n':

0E1ߣmnAMJo2l=n'.1ߣmHA=llOAN?EJA@JoMoHkMEJDJDEInAMLEnKNIOIJAm.

1DEJIomAGKAIJEonI. 0oM@o1HKn: ? 9DAHAEI-m=?I? ! 6DA ?o@A EI MAEH@. 1J @oAInߣJ look lEkA /N7 + =J =ll. ,E@ JDA FAoFlA MDo MHoJA2l=n'knoM=>oKJ+? " 1JHEA@JoHKnmozEll=>KJEJ@E@noJMoHk.0oM?omA?

1IJDEICKOOoK?

4Al=JA@:DJJF://'BHonJ.oHC/>[email protected]

0.2.2.1 − What is not in Plan 9

) IKmm=HO oB ?ommon BA=JKHAI OoK m=O D=LA >AAn ANFA?JEnC JD=J =HA mEIIEnC BHom 2l=n':

DJJF://? .?om/?CE/MEkE?9D=J1INoJ1n2l=nNEnA

' 0.2.3 − Why did Plan 9’s creators give up on Plan 9?

)ll oB JDA FAoFlA MDo MoHkA@ on 2l=n ' D=LA moLA@ on BHom *All L=>I =n@/oH no lonCAH MoHkon2l=n'.8=HEoKIHA=IonID=LA>AAn=HJE?Kl=JA@>OL=HEoKIFAoFlA.

4KII+oN:

1 H=n 2l=n ' BHom *All L=>I =I mO @=O Jo @=O MoHk AnLEHonmAnJ KnJEl =HoKn@  . *O JDAn JMo B=?JI MAHA F=EnBKllO ?lA=H. .EHIJ, JDA 1nJAHnAJ M=I DAHA Jo IJ=O; =n@ IA?on@, 2l=n ' D=@ no DoFA oB kAAFEnC KF MEJD MA> >HoMIAHI. 2oHJ­ EnC MozEll= Jo 2l=n ' M=I B=H Joo mK?D MoHk, Io EnIJA=@ 1 FoHJA@ =lmoIJ =ll JDA 2l=n'KIAHlALAlIoBJM=HAJo.HAA*5,,LEnKN,=n@O5:.

4KII+oN=C=En:

6DA IJ=n@=H@ IAJ KF BoH = 2l=n ' =BE?Eon=@o DAHA IAAmI Jo >A = M=? oH LEnKN m=?DEnA HKnnEnC 2l=n ' BHom 7IAH 5F=?A Jo CAJ =J I=m, =?mA, =n@ JDA oJDAH JoolI. 4o>, KAn, ,=LA, =n@ 1 KIA M=?I =I oKH @AIkJoF m=?DEnAI, >KJ MAߣHA = >EJ oB =n AN?AFJEon. MoIJ /ooClA AnCEnAAHI KIA LEnKN m=?DEnAI, =n@ 1 knoM oB GKEJA = BAM AN-*All L=>I FAoFlA MDo =HA D=FFO Jo >A KIEnC I=m oH =?mA on JDoIA m=?DEnAI. MO oMn IAJKF EI JMo I?HAAnI. 6DA BEHIJ EI = IJ=n@=H@ M=? @AIkJoF MEJD non-2l=n ' =FFI =n@ = D=n@BKl oB 'JAHmI, =n@ JDA IA?on@ EI = BKll-I?HAAn =?mA BoH CAJJEnC MoHk @onA. On LEnKN 1 @o JDA I=mA >KJ JDA BEHIJ I?HAAnEI=LEnKN@AIkJoFHKnnEnCHEoBoHmAHlO@DoCߣI&½.

MoHA >Ho=@lO, ALAHO BAM monJDI 1 JAn@ Jo CAJ =n Am=El BHom IomAonA MDo EI D=FFO Jo D=LA jKIJ @EI?oLAHA@ JD=J I=m EI IJEll m=EnJ=EnA@ =n@ =L=El=>lA BoH mo@AHn IOIJAmI. ) loJ oB JDA JEmA JDAIA =HA FAoFlA MDo onlO KIA@ I=m on 7nEN, nALAH on 2l=n '. 6DA Fl=n'FoHJ.JCz BElA M=I @oMnlo=@A@ BHom ,# KnEGKA 12 =@@HAIIAI En ', MDE?D 1 IKIFA?J EI m=nO moHA JD=n 2l=n ' EJIAlB. 1n JD=J IAnIA, EJߣI HA=llO nE?A Jo IAA JDA JoolI CAJJEnC = mK?D ME@AH ANFoIKHA JD=nJDAOKIA@Jo.

1 D=LAnߣJ loCCA@ EnJo = HA=l 2l=n ' IOIJAm En m=nO OA=HI, >KJ 1 KIA '

! o??=IEon=llO MDAn 1 M=nJ Jo HAmEn@ mOIAlB DoM = HA=l 2l=n ' Jool MoHkA@. 1JߣI =lM=OInE?AJo>A>=?k,DoMALAH>HEABlO.

4KII

4KII+oN?onJEnKAI:

>+=nOoK>HEABlOJAllKIMDOOoK4KII,4o>,KAn=n@,=LA >nolonCAHKIA2l=n'? >*A?=KIAoBmEIIEnC=FFIoH>A?=KIAoBmEIIEnC@HELAHBoHOoKHD=H@M=HA? >)n@@oOoKIJEllKIALAnJE?

OFAH=JEnC IOIJAmI =n@ FHoCH=mmEnC l=nCK=CAI D=LA IJHonC nAJMoHk ABBA?JI: EJ DAlFI Jo KIA JDA I=mA IOIJAm JD=J ALAHOonA =HoKn@ OoK EI KIEnC. 1n mO CHoKF =J M16, JD=J mA=nJ .HAA*5, =n@ +++. 1 H=n 2l=n ' BoH JDA BEHIJ BAM OA=HI 1 M=I =J M16 >KJ C=LA KF, >A?=KIA JDA l=?k oB = ID=HA@ IOIJAm m=@A EJ Joo D=H@ Jo ?oll=>oH=JA. 9DAn 1 IMEJ?DA@ Jo .HAA*5,, 1 FoHJA@ =ll JDA 2l=n ' lE>H=HEAI=n@JoolIIo1?oKl@kAAFJDAHAIJoBJDAKIAHANFAHEAn?A.

1 IJEll KIA LAnJE, En JD=J 1 IJEll m=EnJ=En JDA LAnJE IAHLAH JD=J J=kAI ?=HA oB >=?k­ KFI BoH mO ol@ CHoKF =J M16. 1J KIAI JDA Fl=n'FoHJ LAnJE, L>=?kKF, =n@ LnBI, =ll HKnnEnC on .HAA*5,. 6DA LAnJE IAHLAH EJIAlB M=I mO l=IJ HA=l 2l=n ' EnIJ=ll=­ JEon. 1JߣI +oH=E@ D=H@M=HA, >KJ 1 IJHEFFA@ JDA IoBJM=HA =n@ D=@ EnIJ=llA@ mO oMn 2l=n ' kAHnAl Jo HKn LAnJE on EJ @EHA?JlO. *KJ >ABoHA 1 lABJ M16, JDA l=IJ JDEnC 1 @E@ M=I HAEnIJ=ll JDA m=?DEnA KIEnC .HAA*5, Io JD=J oJDAHI ?oKl@ DAlF kAAFEJKFJo@=JA.

1B 1 M=InߣJ EnJAH=?JEnC MEJD =nOonA AlIA EJߣ@ >A nE?A Jo kAAF KIEnC 2l=n '. *KJ EJߣI =lIo nE?A Jo >A =>lA Jo KIA oBB JDA IDAlB IoBJM=HA EnIJA=@ oB HAEnLAnJEnC MDAAlI 'B=nI HKnI on LEnKN =n@ Jo D=LA Coo@ D=H@M=HA IKFFoHJ @onA >O oJDAH FAoFlA 1 ?=n IDKJ mO l=FJoF =n@ EJ CoAI Jo IlAAF, =n@ ALAn >AJJAH,MDAn 1 oFAn EJ =C=En, EJ M=kAI KF. *AEnC =>lA Jo CAJ JDoIA JDEnCI =n@ IJEll kAAF moIJ oB JDA 2l=n ' KIAH ANFAHEAn?A >O HKnnEnC 2l=n ' BHom 7IAH 5F=?A EI = ?omFHomEIA,>KJonAJD=JMoHkIMAllBoHmA.

4KII

4o>2EkA:

9D=J 4KII I=OI EI JHKA >KJ BoH mA EJ M=I IEmFlAH. 1 KIA@ 2l=n ' =I mO lo?=l oFAH=JEnC IOIJAm BoH = OA=H oH Io =BJAH joEnEnC /ooClA, >KJ EJ M=I jKIJ Joo En?onLAnEAnJ Jo lELA on = m=?DEnA MEJDoKJ = +++ ?omFElAH, MEJDoKJ Coo@ N.5 =n@ 550 IKFFoHJ, =n@ AIFA?E=llO MEJDoKJ = MA> >HoMIAH. 1 IMEJ?DA@ Jo LEnKN >KJ BoKn@ EJ LAHO >KCCO JDA m=En FHo>lAm M=I moIJ lEkAlO = >=@ CH=FDE?I >o=H@ =n@/oH @HELAH, >KJ IJEll =n@ mO m=En ?oll=>oH=JoH 4o>AHJ /HEAIAmAH D=@ @onA JDA CHoKn@ MoHk Jo CAJ = M=? MoHkEnC =I = FHEm=HO m=?DEnA EnIE@A /ooClA, =n@ 4KII D=@ Fl=n'FoHJ KF, Io 1 FKIDA@ Fl=n'FoHJ onJo JDA M=? =n@ D=LA >AAn JDAHA ALAH IEn?A, GKEJA D=FFElO. NoM=@=OI )FFlAI =HA oBBE?E=llO IKF­ FoHJA@IoEJߣI>A?omAA=IO,MoHkMEIA.

1mEII=loJoBMD=J2l=n'@E@BoHmA,>KJJDA?on?AHnI=JMoHkoLAHHE@AJD=J.

-Ho>

!  0.2.3.1 − Why did Plan 9’s users give up on Plan 9?

6DAOFHo>=>lOD=LAJDAEHHA=IonI.

0.2.3.2 − Why did CIA give up on Plan 9?

5omAonAJHEA@JoBEn@oKJ:

DJJFI://MMM.mK?kHo?k.?om/BoE/KnEJA@-IJ=JAI-oB-=mAHE?=- /BoE=-?E=-Fl=n-'-BHom- >All-l=>I-& #"%/

!  0.2.4 − What is the deal with Plan 9’s weird license?

OLAH JDA OA=HI 2l=n ' D=I >AAn HAlA=IA@ Kn@AH L=HEoKI lE?AnIAI, Jo JDA ?onIJAHn=JEon oB m=nO.

6DA BEHIJ A@EJEon, HAlA=IA@ En '' , M=I m=@A =L=El=>lA onlO Jo KnELAHIEJEAI. 6DA FHo?AII BoH =?GKEHEnC JDA IoBJM=HA M=I ?onLolKJA@ =n@ FHonA Jo ?lAHE?=l AHHoH. M=nO FoJAnJE=l KIAHID=@JHoK>lAo>J=EnEnCEJMEJDEn = HA=Ion=>lA JEmA BH=mA =n@ m=nO ?omFl=EnJI MAHA LoE?A@onJDAALAnJK=l2l=n'1nJAHnAJm=ElEnClEIJ.

6DA IA?on@ A@EJEon, HAlA=IA@ En ''# En >ook-=n@-+, BoHm Kn@AH = HAl=JELAlO IJ=n@=H@ ?ommAH?E=l lE?AnIA, M=I =L=El=>lA LE= m=EloH@AH =I MAll =I JDHoKCD = IFA?E=l JAlAFDonA nKm>AH BoH = FHE?A oB =FFHoNEm=JAlO !# 75,. 1J M=I ?AHJ=EnlO A=IEAH Jo =?GKEHA JD=n JDA BEHIJ A@EJEon, >KJ m=nO FoJAnJE=l KIAHI IJEll ?omFl=EnA@ JD=J JDA FHE?A M=I Joo DECD =n@JD=JJDAlE?AnIAM=IJooHAIJHE?JELA.

0.2.4.1 − Richard Stallman hates the Plan Nine license (circa 2000)

1n JDA OA=H , JDA JDEH@ A@EJEon oB 2l=n ' M=I BEn=llO HAlA=IA@ Kn@AH = ?KIJom oFAn IoKH?AlE?AnIA,JDA2l=n'LE?AnIA. 4E?D=H@5J=llm=nM=InoJEmFHAIIA@:

9DAn 1 I=M JDA =nnoKn?AmAnJ JD=J JDA 2l=n NEnA IoBJM=HA D=@ >AAn HAlA=IA@ =I oFAn IoKH?A, 1 Mon@AHA@ MDAJDAH EJ mECDJ >A BHAA IoBJM=HA =I MAll. )BJAH IJK@OEnCJDAlE?AnIA,mO?on?lKIEonM=IJD=JEJEInoJBHAA;JDA lE?AnIA ?onJ=EnI IALAH=l HAIJHE?JEonI JD=J =HA JoJ=llO Kn=??AFJ=>lA BoH JDA .HAA 5oBJM=HA MoLA­ mAnJ.5AADJJF://MMM.CnK.oHC/FDEloIoFDO/BHAA-IM.DJml

4A=@moHADAHA:

DJJF://MMM.lEnKNJo@=O.?om/@ALAloFAH/ % %"O2L.59

!! 0.2.4.2 − Theo de Raadt hates the Plan 9 license (circa 2003)

1n JDA OA=H  , JDA BoKHJD A@EJEon oB 2l=n ' M=I HAlA=IA@ Kn@AH JDA LK?AnJ 2K>lE? LE?AnIA. 6DEIJEmA,6DAo@A4==@JM=InoJEmFHAIIA@:

6DAnAMlE?AnIAEIKJJAHlOKn=??AFJ=>lABoHKIAEn=*5,FHojA?J.

)?JK=llO,1=m=IJoKn@A@JD=JJDAO51MoKl@@A?l=HAIK?D=lE?AnIA=??AFJ=>lA.

6D=JEInoJ=lE?AnIAMDE?Dm=kAIEJBHAA. 1JEI=*?onJH=?J*MEJD ?onIAGKAn?AI; lAJ mA >A ?lA=H -- EJ EI = ?onJH=?J MEJD ?onIAGKAn?AI JD=J 1 =m KnMEllEnC Jo =??AFJ.

4A=@moHADAHA:

DJJF://'B=nI.nAJ/=H?DELA/ !/$/ %

0.2.4.3 − Everyone hates the Plan 9 license (circa 2014)

1n  ", FoHJEonI oB JDA 2l=n ' IoKH?A ?o@A MAHA =C=En HA-lE?AnIA@, JDEI JEmA Kn@AH JDA /2LL , BoH @EIJHE>KJEon MEJD JDA 7nELAHIEJO oB +=lEBoHnE=, *AHkAlAOߣI )k=HoI oFAH=JEnC IOI­ JAm.2HA@E?J=>lO,L=HEoKIF=HJEAIMAHAnoJEmFHAIIA@.

4KII+oNJHEA@Jom=kAIAnIAoBJDAIEJK=JEon>O?ommAnJEnCEn=0=?kAHNAMIJDHA=@:

9DAn OoK =Ik MDO @E@ >EC ?omF=nO : m=kA IJH=nCA ?DoE?A ; HAC=H@EnC lE?AnIEnC oH 12, '' JEmAI oKJ oB  JDA =nIMAH EI l=MOAHI. 1B JDA 2l=n ' CHoKF D=@ D=@ EJI M=O, 2l=n ' MoKl@ D=LA >AAn HAlA=IA@ BoH BHAA Kn@AH = JHEL­ E=l M16-lEkA lE?AnIA JDA onA KIA@ BoH oJDAH FEA?AI oB ?o@A, lEkA JDA onA JHKA =Mk En ! EnIJA=@ oB ?HA=JEnC JDA LK?AnJ 2K>lE? LE?AnIA. OH En  EnIJA=@ oB ?HA=JEnC JDA 2l=n ' LE?AnIA. OH En ''# EnIJA=@ oB =I = !# >ook++, JD=J ?=mA MEJD = lE?AnIA BoH KIA >O =n AnJEHA oHC=nEz=JEon. OH En '' EnIJA=@oB>AEnC=lEmEJA@=?=@AmE?HAlA=IA.

6D=nkBKllO 1 =m noJ =J LK?AnJ =nOmoHA =n@ =m noJ FHELO Jo JDA JoHJKHA@ nACo­ JE=JEonI JD=J An@A@ KF =J JDA o>LEoKIlO EnAlAC=nJ ?omFHomEIA oB 6DA 7nELAH­ IEJO oB +=lEBoHnE=, *AHkAlAO, D=I >AAn =KJDoHEIA@ >O )l?=JAl-LK?AnJ Jo HAlA=IA =ll 2l=n ' IoBJM=HA FHALEoKIlO CoLAHnA@ >O JDA LK?AnJ 2K>lE? LE?AnIA, 8AHIEon . Kn@AH JDA /N7 /AnAH=l 2K>lE? LE?AnIA, 8AHIEon . *KJ JDA o@@I =HA oLAH­ MDAlmEnCJD=JJDAonA-MoH@=nIMAHEIl=MOAHI.

5omA D=LA IKCCAIJA@ JD=J ?onBKIEon =>oKJ lE?AnIEnC m=O D=LA ?onJHE>KJA@ Jo 2l=n 'ߣI B=ElKHAJoIKFFl=nJ7N1:EnJDAME@AH?omFKJEnCMoHl@.

0.2.4.4 − PRAISE FOR 9FRONT’S BOLD ACTION RE: LICENSING

)nO =@@EJEonI oH ?D=nCAI =I HA?oH@A@ En MAH?KHE=l DEIJoHO m=@A >O 'BHonJ =HA FHoLE@A@ Kn@AH JDA JAHmI oB JDA M16 LE?AnIA, HAFHo@K?A@ En JDA BElA /lib/legal/mit, KnlAII oJDAHMEIAEn@E?=JA@.

4A=@: /lib/legal/NOTICE.

!" 0.2.4.5 − Everyone loves the Plan 9 license (circa 2021)

1n  , JDA 2l=n ' .oKn@=JEon =k= 2'.ߞno HAl=JEon ?onLEn?A@ NokE= Jo HA-lE?AnIA =ll DEIJoHE?=lA@EJEonIoBJDA2l=n'IoKH?A?o@AKn@AHJDAM162K>lE?LE?AnIA.

)I = ?onIAGKAn?A, all oB 'BHonJ EI noM FHoLE@A@ Kn@AH JDA M16 LE?AnIA KnlAII oJDAHMEIA En@E?=JA@.

4A-HA=@: /lib/legal/mit

0.3 − Further Reading

0.3.1 − Plan 9 papers

)?=@AmE?F=FAHIJD=J@AI?HE>AJDA2l=n'oFAH=JEnCIOIJAm=HA=L=El=>lADAHA:

DJJF://@o?.?=J-L.oHC/Fl=n_'/

0.3.2 − Man pages

5A?JEon BoHCAnAH=lFK>lE?lO=??AIIE>lA?omm=n@I.

5A?JEon BoHlE>H=HOBKn?JEonI,En?lK@EnCIOIJAm?=llI.

5A?JEon!BoHkAHnAl@ALE?AI=??AIIA@LE=>En@ .

5A?JEon"BoHBElAIAHLE?AI=??AIIA@LE=moKnJ.

5A?JEon#BoHJDA2l=n'BElAFHoJo?ol.

5A?JEon$BoHBElABoHm=JI.

5A?JEon%BoH@=J=>=IAI=n@@=J=>=IA=??AIIFHoCH=mI.

5A?JEon&BoHJDEnCIHAl=JA@Jo=@mEnEIJAHEnC2l=n'.

0.3.3 − Web pages

6DAoBBE?E=lMA>IEJABoHJDA2l=n'FHojA?JEIlo?=JA@=J:DJJFI://'F.Eo/MEkE/Fl=n'

*AllL=>I2l=n'MEkE:DJJFI://'F.Eo/MEkE/Fl=n'/Fl=n_'_MEkE/

)?ommKnEJOMEkEIAJKF>O'BHonJKIAHI:DJJF://=->.NOz

MK?D L=lK=>lA EnBoHm=JEon ?=n >A BoKn@ =J DJJF://?=J-L.oHC HAC=H@EnC =IFA?JI oB 7N1:, 2l=n'=n@IoBJM=HAEnCAnAH=l.

!# 0.3.4 − Books

Introduction to OS Abstractions Using , >O .H=n?EI?o J *=llAIJHoI nAmo

Notes on the Plan 9 3rd Edition Kernel, >O.H=n?EI?oJ*=llAIJHoInAmo

The UNIX Programming Environment, >O *HE=n 9. KAHnECD=n >Mk =n@ 4o> 2EkA Ho> JDEI >ook EI JDA moIJ ?lA=H, ?on?EIA =n@ AloGKAnJ ANFHAIIEon oB JDA 7nEN =n@ ߣJoolߣ FDEloIoFDEAIJo@=JA

9FRONT DASH 1 JDA@o?KmAnJOoK=HAHA=@EnCHECDJnoM,>KJEn>ookBoHm

!$ FQA 1 − Introduction to 9front

1.1 − What is 9front?

2l=n'BHonJoH'BHonJEI=BoHkoBJDA2l=n'BHom*AllL=>I oFAH=JEnC IOIJAm. 6DA FHojA?J M=I IJ=HJA@ Jo HAmA@O = FAH?AELA@ l=?k oB @ALoJA@ @ALAloFmAnJ HAIoKH?AI EnIE@A *All L=>I,[?EJ=JEonnAA@A@]=n@D=I=??KmKl=JA@L=HEoKIBENAI=n@EmFHoLAmAnJI.

6DEI.3)IFA?EBE?=llO?oLAHIonlOJDAmoIJHA?AnJHAlA=IAoB'BHonJ.

!% 1.1.1 − Cirno

)J IomA FoEnJ, +EHno >A?=mA =IIo?E=JA@ MEJD 'BHonJ. ,AJ=ElI =HA IkAJ?DO, >KJ JDEI Em=CA D=I>AAnEnJDAMEkEIEn?AJDA/ooClA+o@A@=OI,Io1ߣmlA=LEnCEJEn.

Pro

ߦ CEHl

ߦ D=Im=CE?=lFoMAHI

ߦ =IIo?E=JA@MEJD'

ߦ KFIAJIkBN

ߦ IDAEIknoMnJo>AJDAIJHonCAIJ

!& Alternatives

1.2 − On what systems does 9front run?

'BHonJHKnIonJDABolloMEnCFl=JBoHmI: ߦ !&$

ߦ =m@$"

ߦ =Hm

ߦ =Hm$"

!' ߦ mEFI

4A=@: FQA 3.2 − Selecting Hardware

1.3 − Why might I want to use 9front?

1JEILAHOlEkAlOJD=JOoK@onoJ.

NAM KIAHI BHAGKAnJlO M=nJ Jo knoM MDAJDAH 'BHonJ EI IKFAHEoH Jo IomA oJDAH BHAA 7N1:- lEkA oFAH=JEnC IOIJAm. +onIE@AH: 6DA GKAIJEon EI l=HCAlO Kn=nIMAH=>lA. 9D=J =HA OoKH ?HEJAHE=? 9DO =HA OoK ALAn KIEnC ?omFKJAHI En JDA BEHIJ Fl=?A? -NFloHEnC JDAIA GKAIJEonI =n@ JDA EmFlE?=JEonI JD=J @AHELA JDAHABHom m=O DAlF OoK ID=HFAn OoKH FAH?AFJEonI =n@ ALAnJK=llO ?omA Jo IomA IoHJ oB ?on?lKIEon =>oKJ MDE?D oFAH=JEnC IOIJAm OoK FHABAH Jo KIABoH@=ElOJ=IkI.

7lJEm=JAlO,MDAJDAHoHnoJ'BHonJEIBoHOoKEI=GKAIJEononlOOoK?=n=nIMAH.

NoJA:6DA=>oLAJANJEIlECDJlOFl=CE=HEzA@BHomJDAOFAn*5,.)3.

1.3.0 − Why might I not want to use 9front?

0ol@KF.*ABoHAOoKCAJJooAN?EJA@,?onIE@AHJDABolloMEnCFoIIE>ElEJEAI:

ߦ ;oKjKIJHA=lEzA@OoK@onߣJM=nJJoKIA2l=n'=J=ll.

ߦ ;oK@onߣJlEkAJDAFAoFlAMDoKIA=n@/oHMoHkon'BHonJ.

ߦ ;oK@onߣJlEkA'BHonJߣIFHoF=C=n@=.

ߦ ;oK FHABAH lAII BKn?JEon=lEJO BHom OoKH o>I?KHA O5, =n@/oH OoK FHABAH Jo ECnoHA 'BHonJߣI FK>lE? ?ommEJ DEIJoHO =n@ ?omFl=En l=JAH >A?=KIA no>o@O EnBoHmA@ OoK =>oKJ>KCBENAI=n@nAMFHoCH=mI.

ߦ ;oK D=LA JA?DnE?=l o>jA?JEonI Jo IFA?EBE? ?D=nCAI 'BHonJ m=@A Jo JDA oHECEn=l *All L=>I?o@A.

ߦ ;oKߣHAnoJIKHAHECDJnoM,>KJOoKߣllknoMEJMDAnOoKIAAEJ.

Ok=O,?=HHOon.

1.3.0.1 − Why did 9front stop making fun of Nazis?

" *A?=KIAOoK=IkA@KIJo.

ߦ 2AoFlA?omFl=EnA@EJM=I@onAEnFooHJ=IJA.

ߦ 2AoFlAHAlE=>lOEnJAHFHAJ=nO@AFE?JEonoB=JDEnC=I=nAn@oHIAmAnJoBI=mA.

ߦ 9AߣHA JEHA@ oB ANFl=EnEnC JDEI IDEJ Jo FAoFlA MDo jKIJ ?=ll KI lE=HI =nOM=O. 6o >A B=EH, look =J JDA MoHl@ =HoKn@ KI Jo@=O. 9DO ?loK@ JDA EIIKA? I’m through explainin the shit ߞIce T

ߦ +oCnEJELA@EIIon=n?A.

4A=@: Appendix L − Ruby

2oIIE>lOHAl=JA@: Der Anbräuner

,ABEnEJAlOHAlAL=nJ: They Live and the secret history of the Mozilla logo

"  1.3.1 − New Features

6DABolloMEnClEIJEIFHo>=>lOnoJAND=KIJELA:

ߦ /shr,Clo>=lmoKnJFoEnJ@ALE?A shr(3)

ߦ /mnt EIFHoLE@A@>O mntgen(4)

ߦ #A, =K@Eo @HELAHI BoH I> $, EnJAl D@ =K@Eo =n@ =?'% >oJD Fl=O>=?k =n@ HA?oH@EnC IKFFoHJA@ audio(3)

ߦ NAM *1O5 >=IA@ >ooJ lo=@AH 9boot(8) BA=JKHEnC = ?onIolA =n@ IKFFoHJ BoH .)6/15O/2:-=n@>AEnCIm=ll<&K

ߦ NAM-.1>=IA@>ooJlo=@AH efi

ߦ M=@A kAHnAl ?omFlE=nJ Jo mKlJE>ooJ IFA?EBE?=JEon Io EJ ?=n >A >ooJA@ >O GAmK oH CHK>@EHA?JlO.

ߦ 1nJAHHKFJ=>lAkAHnAlGlo?kIeqlock

ߦ ,ABAHA@?lKnkIcloseprocBoH?=?DA@moKnJI

ߦ NAM rc >=IA@ boot(8) =lloMI>HA=kEnCEnJo=IDAll=J=nOJEmA

ߦ ,AB=KlJBElAIOIJAmEI=nEmFHoLA@ cwfs(4) ?MBI$"N

ߦ NAMI?HAAnBonJI: dejavu, germgoth, vga

ߦ No?AnJH=l replica;IoKH?AKF@=JAI=HA@onAMEJD hg MAH?KHE=l

ߦ KAO>o=H@ALAnJIMEJD /dev/kbd. 4A=@: kbdfs&=n@ rio"

"  ߦ /lib/rob =n@ oJDAH nAM ?oHFKIAI, IKEJ=>lA =I Bo@@AH BoH fortune(1) =n@ oJDAHHDAJoHE?=lFHoCH=mI

ߦ NAM listen(8) −p maxprocs oFJEon

ߦ )lM=OI=L=El=>lAnAJMoHk aan(8) IKFFoHJEn cpu(1) =n@ rcpu(1)

ߦ M51mAII=CA IECn=llA@ EnJAHHKFJI, =LoE@I FHo>lAmI MEJD >HokAn M2 J=>lAI. 4A=@: icanhasmsi&

ߦ LAC=?O BHAA )+21 IKFFoHJ =ml EnJAHFHAJAH libaml, mF EnJAHHKFJ HoKJEnC, scram

ߦ )@@A@ rio(1) −b oFJEon>l=?kMEn@oM>=?kCHoKn@I=n@ look mAnKoFJEon

ߦ 75*+,-4OM>ooJ/EnIJ=ll

ߦ 75*@HELA>ooJ

ߦ 1mFHoLA@75*moKIAIKFFoHJ

ߦ 5KFFoHJBoH75*FJF?=mAH=I

ߦ 5J=>lA-=?HoII-m=?DEnAI75*@ALE?An=mAI

ߦ 8/) EnEJE=lEz=JEon @onA >O EnJAHFHAJEnC JDA 8-5) *1O5 MEJD realemu(8), MoHkEnC8-5)I?HAAn>l=nkEnC.

ߦ /dev/kbd =n@?lEF>o=H@?D=HIAJIKFFoHJBoH vnc(1)

ߦ NAM webfs(4) MEJD0662 . =n@KAAF-)lELAIKFFoHJ.

ߦ 3AmK/K8MLEHJEo>lo?k@ALE?A=n@AJDAHnAJ@HELAHI.4A=@: FQA 4.5.1.3 − Virtio

ߦ MoKIAMDAAl=n@?DoH@EnCIKFFoHJEn sam(1)

ߦ -llEFJE??KHLA?HOFJoCH=FDO ec(2)

ߦ 9oHkEnCEnJAHHKFJkAO,AlEn?onIolA

ߦ 9E.EIKFFoHJMEJDMF=/MF=

ߦ 55-IKFFoHJ

ߦ 5OIJAm-ME@AIKFFoHJBoHEnJAHn=JEon=lEzA@@om=Enn=mAI

ߦ 7nE?o@AIKFFoHJEn vt(1)

ߦ pc64,kAHnAlBoH=m@$"

ߦ NKmAHoKI?EFDAHI=@@A@=n@EmFHoLAmAnJIm=@AJo libsec

ߦ NAM@FE'k=KJDAnJE?=JEonFHoJo?ol

"! 1.3.1.1 − New Programs

ߦ " =n@ "" FHEnJ,HAFA=JFHALEoKI?omm=n@

ߦ alarm(1) ߞ JEmAoKJIEn rc I?HEFJI

ߦ atari(1) ߞ $AmKl=JoH

ߦ audio(1) ߞ mp3, ogg, flac, µlaw, wav

ߦ (1) ߞ *lEJJAHmEn=lAmKl=JoH

ߦ bullshit(1) ߞ FHEnJoKJ=IJHA=moB>KllIDEJ

ߦ cifsd(8) ߞ +1.5/5M*IAHLAH

ߦ cryptsetup& ߞ FHAF=HA =n )-5-An?HOFJA@ F=HJEJEon Jo >A KIA@ MEJD JDA fs(3) @ALE?A

ߦ derp(1) ߞ BEn@?D=nCAI>AJMAAn@EHA?JoHEAI

ߦ dtracy(1) ߞ @On=mE?JH=?EnCl=nCK=CAlEkA@JH=?A

ߦ feminize(1) ߞ HAFl=?AIANEIJHAm=HkI

ߦ fplot(1)

ߦ NAMC=mAI: doom, glendy, linden, mandel, mines, mole, packet, v8e

ߦ hg(1) =n@ hgfs(4) MAH?KHE=l

ߦ hget(1) ߞ HAMHEJJAnEn rc,noMKIAI webfs

ߦ hjfs(4) ߞ nAM,ANFAHEmAnJ=lBI

ߦ hpost(1) ߞ ANJH=?J=n@FoIJ06MLBoHmI

ߦ hold(1) ߞ IEmFlAJANJA@EJoH

ߦ icanhasmsi&ߞ FHEnJM51?onBECKH=JEon

ߦ ipserv(8) ߞ FHoNOIAHLAHI socksd =n@ hproxy

ߦ ircrc(1) ߞ 14+?lEAnJ

ߦ memory(1) ߞ ?DA?kmAmoHOKI=CA

ߦ mothra(1) ߞ 6om,KBBߣIMA>>HoMIAH,noMKIAI webfs

ߦ netaudit(8) ߞ nAJMoHk?onBECKH=JEon?DA?kAH

ߦ newt(1) ߞ 7IAnAJ?lEAnJ

ߦ nietzsche(1) ߞ FHEnJoKJNEAJzI?DAGKoJA

"" ߦ nintendo(1) ߞ NEnJAn@oAmKl=JoHI: gb, gba, nes, snes

ߦ page(1) ߞ zoom=n@AnD=n?A

ߦ paint(1) ߞ @H=MEnCFHoCH=m

ߦ play(1) ߞ =K@EoFl=OAH

ߦ pstree(1) ߞ FHEnJJHAA-lEkAm=FoB?KHHAnJFHo?AIIAI=n@IK>-FHo?AIIAI

ߦ ptrap(4) ߞ FlKm>AH"BElJAH

ߦ rc−httpd(8) ߞ 0662IAHLAH

ߦ rcpu ߞ HAFl=?AmAnJBoHlAC=?O cpu ?lEAnJ,KIAI@F'Ek

ߦ resize(1) ߞ B=IJ>KJloMGK=lEJOEm=CAHAI=mFlAH

ߦ rotate(1) ߞ HoJ=JAoHmEHHoH=FE?JKHA

ߦ scram(8) ߞ )+21=n@)2MIDKJ@oMn

ߦ sega(1) ߞ 5AC=MAC=@HELA//AnAIEIAmKl=JoH: md

ߦ spred(1) ߞ IFHEJAA@EJoH

ߦ ssam(1) ߞ IJHA=mEnJAHB=?AJo sam

ߦ ssh(1) ߞ 550 ?lEAnJ

ߦ sshnet(4) ߞ HA-EmFlAmAnJ=JEonoBIIDnAJBoH550

ߦ sysinfo(1) ߞ FHEnJD=H@M=HAHAFoHJ

ߦ sysupdate(1) ߞ KF@=JAJDAlo?=lDCHAFoIEJoHO

ߦ theo(1) ߞ FHEnJoKJEnIKlJIBHom6DAo@A4==@J

ߦ tput(1) ߞ mA=IKHAHA=@JDHoKCDFKJ

ߦ troll(1) ߞ =KJom=JA@JHollEnC

ߦ tap(1) ߞ BolloMJDAFEFAIoB=FHo?AII

ߦ tif(1) ߞ JEBB@A?o@AH

ߦ tinc(8) ߞ mAIDFAAHJoFAAH82N

ߦ tojpg(1) ߞ jFACAn?o@AH

ߦ totif(1) ߞ JEBBAn?o@AH

ߦ torrent(1) ߞ >EJJoHHAnJ?lEAnJ

"# ߦ walk(1) ߞ HA?KHIELAlOM=lk@AI?An@EnC@EHA?JoHEAI

1.3.1.1.1 − Why do some new program names begin with hj?

,=JA:9A@, &M=H $ #: : "+  .Hom:*HK?A-llEI<>HK?A.AllEI(Cm=El.?om> 6o:.=nIoBJDAO52l=n'BHom*AllL=>I<'B=nI(?IA.FIK.A@K> 5K>jA?J:4A:['B=nI]IJHK?JKHA=llo?=JEon.

EIJElllEkADj@E?kI EJEIo>I?KHAAnoKCDJD=Jno-onAMoKl@JDEnkEJߣI =BA=JKHAoHCKAIIEJ. EJM=IHAGKEHA@>A?=KIAMAD=@=l=HCA Il=>oB!H@-F=HJO?o@AJD=J=IIKmA@EJ?oKl@HA=@F=?kAJIoBBJDA MEHA=IIKmEnC?oHHA?JAn@E=n=n@@onom=HID=lEnC.

FH=C=mF=?k

lookIlEkA=BA=JKHA.

EM=IJDAHAMDAnEJD=FFAnA@=BJAH=nE?AEJ=lE=nmA=l.

kAn=IkA@,oEHA=llOD=LAJo@oJDEI?

2:;AI,JDAHAߣI>K?kAJIoB?o@AJD=JHAlOonEJ.

K:*IomAANFHAIIEonoB@EI>AlEAB*

2:MAllDj=HAjKIJ@E?kI

@onA@A=l

EJ=lIoJKHnA@oKJJo>AEmFoHJ=nJBoHEnBAHnoonm=?DEnAIMEJD CHA=JAHJD=n! >EJ=lECnmAnJHAGKEHAmAnJI. JDA$">EJmEFI EI=nAN=mFlA. Jook>KJ=HA?omFElAMEJDDj@E?kIEnJDAHECDJ Fl=?AEJJ=kAI=noFJEon=l=lECnmAnJF=H=mAJAH. I=mAMEJD JDAFI MDE?DD=I &>EJEIIKAI.

JD=nkIBoHJAllEnCmAJD=JEJD=I>AAn?D=nCA@.

>HK?AA

On!/&/$,CAoBB(?ollOAH.nAJMHoJA: >1M=IEmFlE?EJlOHABAHHEnCJo+?omFElAHI. 0A?k,2=I?=lD=@F=?kA@ >@=J=EnJDAA=HlO '%I,FoIIE>lOALAnJDAl=JA '$I.

1.3.1.2 − New Hardware Support

"$ Audio

ߦ )+'%ߞ /sys/src/9/pc/audioac97.c

ߦ 1nJAl0,)ߞ /sys/src/9/pc/audiohda.c

ߦ 5* $/-55ߞ /sys/src/9/pc/audiosb16.c

ߦ +oKnJlAIInAML=HE=nJI81,/,1,=@@A@JoANEIJEnC@HELAHI.

Ethernet

ߦ ),MJAk2AC=IKIߞ /sys/src/cmd/nusb/ether/aue.c

ߦ *Ho=@?om*+M#%NNߞ /sys/src/9/pc/etherbcm.c

ߦ 4A=lJAk46L& #ߞ /sys/src/cmd/nusb/ether/url.c

ߦ +oKnJlAIInAML=HE=nJI81,/,1,=@@A@JoANEIJEnC@HELAHI.

WiFi

ߦ 1nJAl+AnJHEno)@L=n?A@-N$ #EMl-$#

ߦ 1nJAl+AnJHEno7lJEm=JA-NEMl-$

ߦ 1nJAl+AnJHEno9EHAlAII-N 

ߦ 1nJAl9E.ELEnk /"'$#/# /#!/#!#)/N

ߦ 1nJAl24O9EHAlAII!'"#)*/MFE-!'"#=>C

ߦ 1nJAl9EHAlAII)+& $/& $#

ߦ 1nJAl9EHAlAII)+' $

ߦ 4=lEnk46 &$/46!'

Tablets

ߦ 9=?omIAHE=lJ=>lAJI9)+.",9)+.&

/sys/src/cmd/aux/wacom.c, /sys/src/cmd/aux/tablet.c

ߦ 75*J=>lAJIIKFFoHJA@>O75*IK>IOIJAm

"% Video

ߦ )M,/Ao@AL:@HELAH

/sys/src/cmd/aux/vga/geode.c /sys/src/9/pc/vgageode.c

ߦ 1nJAl/M' #,/M'$#,5=n@O*HE@CA,1LO*HE@CA,=n@0=IMAll@HELAH

/sys/src/cmd/aux/vga/igfx.c /sys/src/9/pc/vgaigfx.c

SD Card

ߦ 4E?ߞ /sys/src/9/pc/pmmc.c

4A=@: FQA 3.2 − Known Working Hardware BoH = lEIJ oB ?omFlAJA m=?DEnAI knoMn Jo MoHk.

1.4 − Is 9front really free?

;AI.

4A=@: FQA 0.2.4 − What is the deal with Plan 9’s weird license?

1.5 − How can I help support 9front?

9A =HA CHA=JlO En@A>JA@ Jo JDA FAoFlA =n@ oHC=nEz=JEonI JD=J D=LA ?onJHE>KJA@ Jo JDA 'BHonJ FHojA?J. 6D=J I=E@, JDA JoFE? EI ?omFlE?=JA@: 6DA m=En @ALAloFAHI HABKIA Jo =??AFJ @on=JEonIAN?AFJMDAnJDAO@o=??AFJ@on=JEonI, =n@ JDA FAoFlA MDo @o oBBAH Jo m=kA @on=JEonI oBJAn @EI=FFA=H MEJDoKJ BKHJDAH ANFl=n=JEon oH m=kA IJH=nCA @Am=n@I JD=J

"& no>o@O BAAlI lEkA ?=FEJKl=JEnC Jo. 6DEI ?omFlAN, BlKE@, =n@ =J JEmAI ?onJAnJEoKI @On=mE? ?=n >AIJ >A n=LEC=JA@ >O joEnEnC #cat−v on BHAAno@A =n@ =IkEnC IJH=nCAHI DoM Jo @on=JAJoJDAFHojA?J.

9DAn JDEI B=ElI, @on=JEonI JD=J DAlF F=O BoH JDA DoIJEnC oB 9front.org =n@ cat−v.org En?lK@EnC fqa.9front.org, JDA @o?KmAnJ OoK =HA HA=@EnC HECDJ noM ?=n>Am=@A=J: http://patreon.com/stanleylieber.

1.6 − Who maintains 9front?

'BHonJ EI m=EnJ=EnA@ >O =n -=IJ /AHm=n EnJAllECAn?A oBBE?AH MDo nALAH IlAAFI >KJ EnIJA=@ loCI FAHEo@I oB En=?JELEJO IJ=HEnC IJH=ECDJ EnJo JDA IoKllAII AOAI oB games/catclock. O??=IEon=l ?onJHE>KJEonI =HA m=@A >O = @ELAHIA JA=m oB m=l?onJAnJI JD=J EI IFHA=@ IomAMD=J JDEnlO =?HoII m=nO @EBBAHAnJ JEmAzonAI =n@ 1nJAHnAJ FHoLE@AHI. MoIJ oB JDAm D=LA@=Ojo>I=n@EnB=?J=HAnoJ?on?AHnA@MEJDOoKH@Am=n@I.5K>IE@EzA@oHnoJ.

1.7 − When is the next release of 9front?

5oon.

6DA 'BHonJ JA=m m=kAI nAM HAlA=IAI on = HACKl=H, >KJ KnI?DA@KlA@, >=IEI. MoHA EnBoH­ m=JEononJDA@ALAloFmAnJ?O?lA?=n>ABoKn@onJDA'BHonJm=ElEnClEIJ.

1.8 − What is included with 9front?

5omAKIABKlFHoCH=mIEn?lK@A@MEJDJDAoFAH=JEnCIOIJAm=HA: ߦ $ߞ )J=HE $AmKl=JoH.

ߦ acid ߞ 2HoCH=mm=>lAIOm>olE?@A>KCCAH.

ߦ ߞ 6ANJA@EJoH,MEn@oMIOIJAm,m=El?lEAnJ=n@moHA.

ߦ ape ߞ )N51/2O51:AnLEHonmAnJ.

ߦ cwfs64x ߞ +=?DA@-MoHmBElAIAHLAH>=IA@onJDAoHECEn=lKAnߣIBI.

ߦ doom ߞ 5?EAn?A BE?JEon DoHHoH-JDAmA@ BEHIJ-FAHIon IDooJAH LE@Ao C=mA >O E@ 5oBJM=HA.

ߦ gs ߞ )l=@@En/DoIJI?HEFJ2oIJ5?HEFJ=n@2,.l=nCK=CAEnJAHFHAJAH.

ߦ hjfs ߞ )nAM,ANFAHEmAnJ=lBI.

ߦ mAH?KHE=lߞ ,EIJHE>KJA@IoKH?A?onJHolm=n=CAmAnJJool.

ߦ mk ߞ 6oolBoH@AI?HE>EnC=n@m=EnJ=EnEnC@AFAn@An?EAI>AJMAAnBElAI.

ߦ mothra ߞ 9A>>HoMIAH>O6om,KBB.

ߦ newt ߞ NN62?lEAnJ.

"' ߦ nEnJAn@oߞ NEnJAn@o/=mA*oO,N-5,5N-5=n@/*)AmKl=JoHI.

ߦ paint ߞ ,H=MEnCFHoCH=m.

ߦ page ߞ .):,Em=CA,CH=FDE?,2oIJ5?HEFJ,2,.,AFK>,?>zLEAMAH.

ߦ play ߞ .l=?,oCC,mF!,IKn,M=LFl=OAH.

ߦ plumber ߞ MA?D=nEImBoHEnJAH-FHo?AII?ommKnE?=JEon.

ߦ FOJDon .#. ߞ 1nJAHFHAJA@FHoCH=mmEnCl=nCK=CA.nAA@A@BoHmAH?KHE=l

ߦ rc ߞ 5DAll>O6om,KBB.

ߦ rc−httpd ߞ 9A>IAHLAHMHEJJAnEnH?.

ߦ rio ߞ 4A?J=nClAmKlJEFlANAH/MEn@oMIOIJAm.

ߦ sam ߞ 6ANJA@EJoH.

ߦ IAC=ߞ MAC=@HELA//AnAIEIAmKl=JoH.

ߦ torrent ߞ *EJ6oHHAnJ?lEAnJ.

ߦ troff ߞ 6ANJFHo?AIIoH/JOFAIAJJAH.

ߦ upas ߞ )IEmFlAH=FFHo=?DJonAJMoHkm=El.

1.9 − Can I use 9front as a desktop system?

6DEI GKAIJEon EI oBJAn =IkA@ En AN=?JlO JDEI m=nnAHߞMEJD no ANFl=n=JEon oB MD=J JDA =IkAH mA=nI >O @AIkJoF. 6DA onlO FAHIon MDo ?=n =nIMAH JD=J GKAIJEon EI OoK, =I EJ @AFAn@IonMD=JOoKHnAA@I=n@ANFA?J=JEonI=HA.

4A=@: FQA 1.3 − Why might I want to use 9front?

1.10 − Why is/isn’t ProductX included?

6MoFoJAnJE=lHA=IonI: ߦ No>o@OM=nJA@EJ.

ߦ No>o@OMHoJAJDA?o@A.

M=nO BA=JKHAI =n@ FHoCH=mI =HA mEIIEnC BHom 2l=n ' BoH = LAHO Coo@ HA=Ion: 6DAO =HA JAHHE>lA E@A=I ANFHAIIA@ =I JAHHE>lA IoBJM=HA. OJDAH BA=JKHAI =HA mEIIEnC IEmFlO >A?=KIA no onA D=I OAJ MHEJJAn JDA ?o@A Jo EmFlAmAnJ JDAm. 1J EI lABJ =I =n ANAH?EIA BoH JDA HA=@AHJo@AJAHmEnAMDE?DEIMDE?D,=n@Jo=FFlOJDA=FFHoFHE=JAHAmA@O.

4A=@: FQA 8.8 − Additional Software

# 1.11 − Fine, where can I get 9front?

1B OoK IEmFlO ?=nnoJ >A @EIIK=@A@ BHom JHOEnC 'BHonJ BoH OoKHIAlB, o>J=En EnIJ=ll=JEon mA@E=BHomJDAmEHHoHImAnJEonA@EnJDABolloMEnCIA?JEon.

1.11.1 − Mirrors

1.11.1.1 − 9front.iso

DJJF://'BHonJ.oHC/EIo/

DJJF://H-!$.nAJ/'BHonJ/

DJJF://BAlloBB.nAJ/KIH/?En=F_lAnHAk/'BHonJ.JoHHAnJ

DJJFI://BJF.??.Ko?.CH/mEHHoHI/'BHonJ/

1.11.1.2 − Mercurial repository

DJJFI://?o@A.'BHonJ.oHC/DC/Fl=n'BHonJoBBE?E=l

#  Good luck, you may need it.

#  FQA 2 − Getting To Know 9front

2.1 − Web Pages

6DAoBBE?E=lMA>IEJAIBoHJDA'BHonJFHojA?J=HAlo?=JA@=J:

ߦ DJJF://'BHonJ.oHCߞ m=EnMA>IEJA

ߦ DJJF://@o?I.'BHonJ.oHC ߞ KnoBBE?E=l mEHHoH oB KnoBBE?E=l @o?KmAnJ=JEon, ?ommKnEJO m=EnJ=EnA@

ߦ DJJF://BG=.'BHonJ.oHCߞ ?oKnJAHEnJAllECAn?Am=nK=l,oIJAnIE>lOBE?JEon=l

ߦ DJJF://lEIJI.'BHonJ.oHCߞ m=ElEnClEIJI

ߦ DJJF://m=n.'BHonJ.oHCߞ m=nF=CAI

5omAMD=J oKJ@=JA@, =n@ noJ AnJEHAlO =FFlE?=>lA Jo 'BHonJ EI JDA *All L=>I 2l=n ' MEkE: DJJFI://'F.Eo/MEkE/Fl=n'/Fl=n_'_MEkE/

5omA KIAHI D=LA IAJ KF JDAEH oMn IEJAI =n@ F=CAI MEJD 'BHonJ IFA?EBE? EnBoHm=JEon. )I =lM=OI,@onoJ>lEn@lOAnJAH?omm=n@IOoK@onoJKn@AHIJ=n@EnJoOoKH?omFKJAH.

6D=J I=E@, mK?D L=lK=>lA EnBoHm=JEon ?=n >A BoKn@ =J DJJF://?=J-L.oHC HAC=H@EnC L=HEoKI =IFA?JIoB7N1:,2l=n',=n@IoBJM=HAEnCAnAH=l.

2.2 − Mailing Lists

6DA 'BHonJ FHojA?J m=EnJ=EnI IALAH=l m=ElEnC lEIJI MDE?D KIAHI IDoKl@ IK>I?HE>A Jo =n@ BolloM. 6o IK>I?HE>A Jo = m=ElEnC lEIJ, IAn@ =n A-m=El mAII=CA Jo list-oMnAH('BHonJ.oHC, MDAHA list EI JDA n=mA oB JDA m=ElEnC lEIJ. 6D=J =@@HAII EI =n =KJom=JA@ IK>I?HEFJEon

#! IAHLE?A. 1n JDA >o@O oB OoKH mAII=CA, on = IEnClA lEnA, OoK IDoKl@ En?lK@A JDA IK>I?HE>A ?omm=n@..oHAN=mFlA: subscribe )BJAHIK>I?HE>EnC,lEIJ mAII=CAI =HA HA?AELA@ BHom =n@ IAnJ Jo list('BHonJ.oHC, MDAHA list EIJDAn=mAoBJDAm=ElEnClEIJ.

6DA lists =HA=IBolloMI: 'BHonJߞ CAnAH=l@EI?KIIEon

'BHonJ-?ommEJIߞ HA=@-onlOloCoB?ommEJIJoJDA'BHonJmAH?KHE=lHAFoIEJoHO

'BHonJ-BG= ߞ loC oB ?ommEJI Jo, =n@ @EI?KIIEon =>oKJ http://fqa.9front.org

'BHonJ-IOIEnBoߞ HA=@-onlOloCoB sysinfo(1) oKJFKJBHomKIAHIOIJAmI

6o KnIK>I?HE>A BHom = lEIJ, OoK MEll =C=En IAn@ =n A-m=El mAII=CA Jo list- oMnAH('BHonJ.oHC.1JIDoKl@looklEkAJDEI: unsubscribe *ABoHA FoIJEnC = GKAIJEon on JDA 'BHonJ m=ElEnC lEIJ, FlA=IA ?DA?k JDA HAIJ oB JDEI .3). 1B =IkEnC = GKAIJEon FoIIE>lO HAl=JA@ Jo D=H@M=HA, =lM=OI En?lK@A JDA oKJFKJ oB sysinfo(1)

#" 2.2.1 − Mailing List Archives

M=ElEnClEIJ=H?DELAI=HA=L=El=>lALE='F: % 9fs 9front post... % /n/lists /n/lists/9atom /n/lists/9changes /n/lists/9fans /n/lists/9front /n/lists/9front−commits /n/lists/9front−fqa /n/lists/9front−sysinfo /n/lists/acme−sac /n/lists/cat−v /n/lists/cypherpunks /n/lists/dlr /n/lists/harvey /n/lists/harvey−commits /n/lists/harvey−issues /n/lists/inferno /n/lists/nix /n/lists/plan9port−dev /n/lists/sam−fans /n/lists/sierra31 /n/lists/skunk−works /n/lists/tscm−l /n/lists/tuhs /n/lists/werc /n/lists/www−html /n/lists/www−talk /n/lists/www−vrml -=?D oB JDAIA @EHA?JoHEAI ?onJ=EnI mAII=CAI IAnJ Jo JDA HAIFA?JELA m=ElEnC lEIJ En m@EH BoHm=J, onA mAII=CA FAH BElA. -HEk 3K=nIJHomߣI nKF=I KF=I/BI noM mAHCA@ MEJD 'BHonJ KF=I?=nmoKnJJDAIA@EHA?JoHEAI=Im=El>oNAI,BoHHA=@EnC@EHA?JlOMEJD=m=El?lEAnJ.

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

## 2.2.2 − Other useful mailing lists

'B=nIߞ OBBE?E=lm=ElEnClEIJoB2l=n'BHom*AllL=>I.

2.3 − Manual Pages

'BHonJ ?omAI MEJD ANJAnIELA @o?KmAnJ=JEon En JDA BoHm oB m=nK=l F=CAI. +onIE@AH=>lA ABBoHJ EI m=@A Jo m=kA IKHA JDA m=n F=CAI =HA KF-Jo-@=JA =n@ =??KH=JA. 1n =ll ?=IAI, . JDA IoKH?A, BolloMA@ >O . JDA m=n F=CAI, =HA ?onIE@AHA@ JDA =KJDoHEJ=JELA IoKH?A oB EnBoHm=JEonBoH'BHonJ.

;oK?=nBEn@=llJDA'BHonJm=nF=CAIonJDAMA>=JJDABolloMEnCIEJAI: DJJF://m=n.'BHonJ.oHC

DJJF://BAlloBB.nAJ/IOI/m=n

DJJF://m=n.=EjK.@A

DJJF://m=n.?=J-L.oHC/'BHonJ =IMAll=IonOoKH'BHonJ?omFKJAH.

1n CAnAH=l, EB OoK knoM JDA n=mA oB = ?omm=n@ oH = m=nK=l F=CA, OoK ?=n HA=@ EJ >O ANA?KJEnC man command. .oH AN=mFlA: man vi Jo HA=@ =>oKJ JDA M125 >En=HO AmKl=JoH. 1B OoK @onߣJ knoM JDA n=mA oB JDA ?omm=n@, oH EB man command @oAInߣJ BEn@ JDA m=nK=l F=CA, OoK ?=n IA=H?D JDA m=nK=l F=CA @=J=>=IA >O ANA?KJEnC lookman something, MDAHA something EI = lEkAlO MoH@ JD=J mECDJ =FFA=H En JDA JEJlAoBJDAm=nK=lF=CAOoKߣHAlookEnCBoH..oHAN=mFlA: % lookman vesa man 3 vga # vga(3) man 8 realemu # realemu(8) man 8 vga # vga(8) 6DA HAIKlJEnC lEIJ EI FHAIAnJA@ En JDA BoHm oB ?omm=n@I JD=J ?=n >A DECDlECDJA@ =n@ IAnJKIEnCHEoߣImoKIA>KJJon mAnK.

#$ .oH m=nO, D=LEnC = D=H@?oFO oB JDA m=n F=CA ?=n >A KIABKl. 6o m=kA = FHEnJ=>lA ?oFO oB=m=nF=CA: man −t vga realemu | lp −dstdout > vga.ps oH: man −t vga realemu | lp −dstdout | ps2pdf > vga.pdf

2.3.1 − How do I display a source file?

6DA?omm=n@ man −w FHEnJIJDAlo?=JEonoBJDAm=nF=CAߣIIoKH?ABElA: % man −w vga realemu /sys/man/3/vga /sys/man/8/realemu /sys/man/8/vga

2.3.2 − How do I write my own manual page?

)IM=ImAnJEonA@En FQA 0.3.2 − Man pages, 2l=n'm=nF=CAI=HA@ELE@A@EnJoIA?JEonI >=IA@ KFon JDA BA=JKHAI JDAO @AI?HE>A. .oH AN=mFlA, JDA JHoBB IoKH?A oB JDA io(1) m=n F=CA EI lo?=JA@ En IA?JEon , En JDA BElA /sys/man/1/io. ;oK ?=n AN=mEnA JDEI JHoBB IoKH?ABoH=IEmFlAAN=mFlAoBDoMJoBoHm=J=n@?onIJHK?J=JOFE?=lm=nF=CA.

.oH =@@EJEon=l EnBoHm=JEon, HA=@: How to Write a Plan 9 Manual Page, man(6), troff(1)

#% 2.4 − Reporting Bugs

"I have with Plan 9 Is there a way to"

Remember: 9front developers cannot read your mind. 8AHO @AJ=ElA@ EnBoHm=JEon EI HAGKEHA@Jo@E=CnoIAmoIJIAHEoKI>KCI.

Also remember: It is possible you simply don’t know what you’re doing. 1B OoK @o noJ Kn@AHIJ=n@ DoM IomAJDEnC EI @onA En 'BHonJ oH DoM EJ MoHkI, =n@ ?=nߣJ BECKHA oKJ DoM Jo HAIolLA JDA FHo>lAm KIEnC JDA m=nK=l F=CAI, FQA 8 − Using 9front, oH FQA 9 − Troubleshooting, joEn #9front on irc.freenode.net oH KIA JDA m=ElEnC lEIJ 'BHonJ('BHonJ.oHCJoHAGKAIJDAlF.

On JDA oJDAH D=n@, EJߣI FoIIE>lA OoK HA=llO BoKn@ = >KC. 1B Io, FlA=IA BElA = >KC HAFoHJ >O IAn@EnC=nA-m=ElJo [email protected].

2.4.1 − Your bug report SUCKS

)mEnEmKmKIABKl>KCHAFoHJ?onJ=EnIJDABolloMEnC:

ߦ )?omFlAJA@AI?HEFJEonoBMD=JOoK@E@.

ߦ )?omFlAJA@AI?HEFJEonoBMD=JOoKANFA?JA@JoD=FFAn.

ߦ )?omFlAJA@AI?HEFJEonoBMD=JD=FFAnA@,EnIJA=@.

-NJH=?HA@EJ:

ߦ 6DAm=kA=n@mo@AloBOoKH?omFKJAH.

ߦ 6DA74LHAJKHnA@MDAnOoKHKnIOIEnBo-FonJDA=BBA?JA@IOIJAm.

#& 2.4.2 − How do I get more useful info for developers?

6DABolloMEnCIK>-IA?JEonIoBBAHIomAKIABKlJEFI.

2.4.2.1 − Take a photo of the panic screen

7n@AH IomA ?EH?KmIJ=n?AI, OoK m=O noJ >A =>lA Jo HA?oLAH JANJ @EHA?JlO BHom = ?H=IDA@ IOIJAm. 1n JDEI IEJK=JEon, In=F = FDoJo oB JDA I?HAAn, En?lK@EnC =I mK?D oB JDA I?HAAn En Coo@ Bo?KI =I FoIIE>lA, =n@ KFlo=@ JDA Em=CA IomAMDAHA MDAHA EJ ?=n >A HAJHEALA@ >O @ALAloFAHI.

#' 2.4.2.2 − Make a stack trace of a crashed process % hget http://www.jwz.org/blog/feed | rssread panic: D2B called on non−block c580 (double−free?) rssread 882285: suicide: sys: trap: fault read addr=0x0 pc=0x000038ef % acid 882285 /proc/882285/text:386 plan 9 executable /sys/lib/acid/port /sys/lib/acid/386 acid: lstk() abort()+0x0 /sys/src/libc/9sys/abort.c:6 ppanic(p=0xb5a0,fmt=0xbf72)+0x146 /sys/src/libc/port/malloc.c:166 pv=0xc100 msg=0xc310 v=0xdfffee90 n=0x2b D2B(p=0xb5a0,v=0xc580)+0x5a /sys/src/libc/port/pool.c:966 a=0xc578 poolfreel(v=0xc580,p=0xb5a0)+0x20 /sys/src/libc/port/pool.c:1190 ab=0xc100 poolfree(p=0xb5a0,v=0xc580)+0x41 /sys/src/libc/port/pool.c:1325 free(v=0xc588)+0x23 /sys/src/libc/port/malloc.c:250 nextxmlpull(x=0xc548)+0x334 /usr/sl/src/xmlpull/xmlpull.c:221 nextxmlpull(x=0xc548)+0x2cb /usr/sl/src/xmlpull/xmlpull.c:316 main()+0x34 /usr/sl/src/rssread/rssread.c:159 st=0x1 f=0xc5a8 r=0x0 x=0xc548 _main+0x31 /sys/src/libc/386/main9.s:16 acid:

2.4.2.3 − Make a process snapshot

6o ?ollA?J ALAn moHA EnBoHm=JEon JD=n = IJ=?kJH=?A, OoK ?=n =lIo m=kA = BKll FHo?AII In=FIDoJ, MDE?D En?lK@AI =ll JDA mAmoHO oB JDA FHoCH=m. 6DA In=FIDoJ BElA ?=n l=JAH >A =n=lOzA@ ALAn on = @EBBAHAnJ m=?DEnA [ALAn on = @EBBAHAnJ m=?DEnA oB = @EBBAHAnJ =H?DE­ JA?JKHA]. % snap 882285 > rssread.snap

2.5 − Sending Fixes

9AJ=kABENAI.

2.5.1 − How do I write good patches? -NFl=En JDA FHo>lAm JD=J OoKH ?D=nCA IolLAI. -NFl=En MDO OoKH ?D=nCA IolLAI JDA FHo>lAm MAll. 1B =FFlE?=>lA, ANFl=En DoM OoK JAIJA@ JDAF=J?D,=n@CELAKI=M=OoBHAFHo@K?EnCJDAEIIKA.

*ABoHA*ABoHAm=kEnCJDAF=J?D,m=kAIKHAOoKHIOIJAmEIKFJo@=JA.

M=kA OoKH ?o@A m=J?D JDA HAIJ oB JDA IOIJAm. Look =J style$ BoH = IKmm=HO oB oKH ?o@AIJOlA.

$ 1BOoKHF=J?DEn?lK@AInAMBA=JKHAIoHBl=CI,>AIKHAJoKF@=JAJDA@o?KmAnJ=JEon.

1B JDA F=J?D EI EnJHKIELA oH IECnEBE?=nJlO ?D=nCAI JDA @AIECn oB =IFA?JI oB JDA IOIJAm, EJ m=O>AMoHJD@EI?KIIEnCEJBEHIJ. -m=ElMoHkIBoHJDEI,>KJ14+MoHkI>AJJAH.

2.5.2 − How do I send in my patches? 6o IAn@ ?D=nCAI, Am=El 'BHonJ('BHonJ.oHC MEJD OoKHF=J?D=JJ=?DA@EnlEnA. /AnAH=JAJDAF=J?DKIEnC % bind −ac /dist/plan9front / % cd /sys/src/your/changed/code % hg diff . > /tmp/mypatch.diff =n@F=IJAJDA?D=nCAEnJoOoKHAm=El?lEAnJoB?DoE?A.

6DEI FHojA?J EI HKn >O Do>>OEIJI. 1J m=O J=kA IomA JEmA BoH FAoFlA Jo HAIFon@. 1B OoK @onߣJDA=H=nOJDEnCBoHmoHAJD=n=MAAkoHIo,IAn@=FEnC.

$  FQA 3 − Hardware

3.1 − Selecting Hardware

5AlA?JEnC =FFHoFHE=JA D=H@M=HA Jo HKn OoKH 'BHonJ IOIJAm on EI EmFoHJ=nJ, =I EJ ?=n mA=n JDA @EBBAHAn?A >AJMAAn IK??AII =n@ B=ElKHA oB = FHojA?J. .oHJKn=JAlO, moIJ ?om­ mon 2+ D=H@M=HA EI =J lA=IJ mEnEm=llO BKn?JEon=l En 2l=n ' AN?lK@EnC ?AHJ=En ANoJE? =K@Eo, 8/), =n@ 9E.E @ALE?AI. NoM=@=OI, JD=nkI Jo 9boot&, realemu&, =n@ JDA 8-5) @HELAH, EJ EI =J lA=IJ LAHO lEkAlO JD=J OoKH 2+ MEll >ooJ. 1n =@@EJEon, moIJ FoFKl=H LEH­ JK=lEz=JEonFl=JBoHmI=HAHA=Ion=>lOMAllIKFFoHJA@.

+DA?k FQA 3.2 − Known Working Hardware =I MAll =I JDA L=HEoKI IKFFoHJA@ D=H@M=HA F=CAI on JDA *All L=>I 2l=n ' MEkE Jo DAlF @AJAHmEnA EB OoKH D=H@M=HA oH 8M EI IKFFoHJA@.

3.2 − Known Working Hardware

6DEI lEIJ =@@I Jo JDA L=HEoKI IKFFoHJA@ D=H@M=HA F=CAI on JDA 2l=n ' BHom *All L=>I MEkE. Note: NON- oB JDAIA lEIJI =HA =ll-En?lKIELA. 5omA @HELAHI lEIJA@ on JDA *All L=>I MEkE D=LA noJ >AAn JAIJA@ >O 'BHonJ @ALAloFAHI. 6DA BolloMEnC lEIJ ?onIEIJI oB D=H@M=HA, . JD=J MA D=LA =?JK=llO KIA@, oH . =>oKJ MDE?D MA D=LA HA?AELA@ HAlE=>lA HAFoHJI BHom KIAHI.

5omA@HELAHI=n@JDAEHoFJEonI=HA=lIo@o?KmAnJA@En plan9.ini(8).

4A=@: FQA 1.3.1.2 − New Hardware Support BoH EnBoHm=JEon =>oKJ D=H@M=HA @HELAHI JD=J =HAnAMEn'BHonJ.

$  3.2.0 − Input Devices

3.2.0.1 − Mice

)lmoIJ =nO 25/ oH 75* moKIA EI CoEnC Jo MoHk. 6DA BolloMEnC =HA FHABAHHA@ BoH KIA MEJD2l=n'.

3.2.0.1.1 − IBM/Lenovo

N700 Wireless/Bluetooth, 3 button Mouse and Laser Pointer 2=HJNKm>AH:&&& #"# ,21:  JKIJMoHkIMEJD75*HA?AELAH.No=@@EJEon=l@HELAHHAGKEHA@.

$! ScrollPoint Optical Mouse, 3 button, USB/PS2 2=HJNKm>AH:! 2%"# ,21:&

3.2.0.2 − Keyboards

)lmoIJ =nO )6, 25/ , oH 75* kAO>o=H@ EI CoEnC Jo MoHk. 6DA BolloMEnC =HA FHABAHHA@ BoH KIAMEJD2l=n'.

$" 3.2.0.2.1 − IBM/Lenovo

IBM Model M 1391401 2=HJNKm>AH: !' "

IBM UltraNav SK−8835 2=HJNKm>AH:5K-&&!#

$# 3.2.0.2.2 − TEX Electronics

TEX Shinobi

3.2.1 − Audio )K@Eo IKFFoHJ EI mK?D EmFHoLA@ En 'BHonJ, MEJD =@@A@ IKFFoHJ BoH )+'%, 1nJAl0,),=n@D=5oKn@>l=IJAH $.

$$ AMD FCH Azalia Controller LE@/@E@:  /%&@

Intel 888 Microsoft UAA bus for HD audio LE@/@E@:&&$/ &">

Intel 82801CA/CAM AC97 LE@/@E@:&&$/ "&#

Intel 82801 DB DBM/DA AC 97 LE@/@E@:&&$/ "?#

Intel 486486 82801IB/IR/IH HD Audio LE@/@E@:&&$/ '!A

Intel Gemeni Lake LE@/@E@&&$/! '&

Intel HD NM10/ICH7 LE@/@E@:&&$/ %@&

Intel HD 6 Series/C200 Series LE@/@E@:&&$/ ? 

Intel HD 7 Series/C210 Series LE@/@E@:&&$/ A 

3.2.2 − Graphics M=nO LE@Ao ?=H@I BoH MDE?D JDAHA ANEIJI no n=JELA 8/) @HELAH ?=n >A

$% m=@AJoMoHkMEJDJDACAnAHE?8-5)@HELAH.-N=mFlAI=HAFHoLE@A@>AloM.

3.2.2.1 − AGP

NVidia GeForce FX 5200 128MB VGA output LE@/@E@: @A/! monitor=vesa vgasize=1600x1200x32 monitor=dellst2210 vgasize=1920x1080x32

NVidia GeForce FX 5700 LE@/@E@: @A/!" monitor=vesa vgasize=1600x1200x32 monitor=dellst2210 vgasize=1920x1080x32

$& 3.2.2.2 − Integrated

ATI Mobility Radeon 7500 128MB DVI/VGA output LE@/@E@:  /"?#% monitor=vesa vgasize=1024x768x32

ATI Mobility Radeon FireGL V3200/X600 LE@/@E@:  /! #" monitor=vesa vgasize=1600x1200x32

ATI RS880 monitor=vesa vgasize=1280x1024x32

ATI X1300

Intel Mobile 945GM/GMS/GME, 943/940GML Express LE@/@E@:&&$/ %=$ monitor=vesa vgasize=1400x1050x32 monitor=x60t vgasize=1400x1050x32

Intel X3100/GM965/PM965/GL960 LE@/@E@:&&$/ =! monitor=vesa vgasize=1680x1050x32

Intel Mobile Intel 4 Series 4500MHD LE@/@E@:&&$/ =" ,&&$/ ="! monitor=vesa vgasize=1440x900x32 monitor=x301 vgasize=1440x900x32

Intel HD 3rd Gen Core processor Graphics Controller LE@/@E@:&&$/ $$ monitor=vesa vgasize=1366x768x32 monitor=x230 vgasize=1366x768x32

NVidia GeForce FX Go5200 64M LE@/@E@: @A/! " monitor=cinema vgasize=1152x768x32

$' S3 SuperSavage IX/C 16MB LE@/@E@:#!!!/&? A monitor=t23 vgasize=1024x768x32 monitor=vesa vgasize=1024x768x32

3.2.2.3 − PCI Express

NVidia GeForce 6200 AGB LE@/@E@: @A/ 

NVidia GeForce 6200 LE LE@/@E@: @A/ $! monitor=e228wfp vgasize=1680x1050x32

NVidia GeForce 8400 GS LE@/@E@: @A/" monitor=vesa vgasize=1680x1050x32

NVidia GeForce 8600 GT LE@/@E@: @A/" monitor=vesa vgasize=1600x1200x32

NVidia GeForce GTX 550 LE@/@E@: @A/>AA monitor=vesa vgasize=1600x1200x32

3.2.3 − Networking

3.2.3.1 − Ethernet

-JDAHnAJ EI MAll IKFFoHJA@ =?HoII m=nO LAn@oHI =n@ ?DEFIAJI. 'BHonJ EnJHo@K?AI = mA@EKm-Jo-loM GK=lEJO @HELAH BoH *Ho=@?om *+M#%NN ?=H@I, FHALEoKIlO KnIKFFoHJA@ >O2l=n'.

3.2.3.1.1 − Integrated

Broadcom BCM5751M NetXtreme Gigabit LE@/@E@: "A"/ $%@ JAIJA@ / m>FI

% Broadcom BCM5755/5780 NetXtreme Gigabit LE@/@E@: "A"/ $%> JAIJA@ / m>FI

Broadcom BCM5782 NetXtreme Gigabit LE@/@E@: "A"/ $'$

Intel X553/X550−AT 10GBASE−T LE@/@E@:&&$/ #?&

Intel 82540EP Gigabit LE@/@E@:&&$/  A JAIJA@ / m>FI

Intel 82562ET JAIJA@ / m>FI

Intel 82566MM Gigabit LE@/@E@:&&$/ "' JAIJA@ / m>FI

Intel 82567LM 82567LM−2 Gigabit LE@/@E@:&&$/ B# JAIJA@ / m>FI

Intel 82573L Gigabit LE@/@E@:&&$/ '= JAIJA@: / m>FI

Intel 82579LM Gigabit LE@/@E@:&&$/ # JAIJA@: / m>FI

Intel 82801CAM PRO/100 VE LE@/@E@:&&$/ ! JAIJA@ / m>FI

%  Realtek RTL8139 LE@/@E@: A?/& !' JAIJA@ / / m>FI

Realtek RTL8169/RTL8101E/RTL8102E LE@/@E@: A?/& !$ JAIJA@ / / m>FI

3.2.3.1.2 − USB

Beceem Communications CLEAR Stick LE@/@E@ '&B:& $ 6DEIEI=9EM):@ALE?AJD=J=FFA=HI=I=75*+,+-JDAHnAJ@ALE?A 9oHkIMEJDnKI>/AJDAH

RNDIS )n@HoE@FDonAIIDoKl@MoHk 9oHkIMEJDnKI>/AJDAH

3.2.3.1.3 − PCMCIA

3Com 3c589c 5AJJDABolloMEnCEn plan9.ini: irq=3 port=0x300

3.2.3.2 − WiFi

'BHonJ =@@I IKFFoHJ BoH IALAH=l 9E.E =@=FJAHI BHom 4=lEnk =n@ 1nJAl, =I MAll =I IKFFoHJ BoH92)=n@92) .

4A=@: wpa&,=n@ plan9.ini&

3.2.3.2.1 − Bridge (external)

Iogear GWU627 & . n ?onnA?JAJDAHnAJFoHJJo/97$ % 0662 m=n=CAmAnJ EnJAHB=?A HAGKEHAI J=L=I?HEFJ. M=n=CA@ Jo FHoCH=m EJ KIEnC 1nBAHnoߣI charon >HoMIAH,MDE?DIKFFoHJIA?m=I?HEFJ ..

%  Vonets VAP11G & . C ?onnA?JAJDAHnAJFoHJJo8)2 / 4AGKEHAI = FHoFHEAJ=HO 9En@oMI FHoCH=m IDEFI MEJD JDA @ALE?A Jo FHoCH=m EJI IAJ­ JEnCI>ABoHAKIEnCEJBoHJDABEHIJJEmA.

3.2.3.2.2 − Mini−PCI

Actiontec 800MIP & . > oBJAn>H=n@A@LK?AnJ9=LAL)N ether0=type=wavelanpci ssid=MESH station=T42 irq=11

Ralink RT2860 & . >

3.2.3.2.3 − Mini−PCI Express

Intel Centrino Advanced−N 6205 Taylor Peak (iwl−6005) LE@/@E@:&&$/&# & . C ether0=type=iwl essid=MESH

Intel Centrino Ultimate−N (iwl−6000) & . C ether0=type=iwl essid=MESH

Intel Centrino Wireless−N 100 & . C ether0=type=iwl essid=MESH

Intel Centrino Wireless−N 2230 & . C ether0=type=iwl essid=MESH

Intel PRO Wireless 3945ABG (wpi−3945abg) & . C ether0=type=wpi essid=MESH

%! Intel WiFi 1000/4965/5100/5300/5350 AGN & . C ether0=type=iwl essid=MESH

Intel Wireless AC 8260/8265 & . C ether0=type=iwl essid=MESH

Intel Wireless AC 9260 & . C ether0=type=iwl essid=MESH

Ralink RT3090 & . C

3.2.3.2.4 − PCI

Ralink RT3090 & . >

3.2.3.2.5 − PCMCIA

Linksys WPC11 & . > 2HEIm .# 15L!%!2 4AL)

Lucent WaveLAN PC24E−H−FC & . > ether0=type=wavelan essid=MESH crypt=off station=x61 irq=11

3.2.4 − Tablet Digitizers

5KFFoHJ BoH 9=?om IAHE=l J=>lAJI M=I =@@A@ En  . 6DA JoK?DI?HAAn @ECEJEzAHI En IomA LAnoLo 6DEnk2=@I noJ=>lO, JDA : ! =lIo IAAm Jo BKn?JEon MEJDoKJ nAA@ oB =nO @HELAHI FHAIKm=>lO,?onJHollA@>OJDA*1O5.

%" 3.2.4.1 − Serial

3.2.4.1.1 − Integrated

Wacom WACF004 6DEnk2=@:"*IAHEAIJ=>lAJI

6oAn=>lAJDAJ=>lAJߣIIAHE=lFoHJEn plan9.ini: uart2=type=isa port=0x200 irq=5 6oJKHnonJDAJ=>lAJ: aux/wacom; aux/tablet &

Wacom WACF008 6DEnk2=@:$*IAHEAIJ=>lAJI

6oAn=>lAJDAJ=>lAJߣIIAHE=lFoHJEn plan9.ini: uart2=type=isa port=0x200 irq=5 6oJKHnonJDAJ=>lAJ: aux/wacom; aux/tablet &

3.2.4.2 − USB

3.2.4.2.1 − Integrated

Wacom (from ThinkPad X230 Tablet, model unknown)

6HA=JA@=I=moKIA.

3.2.4.2.2 − External

Wacom CTE−640

6HA=JA@=I=moKIA.

%# 3.2.5 − Laptops

3.2.5.1 − Acer

Aspire 5100 (donated by some poor kid) ?FK: %'#M0z)KJDAnJE?)M,)M,-K&,MoHkI AJDAHnAJ:HJl& !' M>FI,MoHkI kAO>o=H@=n@JoK?=@,MoHkI CH=FDE?I:45"& M)614),-ON:FHAII5AHEAI, monitor=vesa vgasize=1024x768x32 n=JELA HAIolKJEon noJ En 8-5) *1O5;H=@Aon@HELAHKnJAIJA@ MEBE:)JDAHoI)4##/,@oAInoJMoHk =K@Eo:5*"#0ECD,ABEnEJEon)K@Eo+onJHollAH

%$ 3.2.5.2 − IBM/Lenovo

3.2.5.2.1 − ThinkPad 6DEnk2=@I=HA JDA >AIJ IKFFoHJA@ l=FJoFI En 'BHonJ >A?=KIA 6DEnk­ 2=@I=HAMD=JJDA@ALAloFAHIKIA.

380D

2635−3AU ?FK: ?FK: # M0z /AnKEnA1nJAl 2##+ MM: ): #"! +:  ,: & *. CH=FDE?I:NAom=CE?M=CE?/H=FD &Z8 monitor=vga vgasize=800x600x16

%% AJDAHnAJ:!+om!+#&'2+M+1),MoHkI

G50 nnnn−nnn ?FK: !'"M0z/AnKEnA1nJAl2$,?FKE@:):"$# +:%%,).**.,:*.-*.*.. CH=FDE?I:1nJAl+oHFoH=JEon0=IMAll-7L61nJACH=JA@/H=FDE?I+onJHollAH, realemu(8) monitor=vesa vgasize=1366x768x32 AJDAHnAJ:4A=lJAk5AmE?on@K?JoH+o.,LJ@.46L& /& $&/&" 2+1 -NFHAII /EC=>EJ -JDAHnAJ+onJHollAH,MoHkI =K@Eo:1nJAl+oHFoH=JEon0=IMAll-7L60,)K@Eo+onJHollAH,MoHkI KI>:1nJAl+oHFoH=JEon&5AHEAI75*-0+1 ,MoHkI

R400

7439−1DG ?FK: # %M0z /AnKEnA1nJAl +oHA /:Aon, ?FKE@: ): N $%$ +: N&-!., ,: N*.-*.*.. CH=FDE?I:Mo>ElA1nJAl/M"#-NFHAII/"#M0,, realemu(8) monitor=vesa vgasize=1440x900x32 AJDAHnAJ:1nJAl& #$%LM& #$%LM- /EC=>EJ / / ,MoHkI MEBE:1nJAl9E.ELEnk# )/N MEnE-2+1-NFHAII,MoHkI @EIk?onJHollAH:1nJAl1+0'M/M-1+0'M/M-)0+1,MoHkI @L@:M)65016),8,-4)M7J&%)5*"0-!" $&-!" $&#'%,MoHkI =K@Eo:1nJAl"&$"&$& & 1*/14/100,)K@Eo,MoHkI KI>:MoHkI mF:mF+I=J=,AJDAHnAJMoHkIMEJD *acpi=1

%& T23

2647−HSU ?FK:1nJAlMo>ElA2AnJEKm111-M&$$M0z, . /0z CH=FDE?I:5!5KFAH5=L=CA1:/+ $M*,8/)  "N%$&N! , realemu(8) monitor=vesa vgasize=1024x768x32 AJDAHnAJ:1nJAl& & +)M24O/ 8-oH1nJAl& #$ -6 / ,MoHkI MEBE:)?JEonJA?&M12>H=n@A@LK?AnJ9=LAL)NMEnE-2+1,MoHkI =K@Eo:)+'%,MoHkI

T42

2373−BK4 ?FK:1nJAl2AnJEKmM,oJD=n .%/0z CH=FDE?I:)61Mo>ElEJO4=@Aon%#! M*, realemu(8) monitor=vesa vgasize=1024x768x32 AJDAHnAJ:1nJAl/EC=>EJ-JDAHnAJ / / ,MoHkI MEBE: 1*M =/>/C MEnE-2+1, @oAI noJ MoHk; HAFl=?A@ MEJD )?JEonJA? &M12 >H=n@A@LK?AnJ9=LAL)NMEnE-2+1,MoHkI @EIk?onJHollAH:& & ,*M1+0"-M,1,-,M)MoHkI =K@Eo:)+'%,MoHkI

T43p

2669−A92 ?FK: 1nJAl 2AnJEKm M ,oJD=n . /0z ?FKE@: ): N$,& +: N & ,: N).-'.*.. CH=FDE?I:)61Mo>ElEJO4=@Aon.EHA/L8! /:$, realemu(8) monitor=vesa vgasize=1600x1200x32 MEJDEnJAHn=lL+, AJDAHnAJ:*Ho=@?om*+M#%# M / / ,MoHkI MEBE:HAFl=?A@MEJD8onAJI8)2 /,MoHkI @EIk?onJHollAH:1nJAl& & .*M5)6))0+11+0$-M:KnJAIJA@ KI>:MoHkI I?H=mMoHkIMEJD *acpi=1 moKIA>KJJon MoHkIMEJDJH=?kF=@@EI=>lA@En*1O5 =KN/=?FE:MoHkI

T60p

2007−94U ?FK: 1nJAl +oHA ,Ko ;on=D . $/0z ?FKE@: ): N$-& +: N+ )' ,: N*.-'.*.. CH=FDE?I:)61MO*1L16;.EHA/L8#  realemu(8) monitor=vesa vgasize=1600x1200x32 MEJDEnJAHn=lL+, =K@Eo:1nJAl*)  &'%1,60ECD,ABEnEJEon,KnJAIJA@ AJDAHnAJ:1nJAl& #%!L1nJAl24O/ 2L / / ,MoHkI MEBE:1nJAl24O9EHAlAII!'"#)*/MFE-!'"#=>C,m=OMoHknoMMEJD wpi @HELAH @EIk?onJHollAH:1nJAl& & /*//*M2)6) ,& & /*M//0M)0+1,MoHkI KI>:MoHkI

%' mF:mF+I=J=,AJDAHnAJ,KI>MoHkIMEJD *acpi= moKIA>KJJon MoHkIMEJDJH=?kF=@@EI=>lA@En*1O5

8741−C4G ?FK: 1nJAl +oHA ,Ko MAHom .!! /0z ?FKE@: ): N$.$ +: N-!*, ,: N*.-*.*.. CH=FDE?I: )61 MO*1L16; .EHA/L 8# #, realemu(8) monitor=vesa vgasize=1400x1050x32 n=JELA $&N # HAIolKJEon noJ En8-5)*1O5;H=@Aon@HELAH@oAInoJMoHk =K@Eo:1nJAl0,)NM /1+0%,MoHkI AJDAHnAJ:1nJAl& #%!L/EC=>EJ-JDAHnAJ / / ,MoHkI MEBE:1nJAl24O9EHAlAII!'"#)*/MFE-!'"#=>C,MoHkIMEJD wpi @HELAH @EIk?onJHollAH:1nJAl& & /*M//0M1+0%-M5)6))0+1,MoHkI KI>:MoHkI

T61

7659−CTO ?FK:1nJAl+oHA ,KoMAHom ./0z.5*, -"M*L +=?DA+27 CH=FDE?I:1nJAl/M):! , realemu(8) monitor=vesa vgasize=1280x800x32 MEJD EnJAHn=l L+,; monitor=vesa vgasize=1680x1050x32 MEJD 8/) oH MEnE ,o? ,81 oKJFKJ =n@ANJAHn=lmonEJoH AJDAHnAJ:1nJAl& #$$MM / / ,MoHkI MEBE: 1nJAl 9EHAlAII 9E.E LEnk "'$# )/N MEnE-2+1 -NFHAII, IDoKl@ MoHk MEJD iwl @HELAH @EIk ?onJHollAH: 1nJAl & & 0*M/0-M 2)6), 1nJAl & & 0*M 5)6) )0+1 1+0&-M: 1,-,M)MoHkI,5)6)MoHkI KI>:MoHkI mF:mF+I=J=,AJDAHnAJ,KI>MoHkIMEJD *acpi= moKIA>KJJon MoHkIMEJDJH=?kF=@@EI=>lA@En*1O5

7661−12U ?FK:1nJAl+oHA ,KoMAHom ./0z.5*, -"M*L +=?DA+27 CH=FDE?I:1nJAl/M):! , realemu(8) monitor=vesa vgasize=1280x800x32 MEJD EnJAHn=l L+,; monitor=vesa vgasize=1680x1050x32 MEJD 8/) oH MEnE ,o? ,81 oKJFKJ =n@ANJAHn=lmonEJoH AJDAHnAJ:1nJAl& #$$MM / / ,MoHkI MEBE: 1nJAl 24O 9EHAlAII !'"#)*/ MFE-!'"#=>C, m=O MoHk noM MEJD wpi @HELAH; HAFl=?A@MEJD9=LAl=n2+ "--0-.+2+M+1),MoHkI @EIk ?onJHollAH: 1nJAl & & 0*M/0-M 2)6), 1nJAl & & 0*M 5)6) )0+1 1+0&-M: 1,-,M)MoHkI,5)6)MoHkI KI>:MoHkI mF:mF+I=J=,AJDAHnAJ,KI>MoHkIMEJD *acpi= moKIA>KJJon MoHkIMEJDJH=?kF=@@EI=>lA@En*1O5

& T400

6475−EC7 ?FK: $ M0z /AnKEnA1nJAl +oHA /:Aon ?FKE@: ): N $%$ +: N&-!., ,: N*.-*.*.. CH=FDE?I:1nJAl+oHFoH=JEonMo>ElA"5AHEAI, realemu(8) monitor=vesa vgasize=1440x900x32 MEJDEnJAHn=lL+, AJDAHnAJ:E& #$%: M>FI,MoHkI MEBE:1nJAl9E.ELEnk# )/NMEnE-2+1-NFHAII,MoHkI @EIk?onJHollAH:1nJAl1+0'M/M-)0+1,MoHkI =K@Eo:1nJAl0,),IDoKl@MoHk

T410i

2518−4QG ?FK:1nJAl4+oHA6ME#+27M"!( . %/0z CH=FDE?I:1nJAl/H=FDE?IMA@E=)??AlAH=JoH0,, realemu(8) monitor=vesa vgasize=1280x800x32 MEJDEnJAHn=lL+, AJDAHnAJ:1nJAl& #%%LM/EC=>EJ,MoHkI MEBE:KnknoMn,HAFoHJA@lOMoHkI =K@Eo:KnknoMn,HAFoHJA@lOMoHkI

T420s

4171−53U ?FK: 1nJAl® +oHAࡊ E#- #"M  .$/0z, !M* L!, !!!M0z .5* ?FKE@: ):  $)% +: %*)-!..,:*.-*.*.. CH=FDE?I:1nJAl0,/H=FDE?I!EnJACH=JA@5=n@O*HE@CA/27, realemu(8) monitor=vesa vgasize=1600x900x32 AJDAHnAJ:1nJAl& #%'LM/EC=>EJ,MoHkI =K@Eo:1nJAl0,$5AHEAI/+ 5AHEAI,MoHkI MEBE: 1nJAl +AnJHEno )@L=n?A@-N $ # 6=OloH 2A=k, AJDAHEMl BEHmM=HA: EMn-$#, MoHkI

&  T430s

2353−ABU

T431s

20AA−000BUS ?FK: %'$M0z/AnKEnA1nJAl2$?FKE@:):!$)'+:%%*)-!*.,:*.-*.*.. CH=FDE?I:1nJAl!H@/An+oHAFHo?AIIoH/H=FDE?I+onJHollAH, realemu(8) monitor=vesa vgasize=1920x1080x32 MEJD JDEH@ F=HJO 5=mIKnCEnJAHn=lL+, =K@Eo:%5AHEAI/+ 5AHEAI0,)+onJHollAH,MoHkI AJDAHnAJ:1nJAl& #%'LM / / ,MoHkI MEBE:1nJAl+AnJHEno)@L=n?A@-N$ !#,MoHkI @EIk ?onJHollAH: 1nJAl % 5AHEAI +DEFIAJ .=mElO $-FoHJ 5)6) +onJHollAH [)0+1 mo@A], MoHkI KI>:MoHkI I?H=mMoHkIMEJD *acpi= moKIA>KJJon MoHkIMEJDJH=?kF=@@EI=>lA@En*1O5

&  W500

4061−BM8 ?FK: 1nJAl +oHA ,Ko 2AnHOn .#! /0z ?FKE@: ): N $%) +: N"&-!., ,: N*.-*.*.. CH=FDE?I: 1nJAl /M) "#M0, + )61 Mo>ElEJO 4=@Aon 0,!$# IMEJ?DA@ oBB En *1O5, realemu(8) monitor=vesa vgasize=1920x1200x32; monitor=auto vgasize=1920x1200x32 AJDAHnAJ:1nJAl& #$%LM/EC=>EJ-JDAHnAJ / / ,MoHkI MEBE:1nJAl7lJEm=JA-N#!)/NEMn-#,MoHkI @EIk?onJHollAH:1nJAl& & 1*M/1-M1+0'M/1+0'M--5)6))0+1,MoHkI =K@Eo:1nJAl0,)& & 1,MoHkI KI>:MoHkI II@:5=mIKnC55,&#-8O#/*-M6 *$35 4*N:0)!" %:,MoHkI

W520

4260−A47 ?FK: 1nJAl +oHA E%- %$3M 5=n@O *HE@CA ." /0z ?FKE@: ): N $)% +: N %*)-!..,:N*.-*.*.. CH=FDE?I: 1nJAl 0, ! + N81,1) 3K=@Ho M IMEJ?DA@ oBB En *1O5, realemu(8) monitor=vesa vgasize=1920x1080x32; monitor=auto vgasize=1920x1080x32 on#0z AJDAHnAJ:1nJAl& #%'LM/EC=>EJ-JDAHnAJ / / ,MoHkI MEBE:1nJAl)@L=n?A@-N$ #)/NEMn-$#,MoHkI @EIk?onJHollAH:1nJAl$5AHEAI/+ 5)6))0+1,MoHkI =K@Eo:1nJAl$5AHEAI/+ 0,),MoHkI KI>:MoHkI

&! X1 Tablet (1st Gen) ?FK:1nJAl:Aon-!- L#/-!- #L# CH=FDE?I:1nJAl0,/H=FDE?I# #, realemu(8) monitor=vesa vgasize=2160x1440x32 J=>lAJ:@oAInߣJMoHk MEBE:1nJAl& $EMm-&+-!"BEHmM=HA,MoHkI =K@Eo:1nJAl5KnHEIA2oEnJ-L20,)K@Eo,MoHkI

X41 tablet ?FK:1nJAl2AnJEKmM,oJD=n .$/0zL8%%&L  M*?=?DA CH=FDE?I:1nJAl/M)', realemu(8) monitor=vesa vgasize=1024x768x32 J=>lAJ:9)+.",MoHkI AJDAHnAJ:*+M#%# M / / ,MoHkI MEBE:1nJAl24O/9EHAlAII ' #)*/MEnE-2+1,@oAInoJMoHk

X60s

1704−GL5 ?oHA>ooJ ?FK: ?FK: $$!M0z /AnKEnA1nJAl 2$ ?FKE@: ): N$-& +: N+ )' ,: N*.-'.*.. CH=FDE?I:1nJAl'"#/M, realemu(8) monitor=vesa vgasize=1024x768x16 AJDAHnAJ:1nJAl& #%!L1nJAl24O/ 2L,MoHkI =K@Eo:1nJAl0,),KnJAIJA@ MEBE:4=lEnk46!',MoHkI

&" X60 Tablet

6363−CTO ?FK: 1nJAl +oHA ,Ko ;on=D L " L8 .$$ /0z  M* +=?DA ?FK: $$!M0z /An­ KEnA1nJAl2$):$-++:+ )',:*.-'.*.. l?@:HAFl=?A@MEJD08 2 -  "N # CH=FDE?I:1nJAl/H=FDE?IMA@E=)??AlAH=JoH'#, realemu(8) monitor=x60t vgasize=1400x1050x32; monitor=vesa vgasize=1280x1024x32 n=JELA "N # HAIolKJEon noJ En8-5)*1O5 J=>lAJ:9)+.&,MoHkI AJDAHnAJ:1nJAl& #%!L / / ,MoHkI =K@Eo: 1nJAl 0, )K@Eo MEJD ), '& 0, ?o@A?, IFA=kAH =n@ CHAAn lEnAoKJ MoHk MEJD pin 5,3 >/dev/audioctl MEBE: 1nJAl 9E.E LEnk #  )/N, MoHkI ߞ Bl=IDA@ MEJD ?KIJom *1O5 Jo HAmoLA 9E.E ?=H@MDEJAlEIJ @EIk ?onJHollAH: 1nJAl & & /*M//0M 1+0%-M .=mElO 5)6) +onJHollAH [)0+1 mo@A],KnJAIJA@ mF:mF+I=J=,AJDAHnAJMoHkIMEJD*=?FE

X61s ?FK:1nJAl+oHA ,Ko CH=FDE?I:1nJAl/M'$#//L'$, realemu(8) monitor=vesa vgasize=1024x768x32 AJDAHnAJ:1nJAl& #$$MM / / ,MoHkI MEBE: 1nJAl 24O/9EHAlAII "'$# )/ oH )/N ߢ[KA@Hon]ߢ MEnE-2+1 -NFHAII, KnJAIJA@, IDoKl@MoHkMEJD iwl @HELAH @EIk?onJHollAH:1nJAl& & 0*M5)6)1+0&-M:1,-,M)MoHkI,5)6)MoHkI mF:mF+I=J=,AJDAHnAJMoHkIMEJD *acpi=

&# X61 Tablet

7767−01U ?FK:1nJAl+oHA ,Ko+27L%% .&/0z l?@:HAFl=?A@MEJD08 2 -  "N # CH=FDE?I:1nJAl/M):! , realemu(8) monitor=x60t vgasize=1400x1050x32; monitor=vesa vgasize=1280x1024x32 n=JELA "N # HAIolKJEon noJ En8-5)*1O5 J=>lAJ:9)+.&,MoHkI AJDAHnAJ:1nJAl& #$$MM / / ,MoHkI =K@Eo:1nJAl0,),MoHkI MEBE: 1nJAl +AnJHEno )@L=n?A@-N $ # 6=OloH 2A=k EMl-$#, MoHkI ߞ Bl=IDA@ MEJD?KIJom*1O5JoHAmoLA9E.E?=H@MDEJAlEIJ @EIk ?onJHollAH: 1nJAl & & 0*M 5)6) 1+0&-M: 1,- ,M) MoHkI, 5)6) MoHkI mF: mF+I=J=,AJDAHnAJMoHkIMEJD *acpi=

X131e

3368−2FU ?FK: !'%M0z /AnKEnA1nJAl 2$ ?FKE@: ): N $)% +: N #*)-!*. ,: N*.-*.­ *.. CH=FDE?I:1nJAl0,/H=FDE?I!, realemu(8) monitor=vesa vgasize=1366x768x32 AJDAHnAJ:4A=lJAk46L& $%2+1A/EC=>EJ-JDAHnAJ:MoHkI =K@Eo:1nJAl0,),MoHkI

&$ 6283−22U ?FK: !'%M0z /AnKEnA1nJAl 2$ ?FKE@: ): N $)% +: N #*)-!*. ,: N*.-*.­ *.. CH=FDE?I:1nJAl0,/H=FDE?I!, realemu(8) monitor=vesa vgasize=1366x768x32 AJDAHnAJ:4A=lJAk46L& $%2+1A/EC=>EJ-JDAHnAJ:MoHkI MEBE:1nJAl+AnJHEno)@L=n?A@-N$ #:MoHkI =K@Eo:1nJAl0,),MoHkI

X200

7455−A54 ?FK:1nJAl+oHA ,Ko CH=FDE?I:Mo>ElA1nJAl/M)"#M0,, realemu(8) monitor=vesa vgasize=1280x800x32 AJDAHnAJ:1nJAl& #$%L./EC=>EJ / / ,MoHkI MEBE:1nJAl9E.ELEnk# #,MoHkI @EIk?onJHollAH:1nJAl1+0'M/M-1+0'M/M-)0+1,MoHkI =K@Eo:1nJAl"&$"&$& & 1*/14/100,)K@Eo,MoHkI KI>:MoHkI

X200s

7466−3SG ?FK: &$ M0z /AnKEnA1nJAl +oHA /:Aon ?FKE@: ): N $%$ +: N&-!., ,: N*.-*.*.. CH=FDE?I:Mo>ElA1nJAl/M"#-NFHAII/"#, realemu(8) monitor=vesa vgasize=1280x800x32 AJDAHnAJ:1nJAl& #$%LM& #$%LM- /EC=>EJ / / ,MoHkI MEBE:1nJAl9E.ELEnk#!)/NMEnE-2+1-NFHAII,MoHkI

&% @EIk?onJHollAH:1nJAl1+0'M/M-1+0'M/M-)0+1,MoHkI =K@Eo:1nJAl"&$"&$& & 1*/14/100,)K@Eo,MoHkI KI>:MoHkI mF:mF+I=J=,AJDAHnAJMoHkIMEJD *acpi=1

X201

3323−DBG ?FK: $$ M0z/AnKEnA1nJAl2$ CH=FDE?I:Mo>ElA1nJAl/M)#%M0,, realemu(8) monitor=vesa vgasize=1280x800x32 AJDAHnAJ:1nJAl+oHFoH=JEon& #%%LM1nJAl& #%%LM/EC=>EJ,MoHkI MEBE:1nJAl+AnJHEno7lJEm=JA-N$!)/N,MoHkI @EIk?onJHollAH:1nJAl+oHFoH=JEon2+01>AN2A=k5)6))0+1,MoHkI =K@Eo:1nJAl0,),MoHkI II@:1N6-L55,5+ *9 &)!L,MoHkI KI>:MoHkI

X220

4291−4CG ?FK: %' M0z /AnKEnA1nJAl 2$ ?FKE@: ): N $)% +: N %*)-!.. ,: N*.-*.­ *.. CH=FDE?I:1nJAl0,!, realemu(8) monitor=vesa vgasize=1366x768x32 AJDAHnAJ:1nJAl& #%' / / ,MoHkI =K@Eo:1nJAl0,),MoHkI MEBE:1nJAl+AnJHEno)@L=n?A@-N$ #,MoHkI @EIk?onJHollAH:MoHkI II@:1N6-L55,5) *9 $/!,MoHkI KI>:MoHkI =KN/=?FE:MoHkI

&& X230

2306−CTO ?FK: 1nJAl +oHA E#-!! M  .$ /0z, !M* L!, $M0z .5*, ?FKE@: ): N!$)' +:N%%*)-!..,:N*.-*.*.. CH=FDE?I:1nJAl0,!H@/An+oHAFHo?AIIoH/H=FDE?I+onJHollAH, realemu(8) monitor=x230 vgasize=1366x768x32; monitor=vesa vgasize=1366x768x32 AJDAHnAJ:1nJAl& #%'LM/EC=>EJ / / ,MoHkI MEBE: 1nJAl +AnJHEno )@L=n?A@-N $ # 6=OloH 2A=k, AJDAHEMl BEHmM=HA: EMn-$#, MoHkI @EIk ?onJHollAH: 1nJAl % 5AHEAI +DEFIAJ .=mElO $-FoHJ 5)6) +onJHollAH )0+1 mo@A, =D?E,MoHkI KI>: 1nJAl % 5AHEAI/+  5AHEAI +DEFIAJ .=mElO 75* -nD=n?A@ 0oIJ +onJHollAH  , AD?E,MoHkI =K@Eo: 1nJAl % 5AHEAI/+  5AHEAI +DEFIAJ .=mElO 0ECD ,ABEnEJEon )K@Eo +onJHollAH, MoHkI ABE:MoHkI

&' X230 Tablet

3434−CTO ?FK: 1nJAl +oHA E#-!! M 1LO *HE@CA, .$ /0z, ! M* 5D=HA@ L! +=?DA, +/"6, !# 96,2, nm?FKE@:):N!$)'+:N%%*)-!..,:N*.-*.*.. CH=FDE?I:1nJAl0,", realemu(8) monitor=vesa vgasize=1366x768x32 J=>lAJ:9=?om75*EnJAHn=l,MoHkI AJDAHnAJ:1nJAl& #%' / / ,MoHkI =K@Eo:1nJAl0,),MoHkI MEBE:1nJAl& . >/C/n,mECDJMoHk @EIk?onJHollAH:MoHkI II@:5)M57N/55,&!5AHEAI+:M!* 35:;N-)+%%"%" &/*,MoHkI KI>:@EI=>lA75*!En*1O5,MoHkI =KN/=?FE:>=JJAHOMoHkI

X230 Tablet

3434−DB7 ?FK: 1nJAl4 +oHA6M E%-!# M +27 ( .'/0z ?FKE@: ): !$)' +: %%*)-!..,:*.-*.*.. CH=FDE?I:1nJAl0,", realemu(8) monitor=vesa vgasize=1366x768x32 J=>lAJ:9=?om75*EnJAHn=l,MoHkI AJDAHnAJ:1nJAl& #%' / / ,MoHkI =K@Eo:1nJAl0,),MoHkI MEBE:1nJAl+AnJHEno)@L=n?A@-N$ #,MoHkI @EIk?onJHollAH:MoHkI II@:L16-ON16L+5- &M$5,+% #5+" %&Z Z58* #'&'" &/*,MoHkI KI>:@EI=>lA75*!En*1O5,MoHkI =KN/=?FE:>=JJAHOMoHkI

' X240

20AL−CTO MEBE: 1nJAl 9EHAlAII-N % $, @oAI noJ MoHk, >KJ m=O noJ >A D=H@ Jo =@@ Jo ANEIJEnC AJDAHEMl@HELAH

'  X250

20CM−CTO ?FK: 1nJAl4 +oHA6M E#-# 7 +27 ( . /0z, ?FKE@: ): !$," +: %%.).­ **.,:*.-*.*.. CH=FDE?I:1nJAl+oHFoH=JEon*Ho=@MAll-71nJACH=JA@/H=FDE?I, realemu(8) monitor=vesa vgasize=1920x1080x32 AJDAHnAJ:1nJAl+oHFoH=JEon-JDAHnAJ+onnA?JEon!1 &-LM / / ,MoHkI MEBE: 1nJAl 9EHAlAII-N % $#, @oAI noJ MoHk, >KJ m=O noJ >A D=H@ Jo =@@ Jo ANEIJEnC AJDAHEMl@HELAH @EIk ?onJHollAH: 1nJAl +oHFoH=JEon 9El@?=J 2oEnJ-L2 5)6) +onJHollAH [)0+1 Mo@A], MoHkI KI>:1nJAl+oHFoH=JEon9El@?=J2oEnJ-L275*-0+1+onJHollAH,MoHkI =K@Eo:1nJAl+oHFoH=JEon*Ho=@MAll-7)K@Eo+onJHollAH,MoHkI =KN/=?FE:MoHkI

20CM−CTO1WW ?FK: 1nJAl4 +oHA6M E#-# 7 +27 ( . /0z, ?FKE@: ): !$," +: %%.).­ **.,:*.-*.*.. CH=FDE?I:1nJAl+oHFoH=JEon*Ho=@MAll-71nJACH=JA@/H=FDE?I, realemu(8) monitor=vesa vgasize=1920x1080x32 AJDAHnAJ:1nJAl+oHFoH=JEon-JDAHnAJ+onnA?JEon!1 &-LM / / ,MoHkI MEBE: 1nJAl 9EHAlAII-N % $#, @oAI noJ MoHk, >KJ m=O noJ >A D=H@ Jo =@@ Jo ANEIJEnC AJDAHEMl@HELAH @EIk ?onJHollAH: 1nJAl +oHFoH=JEon 9El@?=J 2oEnJ-L2 5)6) +onJHollAH [)0+1 Mo@A], MoHkI KI>:1nJAl+oHFoH=JEon9El@?=J2oEnJ-L275*-0+1+onJHollAH,MoHkI =K@Eo:1nJAl+oHFoH=JEon*Ho=@MAll-7)K@Eo+onJHollAH,MoHkI =KN/=?FE:MoHkI

'  X260 nnnn−nnn ?FK: "'$M0z/AnKEnA1nJAl2$,?FKE@:):"$-!+:%%.).*..,:*.-*.*.. CH=FDE?I:1nJAl+oHFoH=JEon0,/H=FDE?I# , realemu(8) monitor=vesa vgasize=1920x1080x32 AJDAHnAJ:1nJAl+oHFoH=JEon-JDAHnAJ+onnA?JEon1 '-LM / / ,MoHkI MEBE:1nJAl+oHFoH=JEon+AnJHEno)@L=n?A@-N$ !#,MoHkIMEJDAJDAHEMl@HELAH @EIk ?onJHollAH: 1nJAl +oHFoH=JEon 5KnHEIA 2oEnJ-L2 5)6) +onJHollAH [)0+1 mo@A], MoHkI KI>:1nJAl+oHFoH=JEon5KnHEIA2oEnJ-L275*!.N0+1+onJHollAH,MoHkI =K@Eo:1nJAl+oHFoH=JEon5KnHEIA2oEnJ-L20,)K@Eo,MoHkI =KN/=?FE:MoHkI

X301

2776−P4U ?FK: 1nJAl +oHA ,Ko 57'" ."/0z !M* ?=?DA, ?FKE@: ): N $%) +: N"&-!.,,:N*.-*.*.. CH=FDE?I:Mo>ElA1nJAl/M"#-NFHAII/"#M0,, realemu(8) monitor=x301 vgasize=1440x900x32; monitor=vesa vgasize=1440x900x32 AJDAHnAJ:1nJAl& #$%LM& #$%LM- /EC=>EJ / / ,MoHkI MEBE:1nJAl9E.ELEnk# )/NMEnE-2+1-NFHAII,MoHkI @EIk?onJHollAH:1nJAl1+0'M/M-1+0'M/M-)0+1,MoHkI II@:5=mIKnCMM+4-$"/&M22-8)$"/*,MoHkI @L@:M=JIKIDEJ=,8,-4)M7J-&"",MoHkI =K@Eo:1nJAl0,"&$"&$& & 1*/14/10,MoHkI KI>:MoHkI mF:mF+I=J=,AJDAHnAJMoHkIMEJD *acpi=1

'! 2776−P6U ?FK: 1nJAl +oHA ,Ko 57'" ."/0z !M* ?=?DA, ?FKE@: ):  $%$ +: &-!.,,:*.-*.*.. CH=FDE?I:Mo>ElA1nJAl/M"#-NFHAII/"#M0,, realemu(8) monitor=x301 vgasize=1440x900x32; monitor=vesa vgasize=1440x900x32 AJDAHnAJ:1nJAl& #$%LM/EC=>EJ / / ,MoHkI MEBE:1nJAl9E.ELEnk# )/NMEnE-2+1-NFHAII,MoHkI @EIk ?onJHollAH: & & 1*M/1-M 1+0'M/1+0'M-- " FoHJ 5)6) +onJHollAH )0+1 mo@A,MoHkI =K@Eo:1nJAl0,& & 11+0'.=mElO,MoHkI KI>:MoHkI mF:mF+I=J=,AJDAHnAJMoHkIMEJD *acpi=1

Yoga 370

20JH−002AUS ?FK: % M0z/AnKEnA1nJAl2$,?FKE@:):&$-'+:%%.).*..,:*.-*.*.. CH=FDE?I:1nJAl+oHFoH=JEon5kOl=kA/=KIIE=nMENJKHAMo@Al, realemu(8) monitor=vesa vgasize=1920x1080x32 AJDAHnAJ:1nJAl1 '-LM/EC=>EJ / / ,MoHkIMEJD@onClA MEBE:1nJAl& $#,@oAInoJMoHk =K@Eo:@oAInoJIAAmJoMoHk

'" 3.2.5.3 − Toshiba

3.2.5.3.1 − Satellite

M30−S309 ?FK: !'%M0z/AnKEnA1nJAl2$):$'#+: &,:)%-'.'*. CH=FDE?I:N8E@E=/A.oH?A.:/o# $"M, monitor=cinema vgasize=1152x768x32 AJDAHnAJ:1nJAl& & ,*24O/ 8-MO*E& ##%,MoHkI @EIk?onJHollAH:1nJAl& & ,*M1+0"-M1,-+onJHollAH,MoHkI =K@Eo: 1nJAl & & ,*/,*L/,*M 1+0"/1+0"-L/1+0"-M )+ߣ'% )K@Eo +onJHollAH, MoHkI KI>: 1nJAl & & ,*/,*L/,*M 1+0"/1+0"-L/1+0"-M 75* 70+1 +onJHollAH, KnJAIJA@

3.2.6 − Desktops

3.2.6.1 − eMachines

T3302 ?FK:)M,5AmFHon!!+ /0z ?DEFIAJ:81)K&M& CH=FDE?I: 81) 5! 7nE+DHomA, HAFl=?A@ MEJD N8E@E= /Ao.oH?A .: #% &M* ,81 oKJFKJ, ' N &N! AJDAHnAJ:!+om!+'#-6:.=IJ-JDAHlEnk / 2+16: =K@Eo: KI>:MoHkI

'# 3.2.6.2 − Igel

4210 LX Winestra

3.2.6.3 − Soekris net6501−70 ?FK:1nJAl)Jom-$& .$/Dz,>oJDF?=n@F?$"MoHk AJDAHnAJ:"N1nJAl& #%"L/EC=>EJ-JDAHnAJ,MoHkI KI>:MoHkI IAHE=l ?onIolA: MoHkI, KIA console=0 b19200 En Fl=n'.EnE. '>ooJ D=nCI MEJDoKJ=IAHE=l?=>lA=JJ=?DA@;@EI=>lAK=HJFKJ?=I=MoHk=HoKn@ JDEIm=?DEnA@oAInoJD=LA)+21

3.2.6.4 − IBM/Lenovo

3.2.6.4.1 − ThinkCentre

M55

8810−D3U ?FK:1nJAl+oHA ,Ko CH=FDE?I: 1nJAl /M) ! EnJAHn=l KnJAIJA@, HAFl=?A@ MEJD N8E@E= /A.oH?A &"/5 ,81oKJFKJ, realemu(8) monitor=vesa vgasize=1680x1050x32 AJDAHnAJ:*Ho=@?om*+M#%## / / ,MoHkI =K@Eo:1nJAl0,),MoHkI KI>:MoHkI mF:mF+I=J=,AJDAHnAJ,KI>MoHkIMEJD *acpi=

M920q ?FK:1nJAl&JD/An+oHAE#-&#6( . /0z @L@:MoHkI ABE>ooJ:MoHkI AJDAHnAJ:1nJAl1 '-LM,MoHkI CH=FDE?I:1nJAl70,$!,8-5)MoHkI

ND?E:MoHkI

3.3 − Virtual Machines

'BHonJD=I>AAnJAIJA@onIALAH=lLEHJK=lm=?DEnAI.,AJ=ElI>AloM.

Note: )I = CAnAH=l HKlA EJ EI = Coo@ E@A= Jo m=nK=llO IFA?EBO = KnEGKA M)+ =@@HAII BoH A=?DLEHJK=lm=?DEnAEnIJ=n?AHKnnEnConJDAnAJMoHk,Jo=LoE@?ollEIEonI.

'$ 3.3.1 − Qemu

6DA BolloMEnC CAnAHE? IAJKF EI JAIJA@ MEJD GAmK .#. =n@ ..# HKnnEnC on LEnKN, KIEnC FQA 3.3.3 − virtio BoH @EIk =n@ nAJMoHk. 6DEI I=mA CAnAHE? IAJKF IDoKl@ MoHk BoH moIJDoIJoFAH=JEnCIOIJAmI.

3.3.1.1 − Installation

+HA=JA=IF=HIA@EIkEm=CA: qemu−img create −f qcow2 9front.qcow2.img 30G

*ooJJDA'BHonJ.EIo: qemu−system−x86_64 −cpu host −enable−kvm −m 1024 \ −net nic,model=virtio,macaddr=52:54:00:00:EE:03 −net user \ −device virtio−scsi−pci,id=scsi \ −drive if=none,id=vd0,file=9front.qcow2.img \ −device scsi−hd,drive=vd0 \ −drive if=none,id=vd1,file=9front.iso \ −device scsi−cd,drive=vd1,bootindex=0

.En=llO,IAA: FQA 4.3 − Performing a simple

3.3.1.2 − Post−Installation Booting qemu−system−x86_64 −cpu host −enable−kvm −m 1024 \ −net nic,model=virtio,macaddr=52:54:00:00:EE:03 −net user \ −device virtio−scsi−pci,id=scsi \ −drive if=none,id=vd0,file=9front.qcow2.img \ −device scsi−hd,drive=vd0

3.3.1.2.1 − Multiboot

MKlJE>ooJ?=n>AKIA@JoIJ=HJJDA'BHonJkAHnAl@EHA?JlO,IkEFFEnCJDA>ooJlo=@AHIJAF: −qemu −kernel 9pc −initrd plan9.ini

3.3.1.4 − Networking

7IAH nAJMoHkEnC EI JDA @AB=KlJ =n@ MoHkI JDA I=mA on ALAHO Fl=JBoHm. MoHA =@L=n?A@ oFJEonI=HAF=HJE?Kl=HJoIFA?EBE?DoIJoFAH=JEnCIOIJAmI;IALAH=l=HA@AI?HE>A@>AloM.

Note: On m=nO oFAH=JEnC IOIJAmI 1+M2 EI lEmEJA@ Jo JDA IKFAHKIAH. OnA ?onIAGKAn?A EI JD=J=8MHKnnEnCMEJDCKAIJnAJMoHkEnC?=nnoJFEnCHAmoJADoIJI.

3.3.1.4.1 − VDE

1nIJ=llL@A .

5AJKF=J=FEnJAHB=?A:

'% sudo tunctl −u $USER −t tap0

5J=HJ=LEHJK=lIMEJ?D?onnA?JA@JoJDAJ=FEnJAHB=?A: vde_switch −−tap tap0 −daemon

+onnA?JJDAIMEJ?DJoJDAnAJMoHkoBJDADoIJ.7IA,0+2: slirpvde −−dhcp −−daemon

9DAn>ooJEnC'BHonJ,=@@JDABolloMEnCJoJDA qemu ?omm=n@lEnA=HCKmAnJI: −net vde

3.3.1.4.2 − OpenBSD TAP

6AIJA@:OFAn*5,/=m@$"$.-56)*L-,GAmK- .$.

Note: 4A=@ oLAH JDEI BEHIJ. *A ?=HABKl noJ Jo ?lo>>AH =nO IOIJAm IAJJEnCI OoK m=O =lHA=@O D=LA ?onBECKHA@. 1B OoK @onߣJ Kn@AHIJ=n@ IomAJDEnC, HA=@ JDA HAlAL=nJ m=n F=CAI KnJEl OoK@o..AAlBHAAJoIK>IJEJKJA=H>EJH=HOnAJMoHkL=lKAI>AloM.

'& # as root pkg_add bzip2 plan9port qemu ssvnc wget −f /usr/local/plan9/bin/rc /bin/ # for scripts sysctl net.inet.ip.forwarding=1 echo ’net.inet.ip.forwarding=1’ >>/etc/sysctl.conf echo inet 192.168.54.1 255.255.255.0 NONE >/etc/hostname.vether0 ed /etc/pf.conf /ext_if a int_if="vether0" match out from $int_if:network to any nat−to ($ext_if:0) . w q pfctl −f /etc/pf.conf echo link0 up >/etc/hostname.tap0 echo add vether0 add tap0 up >/etc/hostname.bridge0 sh /etc/netstart >/etc/dhcpd.conf ed /etc/dhcpd.conf i option domain−name "example.com"; option domain−name−servers 192.168.54.1; subnet 192.168.54.0 netmask 255.255.255.0 { option routers 192.168.54.1;

range 192.168.54.100 192.168.54.199; } . w q rcctl enable dhcpd rcctl start dhcpd ed /var/unbound/etc/unbound.conf /interface a interface: 192.168.54.1 . /access−control a access−control: 192.168.54.0/24 allow w q rcctl enable unbound rcctl start unbound echo ´permit setenv { − PS1=$DOAS_PS1 SSH_AUTH_SOCK } :wheel´ \ >/etc/doas.conf

# as user who is in wheel group −p $HOME/9 $HOME/bin cd $HOME/9 qemu−img −f qcow2 9front.qcow2.img 30G # adjust url for current iso wget http://9front.org/iso/9front−5561.df1dc1ff2475.iso.bz2 bunzip2 9front−5561.df1dc1ff2475.iso.bz2 9front−5561.df1dc1ff2475.iso 9front.iso cd $HOME/bin

'' wget http://openbsd.stanleylieber.com/rc/q9 775 q9 cd # boot from iso (install) doas −u root q9 −i # boot from qcow image (after completing the install) doas −u root q9 # connect to qemu via vnc q9 −v

3.3.1.4.3 − Windows TAP

6DEI EI JAIJA@ MEJD JDA GAmK BoH MEn@oMI @EIJHE>KJEon. ,oMnlo=@ =n@ HKn JDA EnIJ=llAH BHom oFAnLFn Jo EnIJ=ll JDA MEn@oMI 6)2 @HELAH. +HA=JA = nAM 6)2 EnJAHB=?A MEJD JDA )@@ = nAM 6)2 LEHJK=l AJDAHnAJ =@=FJAH BHom JDA oFAnLFn IJ=HJ mAnK. /o Jo JDA nAJ­ MoHk m=n=CAH =n@ HAn=mA JD=J nAM 6)2 EnJAHB=?A Jo IomAJDEnC moHA I=nA lEkA: GAmK- J=F.+onBECKHAEF=@@HAIIAIoH>HE@CAJD=JEnJAHB=?AMEJDJDAnAJMoHkm=n=CAH.

NoMOoKIDoKl@>A=>lAJoHKnGAmKonJD=JEnJAHB=?A: qemu.exe −net nic −net tap,ifname="tap−qemu" ...

3.3.1.4.4 − Linux TAP

Contributed by joe9: onJDADoIJ: sudo ip tuntap add dev tap0 mode tap user joe sudo ip address add 10.0.0.1/24 dev tap0 IJ=HJGAmKKIEnC@onoJnAA@IK@oBoHGAmK: SDL_VIDEO_X11_DGAMOUSE=0 qemu−system−x86_64 \ −cpu host −enable−kvm −m 1024 \ −netdev tap,id=eth,ifname=tap0,script=no,downscript=no \ −device e1000,netdev=eth,mac=52:54:00:00:EE:03 \ −device virtio−scsi−pci,id=scsi −drive \ if=none,id=vd0,file=9front.qcow2.img \ −device scsi−hd,drive=vd0 \ −usb −usbdevice tablet −sdl \ −ctrl−grab on'BHonJ:=@@JDA>AloMlEnAJo /lib/ndb/local sys=cirno ether=52540000ee03 ip=10.0.0.2 ipmask=255.255.255.0 ipgw=10.0.0.1 dns=10.0.0.1 dom=cirno.9front HKn: ip/ipconfig −N

NoM, FEnC ...  BHom lEnKN DoIJ =n@ EF/FEnC ...  BHom GAmK 'BHonJ IDoKl@ MoHk.

?DA?kJDA?ommKnE?=JEon>AJMAAnJDALm=n@JDAlEnKNDoIJKIEnConJDAlEnKNDoIJ:

 sudo tcpdump −nS −vv −i tap0

Contributed by hiro:

1BOoKM=nJJoAn=>lAEnJAHnAJ=??AIIAn=>lAN)6BoHM=H@EnConJDAlEnKNDoIJ=IHooJ.

6o@oJDEI,BEHIJClo>=llOAn=>lABoHM=H@EnC: echo 1 > /proc/sys/net/ipv4/ip_forward -n=>lA M=IGKAH=@EnC BoH ALAHOJDEnC ?omFEnC BHom JDA 8MߣI J=F @ALE?A AJD >AEnC OoKH DoIJߣIM=OJoJDAEnJAHnAJ: iptables −t nat −A POSTROUTING −s 10.0.0.0/24 −o eth0 −j MASQUERADE >lo?kALAHOJDEnCAlIABHom>AEnCBoHM=H@A@: iptables −A FORWARD −m state −−state RELATED,ESTABLISHED −j ACCEPT iptables −A FORWARD −s 10.0.0.0/24 −i tap0 −j ACCEPT iptables −P FORWARD DROP

3.3.1.5 − Audio

4Kn GAmK MEJD JDA Bl=C −soundhw sb16 =n@ FKJ JDA BolloMEnC lEnA En plan9.ini: audio0=type=sb16 port=0x220 irq=5 dma=5

Note: irq =n@ dma L=lKAIm=OL=HO.

3.3.1.6 − Graphics

7IA monitor=vesa

Note: 5omA LAHIEonI oB 3-M7 HKnnEnC on O5: D=LA ANDE>EJA@ CH=FDE?=l ClEJ?DAI MDAn KIEnC = $->EJ ?oloH mo@A BoH AN=mFlA:  "N%$&N $. 6HO = ! ->EJ mo@A EnIJA=@ BoH AN=mFlA:  "N%$&N! .

  3.3.2 − Virtualbox

,onߣJKIA8EHJK=l>oN.1JJAn@IJo>HA=k>AJMAAnLAHIEonI.

4A=@: http://www.landley.net/notes−2015.html#25−06−2015

1B OoK ?=nߣJ >A @EIIK=@A@, JDA BolloMEnC IA?JEonI @AJ=El AmFEH?=l o>IAHL=JEonI HA: 8EHJK=l>oN.

3.3.2.1 − Ethernet 6DA AmKl=JA@ 1nJAl 24O/  M6 5AHLAH AJDAHnAJ ?onJHollAH EI knoMnJoMoHk.

3.3.2.2 − Audio

2KJJDABolloMEnCEn plan9.ini: audio0=type=sb16

3.3.2.3 − Graphics 7IA monitor=vesa

3.3.2.4 − Known Working Versions

".!. "H'#!on9En@oMI%

".!. $onM=?O5:

".!. &H'$# $onLEnKNN&$_$"kAHnAl!. ".

".!. &on9En@oMI%:

  jKIJ JHEA@ MEJD L>oN ".!. & on MEn@oMI%. 'BHonJ >ooJI BEnA En *1O5 mo@A, >KJ JDA 2+nAJ nE? @oInJ MoHk. HA=Ion EI JD=J L>oN F11N F?E EHG HoKJEnC EI BK?kA@ Io JDA AJDAHnAJ @oAInJ CAJ EnJAHHKFJI. EB E >ooJ MEJD *noF?EHoKJEnC= , EJ MoHkI BEnA. JDAHAI = oFJEon Jo IAlA?J JDA ?DEFIAJ Io E JHEA@ 1+0' MEJD 1O-)21+ An=>lA@. noHm=l mF mo@A B=ElI >A?=KIA oB >HokAn mF J=>lAI, >KJ MoHkI MEJD *=?FE=. =lIo, EJ MoHkI MEJD 7-.1 mo@A MDE?D =lM=OI KIAI )+21. JDA KIK=l EnJAl mJ IAHLAH nE? =lIo MoHkI JD=JI MD=J EI KIK=llO HA?ommAn@A@ BoH MoHkEnC =HHoKn@JDA>HokAnAJDAHnAJ.

F?E HoKJEnC EIIKA D=I >AAn BENA@ En l=JAIJ kAHnAl, IDoKl@ >A =L=El=>lA En EIo HAlA=IA=BJAH!'$.

".!. H'$''$onM=?O5: .$.&/ .'=n@7>KnJK "."/ ". :

General −> Basic Type: Other Version: Other/Uknown

System −> Motherboard Chipset: PIIX3 Pointing Device: PS/2 Mouse Extended Features: [x] Enable I/O APIC

System −> Processor Extended Features: [x] PAE/NX (not sure this matters)

System −> Acceleration [x] Enable VT−x/AMD−V [x] Enable Nested Paging

Display −> Video Extended Features: [x] Enable 3D Acceleration (not sure this matters)

Storage −> Attributes Name: IDE Type: PIIX4 [x] Use Host I/O Cache

Audio −> [x] Enable Audio Host Audio Driver: CoreAudio (Can be PulseAudio or otherwise for Linux, etc. Shouldn’t be hard to set this) Audio Controller: Soundblaster 16

Network −> Adapter 1 Attached to: NAT −> Advanced Adapter Type: Intel PRO/1000 MT Server Promiscuous Mode: Deny (Not sure this matters) Note: -n=>lEnC 75* . +onJHoll En ߣ2oHJI -> 75*ߣ MoHkI jKIJ BEnA En 'BHonJ, moKnJEnC Kn@AH /shr Bl=MlAIIlO=IlonC=IJDADoIJD=IJDA8EHJK=l>oN-NJAnIEon2=?kHKnnEnC.

! 3.3.3 − Virtio

+KHHAnJ LAHIEonI oB GAmK/kLm =n@ LEHJK=l>oN =I oB !. IKFFoHJ B=IJAH F=H=LEHJK=lEzA@ @ALE?AI.2HAIAnJlO,'BHonJFHoLE@AI@HELAHIBoHLEHJEoD=H@@EIk=n@nAJMoHk.

6DALEHJEo->lk@EIk@ALE?AIDoKl@IDoMKF=I: /dev/sdF0

6DALEHJEo-I?IE@EIk@ALE?AIDoKl@IDoMKF=I: /dev/sd00

" FQA 4 − 9front Installation Guide

4.1 − Pre−installation Checklist

*ABoHA OoK IJ=HJ OoKH EnIJ=ll, OoK IDoKl@ D=LA IomA E@A= MD=J OoK M=nJ Jo An@ KF MEJD. ;oKMEllM=nJJoknoMJDABolloMEnCEJAmI,=JlA=IJ: Machine name, DAHA=BJAHHABAHHA@Jo=I sysname.

Hardware installed and available. 4A=@: FQA 3.3 − Selecting Hardware. +DA?k FQA 3.2 − Known Working Hardware =I MAll =I JDA L=HEoKI IKFFoHJA@ D=H@M=HA F=CAI on JDA *All L=>I 2l=n ' MEkE Jo DAlF @AJAHmEnA EB OoKH D=H@M=HA oH 8M EI IKFFoHJA@.

Network settings, if not using DHCP: /=JDAH JDA HAGKEIEJA EnBoHm=JEon BoH OoKH nAJMoHk 12, nAJm=Ik, @AB=KlJ C=JAM=O, AJ?.. 1B OoK Fl=n Jo EnIJ=ll En = 8M, IAA FQA 3.3 − Virtual Machines.

1n?=IAoBJHoK>lA,IAA: FQA 9 − Troubleshooting, FQA 2.2.1 − Mailing List Archives

4.2 − Creating bootable 9front install media

4.2.1 − ISO image

O>J=EnJDA 9front.iso.

4A=@: 1.11.1 − Mirrors

# 4.2.2 − USB drive

*ooJEnC BHom 75* @EIk EI D=n@lA@ JDA I=mA M=O =I >ooJEnC BHom EnJAHn=l D=H@ @HELA. 6DAHA=HAJMoM=OIJo?HA=JA=>ooJ=>lA'BHonJ75*:

.9HEJAJDA15OEm=CA@EHA?JlOJoJDA75*@ALE?A.-N=mFlA: cat 9front.iso >/dev/sdUxxxxx/data

. )lJAHn=JAlO, JDA >ooJ FHo?AII EI =>lA Jo KIA =n 15O Em=CA IJoHA@ on = .)6 BElA IOIJAm =I EJI HooJ BElA IOIJAm, Io =ll JD=J EI nAA@A@ EI Jo EnIJ=ll JDA 9boot(8) >ooJlo=@AH, = kAHnAl =n@ JDA 9front.iso on JDA 75* @EIk. 6DA BolloMEnC IA?JEonI @AI?HE>A JDEI FHo­ ?AIIon2l=n'=n@LEnKN.

4.2.2.1 − Creating on Plan 9

6DA F=JD Jo OoKH 75* @ALE?A MEll look IomAJDEnC lEkA JDEI: /dev/sdUxxxxx MDAHA xxxxx EIJDAKnEGKAn=mAoBOoKHKI>@ALE?A.

*KEl@=n@EnIJ=llJDAm>H=n@>ooJlo=@AH: cd /sys/src/boot/pc mk 9bootfat mbr pbs disk/mbr −m mbr /dev/sdUxxxxx/data

1B EJ @oAInߣJ =lHA=@O ANEIJ, ?HA=JA =n@ BoHm=J = .)6 F=HJEJEon. ,onߣJ BoHCAJ Jo IAJ JDA .)6 F=HJEJEon=?JELAEnJDA fdisk mAnK: disk/fdisk −b /dev/sdUxxxxx/data disk/format −b pbs −d −r 2 /dev/sdUxxxxx/dos

MoKnJJDA75*@ALE?A: dossrv −f /dev/sdUxxxxx/dos sdos mount −c /srv/sdos /n/dos

+HA=JA=IKEJ=>lA /n/dos/plan9.ini: bootfile=9pc mouseport=ask monitor=ask vgasize=ask

Note: *O ?onLAnJEon, 2l=n ' KIK=llO ANFA?JI JANJ BElAI Jo An@ MEJD = nAMlEnA. 1B JDA l=IJ lEnAoBFl=n'.EnEEInoJ=nAMlEnA,EJ?oKl@B=ElJo>AF=HIA@?oHHA?JlO=J>ooJJEmA.

+oFOBElAIJoJDA75*@ALE?A: cp /386/9bootfat /n/dos chmod +al /n/dos/9bootfat # defrag magic cp /386/9pc /n/dos cp /path/to/9front.iso /n/dos

OFJEon=lBoH-.1IOIJAmI:

$ cd /sys/src/boot/efi; mk install mkdir −p /n/dos/efi/boot cp /386/boot*.efi /n/dos/efi/boot

7nmoKnJJDA75*@ALE?A: unmount /n/dos −f /srv/sdos

*ooJJDA@ALE?A.

4A=@: prep(8)

4.2.2.2 − Creating on Linux

Note: 6DAHA =HA nKmAHoKI mAJDo@I BoH ?HA=JEnC >ooJ=>lA 75* @ALE?AI on LEnKN. 6DEI EI onA.

O>J=En mbr, pbs, 9bootfat =n@ 9pc >En=HEAI. -EJDAH ?oFO JDAm BHom JDA @EIJHE>KJA@ 15O Em=CA JDA BElAI =HA lo?=JA@ Kn@AH /386/ oH >KEl@ KF Jo @=JA >En=HEAI on = 'BHonJ IOIJAm.4A=@: FQA 5.2.2 − Building from source

OnJDALEnKNIOIJAm,?HA=JA= $dir MEJDJD=J?onJ=EnIJDABolloMEnCBElAI: 9front.iso 9pc plan9.ini =I@AI?HE>A@=>oLA 9bootfat mbr pbs

OFJEon=l BoH -.1 IOIJAmI, ?HA=JA JDA @EHA?JoHO boot En $dir =n@ ?oFO JDA BElAI bootia32.efi =n@ bootx64.efi EnJoEJ.

7IAJDAm=kA>ooJB=JJoolJo?HA=JA>ooJ=>lA@ALE?AEA. /dev/sdc: $ makebootfat −m $dir/mbr −b $dir/pbs −o /dev/sdc $dir

*ooJJDA@ALE?A.

4.2.2.3 − Bootargs

)J JDA >ooJ=HCI FHomFJ OoKߣll nAA@ Jo AnJAH JDA F=JD Jo JDA 15O on JDA 75* @ALE?A. 1J MEll lookIomAJDEnClEkAJDEI: bootargs=local!/shr/sdUxxxxx/9front.iso

1B=75*@ALE?AEInoJlEIJA@,AI?=FAJo=IDAllMEJD !rc,=n@ ls /shr JoBEn@EJ.

4A=@:'.#. -,ALE?AInoJHA?oCnEzA@oHnoJMoHkEnC

% 4.3 − Performing a simple install

6DAHA EI noJDEnC m=CE?=l =>oKJ EnIJ=llEnC 2l=n '. 1J EI IEmFlO = m=JJAH oB FoFKl=JEnC = 2l=n ' BElA IOIJAm  cwfs oH hjfs  =n@ =HH=nCEnC = >ooJIJH=F Jo ALAnJK=llO lo=@ = 2l=n 'kAHnAlJD=J?=nJDAnKIAJD=JBElAIOIJAm=IEJIHooJ.

1n moIJ ?=IAI, JDA BElA IAHLAH EI JDA onlO m=?DEnA JD=J nAA@I Jo D=LA = @EIk. On?A JDA EnE­ JE=l BElA IAHLAH EI HKnnEnC, IAJJEnC KF =n =KJD IAHLAH, =n@ An=>lEnC bootp =n@ tftp BoH 2:- >ooJEnC, MEll =lloM 2l=n ' JAHmEn=lI =n@ ?FK IAHLAHI Jo lo=@ kAHnAlI BHom JDA BElA IAHLAH=n@ID=HAEJIBElAIOIJAmoLAHJDAnAJMoHk.

Note: 6DEI CKE@A @AI?HE>AI JDA @AB=KlJ EnIJ=ll=JEon oB = JAHmEn=l MEJD @EIk, MDE?D EI =n =m=lC=m=JEon oB = noHm=l 2l=n ' nAJMoHk, >KJ EI IKBBE?EAnJ BoH ANFloHEnC JDA >=IE?I oB KIEnC 2l=n '. +onBECKH=JEon oB =@@EJEon=l IAHLE?AI IK?D =I = BElA IAHLAH MEJD nAJMoHkEnC lEIJAnAHI,=?FKIAHLAH,AJ?.EIoKJlEnA@En FQA 7 − System Management.

6oEnIJ=ll'BHonJ,>ooJJDA 9front.iso Em=CA=n@BolloMJDAIJAFI>AloM.

4.3.1 − boot

5K??AIIBKllO >ooJEnC JDA IOIJAm MEll HAIKlJ En >=IE? EnBoHm=JEon =>oKJ JDA IJ=JA oB JDA IOIJAm>AEnCFHEnJA@onI?HAAn: Plan 9 126 holes free 00018000 0009f000 552960 00485000 0cf2c000 212496384 213049344 bytes free cpu0: 3395MHz GenuineIntel P6 ELCR: 0E20 #l0: AMD79C970: 10Mbps port 0x2000 irq 10: 000c291d0baf mylex ctlr @ port 0x10c0: 32−bit wide SCSI host adapter 512M memory: 207M kernel data, 304M user, 929M swap nusb/usbd: /dev/usb: no hubs

4.3.2 − bootargs

) lEIJ oB =JJ=?DA@ IJoH=CA @ALE?AI EI FHEnJA@, BolloMA@ >O = FHomFJ =IkEnC BoH = 2l=n ' F=HJEJEonJo>ooJBHom: /dev/sdC0: VMware Virtual IDE Hard Drive /dev/sdC0/data /dev/sdD0: VMware Virtual IDE CDROM Drive /dev/sdD0/data 9660 bootargs is (tcp, il, local!device) [local!/dev/sdD0/data]

1n moIJ ?=IAI, JDA IKCCAIJA@ @AB=KlJ MEll ?oHHAIFon@ Jo JDA @ALE?A KIA@ Jo >ooJ JDA 15O Em=CA.

& 4.3.3 − user

NANJ,=FHomFJ=IkIBoH=KIAHn=mA: user[glenda]:

/lAn@=EIJDA@AB=KlJ hostowner n=mA. ,onߣJ ?D=nCA JDEI KnJEl OoK knoM MD=J OoK =HA @oEnC.0EJ enter Jo=??AFJJDA@AB=KlJ.

Note: 6DA hostowner @EBBAHI BHom JDA ?on?AFJ oB root on = 7N1: IOIJAm, MDAHA = IEnClA KIAH root m=O J=kA ?onJHol oB =ll FHo?AIIAI and BElAI on JDA IOIJAm. *O ?onJH=IJ, ALAn JDA hostowner oB = 2l=n ' BElA IAHLAH ?=nnoJ LEol=JA BElA FAHmEIIEonI on JDA BElA IOIJAm, AN?AFJ MDAn FAHmEIIEonI ?DA?kEnC EI @EI=>lA@ on JDA ?onIolA oH MDAn AnJAHEnC IFA?E=l ?omm=n@I =J JDA ?onIolA oB JDA BElA IAHLAH. 6DA hostowner ?onJHolI onlO JDA processes HKnnEnC on JDA lo?=l m=?DEnA En JDA ?=IA oB JDA BElIAHLAH, JDA BElA IAHLAH FHo­ ?AII EJIAlB EI o>LEoKIlO oMnA@ >O JDA IOIJAmߣI hostowner. 6DEI BKn@=mAnJ=l IAF=H=­ JEon >AJMAAn ?onJHol oB FHo?AIIAI =n@ BElA FAHmEIIEonI EI ANFloEJA@ JDHoKCDoKJ JDA IOI­ JAm,>KJ?=n>A?onBKIEnCBoHKIAHI?omEnCBHom=7N1:>=?kCHoKn@.

4.3.4 − vgasize, monitor, mouseport

6DAnANJIAJoBFHomFJI@A=lMEJDCH=FDE?I@EIFl=O=n@JDAmoKIA: vgasize is (text, 640x480x8, 1024x768x16, ...) [1024x768x16] monitor is (vesa, xga, lcd, ...) [vesa] mouseport is (ps2, ps2intellimouse, 0, 1, 2) [ps2]

6DA >ooJ FHo?AII FHomFJI BoH JDA AnLEHonmAnJ L=HE=>lAI $vgasize, $monitor =n@ $mouseport, =n@ JDA EnIJ=llAH MEll l=JAH MHEJA JDoIA L=lKAI Jo JDA IOIJAmߣI plan9.ini,BHomMDE?DJDAO=HAlo=@A@onIK>IAGKAnJIOIJAm>ooJKF.

5AJJEnC $monitor Jo =nOJDEnC >AIE@AI vesa MEll >OF=II JDA AmKl=JA@ 8-5) *1O5 =n@ =JJAmFJ Jo KIA = n=JELA 8/) @HELAH BoH JDA LE@Ao ?=H@ En GKAIJEon. 4A=@: /lib/vgadb BoH=lEIJoBmonEJoHI=n@LE@Ao?=H@IJD=J=HA=lHA=@OknoMn>OJDAIOIJAm;=n@JDAm=n F=CAI vga(3), vga(8) =n@ vgadb(6) BoH moHA EnBoHm=JEon =>oKJ DoM CH=FDE?=l @EIFl=OI=HA?onBECKHA@.

6DA @AB=KlJ $mouseport oB ps2 EI IKBBE?EAnJ En moIJ ?=IAI. 5AJ EJ Jo ps2intellimouse onl=FJoFIoHBoHmE?AJD=JD=LA=I?HollMDAAl.

Note: 5omA l=FJoFI HAGKEHA JDA JH=?kF=@ Jo >A @EI=>lA@ En JDA *1O5 En oH@AH BoH moKIA >KJJon JDA ?AnJAH >KJJon Jo BKn?JEon En 2l=n '. 1n = FEn?D, moKIA >KJJon m=O >A IEmKl=JA@ >O Dol@EnC @oMn JDA shift kAO MDElA ?lE?kEnC moKIA >KJJon ! JDA HECDJ >KJ­ Jon.

)BJAH JDA EnIJ=ll, ?D=nCAI EnJAn@A@ Jo FAHIEIJ =?HoII HA>ooJI IDoKl@ >A =@@A@ Jo plan9.ini.

-N=mFlAI:

8=lKAI=IJDAO=FFA=HEn plan9.ini:

' monitor=vesa vgasize=1024x768x16 mouseport=ps2intellimouse

4A=@: mouse(8), vga(3), vgadb(6), plan9.ini(8), realemu(8), vga(8), FQA 7.2.2 − How do I modify plan9.ini?

)BJAH JDA mouseport FHomFJ EI =nIMAHA@, JDA >ooJ FHo?AII MEll =JJAmFJ Jo IJ=HJ JDA 2l=n ' CH=FDE?=l AnLEHonmAnJ, rio(1), oFAnEnC = stats(8) MEn@oM =n@ = rio MEn@oMonJoFoB=CH=O@AIkJoF>=?kCHoKn@.

4.3.4.1 − Changing screen resolution

)J JDEI FoEnJ EJ m=O >A @AIEHA=>lA Jo ?D=nCA JDA I?HAAn HAIolKJEon. 6o ?D=nCA LE@Ao mo@ABHomJDA?omm=n@lEnA:

LAI=:

Note: OnlOL=lE@mo@AIlEIJA@EnJDA8-5)*1O5m=O>AKIA@. # obtain a list of vesa bios modes @{rfork n; aux/realemu; aux/vga −p} # configure one of the valid modes @{rfork n; aux/realemu; aux/vga −m vesa −l 1024x768x16}

LC=: aux/vga −m dellst2210 −l 1920x1080x32

 4.3.5 − inst/start

1nIJ=ll=JEon EI FAHBoHmA@ >O JDA H? I?HEFJI En /rc/bin/inst. 6o >ACEn JDA EnIJ=ll=­ JEon, JOFA inst/start En JDA JAHmEn=l MEn@oM. .olloM JDA FHomFJI Jo ?omFlAJA JDA EnIJ=ll=JEon,IAlA?JEnCJDA@AB=KlJIMDAHA=FFHoFHE=JA.

Note: )nO J=Ik m=O >A HAFA=JA@ >O m=nK=llO AnJAHEnC EJI n=mA =J JDA nANJ Task to do FHomFJ.

term% inst/start Tue Jul 17 12:38:50 CET 2012 Installation process started

6DABolloMEnC Task to do IJAFI=HAD=n@lA@onA=J=JEmA:

4.3.6 − configfs You can install the following types of systems:

cwfs64x the cached−worm file server hjfs the new 9front file server (experimental!)

File system (cwfs64x, hjfs)[cwfs64x]:

Note: 6DA cwfs64x BElA IAHLAH KIAI $K* >lo?kI, MEJD EJI ?=?DA =n@ FAHm=nAnJ IJoH=CA lo?=JA on IAF=H=JA F=HJEJEonI. 6DA hjfs BElA IAHLAH KIAI "K* >lo?kI, MEJD EJI ?=?DA =n@ FAHm=nAnJ IJoH=CA lo?=JA@ on JDA I=mA F=HJEJEon. 1B OoK =HA EnIJ=llEnC Jo = @EIk oB lAII JD=n /*,OoKIDoKl@?DooIA hjfs.

1nJDEIAN=mFlAMAMEllFHAII enter Jo=??AFJ cwfs64x =IJDA@AB=KlJ.

4.3.6.1 − cwfs no−dump configuration ) ?DA=F 825 oH =n 5, ?=H@ l=?k JDA IJoH=CA ?=F=?EJO BoH HKnnEnC = KI=>lA @AB=KlJ cwfs(4) IAJKF MEJD = >EC 9O4M F=HJEJEon =n@ @=ElO @KmFI. 6DA Co-Jo IolKJEon EI JDA hjfs(4) BElA IOIJAm, MDE?D @oAInߣJ KIA = @A@E?=JA@ 9O4M F=HJEJEon =n@ @oAInߣJ @o @=ElO @KmFI >O @AB=KlJ. 0oMALAH, EJ D=I IALAH=lFAHBoHm=n?AFHo>lAmI=n@EInoJ=IMAllJAIJA@.

6DA ߢ?MBIߢ BElA IOIJAm ?=n >A ?onBECKHA@ En loJI oB M=OI >AOon@ JDA @AB=KlJ ?=?DA-MoHm +oJDAH?onBECKH=JEonIKFFoHJA@>OJDA'BHonJEnIJ=llAH.

6DA @AIEHA@ ?onBECKH=JEon MAߣHA CoEnC Jo ?oLAH EI = IEnClA ߢm=Enߢ BElA IAHLAH JHAA >=?kA@ >O = IEmFlA @EIk BElA IOIJAm - JDA I=mA JOFA KIA@ >O JDA ߢoJDAHߢ JHAA En JDA @AB=KlJ IAJKF.

6o @o JDEI MAߣHA CoEnC Jo F=HJEJEon JDA @EIk =FFHoFHE=JAlO =n@ oLAHHE@A JDA ߢmoKnJ?MBIߢ IJ=CA oB JDA 'BHonJ EnIJ=llAH MEJD = HAFl=?AmAnJ I?HEFJ DJJF://=->.NOz/ !/$$$= JD=J MEll ?onBECKHA ߢ?MBIߢ =FFHoFHE=JAlO. 6DA HAIJ oB JDA EnIJ=ll=JEon =n@ moIJ oB JDA IK>IAGKAnJ IOIJAmoFAH=JEonHAm=EnKn=BBA?JA@.

5J=HJ >O >ooJEnC BHom JDA EnIJ=ll=JEon mA@E=. +onBECKHA nAJMoHkEnC MEJD ߢEF/EF?onBEC&ߢ =n@BAJ?DJDAHAFl=?AmAnJߢmoKnJ?MBIߢ I?HEFJ,oHFKJJDAI?HEFJon=Bl=ID@HELA:

 % webfs % ramfs % hget http://a−b.xyz/23/666a >/tmp/mountcwfs % chmod +x /tmp/mountcwfs OLAHHE@AJDAߢmoKnJ?MBIߢ IJ=CAKIEnCߢ>En@ ߢ: bind /tmp/mountcwfs /bin/inst/mountcwfs 4Kn ߢEnIJ/IJ=HJߢ =n@ ?omFlAJA JDA IJ=CAI KF Jo ߢFHAFF=HJߢ =I OoK MoKl@ noHm=llO. )J ߢFHAFF=HJߢ, @AlAJA JDA @AB=KlJ F=HJEJEonI =n@ ?HA=JA onA n=mA@ ߢBIm=Enߢ MEJD = @AIEHA@ IEzA: d other d fscache d fsworm a fsmain 123456 .+100% w q M=kAIKHAJoHA=mJDAnAMF=HJEJEon=JJDAnANJIJAF.

+omFlAJAJDAHAIJoBJDAEnIJ=ll=JEon,HA>ooJ.6D=JEI=ll.

4.3.7 − partdisk The following disk devices were found.

sdC0 − VMware Virtual IDE Hard Drive empty 0 3916 (3916 cylinders, 29.99 GB)

sdD0 − VMware Virtual IDE CDROM Drive

Disk to partition (sdC0, sdD0)[no default]:

-nJAHJDAmA@E=OoKMEIDJoEnIJ=llJo. Disk to partition (sdC0, sdD0)[no default]: sdC0 The disk you selected HAS NO master boot record on its first sector. (Perhaps it is a completely blank disk.) Shall we create a blank EFI partition table (GPT) or install traditional DOS partition table (MBR)?

)IIKmEnC=>l=nk@EIkEm=CA,EnIJ=ll=BHAIDm>H: Install mbr or gpt (mbr, gpt)[no default]: mbr

This is disk/fdisk; use it to create a Plan 9 partition. If there is enough room, a Plan 9 partition will be suggested; you can probably just type ’w’ and then ’q’.

cylinder = 8225280 bytes >>>

.oHJDEIAN=mFlAMAMEllKIAJDAAnJEHA@EIk.)??AFJJDA@AB=KlJI. >>> w >>> q

 4.3.8 − prepdisk The following Plan 9 disk partitions were found.

/dev/sdC0/plan9 empty 0 62910477 (62910477 sectors, 29.99 GB)

Plan 9 partition to subdivide (/dev/sdC0/plan9)[/dev/sdC0/plan9]:

7IAJDA2l=n'F=HJEJEon?HA=JA@EnJDAFHALEoKIIJAF.0EJߢAnJAHߢ JoIAlA?JJDA@AB=KlJ. This is disk/prep; use it to subdivide the Plan 9 partition. If it is not yet subdivided, a sensible layout will be suggested; you can probably just type ’w’ and then ’q’.

no plan9 partition table found 9fat 204800 nvram 1 other 8957953 fscache 8957953 fsworm 44789770 >>>

)C=En,=??AFJJDA@AB=KlJI. >>> w >>> q

4.3.9 − mountfs The please choose your cwfs64x partitions

0EJ enter JoIAlA?JA=?DF=HJEJEon=JJDAFHomFJ. −−rw−r−−−−− S 0 glenda glenda 4586471936 Jul 4 13:28 /dev/sdC0/fscache

Cwfs cache partition (/dev/sdC0/fscache)[/dev/sdC0/fscache]: −−rw−r−−−−− S 0 glenda glenda 22932362240 Jul 4 13:28 /dev/sdC0/fsworm

Cwfs worm partition (/dev/sdC0/fsworm)[/dev/sdC0/fsworm]: −−rw−r−−−−− S 0 glenda glenda 4586471936 Jul 4 13:28 /dev/sdC0/other

Cwfs other partition (/dev/sdC0/other)[/dev/sdC0/other]:

5En?AJDEIEI=BHAIDEnIJ=ll,MA?DooIA JoHA=mBoHm=JJDABElAIOIJAm:

! Ream the ? (yes, no)[no]: yes Starting cwfs64x file server for /dev/sdC0/fscache Reaming file system bad nvram key bad authentication id bad authentication domain nvrcheck: can’t read nvram config: config: config: auth is now disabled config: config: config: config: config: config: current fs is "main" cmd_users: cannot access /adm/users 63−bit cwfs as of Wed Jul 4 00:59:30 2012 last boot Tue Jul 17 13:34:57 2012 Configuering cwfs64x file server for /dev/sdC0/fscache Mounting cwfs64x file server for /dev/sdC0/fscache % mount −c /srv/cwfs /n/newfs Mounting cwfs64x file server for /dev/sdC0/other % mount −c /srv/cwfs /n/other other

4.3.10 − configdist Are you going to download the distribution from the internet or do you have it on local media?

Distribution is from (local, net)[local]:

9A=HAEnIJ=llEnCBHomlo?=lmA@E=,Io, local. 0EJߢAnJAHߢ Jo=??AFJJDA@AB=KlJ.

Note: 6DA net oFJEon =JJAmFJI Jo @oMnlo=@ JDA 15O BHom JDA 1nJAHnAJ =n@ EnIJ=ll EJ @EHA?JlO Jo @EIk. 5En?A JDA EnIJ=llAH EI moIJ lEkAlO =lHA=@O HKnnEnC BHom =n 15O Em=CA, JDEI oFJEonm=OFHoLA Jo >A oB lEmEJA@ KJElEJO. 6DA oFJEon EI IomAMD=J ANFAHEmAnJ=l, =n@ m=O MoHk.)JJAmFJEJ=JOoKHoMnHEIk.

4.3.11 − confignet You can connect to the internet via a local ethernet or a dial−up PPP connection.

Interface to use (ether, ppp)[ether]:

Please choose a method for configuring your ethernet connection.

manual − specify IP address, network mask, gateway IP address dhcp − use DHCP to automatically configure

Configuration method (manual, dhcp)[dhcp]:

4.3.11.1 − dhcp

0EJ enter JomoLAonJoJDAnANJJ=Ik.

" 4.3.11.2 − manual

1BOoK?DoIA manual,AnJAHL=lKAIJD=J=HA=FFHoFHE=JABoHOoKHnAJMoHk. Configuration method (manual, dhcp)[dhcp]: manual ip address [no default]: 10.0.2.15 network mask [no default]: 255.255.255.0 gateway address [no default]: 10.0.2.2

4.3.12 − mountdist Please wait... Scanning storage devices... /dev/sdC0/9fat /dev/sdC0/data /dev/sdC0/fscache /dev/sdC0/fsworm /dev/sdC0/other /dev/sdD0/data

The following storage media were detected. Choose the one containing the distribution.

/dev/sdD0/data (iso9660 cdrom)

Distribution disk (/dev/sdD0/data, /dev/sdC0/fscache, /)[/]:

6DA+,-4OMEI=lHA=@OmoKnJA@=J /,IoMADEJ enter Jo?DooIAJDA@AB=KlJ.

% mount /srv/boot /n/distmedia

Which directory contains the distribution? Any of the following will suffice (in order of preference): − the root directory of the cd image − the directory containing 9front.iso − the directory containing 9front.iso.bz2

Location of archives [/]:

)n@ =C=En, JDA HooJ @EHA?JoHO oB JDA +,-4OM EI =lHA=@O moKnJA@ =J /, Io DEJ enter Jo ?DooIAJDA@AB=KlJ.

% mount /srv/boot /n/distmedia

Which directory contains the distribution? Any of the following will suffice (in order of preference): − the root directory of the cd image − the directory containing 9front.iso − the directory containing 9front.iso.bz2

Location of archives [/]:

0EJ enter.

# 4.3.13 − copydist 0EJ enter =JJDA copydist FHomFJ Jo >ACEn JDA FHo?AII oB ?oFOEnC JDA@EIJHE>KJEonBElAIBHomJDAEnIJ=llmA@E=JoJDAD=H@@EIk. processing /sys/lib/sysconfig/proto/allproto

ACHTUNG! +KHHAnJlO, JDAHA EI no FHoCHAII mAJAH. .oH IOIJAmI MEJDoKJ ,M), JDA copydist J=Ik m=O AN?AA@ onA DoKH En @KH=JEon. ,EIk =?JELEJO m=O >A LAHEBEA@ >O EnIFA?JEnCJDA stats(8) MEn@oM.

-LAnJK=llO,OoKIDoKl@IAAJDABolloMEnC: file system made

$ 6DEIEn@E?=JAIJD=JJDAIOIJAmBElAID=LA?omFlAJA@?oFOEnCJoJDAEnIJ=llJ=HCAJ.

4.3.14 − sysname Setup network configuration

sysname [cirno]:

7IA=IOIJAmn=mAoBOoKH?DoE?A,oHjKIJDEJ enter JoIAlA?JJDA@AB=KlJ.

4.3.15 − tzsetup Setup Time Zone

Time Zone (Argentina, Australia_ACT, Australia_Broken−Hill, Australia_LHI, Australia_NSW, Australia_North, Australia_Queensland, Australia_South, Australia_Sturt, Australia_Tasmania, Australia_Victoria, Australia_West, Australia_Yancowinna, Brazil_Acre, Brazil_DeNoronha, Brazil_East, Brazil_West, CET, Canada_Atlantic, Canada_Central, Canada_East−Saskatchewan, Canada_Eastern, Canada_Mountain, Canada_Newfoundland, Canada_Pacific, Canada_Yukon, Chile_Continental, Chile_EasterIsland, Cuba, EET, Egypt, GB−Eire, GMT, HST, Hongkong, Iceland, Iran, Israel, Jamaica, Japan, Libya, Mexico_BajaNorte, Mexico_BajaSur, Mexico_General, NZ, NZ_CHAT, Navajo, PRC, Poland, ROC, ROK, Singapore, Turkey, US_Alaska, US_Arizona, US_Central, US_East−Indiana, US_Eastern, US_Hawaii, US_Michigan, US_Mountain, US_Pacific, US_Yukon, W−SU, WET)[US_Eastern]:

,=OlECDJ I=LEnC JEmA ,56 EI D=n@lA@ =KJom=JE?=llO. 6OFA OoKH ?DoIAn JEmA zonA =n@ DEJ enter.

4.3.16 − bootsetup Setup Plan 9 FAT boot partition (9fat)

Plan 9 FAT partition (/dev/sdC0/9fat)[/dev/sdC0/9fat]:

0EJ enter Jo =??AFJ JDA @AB=KlJ. )nO AnLEHonmAnJ L=HE=>lAI AnJAHA@ =J JDA > FHomFJ @KHEnC >ooJ, =I MAll =I IAJJEnCI ?onBECKHA@ @KHEnC EnIJ=ll MEll noM >A MHEJJAn Jo /n/9fat/plan9.ini =n@JDAkAHnAlMEll>A?oFEA@JoJDA 9fat F=HJEJEon.

% dossrv: serving #s/dos Initializing Plan 9 FAT partition. % disk/format −r 2 −d −b /386/pbs /dev/sdC0/9fat Initializing FAT file system type hard, 12 tracks, 255 heads, 63 sectors/track, 512 bytes/sec used 4096 bytes % mount −c /srv/dos /n/9fat /dev/sdC0/9fat % rm −f /n/9fat/9bootfat /n/9fat/plan9.ini /n/9fat/9pc % cp /n/newfs/386/9bootfat /n/9fat/9bootfat % chmod +al /n/9fat/9bootfat % cp /tmp/plan9.ini /n/9fat/plan9.ini % cp /n/newfs/386/9pc /n/9fat/9pc

If you use the Windows NT/2000/XP master boot record or a master boot record from a Unix clone (e.g., LILO or FreeBSD bootmgr), it is probably safe to continue using that boot record rather than install the Plan 9 boot record.

5En?A MA =HA noJ EnIJ=llEnC on = @EIk MEJD = FHA-ANEIJEnC 9En@oMI EnIJ=ll=JEon, MA ?DooIA JoEnIJ=llJDA2l=n'm=IJAH>ooJHA?oH@=n@m=HkJDAF=HJEJEon=?JELA: Install the Plan 9 master boot record (y, n)[no default]: y Mark the Plan 9 partition active (y, n)[no default]: y

The Plan 9 partition is now marked as active.

4.3.17 − finish

6DA BEn=l J=Ik EI Jo HAmoLA oH @EI=>lA JDA +,-4OM =n@ BEnEID >O DEJJEnC enter Jo HA>ooJJDAm=?DEnA.

+onCH=JKl=JEonI,OoKߣLAjKIJEnIJ=llA@='BHonJIOIJAm

& NoMOoKH?=JCoAIJoIlAAFonJDAkAO>o=H@.

' 4.4 − Encrypted Partitions

'BHonJ IKFFoHJI >ooJEnC BHom An?HOFJA@ fsworm, fscache =n@ other F=HJEJEonI. 6DABolloMEnC=IIKmAI=D=H@@HELA /dev/sdC0: ߦ *ACEnJDAEnIJ=ll=JEonFHo?AII=InoHm=l>O>ooJEnC 9front.iso.

ߦ ,KHEnC partdisk =n@ prepdisk, ?HA=JA JDA fsworm, fscache =n@ other F=HJEJEonI=InoHm=l.

ߦ )JJDA mountfs FHomFJ,AnJAH !rc Jo@HoFJo=IDAllFHomFJ.

ߦ .oHm=J=n@=?JEL=JAJDAAn?HOFJA@F=HJEJEonICAnAH=JAInAMAn?HOFJEonkAO: disk/cryptsetup −f /dev/sdC0/fsworm /dev/sdC0/fscache /dev/sdC0/other disk/cryptsetup −i /dev/sdC0/fsworm /dev/sdC0/fscache /dev/sdC0/other

ߦ 6OFA exit JoHAIKmAJDAEnIJ=ll=JEon.

ߦ ,KHEnC mountfs, IAlA?J JDA F=HJEJEonI Kn@AH /dev/fs EnIJA=@ oB JDA onAI Kn@AH /dev/sdC0.

ߦ ,KHEnCJDAHAIJoBJDAEnIJ=ll=JEon,IAlA?JJDA@AB=KlJI,MDAHA=FFHoFHE=JA.

ߦ ,KHEnC FoIJ-EnIJ=ll=JEon >ooJ, =J JDA bootargs FHomFJ, JOFA !rc Jo @HoF Jo = IDAllFHomFJ.

ߦ )?JEL=JAJDAAn?HOFJA@F=HJEJEonIFHomFJIBoHF=IIMoH@: disk/cryptsetup −i /dev/sdC0/fsworm /dev/sdC0/fscache /dev/sdC0/other

ߦ 6OFA exit JoHAIKmA>ooJEnC.

ߦ )J JDA bootargs FHomFJ, AnJAH local!/dev/fs/fscache Jo ?onJEnKA >ooJEnCBHomJDAAn?HOFJA@F=HJEJEon.

Note: -n?HOFJA@ F=HJEJE=nI =HA l=HCAlO KnJAIJA@. ,=J= EnJACHEJO EI noJ CK=H=nJAA@. 7IA =J

 OoKHoMnHEIk.

-n?HOFJA@F=HJEJEonID=LAnoJ>AAnJAIJA@MEJD hjfs.

4A=@: cryptsetup(8)

 FQA 5 − Building the System from Source

5.1 − Why should I build my system from source?

5omAHA=IonIMDOOoKmECDJ=?JK=llOMEIDoHnAA@Jo>KEl@BHomIoKH?A: ߦ 7F@=JAID=LA>AAn?ommEJJA@IEn?AOoKFAHBoHmA@JDAEnIJ=ll=JEon.

ߦ 6AIJoH@ALAloFnAMBA=JKHAI.

5.2 − Building 9front from source

5.2.1 − Update sources

'BHonJKIAIDC JoIOn?DHonEzAJDAIOIJAmMEJDJDA'BHonJHAFoIEJoHO: cd / bind −ac /dist/plan9front / hg incoming hg −v pull −u

MDE?DEI?onIolE@=JA@EnJDA?omm=n@: sysupdate

1B DC HABKIAI Jo KF@=JA @KA Jo ?onBlE?JI A.C. EB OoK EnIJ=llA@ IomAJDEnC lo?=llO MDE?D M=I l=JAHEn?oHFoH=JA@EnJo'BHonJ,JDEIEI=GKE?kMoHk=HoKn@MDE?D@EI?=H@Ilo?=l?D=nCAI: hg update −C −−clean

)BJAHJDAJHAAEIKF@=JA@,HA?omFElA/>KEl@JDAKF@=JA@FHoCH=mI=InAA@A@.

 5.2.1.1 − hgrc

,KHEnC EnIJ=ll=JEon, JDA 'BHonJ MAH?KHE=l HAFoIEJoHO EI ?oFEA@ Jo /dist/plan9front/.hg, EI chmod 775, =n@ EI oMnA@ >O KIAH glenda =n@ CHoKF sys. 6o KF@=JA JDA HAFoIEJoHO MDAn loCCA@ En =I = KIAH oJDAH JD=n glenda, =@@JD=JKIAHJoCHoKF sys =@@JDAn=@@JDABolloMEnCJo $home/lib/hgrc: [trusted] users=glenda groups=glenda

6oKIAMAH?KHE=lMEJD webfs(4) EnIJA=@oB2OJDonߣI>KElJ-En0662: [extensions] hgwebfs=

Note: 6DA hgwebfs ANJAnIEon ANFA?JI loCEn ?HA@AnJE=lI Jo >A FHAIAnJ En factotum(4), AlIA MAH?KHE=l MEll =>oHJ MDAn =nO =JJAmFJ EI m=@A Jo =??AII HAIoKH?AI JD=JHAGKEHA=KJDAnJE?=JEon.6o=@@?HA@AnJE=lIJo factotum: echo ´key proto=pass realm=PAIN server=code.9front.org service=http n user=cinap_lenrek !password=FckG00gl!´ >>/mnt/factotum/ctl

Note: ,AFAn@EnC on MDo OoK =HA =n@ JDA HAFoIEJoHO >AEnC KIA@, OoKH ?HA@AnJE=lI m=O @EBBAH.

+HA@AnJE=lI m=O >A I=LA@ FAHm=nAnJlO =n@ lo=@A@ EnJo factotum =J >ooJ JEmA KIEnC FQA 8.4.7 − secstore.

5.2.2 − Building from source

Note: )mEnEmKmoB# M*4)MEInAA@A@ Jo lEnk IomA FHoCH=mI. 1B lAII JD=n # M* EI =L=El=>lA,>AIKHAJoJKHnonIM=F>ABoHA>KEl@EnC4A=@: swap(8).

# create any missing directories needed for the build cd / . /sys/lib/rootstub

# build everything cd /sys/src mk install mk clean

# build manpage indices cd /sys/man mk

# build the papers and html (optional) cd /sys/doc mk mk html

Note: *ABoHA ?HoII ?omFElEnC = kAHnAl, JDA ?omFElAH, =IIAm>lAH, lEnkAH, =n@ paqfs(4) BoH JDA J=HCAJ =H?DEJA?JKHA nAA@ Jo >A >KElJ =n@ EnIJ=llA@ 4A=@ FQA 5.2.2.1 − Cross

! compiling).

Build the kernel for 386: cd /sys/src/9/pc mk install

*KEl@JDAkAHnAlBoH=m@$": cd /sys/src/9/pc64 mk install

*KEl@JDAkAHnAlBoH=Hm/4=IF>AHHO2E: cd /sys/src/9/bcm mk ’CONF=pi’ install mk ’CONF=pi2’ install

*KEl@JDAkAHnAlBoH=Hm$"/4=IF>AHHO2E!: cd /sys/src/9/bcm64 mk install

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

5.2.2.1 − Cross compiling

6o ?HoII ?omFElA, IEmFlO IAJ JDA objtype AnLEHonmAnJ L=HE=>lA FHEoH Jo HKnnEnC JDA >KEl@..oHAN=mFlA,Jo>KEl@=llJDA=m@$">En=HEAIon=!&$IOIJAm: # create any missing directories needed for the build cd / . /sys/lib/rootstub cd /sys/src objtype=amd64 mk install

5.3 − Building an ISO

6DA'BHonJ15OEI=lELA?@JD=J=lIoIAHLAI=IEnIJ=llmA@E=.

Note: +KHHAnJlO, onlO JDA !&$ =n@ =m@$" =H?DEJA?JKHAI D=LA @oMnlo=@=>lA 15OI HFE D=I = >ooJ=>lA Em=CA. 4A=@: FQA 8.9 − Bootstrapping architectures not included on the ISO BoHmoHAEnBoHm=JEonon>ooJEnCoJDAH=H?DEJA?JKHAI.

# put your root file system into /n/src9 bind /root /n/src9

# put your hg repository there bind −ac /dist/plan9front /n/src9

# build the iso cd /sys/lib/dist mk /tmp/9front.$objtype.iso

" 5.4 − Common Problems when Compiling and Building

MoIJ oB JDA JEmA, FHo>lAmI En JDA >KEl@ FHo?AII =HA ?=KIA@ >O noJ BolloMEnC JDA =>oLA @EHA?JEonI?=HABKllO.

2AoFlA MDo ?omFl=EnA@ =>oKJ JDEI IA?JEon oB JDA .3) D=LA Io B=H noJ IK>mEJJA@ =nO­ JDEnC>AJJAH.

/oo@lK?k.

5.4.1 − Updating compilers

+D=nCAI Jo JDA ?omFElAHI m=O nA?AIIEJ=JA KF@=JEnC JDA ?omFElAH >ABoHA HA>KEl@EnC JDA HAIJoBJDAIOIJAm:

cd /sys/src/cmd/cc; mk install # choose the appropriate compiler for your architecture cd /sys/src/cmd/6c; mk install

# FQA 6 − Networking

6.1 − Before we go any further

2l=n 'ߣI =FFHo=?D Jo nAJMoHkEnC EI KnKIK=l: moIJ oFAH=JEonI ?omFHEIA HA=@EnC =n@ MHEJ­ EnC ?omFoIEnC >OJA IJHA=mI BElAI. .oH JDA >Klk oB JDEI @o?KmAnJ, EJ DAlFI EB OoK D=LAHA=@=n@=JlA=IJF=HJE=llOKn@AHIJoo@ FQA 0.1 − What is Plan 9?

NANJ,HA=@: The Organization of Networks in Plan 9

1B OoK =HA MoHkEnC MEJD =FFlE?=JEonI IK?D =I MA> IAHLAHI, .62 IAHLAHI, =n@ m=El IAHLAHI, OoKm=O>AnABEJCHA=JlO>OHA=@EnCJDA4.+I.

Note: ) I?HEFJ BoH @oMnlo=@EnC =ll JDA 4.+I EI lo?=JA@ En /lib/rfc/grabrfc. 1J ?oFEAI JDA BElAI EnJo /lib/rfc/, =n@ EJ m=O J=kA DoKHI BoH JDA I?HEFJ Jo HKn Jo ?omFlA­ JEon.

6.2 − Network configuration

*=IE? nAJMoHkEnC EI EnEJE=llO ?onBECKHA@ >O JDA EnIJ=ll=JEon FHo?AII. 0oMALAH, moHA ?om­ FlAN IAJJEnCI oH IAHLE?AI m=O >A @AIEHA@. 1n 2l=n ', nAJMoHk ?onBECKH=JEon EI oHC=nEzA@ En ndb,JDAnAJMoHk@=J=>=IA.

.Hom ndb(6): 6DAnAJMoHk@=J=>=IA?onIEIJIoBBElAI@AI?HE>EnCm=?DEnAIknoMn Jo JDA lo?=l EnIJ=ll=JEon =n@ m=?DEnAI knoMn FK>lE?lO. 6DA BElAI ?omFHEIA mKlJE-lEnA JKFlAI m=@A KF oB =JJHE>KJA/L=lKA F=EHI oB JDA BoHm =JJH=L=lKA oH IomAJEmAI jKIJ =JJH. -=?D lEnA IJ=HJEnC MEJDoKJ MDEJA IF=?A IJ=HJI = nAMJKFlA. LEnAIIJ=HJ­ EnCMEJD=HA?ommAnJI.

6DA BElA /lE>/n@>/lo?=l EI JDA HooJ oB JDA @=J=>=IA. OJDAH BElAI =HA En?lK@A@ En

$ JDA @=J=>=IA EB = JKFlA MEJD =n =JJHE>KJA-L=lKA F=EH oB =JJHE>KJA @=J=>=IA =n@ no L=lKA ANEIJI En /lE>/n@>/lo?=l. 9EJDEn JDA @=J=>=IA JKFlA, A=?D F=EH MEJD =JJHE>KJA BElA E@AnJEBEAI = BElA Jo >A En?lK@A@ En JDA @=J=>=IA. 6DA BElAI =HA IA=H?DA@EnJDAoH@AHJDAO=FFA=H. .oHAN=mFlA:

@=J=>=IA= BElA=/lE>/n@>/?ommon BElA=/lE>/n@>/lo?=l BElA=/lE>/n@>/Clo>=l

@A?l=HAI JDA @=J=>=IA Jo >A ?omFoIA@ oB JDA JDHAA BElAI /lE>/n@>/?ommon, /lE>/n@>/lo?=l, =n@ /lE>/n@>/Clo>=l. *O @AB=KlJ, /lE>/n@>/lo?=l EI IA=H?DA@ >ABoHA JDA oJDAHI. 0oM- ALAH, /lE>/n@>/lo?=l m=O >A En?lK@A@ En JDA @=J=>=IA JoHA@ABEnAEJIoH@AHEnC.

9EJDEnJKFlAI,F=EHIonJDAI=mAlEnA>En@JECDJAHJD=nF=EHIon@EBBAHAnJlEnAI.

)I mAnJEonA@, JDA EnIJ=llAH =@@I >=IE? EnBoHm=JEon =>oKJ JDA m=?DEnA Jo JDA BElA /lib/ndb/local, >=IA@ on JDA GKAIJEonI =IkA@ @KHEnC JDA EnIJ=ll=JEon. 6DEIBElAm=O >AA@EJA@Jomo@EBOoHANF=n@JDA@ABEnEJEonoBJDAlo?=lnAJMoHk.

6.2.1 − Host name

-=?D m=?DEnA on JDA nAJMoHk HA?AELAI = ?oHHAIFon@EnC IA?JEon En ndb. 6DA DoIJ n=mA DAHA=BJAHHABAHHA@Jo=I sysnameEI=IIECnA@>OIAJJEnCJDA sys= JKFlA: sys=x301

6DA HAIKlJEnC sysname EI KIA@ >O JDA /rc/bin/termrc =n@ /rc/bin/cpurc IJ=HJKF I?HEFJI, MDE?D En JKHn ?=ll KFon =nO =@@EJEon=l ?onBECKH=JEon JD=J m=O ANEIJ En /cfg/$sysname/. Look=JJDAI?HEFJIJoIAADoMJDAO@A=lMEJD /cfg.

6.2.2 − Identifying and setting up your network interfaces

NAJMoHk EnJAHB=?AI =HA HA?oCnEzA@ >O JDAEH M)+ =@@HAIIAI, MDE?D =HA E@AnJEBEA@ Jo ndb KIEnCJDA ether= JKFlA: sys=x301 ether=00226811f7dd

)@@EJEon=l JKFlAI En JDA I=mA CHoKFEnC MEll >A KIA@ Jo ?onBECKHA JDA EnJAHB=?A En GKAI­ JEon.

6.2.2.1 − WiFi

6DABolloMEnCIA?JEonIFHoLE@AEnBoHm=JEonFAHJ=EnEnCJoIFA?EBE??DEFIAJI.

4A=@: plan9.ini(8), FQA Section 3.2 − Known Working Hardware

% 6.2.2.1.1 − Interfaces

6.2.2.1.1.1 − wavelan

LK?AnJ 9=LAl=n OHEno?o 1--- & . > =n@ ?omF=JE>lA 2+M+1) ?=H@I. +omF=JE>lA ?=H@I En?lK@A JDA ,All 6HKAMo>ElA # =n@ JDA LEnkIOI 1nIJ=nJ 9EHAlAII NAJMoHk 2+ +=H@. 2oHJ=n@143@AB=KlJI=HAN &=n@!HAIFA?JELAlO.

6DAIA ?=H@I J=kA = nKm>AH oB KnEGKA oFJEonI Jo =E@ En E@AnJEBOEnC JDA ?=H@ ?oHHA?JlO on JDA & . > nAJMoHk. 6DA nAJMoHk m=O >A =@ Do? oH m=n=CA@ E.A. KIA =n =??AII FoEnJ: mode=[adhoc, managed] =n@ @AB=KlJI Jo m=n=CA@. 6DA & . > nAJMoHk Jo =JJ=?D Jo m=n=CA@ mo@A oH E@AnJEBO =I =@ Do? mo@A, EI IFA?EBEA@ >O essid=string =n@ @AB=KlJI Jo = nKll IJHEnC. 6DA ?=H@ IJ=JEon n=mA EI CELAn >O station=string =n@ @AB=KlJI Jo 2l=n ' 56). 6DA ?D=nnAl Jo KIA EI CELAn >O channel=number MDAHA nKm>AH lEAI En JDA H=nCA Jo $ En?lKIELA; JDA ?D=nnAl EI noHm=llOnACoJE=JA@=KJom=JE?=llO.

1B JDA ?=H@ EI ?=F=>lA oB An?HOFJEon, JDA BolloMEnC oFJEonI m=O >A KIA@: crypt=[off, on] =n@ @AB=KlJI Jo on. keyN=string IAJI JDA An?HOFJEon kAO N MDAHANEIEnJDAH=nCA Jo"En?lKIELAJoIJHEnC;JDEI MEll =lIo IAJ JDA JH=nImEJ kAO Jo N IAA >AloM. 6DAHA =HA JMo BoHm=JI BoH IJHEnC MDE?D @AFAn@ on JDA lAnCJD oB JDA IJHEnC. 1B EJ EI AN=?JlO # oH ! ?D=H=?JAHI lonC EJ EI =IIKmA@ Jo >A =n =lFD=nKmAHE? kAO; EB EJ EI AN=?JlO  oH $ ?D=H=?JAHI lonC JDA kAO EI =IIKmA@ Jo >A En DAN BoHm=J MEJDoKJ = lA=@EnC N. 6DA lAnCJDI =HA ?DA?kA@, =I EI JDA BoHm=J oB = DAN kAO. txkey=number IAJI JDA JH=nImEJ kAO Jo KIA Jo >A nKm>AH En JDA H=nCA Jo " En?lKIELA. 1B EJ EI @AIEHA@ Jo AN?lK@A oH En?lK@A KnAn?HOFJA@ F=?kAJI clear=[off, on] ?onBECKHAI HA?AFJEon =n@@AB=KlJIJoEn?lKIEon.

6DA @AB=KlJI =HA EnJAn@A@ Jo m=J?D JDA ?ommon ?=IA oB = m=n=CA@ nAJMoHk MEJD An?HOFJEon =n@ = JOFE?=l AnJHO MoKl@ onlO HAGKEHA, BoH AN=mFlA essid=left− armpit key1=afish key2=calledraawaru EB JDA FoHJ =n@ 143 @AB=KlJI =HA KIA@. 6DAIA oFJEonI m=O >A IAJ =BJAH >ooJ >O MHEJEnC Jo JDA @ALE?AߣI ?Jl BElA KIEnC = IF=?A =I JDA IAF=H=JoH >AJMAAn oFJEon =n@ L=lKA, A.C. echo ’key2 1d8f65c9a52d83c8e4b43f94af’ >/net/ether0/0/ctl +=H@-IFA?EBE? FoMAHm=n=CAmAnJm=O>AAn=>lA@/@EI=>lA@>O pm=[on, off]

6.2.2.1.1.2 − wavelanpci

2+1 -JDAHnAJ =@=FJAHI JD=J KIA JDA I=mA 9=LAl=n FHoCH=mmEnC EnJAHB=?A. +KHHAnJlO JDA onlOJAIJA@?=H@I=HAJDoIA>=IA@onJDA1nJAHIEl2HEIm .#?DEFIAJ.

6.2.2.1.1.3 − iwl

1nJAl 9EHAlAII 9E.E LEnk mEnE 2+1--NFHAII =@=FJAHI HAGKEHA BEHmM=HA BHom DJJF://BEHmM=HA.oFAn>[email protected]/BEHmM=HA/EMn-BEHmM=HA*.JCz Jo >A FHAIAnJ on =JJ=?D En /lib/firmware oH /boot. 6o IAlA?J JDA =??AII FoEnJ, JDA essid= =n@ bssid= F=H=mAJAHI?=n>AIFA?EBEA@=J>ooJoHIAJ@KHEnCHKnJEmAlEkA: echo essid left−armpit >/net/ether1/clone

1B >oJD essid= =n@ bssid= =HA IFA?EBEA@, >oJD mKIJ m=J?D. 5?=n HAIKlJI =FFA=H En JDA ifstats BElA=n@?=n>AHA=@oKJlEkA:

& cat /net/ether1/ifstats

)@-Do? mo@A oH 9-2 An?HOFJEon EI ?KHHAnJlO noJ IKFFoHJA@. 6o An=>lA 92)/92) An?HOFJEon,IAA wpa(8) BoH@AJ=ElI.

6.2.2.1.1.4 − rt2860

4=lEnk 6A?DnoloCO 2+1/2+1--NFHAII MEHAlAII =@=FJAHI HAGKEHA BEHmM=HA BHom DJJF://BEHmM=HA.oFAn>[email protected]/BEHmM=HA/H=l-BEHmM=HA*.JCz Jo >A FHAIAnJ on =JJ=?D En /lib/firmware oH /boot. 5AAJDAEMlIA?JEon=>oLABoH?onBECKH=JEon@AJ=ElI.

6.2.2.1.1.5 − wpi

1nJAl 24O 9EHAlAII !'"#=>C 2+1/2+1--NFHAII MEHAlAII =@=FJAHI HAGKEHA BEHmM=HA BHom DJJF://BEHmM=HA.oFAn>[email protected]/BEHmM=HA/*/MFE-BEHmM=HA*.JCz Jo >A FHAIAnJ on =JJ=?D En /lib/firmware oH /boot. 5AAJDAEMlIA?JEon=>oLABoH?onBECKH=JEon@AJ=ElI.

6.2.2.1.2 − WPA

92) /6K12=n@92) /++M2=HAIKFFoHJA@MEJDJDAKIAoBJDA wpa(8) ?omm=n@.

4A=@: wpa(8)

6.2.2.1.3 − WiFi Roaming

)I?HEFJ?=n>AKIA@Jo@On=mE?=llOHA-=IIo?E=JAMEJD=L=El=>lAMEBE=??AIIFoEnJI:

DJJF://Fl=n'.IJ=nlAOlEA>AH.?om/H?/MEBEHo=m

-N=mFlAKI=CA: @{wifiroam attwifi | aux/statusmsg −k wifiroam} &

6.2.2.1.4 − WiFi Debug

.oH ?=H@I JD=J KIA JDA MEBE l=OAH, @A>KC FHEnJI note: MEll =FFA=H on JDA ?onIolA m=O >A An=>lA@MEJD: echo debug >´#l0/ether0/clone´ # change this to suit if wifi interface is not #l0 oH>O=@@EnC debug=1 JoJDAEnJAHB=?A@ABEnEJEonEn plan9.ini.

4A=@: plan9.ini(8)

' 6.2.3 − IP address 6DA ip= JKFlAEIKIA@Jo=IIo?E=JA=n12=@@HAIIMEJDJDAm=?DEnA: sys=x301 ether=00226811f7dd ip=192.168.0.31

1B no ip= JKFlA EI FHAIAnJ, JDA >ooJ I?HEFJI MEll =JJAmFJ Jo >HEnC KF JDA EnJAHB=?A KIEnC ,0+2IAA>AloM.

6.2.4 − Default gateway

6DA @AB=KlJ C=JAM=O EI ?onBECKHA@ KIEnC JDA ipgw= JKFlA, KIK=llO Kn@AH =n ipnet= IA?JEonJD=J@ABEnAI@AB=KlJIAJJEnCIBoH=nAnJEHAIK>nAJ: ipnet=9front ip=192.168.0.0 ipmask=255.255.255.0 ipgw=192.168.0.1

>KJEJm=O=lIo>AIFA?EBEA@on=FAH-m=?DEnA>=IEI: sys=x301 ether=00226811f7dd ip=192.168.0.31 ipgw=192.168.0.1

Note: 6KFlAI En?lK@A@ En JDA @ABEnEJEon oB = m=?DEnA IKFAH?A@A JDoIA @ABEnA@ BoH JDA nAJMoHkJoMDE?DJDAm=?DEnA>AlonCI.

6.2.5 − DNS Resolution

,N5 HAIolLAHI m=O >A IFA?EBEA@ KIEnC JDA dns= JKFlA, =n@ m=O >A ?onBECKHA@ BoH =n AnJEHAnAJMoHk: ipnet=9front ip=192.168.0.0 ipmask=255.255.255.0 ipgw=192.168.0.1 dns=192.168.0.1 oHon=FAH-m=?DEnA>=IEI: sys=x301 ether=00226811f7dd ip=192.168.0.31 dns=192.168.0.1

6DAIA?D=nCAIMEllJ=kAABBA?J=BJAH=HA>ooJ.6o ?onBECKHA = ,N5 HAIolLAH on JDA BlO, EJ EI FoIIE>lAJom=nK=llOA@EJ /net/ndb: ip=192.168.0.31 ipmask=255.255.255.0 ipgw=192.168.0.1 sys=x301 dom=x301.9front dns=192.168.0.1 # add or modify dns= lines to associate the DNS # server 192.168.0.1 with the running system

Note: /net/ndb EI = IOnJDAJE? BElA JD=J HAFHAIAnJI JDA ?KHHAnJ oFAH=JEnC IJ=JA. 1J @oAI noJ FAHIEIJ =?HoII HA>ooJI, =n@ EI onlO FHA-FoFKl=JA@ MDAn IOIJAm nAJMoHkEnC M=I ?on­ BECKHA@LE=,0+2. +D=nCAIJo=>l=nk /net/ndb BElAMEllm=J?DonJDA ip= JKFlA.

4A=@: ip(3)

.En=llO,JoJKHnon@A>KCEn dns: echo −n debug >/net/dns

! 6.2.5.1 − Caching DNS server

6o HKn = ?=?DEnC ,N5 IAHLAH, mo@EBO /cfg/$sysname/termrc oH /cfg/$sysname/cpurc MDE?DALAHEI=FFHoFHE=JAJoEn?lK@AJDABolloMEnC: ndb/dns −rs

6DA?=?DEnC,N5IAHLAHMEll>AIJ=HJA@=J>ooJJEmA.

NANJ, mo@EBO /lib/ndb/local IK?D JD=J JDA @AIEHA@ m=?DEnAI MEll KIA JDA 12 =@@HAII oB JDA nAM ?=?DEnC ,N5 IAHLAH =I JDAEH ,N5 IAHLAH, AEJDAH >O ?D=nCEnC JDA dns= JKFlA Kn@AH JDA ipnet oB JDA ?oHHAIFon@EnC nAJMoHk oH >O =@@EnC = dns= JKFlA JoJDAlEnAoBA=?D@AIEHA@m=?DEnA.

4A=@: ndb(6) =n@ ndb(8)

6.2.5.2 − DNS authoritative name server

)n =KJDoHEJ=JELA @om=En n=mA HA?oH@, MEJD =IIo?E=JA@ HALAHIA-lookKF =n@ IK>- @om=EnI,lookIlEkAJDEI: dom=bell−labs.co soa= refresh=10800 ttl=10800 # serial is automatically maintained if omitted serial=2012110732 ns=ns5.he.net ns=ns4.he.net ns=ns3.he.net ns=ns2.he.net ns=nm.iawtp.com ns=pp.iawtp.com ns=mars2.iawtp.com dnsslave=slave.dns.he.net [email protected] mx=pp.inri.net pref=5 mx=nm.inri.net pref=10 mx=mars2.inri.net pref=15 txtrr="v=spf1 mx −all"

dom=125.191.107.in−addr.arpa soa= refresh=3600 ttl=3600 ns=nm.iawtp.com

dom=bell−labs.co ip=107.191.125.208

dom=www.bell−labs.co cname=bell−labs.co

)n .3,N m=O >A =IIECnA@ Jo =n ANEIJEnC m=?DEnA >O =@@EnC JDA dom= JKFlA Jo EJI @ABE­ nEJEon: sys=x301 dom=x301.bell−labs.co ether=00226811f7dd ip=192.168.0.31

Note: 6DA @nIIl=LA AnJHEAI IFA?EBO Il=LA ,N5 IAHLAHI JD=J IDoKl@ >A noJEBEA@ MDAn JDA @om=En?D=nCAI.6DAnoJEBE?=JEonIAHLE?A=lIoHAGKEHAIJDA −n Bl=C:

!  ndb/dns −nrs

4A=@: ndb(8)

6.2.5.2.1 − Troubleshooting DNS authoritative name server

)n onlEnA Jool JD=J AL=lK=JAI JDA ,N5 ?onBECKH=JEon oB = CELAn @om=En n=mA EI =L=El=>lA =J: https://intodns.com

6.2.6 − Network−wide configuration

5AJJEnCIBoH=nAnJEHAnAJMoHkIK>nAJm=O>A@ABEnA@Kn@AH=n ipnet= JKFlA: ipnet=9front ip=192.168.0.0 ipmask=255.255.255.0 ipgw=192.168.0.1 auth=192.168.0.2 authdom=9front fs=192.168.0.3 cpu=192.168.0.4 dns=192.168.0.1 dnsdomain=9front smtp=192.168.0.4

# ethernet/wifi router sys=onoff dom=onoff.9front ip=192.168.0.1

# auth server sys=auth dom=auth.9front ether=00d059b6dac8 ip=192.168.0.2 bootf=/386/9bootpxe

# cpu server sys=cpu dom=cpu.9front ether=001125149137 ip=192.168.0.4 bootf=/386/9bootpxe

# file server sys=fs dom=fs.9front ether=001641360117 ip=192.168.0.3

# terminal sys=x301 dom=x301.9front ether=00226811f7dd ip=192.168.0.31 bootf=/386/9bootpxe

6.2.7 − Activating the changes

6.2.7.1 − NIC

NAJMoHk EnJAHB=?AI =HA =KJom=JE?=llO EnEJE=lEzA@ =J >ooJ JEmA. 6o m=kA = m=nK=l ?D=nCA MEJDoKJHA>ooJEnC,KIAJDAEF?onBEC&?omm=n@: ip/ipconfig −g 192.168.0.1 ether /net/ether0 \ 192.168.0.31 255.255.255.0

!  6.2.7.2 − cs

6oHABHAIDJDAnAJMoHk@=J=>=IA NOW =BJAH?D=nCEnC /lib/ndb/local: echo −n refresh > /net/cs

6.2.7.3 − dns

echo −n refresh > /net/dns

6.2.8 − Verifying network settings % cat /net/ndb ip=192.168.0.31 ipmask=255.255.255.0 ipgw=192.168.0.1 sys=x301 dom=x301.9front auth=192.168.0.2 dns=192.168.0.1

6.2.8.1 − Checking routes % cat /net/iproute 0.0.0.0 /96 192.168.0.1 4 none − 192.168.0.0 /120 192.168.0.0 4i ifc 0 192.168.0.0 /128 192.168.0.0 4b ifc − 192.168.0.31 /128 192.168.0.31 4u ifc 0 192.168.0.255 /128 192.168.0.255 4b ifc − 255.255.255.255 /128 255.255.255.255 4b ifc 0

6.2.8.1.1 − Adding static routes

4oKJA HAGKAIJI BoH 192.168.1.0/24 JDHoKCD JDA C=JAM=O 192.168.0.99 MDE?D EJIAlBmKIJ=lHA=@O>A=??AIIE>lALE=JDAANEIJEnCnAJMoHk?onBECKH=JEon: echo ´add 192.168.1.0 255.255.255.0 192.168.0.99´ >/net/iproute

Note: M=nK=l ?onBECKH=JEonI IK?D =I JDEI m=O >A =@@A@ Jo oFJEon=l >ooJ I?HEFJI ?HA=JA@ En /cfg/$sysname/.

4A=@: ip(3)

6.2.9 − Setting up your 9front box as a forwarding gateway

4A=@: ip(3)

!! 6.2.10 − Setting up aliases on an interface

4A=@: ip(3)

6.3 − How do I filter and firewall with 9front?

No.

6.4 − Dynamic Host Configuration Protocol (DHCP)

6.4.1 − DHCP client

1n /lib/ndb/local, EB no ip= JKFlA EI FHAIAnJ En JDA m=?DEnAߣI @ABEnEJEon, JDA >ooJ I?HEFJIMEll=JJAmFJJoo>J=En=n12=@@HAIILE=,0+2.

6oo>J=En=,0+2lA=IAm=nK=llO: ip/ipconfig

4A=@: ipconfig(8)

6.4.2 − DHCP server

.Hom dhcpd(8):

!" Dhcpd runs the BOOTP and DHCP protocols. Clients use these protocols to obtain configuration information. This infor− mation comes from attribute/value pairs in the network data− base (see ndb(6) and ndb(8)). DHCP requests are honored both for static addresses found in the NDB and for dynamic addresses listed in the command line. DHCP requests are honored if either: − there exists an NDB entry containing both the ethernet address of the requester and an IP address on the originat− ing network or subnetwork. − a free dynamic address exists on the originating network or subnetwork.

A BOOTP request is honored if all of the following are true: − there exists an NDB entry containing both the ethernet address of the requester and an IP address on the originat− ing network or subnetwork. − the entry contains a bootf= attribute − the file in the bootf= attribute is readable.

Dynamic addresses are specified on the command line as a list of addresses and number pairs. For example, ip/dhcpd 10.1.1.12 10 10.2.1.70 12 directs dhcpd to return dynamic addresses 10.1.1.12 through 10.1.1.21 inclusive and 10.2.1.70 through 10.2.1.81 inclu− sive.

Dhcpd maintains a record of all dynamic addresses in the directory /lib/ndb/dhcp, one file per address. If multiple servers have access to this common directory, they will cor− rectly coordinate their actions.

Attributes come from either the NDB entry for the system, the entry for its subnet, or the entry for its network. The system entry has precedence, then the subnet, then the net− work. The NDB attributes used are: ip the IP address ipmask the IP mask ipgw the default IP gateway dom the domain name of the system fs the default Plan 9 file server auth the default Plan 9 authentication server dns a domain name server ntp a network time protocol server time a time server wins a NETBIOS name server www a World Wide Web proxy pop3 a POP3 mail server smtp an SMTP mail server bootf the default boot file; see ndb(6)

Dhcpd will answer BOOTP requests only if it has been specif− ically targeted or if it has read access to the boot file for the requester. That means that the requester must spec− ify a boot file in the request or one has to exist in NDB for dhcpd to answer. Dhcpd will answer all DHCP requests for which it can associate an IP address with the requester.

!# 6o?onBECKHA=,0+2IAHLAHonOoKHIOIJAm: mkdir /lib/ndb/dhcp =n@ JDAn mo@EBO /cfg/$sysname/cpurc oH /cfg/$sysname/termrc MDE?D­ ALAHEI=FFHoFHE=JAJoIJ=HJ dhcpd =n@ tftpd =J>ooJJEmA: ip/dhcpd

4A=@: dhcpd(8)

6.5 − PPP

4A=@:,=ElKFmo@Am?onBEC=JJDA*AllL=>I2l=n'MEkE.

6.6 − Setting up a network bridge in 9front

4A=@: bridge(3) =n@ ip(3)

6.7 − How do I boot from the network?

.EHIJ, HA=@ FQA 7.3.3 − Setting up a listener for network connections. 6DA BElA IAHLAH IDoKl@ =lHA=@O >A HKnnEnC = lEIJAnAH, =n@ =n =KJD IAHLAH IDoKl@ =lHA=@O >A ?onBECKHA@ =n@HKnnEnConJDAnAJMoHk.

6.7.1 − How do I tcp boot?

1J EI FoIIE>lA Jo >ooJ BHom lo?=l mA@E= =n@ JDAn moKnJ JDA HooJ BElA IOIJAm oLAH JDA nAJ­ MoHk. )J JDA bootargs FHomFJ, JOFA tls JDA ol@ tcp >ooJ oFJEon MEll IJEll MoHk >KJ EI noJ HA?ommAn@A@ >A?=KIA JDA ?onnA?JEon MEll noJ >A An?HOFJA@. )J JDEI FoEnJ, ip/ipconfig MEll @AJAHmEnA nAJMoHk F=H=mAJAHI KIEnC ,0+2. 9DAn BElA fs oH =KJDAnJE?=JEon auth IAHLAH 12 =@@HAIIAI ?oKl@ noJ >A @AJAHmEnA@ oLAH ,0+2 JDAn JDA >ooJ FHo?AII MEll FHomFJ BoH JDoIA. 9DAn FHomFJA@ BoH = user, AnJAH = L=lE@ KIAHn=mA =n@ F=IIMoH@ JD=J D=I =lHA=@O >AAn ?onBECKHA@ on JDA =KJD IAHLAH. 6DA m=?DEnA IDoKl@ JDAnFHo?AA@JomoKnJEJIHooJBElAIOIJAmBHomJDABElAIAHLAH.

Note: 8=lKAIBoH fs =n@ auth m=O>A=@@A@Jo plan9.ini.

4A=@: plan9.ini(8)

6.7.1.1 − Passing arguments to ipconfig at the bootargs prompt

9DAn = ,0+2 IAHLAH EI noJ =L=El=>lA, OoK m=O IJEll J?F >ooJ >O ?onBECKHEnC nAJMoHkEnC m=nK=llO =J JDA bootargs FHomFJ. -LAHOJDEnC =BJAH tcp! EI F=IIA@ =I =HCKmAnJI Jo JDA ipconfig ?omm=n@.

)JJDAFHomFJ: bootargs is (tcp, tls, il, local!device) [tcp] AnJAHIomAJDEnClEkAJDABolloMEnC:

!$ tls!−g 192.168.0.1 ether /net/ether0 192.168.0.23 255.255.255.0 MDAHA 192.168.0.1 EI JDA C=JAM=O, 192.168.0.23 EI JDA IJ=JE? 12 =@@HAII =n@ 255.255.255.0 JDAIK>nAJm=Ik.

4A=@: ipconfig(8)

6.7.2 − How do I boot using PXE?

1JEI=lIoFoIIE>lAJo2:->ooJ=IOIJAm.

OnJDABElAIAHLAH,=@@JDABolloMEnC lEnAI Jo /cfg/$sysname/cpurc Jo IJ=HJ dhcpd =n@ tftpd =J>ooJJEmA: ip/dhcpd ip/tftpd

)@@=nAnJHOBoH tftp Kn@AHJDA=FFHoFHE=JA ipnet= JKFlAEn /lib/ndb/local: ipnet=9front ip=192.168.0.0 ipmask=255.255.255.0 ipgw=192.168.0.1 auth=192.168.0.2 authdom=9front cpu=192.168.0.4 dns=192.168.0.1 dnsdomain=9front smtp=192.168.0.4 tftp=192.168.0.3

4A>ooJJDABElAIAHLAH: fshalt −r

6o ?onBECKHA m=?DEnAI JD=J MEll 2:- >ooJ BHom JDA BElA IAHLAH, A@EJ /lib/ndb/local on JDA BElA IAHLAH =n@ =@@ = bootf= >ooJ BElA JKFlA Jo JDA lEnA HAFHAIAnJEnC A=?D m=?DEnA: sys=x301 dom=x301.9front ether=00226811f7dd ip=192.168.0.31 bootf=/386/9bootpxe

.oH JDA IOIJAm x301 MA MoKl@ JDAn ?HA=JA = BElA /cfg/pxe/00226811f7dd on JDA BElAIAHLAHJoIAHLA=IEJI plan9.ini: bootfile=/386/9pc bootargs=tls nobootprompt=tls auth=192.168.0.2 fs=192.168.0.3 mouseport=ps2intellimouse monitor=vesa vgasize=1440x900x32 *acpi=1 user=sl

Note: 6DA user= F=H=mAJAH HABAHI Jo = IEnClA KIAHn=mA JD=J D=I >AAn =@@A@ >oJD Jo JDA BElA IAHLAH BoH BElA FAHmEIIEonI =I MAll =I Jo JDA =KJD IAHLAH BoH nAJMoHk =KJDAnJE?=­ JEon.

!% 1B = BElA m=J?DEnC JDA HAmoJA IOIJAmߣI M)+ =@@HAII EI noJ BoKn@ Kn@AH /cfg/pxe/, JDABElA /cfg/pxe/default EBEJANEIJIMEll>AKIA@EnIJA=@.

.En=llO, >ooJ JDA @AIEHA@ HAmoJA IOIJAmI LE= 2:-. 9DAn FHomFJA@ BoH = user, AnJAH = L=lE@ KIAHn=mA =n@ F=IIMoH@ JD=J D=I =lHA=@O >AAn ?onBECKHA@ on JDA =KJD IAHLAH. 6DA HAmoJAIOIJAmIDoKl@noMFHo?AA@Jo>ooJBHomJDABElAIAHLAH.

!& FQA 7 − System Management

7.1 − Plan 9 Services Overview

1n oH@AH Jo >A =n ABBA?JELA IOIJAm m=n=CAH EJ EI = Coo@ E@A= Jo Kn@AHIJ=n@ DoM JDA IOI­ JAmEI@AIECnA@,=n@DoMEJEIEnJAn@A@Jo>AKIA@.

) 2l=n ' EnIJ=ll=JEon ?onIEIJI oB = @EIk BElA IAHLAH, =n =KJDAnJE?=JEon IAHLAH, =n@ onA oH moHA?FKIAHLAHI=n@JAHmEn=lIߞ=llID=HEnCJDAI=mA@EIkBElAIOIJAm.

6D=J I=E@, 2l=n ' IAHLE?AI m=O >A HKn on IAF=H=JA m=?DEnAI, =ll JoCAJDAH on onA

!' m=?DEnA, oH En L=HEoKI ?om>En=JEonI. 6DA oHECEn=l @AIECn oB 2l=n ' =IIKmA@ JD=J A=?D nAJMoHk IAHLE?A MoKl@ HKn on IAF=H=JA D=H@M=HA; >O @AIECn, En@ELE@K=l ?omFonAnJI oB JDA IOIJAm =HA CAnAH=llO Kn=M=HA EB JDAO ?o-ANEIJ on JDA I=mA m=?DEnA oH =HA @EI­ JHE>KJA@=monCIJIAF=H=JAm=?DEnAI.

6DEI@o?KmAnJMEll@AI?HE>AEn@ELE@K=lIAHLE?AI=IEBJDAO=HA=llHKnnEnCIAF=H=JAlO.

4A=@: Designing Plan 9, Plan 9 From Bell Labs, The Organization of Networks in Plan 9

7.1.1 − What is the kernel?

6DA kAHnAl EI = IAHLE?A JD=J FHoLE@AI FHo?AIIAI =n@ HAIoKH?AI Jo KIAHI =?JELA on =n En@E­ LE@K=lm=?DEnA.-LAHO2l=n'm=?DEnA>ooJI=kAHnAl.

)J >ooJ JEmA JDA kAHnAl J=kAI on JDA E@AnJEBO oB $user JDA KIAH MDo loCI En =J JDA ?on­ IolA, MDE?D >A?omAI JDA hostowner oB JDA IOIJAm. 6DA hostowner En JKHn . ?on­ JHolI =??AII Jo JDA kAHnAlߣI HAIoKH?AI, . IAHLAI =I JDA =KJD E@AnJEJO authid oB JDA m=?DEnA=n@JDAIAHLE?AIEJFHoLE@AI.

Note: 6DA hostowner @EBBAHI BHom JDA ?on?AFJ oB root on = 7N1: IOIJAm, MDAHA = IEnClA KIAH root m=O J=kA ?onJHol oB =ll FHo?AIIAI and BElAI on JDA IOIJAm. *O ?onJH=IJ, ALAn JDA hostowner oB = 2l=n ' BElA IAHLAH ?=nnoJ LEol=JA BElA FAHmEIIEonI on JDA BElA IAHLAH, AN?AFJ MDAn FAHmEIIEonI ?DA?kEnC EI @EI=>lA@ on JDA ?onIolA oH MDAn AnJAHEnC IFA?E=l ?omm=n@I =J JDA ?onIolA oB JDA BElA IAHLAH. 6DA hostowner ?onJHolI onlO JDA processes HKnnEnC on JDAlo?=lm=?DEnA.6DEIBKn@=mAnJ=lIAF=H=JEon>AJMAAn?onJHoloB FHo?AIIAI =n@ BElA FAHmEIIEonI EI ANFloEJA@ JDHoKCDoKJ JDA 2l=n ' IOIJAm, >KJ ?=n >A ?onBKIEnCBoHKIAHI?omEnCBHom=7N1:>=?kCHoKn@.

7.1.2 − What is the file server?

1n = JH=@EJEon=l 2l=n ' nAJMoHk JDAHA EI onA @EIk BElA IAHLAH, JOFE?=llO JDA onlO m=?DEnA MEJD = FDOIE?=l D=H@ @EIk, JD=J IAHLAI BElAI Jo =ll oJDAH m=?DEnAI on JDA nAJMoHk. 1n moIJ ?=IAI, oJDAH m=?DEnAI =HA AEJDAH @EIklAII oH onlO KIA JDAEH @EIkI BoH lo?=l ?=?DEnC. KAn 6DomFIonߣI oHECEn=l 2l=n ' BElA IAHLAH H=n = KnEGKA, IFA?E=l-FKHFoIA kAHnAl JD=J only IAHLA@ BElAI, =n@ MDoIA ?onBECKH=JEon ?oKl@ onlO >A ?D=nCA@ =J JDA ?onIolA. 1n 'BHonJ, JDA BElA IAHLAH HKnI = noHm=l kAHnAl =n@ JOFE?=llO =lIo HKnI =I = ?FK IAHLAH BoH HAmoJA =??AII.

'BHonJ IKFFoHJI JMo @EBBAHAnJ @EIk BElA IOIJAmI BoH KIA on JDA BElA IAHLAH: cwfs =n@ hjfs. cwfs EI = KIAHIF=?A FoHJ oB KAn 6DomFIonߣI oHECEn=l 2l=n ' BElA IAHLAH. hjfs EI = nAM, ANFAHEmAnJ=l BElA IAHLAH JD=J IJoHAI >oJD JDA ?=?DA =n@ MoHm on = IEnClA F=HJE­ JEon =n@ JDKI HAGKEHAI lAII @EIk IF=?A Jo >A KIA@ ABBA?JELAlO. *oJD =HA HA=Ion=>lO Ho>KIJ.

4A=@: The Plan 9 File Server @AFHA?=JA@, >KJ F=HJE=llO =FFlEAI Jo cwfs, cwfs(4), hjfs(4)

Note: 5En?A moIJ 2l=n ' IOIJAmI D=LA no @EIk, IA?KHEJO oB JDA BElA IAHLAH EI l=HCAlO FHo­ JA?JA@ BHom >HA=?DAI oB IA?KHEJO En EJI ?lEAnJI. 6DA BAMAH JDA FHoCH=mI JD=J HKn on JDA BElAIAHLAH,JDAmoHAEIol=JA@EJ?=n>ABHomIA?KHEJODolAIEnFHoCH=mI.

Note: 7IAHI IAAkEnC =??AII Jo JDA BElA IAHLAH mKIJ >A =@@A@ =I = KIAH on JDA BElA IOIJAm

" EJIAlB,=n@,EB=KJDEIAn=>lA@,=@@A@JoJDA=KJDIAHLAHߣIKIAH@=J=>=IA.

Note: 5omA KIAHI ?DooIA Jo HKn HAmoJA ?FK oH =KJD IAHLAHI =I IJ=n@-=lonA IOIJAmI, A=?D MEJD JDAEH oMn lo?=l @EIk BElA IOIJAmI. 6DA @EIJEn?JEon >AJMAAn =ll JDAIA JOFAI oB IOIJAmI EI BKzzO =n@ ?=n >A?omA ALAn BKzzEAH =I IAHLE?AI =HA An=>lA@ =n@ @EI=>lA@ En @EBBAHAnJ?om>En=JEonI.

7.1.3 − What is the auth server?

6DA =KJD IAHLAH m=n=CAI =KJDAnJE?=JEon BoH =n AnJEHA 2l=n ' nAJMoHk. 1J >ooJI = noHm=l kAHnAl >KJ EI KIK=llO HKn on = IAF=H=JA, @EIklAII m=?DEnA JD=J FAHBoHmI no oJDAH BKn?­ JEonI, En oH@AH Jo HA@K?A JDA @=nCAH oB = IA?KHEJO >HA=?D ?omFHomEIEnC EJI kAHnAl FHo­ ?AIIAI. 6D=J I=E@, JDA =KJD IAHLAH EI KIK=llO =lIo ?onBECKHA@ =I = ?FK IAHLAH, BoH HAmoJA =??AII.

Note: 6DA cron(8) IAHLE?A IDoKl@ >A HKn onlO on JDA =KJD IAHLAH, MDAHA EJ ?=n =KJDAn­ JE?=JAEJIAlBJo=??AII=nOoBJDAoJDAHm=?DEnAIonJDAnAJMoHk.

4A=@: Security in Plan 9, auth(8)

7.1.4 − What is the cpu server?

6DA ?FK IAHLAH EI KIA@ BoH HAmoJA ?omFKJ=JEon. ) ?FK IAHLAHߣI kAHnAl HKnI FHo?AIIAI En EIol=JEon, on onlO JD=J m=?DEnA. 6DA >ooJ FHo?AII oB = ?FK IAHLAH @ABEnA@ =I IK?D >O IAJJEnC service=cpu En JDA m=?DEnAߣI plan9.ini oH AGKEL=lAnJ m=O >A AN=mEnA@ >O HA=@EnC JDA /rc/bin/cpurc I?HEFJ, MDE?D EI ANA?KJA@ =J >ooJ JEmA. 4KnnEnC =I = ?FK IAHLAH ?=KIAI JDA kAHnAl Jo =@jKIJ ?AHJ=En HAIoKH?A L=lKAI JD=J KlJEm=JAlO @AJAHmEnA JDA >AD=LEoH oB JDA m=?DEnA. .oH AN=mFlA, JDA cpurc I?HEFJ IJ=HJI ?AHJ=En FHoCH=mI onlOEBJDAm=?DEnAEIHA?oCnEzA@=I=?FKIAHLAH.

+ommon KIA ?=IAI BoH = IAF=H=JA ?FK IAHLAH =HA: 6o ANA?KJA FHoCH=mI ?omFElA@ BoH = @EBBAHAnJ =H?DEJA?JKHA JD=n JD=J oB JDA JAHmEn=l; 6o ANA?KJA FHoCH=mI ?loIAH Jo JDA @=J= JDAO =HA oFAH=JEnC KFon BoH AN=mFlA, EB JDA JAHmEn=l EI HKnnEnC oLAH = IloM lEnk >KJ JDA ?FK IAHLAH EI on JDA I=mA AJDAHnAJ IACmAnJ =I JDA BElA IAHLAH; 6o ANA?KJA FHo?AIIAI En FDOIE?=l EIol=JEon BHom oJDAH FHo?AIIAI. 1n JDA A=HlO @=OI oB 2l=n ', = ?FK IAHLAH M=I oBJAn IECnEBE?=nJlO moHA FoMAHBKl JD=n JDA oBJAn, IFA?E=l-FKHFoIA D=H@M=HA KIA@ BoH @EIklAII JAHmEn=lI. 6o@=O, JAHmEn=lI =HA JOFE?=llO FoMAHBKl ?omFKJAHI En JDAEH oMn HECDJ, =n@ JDA nAA@ BoH = IAF=H=JA m=?DEnA HKnnEnC onlO =I = ?FK IAHLAH EI lAII ?ommon. 6D=J I=E@, EJ ?=n >A KIABKl Jo ANA?KJA KnIJ=>lA oH KnFHA@E?J=>lA FHoCH=mI on = IAF=H=JA m=?DEnA Io JD=J BHAGKAnJlO ?H=IDEnC =n@/oH HA>ooJEnC @oAI noJ =BBA?J onAߣI EmmA@E=JA MoHkIF=?A AnLEHonmAnJߞAIFA?E=llO MDAn JAIJEnC nAM ?o@A. 1n JDA ?=IA oB HAmoJA m=El, MA>,AJ?.IAHLAHI,EJEI=lIolEkAlOJD=J?FK=??AIIMoKl@>A@AIEHA@.

1n FH=?JE?A, JDA @EIk BElA IAHLAH, JDA =KJD IAHLAH, =n@ ALAn IomA JAHmEn=lI MEll oBJAn HKn JDAEH oMn ?FK lEIJAnAHI, Jo An=>lA HAmoJA =??AII Jo JDA FHo?AIIAI ?onJHollA@ >O JDAEH kAHnAlI.

Note: 7IAHI IAAkEnC =??AII Jo = ?FK IAHLAH mKIJ BEHIJ >A =@@A@ on JDA BElA IOIJAm oB JDA ?FK IAHLAHߣI ?oHHAIFon@EnC BElA IAHLAH BoH FAHmEIIEon Jo =??AII =n@ mo@EBO BElAI =I MAll =IJDAKIAH@=J=>=IAoBEJI@AIECn=JA@=KJDIAHLAHBoHloCEn=KJDAnJE?=JEon.

4A=@: The Organization of Networks in Plan 9, cpu(1), exportfs(4)

"  7.1.5 − What is a terminal?

6DA JAHmEn=l EI JDA m=?DEnA =J MDE?D JDA 2l=n ' KIAH EI moIJ oBJAn FDOIE?=llO lo?=JA@. 7IK=llO @EIklAII, JDA JAHmEn=l MEll =lmoIJ =lM=OI HKn MEJD CH=FDE?I An=>lA@ BoH l=Kn?D­ EnC JDA rio /71 oH oJDAH CH=FDE?=l FHoCH=mI. 6DA >ooJ FHo?AII oB = JAHmEn=l @ABEnA@ =I IK?D >O IAJJEnC service=terminal En JDA m=?DEnAߣI plan9.ini oH AGKEL=lAnJ m=O >A AN=mEnA@ >O HA=@EnC JDA /rc/bin/termrc I?HEFJ, MDE?D EI ANA?KJA@ =J >ooJ JEmA.

Note: M=nO 2l=n ' KIAHI HKn IJ=n@-=lonA IOIJAmI JD=J oFAH=JA ߞ ABBA?JELAlO ߞ =I = ?om>EnA@ JAHmEn=l =n@ BElA IAHLAH. .oH AN=mFlA, EnIE@A = LEHJK=l m=?DEnA IK?D =I GAmK, oH >ooJA@ BHom D=H@ @EIk on = l=FJoF. 1n JDEI ?=IA JDA 2l=n ' nAJMoHk EI AnJEHAlO IAlB- ?onJ=EnA@, HKnnEnC onA kAHnAl on onA m=?DEnA, MDE?D HAn@AHI =KJD =n@ ?FK IAHLE?AI IKFAHBlKoKI. 6DEI ?onBECKH=JEon JH=@AI IomA oB JDA EnDAHAnJ IA?KHEJO oB IAF=H=JA D=H@­ M=HA =n@ kAHnAl >oKn@=HEAI BoH JDA ?onLAnEAn?A oB ?om>EnEnC JDA MDolA IOIJAm EnJo = IEnClA,>ooJ=>lAEnIJ=n?A.

Note: 6AHmEn=l KIAHI MDo @o noJ HKn IJ=n@-=lonA m=?DEnAI oH MDo MEID Jo =??AII 2l=n ' nAJMoHk HAIoKH?AI mKIJ BEHIJ >A =@@A@ Jo JDA BElA IOIJAm oB JDA nAJMoHkߣI BElA IAHLAH, =n@JoJDAKIAH@=J=>=IAoBJDAnAJMoHkߣI=KJDIAHLAH.

7.2 − Kernel configuration and maintenance

7.2.1 − How do I mount the 9fat partition?

'BHonJ D=I @onA =M=O MEJD JDA I?HEFJI 9fat:, c:, =n@ Io BoHJD, JD=J =HA BoKn@ En JDA *AllL=>I2l=n'@EIJHE>KJEon.1nIJA=@,KIAJDA 9fs I?HEFJJomoKnJJDA'B=JF=HJEJEon: 9fs 9fat

1BOoK=HAnoJ=JJDA?onIolA,oHEB #S D=InoJ=lHA=@O>AAn>oKn@oLAH /dev: bind −b ´#S´ /dev # bind the local hard drive kernel device over /dev 9fs 9fat /dev/sdXX/9fat # specify the full path to the corresponding 9fat

Note: 9fs 9fat FoIJI=BElA@AI?HEFJoHEn /srv/dos. 1BJDEI BElA =lHA=@O ANEIJI =n@ EI =lHA=@O En KIA, 9fs 9fat MEll B=El. 1B no oJDAH FHo?AII EI KIEnC JDA BElA EJ EI I=BA Jo IEmFlOHAmoLAEJ=n@HKn 9fs 9fat =C=En.

4A=@: dossrv(4)

7.2.2 − How do I modify plan9.ini?

MoKnJJDA 9fat F=HJEJEon=n@JDAnA@EJJDABElA /n/9fat/plan9.ini.

Note: 6DABElAmKIJAn@MEJD=nAMlEnA.

4A=@: plan9.ini(8)

"  7.2.3 − Kernel configuration file

KAHnAl ?onBECKH=JEon BElAI =HA IJoHA@ En JDA kAHnAl @EHA?JoHO =n@ ID=HA JDA n=mA oB JDA kAHnAl Jo MDE?D JDAO =FFlO. .oH AN=mFlA, JDA ?onBECKH=JEon BElA BoH JDA pc kAHnAl EI /sys/src/9/pc/pc.

7.2.4 − Kernel drivers

KAHnAl @HELAH IoKH?A BElAI =HA lo?=JA@ En JDA kAHnAl IoKH?A @EHA?JoHO. .oH AN=mFlA, JDA pc kAHnAlIoKH?AEIlo?=JA@En /sys/src/9/pc.

7.2.5 − How do I install a new kernel?

6o>KEl@=n@EnIJ=llJDAnAMkAHnAlIonJDABElAIOIJAm:

.oH!&$: cd /sys/src/9/pc mk install # kernel is copied to /386/9pc

.oH=m@$": cd /sys/src/9/pc64 mk install # kernel is copied to /amd64/9pc64

.oH=Hm/>?m4=IF>AHHO2E,AJ?.: cd /sys/src/9/bcm mk install # kernel is copied to /arm/9pi2

.oH=Hm$"/>?m$"4=IF>AHHO2E!: cd /sys/src/9/bcm64 mk install # kernel is copied to /arm64/9pi3

.oH !&$ =n@ =m@$" m=?DEnAI MEJD lo?=l @EIk, EJ m=O >A @AIEHA@ Jo EnIJ=ll JDA nAM >ooJ­ lo=@AH =n@ kAHnAlI onJo JDA 9fat F=HJEJEon, En oH@AH Jo >ooJ @EHA?JlO BHom @EIk. Note: 6DA >ooJlo=@AH nAA@I Jo >A ?onJEnKoKI on @EIk, Io IEmFlO ?oFOEnC oLAH JDA oHECEn=l BElA @oAInoJFHo@K?AJDA@AIEHA@ABBA?J.1nIJA=@: 9fs 9fat rm /n/9fat/9bootfat cp /386/9bootfat /n/9fat/ chmod +al /n/9fat/9bootfat # defrag magic

JDAn?oFOJDA@AIEHA@kAHnAlI:

.oH!&$: cp /386/9pc /n/9fat/

.oH=m@$":

"! cp /amd64/9pc64 /n/9fat/

.En=llO, EB = @EBBAHAnJ kAHnAl EI >AEnC EnJI=llA@ JD=n JDA onA ?KHHAnJlO HKnnEnC, A@EJ plan9.ini =n@?D=nCA bootfile JoFoEnJJoJDAnAMkAHnAl.

4A=@: FQA 7.2.2 − How do I modify plan9.ini?

7.3 − Fileserver configuration and maintenance

7.3.1 − Adding users

)@@=nAMKIAHonJDABElAIAHLAH:

.oH cwfs: echo newuser username >>/srv/cwfs.cmd

.oH hjfs: echo newuser username >>/srv/hjfs.cmd

1BnAA@A@,m=kAJDAnAMKIAH=mAm>AHoB=noJDAHCHoKFAN=mFlA:KF=I:

.oH cwfs: echo newuser upas +username >>/srv/cwfs.cmd

.oH hjfs: echo newuser upas +username >>/srv/hjfs.cmd

*oJD BElA IAHLAHI IJoHA JDAEH KIAH @=J=>=IA En /adm/users. -N=mEnA JDEI BElA, =n@ JDA ?onJAnJIoBJDA /usr @EHA?JoHO,JoAL=lK=JAIK??AII.

Note: 1JEI=lIoFoIIE>lAJo=??AIIJDA?onJHolBElAEnJAH=?JELAlO:

.oH cwfs: con −C /srv/cwfs.cmd

.oH hjfs: con −C /srv/hjfs.cmd

.HomDAHA?omm=n@Im=O>AAnJAHA@@EHA?JlO.

6OFA Ctrl−\ JoHAIKmAJDA con FHomFJ,BolloMA@>O q JoGKEJ.

Note: NAM KIAHI =HA ?HA=JA@ MEJDoKJ = FHoBElA, m=El @EHA?JoHO, JmF @EHA?JoHO nAA@A@ Jo A@EJ BElAI MEJD sam oH oJDAH ?onBA?JEonI. 6o EnIJ=ll = @AB=KlJ FHoBElA BoH =nAMKIAH,KFon BEHIJloCEn=IJD=JKIAH,HKn:

"" /sys/lib/newuser JDAn A@EJ /usr/username/lib/profile Jo OoKH oMn IFA?EBE?=JEonI. 6DA newuser BElA IOIJAm ?omm=n@ EI @AI?HE>A@ En JDA m=n F=CAI fs(8) BoH cwfs =n@ hjfs(8). 6DA@AB=KlJIOIJAm /lib/namespace @oAIJDABolloMEnC: bind −c /n/other/usr/$user/tmp /usr/$user/tmp .oH cwfs KIAHI, EJ m=O >A @AIEH=>lA Jo IJoHA JDA KIAHߣI tmp @EHA?JoHO on JDA other F=HJEJEon: mkdir /n/other/usr/$user/tmp

7.3.2 − Configuring nvram

6DA ?FK kAHnAl ?DA?kI JDA nvram BElA BoH L=lE@ =KJD ?HA@AnJE=lI =n@ =JJAmFJI Jo ?oFO JDAm EnJo factotum Io JD=J JDA m=?DEnA m=O >ooJ MEJDoKJ m=nK=l EnJAHLAnJEon. 6o ?onBECKHA JDA nvram, HKn JDA ?omm=n@ auth/wrkey, MDE?D MEll FHomFJ BoH =n authid, authdom, secstore key, =n@ password. 6DA authid EI = IOnonOm BoHJDA hostowner oBJDAm=?DEnA=n@IDoKl@>A=L=lE@KIAHJD=JD=I =lHA=@O >AAn oH MEll >A =@@A@ Jo JDA ?oHHAIFon@EnC =KJD IAHLAH, En JDEI ?=IA glenda. 6DA authdom EI JDA =KJDAnJE?=JEon @om=En BoH JDA m=?DEnA, En JDEI ?=IA 9front. 6DA secstore key =n@ password =HA IA?HAJ F=IIMoH@I oB AECDJ ?D=H=?JAHI oH moHA En lAnCJD. 6DA password EI JDA F=IIMoH@ >AlonCEnC Jo JDA authid KIAH on JDA =KJD IAHLAH HAIFonIE>lA BoH JDA authdom AnJAHA@ =>oLA. 6DA secstore key EI JDA F=IIMoH@ oB JDA KIAH on JDA IA?KHA-IJoHA IAHLAH 4A=@: FQA 7.4.3 − secstored). 1B JDA secstore ?lEAnJ 4A=@: FQA 8.4.7 − secstore) EI noJ >AEnC KIA@ on JDEI m=?DEnA BoH AN=mFlA, EB JDEI EI JDA =KJD IAHLAH MDAHA secstored MEll HKn, jKIJ DEJ enter =J JDA secstore key: FHomFJ.

4KnJDA?omm=n@ auth/wrkey: bad nvram key bad authentication id bad authentication domain # You may not see these errors. authid: glenda authdom: 9front secstore key: [glenda’s secstore password] password: [glenda’s password]

6o AnIKHA JD=J JDA ?oHHA?J nLH=m F=HJEJEon EI BoKn@ En =ll ?=IAI, =n nvram lEnA IDoKl@ >A=@@A@Jo /n/9fat/plan9.ini. nvram=#S/YOURDRIVE/nvram

Note: *ooJEnC JDA BElA IOIJAm MEJD =KJDAnJE?=JEon An=>lA@ =n@ =n EnL=lE@ nvram BElA MEll ?=KIA auth/wrkey Jo>AHKn=KJom=JE?=llO=JIJ=HJKF.

4A=@: auth(8)

7.3.3 − Setting up a listener for network connections

1n oH@AH BoH HAmoJA m=?DEnAI Jo moKnJ JDA BElA IOIJAm oB JDA BElA IAHLAH, JDA BElA IAHLAH mKIJ BEHIJ >A HKnnEnC = nAJMoHk lEIJAnAH. 6DEI IA?JEon @AJ=ElI JDA IJAFI HAGKEHA@ Jo JH=nI­ BoHm = JAHmEn=l MEJD @EIk JDA HAIKlJ oB = @AB=KlJ EnIJ=ll oB 'BHonJ EnJo = @EIk BElA IAHLAH

"# BoHoJDAHm=?DEnAI.

6DA BEHIJ IJAF EI Jo IMEJ?D BHom JDA JAHmEn=l IAHLE?A Jo JDA ?FK IAHLE?A >O A@EJEnC JDA service lEnAEn /n/9fat/plan9.ini: service=cpu

4A=@: FQA 7.2.2 − How do I modify plan9.ini?

*ABoHA HA>ooJEnC, ?onBECKHA JDA nLH=m: FQA 7.3.2 − Configuring nvram. 6DEI =lloMI JDA m=?DEnA Jo lo=@ =KJD ?HA@AnJE=lI BHom JDA nvram BElA EnJo factotum, Io JD=J EJ ?=n ?onJEnKAJo>ooJMEJDoKJm=nK=lEnJAHLAnJEon.

4A>ooJ: fshalt −r

6DA nANJ IJAF on ?MBI; noJ nAA@A@ on DjBI EI Jo An=>lA =KJDAnJE?=JEon on JDA BElA IAHLAH, Jo FHALAnJ Kn=KJDoHEzA@ KIAHI BHom =??AIIEnC JDA @EIk oLAH JDA nAJMoHk. )J JDA bootargs FHomFJ, HAJOFA JDA @AB=KlJ =n@ =@@ JDA −c Bl=C Jo AnJAH JDA BElA IAHLAHߣI ?onBEC mo@A. )J JDA config FHomFJ, JOFA noauth JME?A Jo JoCClA =KJDAnJE?=JEon on JDABElAIAHLAH..En=llO,JOFA end Jo?onJEnKAMEJDJDA>ooJFHo?AII: bootargs is (tcp, local!device) [local!/dev/sdXX/fscache] local!/dev/sdXX/fscache −c config: noauth auth is now disabled config: noauth auth is now enabled config: end

6DAm=?DEnAMEllnoM?onJEnKAJo>ooJ.

On?A >ooJA@, JDA nANJ IJAF EI Jo ?onBECKHA JDA BElA IAHLAH Jo lEIJAn BoH ?onnA?JEonI BHom HAmoJADoIJI.Mo@EBOJDA bootargs oBJDABElAIAHLAHEn /n/9fat/plan9.ini:

.oH?MBI: bootargs=local!/dev/sdXX/fscache −a tcp!*!564

.oHDjBI: bootargs=local!/dev/sdXX/fs −m 702 −A −a tcp!*!564

Note: 6DA −m 702 Bl=C BoH hjfs =llo?=JAI % mAC=>OJAI oB mAmoHO Jo >A KIA@ =I = ?=?DA. 6DEI L=lKA EI JOFE?=llO =KJom=JE?=llO ?=l?Kl=JA@ >O JDA 'BHonJ EnIJ=llAH, =n@ m=O @EBBAH on OoKH IOIJAm. 6DAHA EI no nAA@ Jo ?D=nCA MD=JALAH @AB=KlJ M=I =lHA=@O ?onBECKHA@.

4A=@: FQA 7.2.2 − How do I modify plan9.ini?

4A>ooJJDABElAIAHLAH: fshalt −r

"$ 9DAn JDA IOIJAm BEnEIDAI >ooJEnC EJ IDoKl@ noM >A lEIJAnEnC BoH nAJMoHk ?onnA?JEonI Jo JDA BElA IOIJAm. 7IAHI MDo D=LA >AAn =@@A@ Jo JDA BElA IAHLAH =n@ JDA =KJD IAHLAH IDoKl@ noM>A=>lAJo=KJDAnJE?=JA=n@moKnJJDABElAIAHLAHJ?F>ooJ,AJ?..

4A=@: cwfs(4), hjfs(4), FQA 6.7.1 − How do I tcp boot?

"% 7.3.3.1 − Stop cwfs from allowing user none to attach without authentication

echo nonone >>/srv/cwfs.cmd

7.3.3.1.1 − notes on user none

/sys/src/9/port/chan.c:1321,1335

"& Date: Fri, 22 Jan 2021 15:44:05 −0800 From: Anthony Martin To: [email protected] Subject: [9front] notes on user none Reply−To: [email protected]

I remembered investigating the restrictions on user none in the past so I went and dug out my notes. They’re only applicable to fossil and cwfs, though, so someone else will have to go through the hjfs code to compare.

The notes are attached below.

Cheers, Anthony

# from /sys/doc/9.ms Finally, a special user called none has no password and is always allowed to connect; anyone may claim to be none. None has restricted permissions; for example, it is not allowed to examine dump files and can read only world−readable files.

# from /sys/doc/auth.ms Factotum is the only process that needs to create capabilities, so all the network servers can run as untrusted users (e.g., Plan 9’s none or Unix’s nobody), which greatly reduces the harm done if a server is buggy and is compromised.

# kernel − documented − anyone can become none with none(8) − undocumented − eve can change the owner of proc(3) files to none − none cannot use proc(3) to view or modify the state of other processes − none cannot create shr(3) files on 9front

# cwfs(4) and fossil(4) − documented − none cannot authenticate a connection − auth(5) with "none" returns Rerror − none can be chaperoned on authenticated connections − attach(5) with afid NOFID sets uname to "none" − none has minimal access permissions (i.e. "world" or "other") − users in the "noworld" group are denied world access permissions − undocumented − none cannot be a group leader − wstat(5) is limited

# fossil(4) − documented − none cannot attach to an unauthenticated connection − unless the −N flag is given to listen or srv − users not in the "write" group cannot modify the file system − unless the group doesn’t exist − undocumented − none cannot modify file status information − wstat(5) returns Rerror

"' # cwfs(4) − documented − none *can* attach to an unauthenticated connection − unless the nonone flag is set on 9front (undocumented) − undocumented − none cannot attach to the dump file system − attach(5) returns Rerror

7.3.4 − Mounting a file system from userspace

.oH?MBI: # use the correct path to your fscache % cwfs64x −n fs −f /dev/sdE0/fscache % mount /srv/fs /n/fs

Note: Running the above commands will post the file systems’s console in /srv/fs.cmd.

.oHDjBI: # use the correct path to your fs partition % hjfs −n hjfs −f /dev/sdE0/fs % mount /srv/hjfs /n/hjfs

7.3.5 − dump

7.3.5.1 − manually trigger the dump

)I hostowner,

.oH?MBI: % echo dump >>/srv/cwfs.cmd

.oHDjBI: % echo dump >>/srv/hjfs.cmd

7.4 − Auth server configuration and maintenance

7.4.1 − Configuring an auth server

6DA=KJD IAHLAH IDoKl@ >A >ooJA@ MEJD service=cpu En plan9.ini, =n@ ndb mo@E­ BEA@Jo=IIo?E=JAJDAnAM=KJDIAHLAHMEJDJDA@AIEHA@ authdom.

1B JDA ?FK IAHLAH m=?DEnA >ooJI BHom = lo?=l @EIk, A@EJ JDA service lEnA En En /n/9fat/plan9.ini:

# service=cpu

4A=@: FQA 7.2.2 − How do I modify plan9.ini?

1B JDA m=?DEnA >ooJI LE= 2:-, A@EJ JDA service lEnA En En JDA BElA Kn@AH /cfg/pxe/ JD=J?oHHAIFon@AIJoEJIM)+=@@HAII.1nJDEI?=IA, /cfg/pxe/000c292fd30c: service=cpu

Note: 6DA ?onJAnJI oB /cfg/pxe/000c292fd30c IAHLAI =I JDA AGKEL=lAnJ oB plan9.ini BoH JDA 2:- >ooJA@ m=?DEnA. )nO oJDAH IAJJEnCI JD=J MoKl@ noHm=llO >A ?onBECKHA@En plan9.ini m=O=lIo>AAnJAHA@JDAHA.

NANJ, ndb mKIJ >A mo@EBEA@ Jo =IIo?E=JA JDA nAM =KJD IAHLAH MEJD JDA @AIEHA@ authdom. )IIKmEnC JDA =KJD IAHLAH D=I = M)+ =@@HAII oB 00:0c:29:2f:d3:0c, =n 12 =@@HAII oB 192.168.0.2, =n@ = @AB=KlJ C=JAM=O/,N5 IAHLAH oB 192.168.0.1 JD=J =HA =ll on JDA +l=II + nAJMoHk 192.168.0.0/24, =n@ JD=J JDA authdom EI 9front, A@EJ /lib/ndb/local =n@ =@@ JDA authdom =n@ JDA =KJD IAHLAHߣI 12 Kn@AHJDA?oHHAIFon@EnC ipnet: ipnet=9front ip=192.168.0.0 ipmask=255.255.255.0 ipgw=192.168.0.1 auth=192.168.0.2 # add auth server’s ip authdom=9front # add authdom fs=192.168.0.3 cpu=192.168.0.4 dns=192.168.0.1 dnsdomain=9front smtp=192.168.0.4

4A=@: ndb(6)

*ABoHA HA>ooJEnC, ?onBECKHA JDA nLH=m: FQA 7.3.2 − Configuring nvram. 6DEI =lloMI JDA m=?DEnA Jo lo=@ =KJD ?HA@AnJE=lI BHom JDA nvram BElA EnJo factotum, Io JD=J EJ ?=n ?onJEnKAJo>ooJMEJDoKJm=nK=lEnJAHLAnJEon.

Note: 1B JDA =KJD IAHLAHߣI hostowner HABAHHA@ Jo =I authid En JDA auth/wrkey @E=loCKA MEll >A =nO oJDAH KIAH JD=n JDA @AB=KlJ glenda, JD=J KIAH mKIJ >A =KJDoHEzA@ En JDA =KJD ?onJANJ Jo IFA=k BoH oJDAH KIAHI. )IIKmEnC = DoIJoMnAH oB sl, =@@ = HKlA Jo /lib/ndb/auth: hostid=sl uid=!sys uid=!adm uid=* 6DEIHKlA=lloMIJDAKIAH sl JoIFA=kBoH=llKIAHI except for sys =n@ adm.

4A=@: auth(8)

4A>ooJ: fshalt −r

)J >ooJ JEmA, JDA IDAll I?HEFJ /rc/bin/cpurc ?onIKlJI ndb Jo @AJAHmEnA EB JDA m=?DEnA EI =n =KJD IAHLAH. 1B EJ EI, JDA I?HEFJ MEll l=Kn?D JDA keyfs FHo?AII =n@ IJ=HJ lEI­ JAnAHI BoH =KJD ?onnA?JEonI. 1B, =BJAH >ooJEnC, keyfs EI noJ HKnnEnC, IomAJDEnC MAnJ MHonC.

#  .En=llO, ?HA=JA =n =KJD KIAH =n@ ?onBECKHA =n =KJD F=IIMoH@ BoH JDA DoIJoMnAH oB JDA m=?DEnA. 6DEI =KJD KIAH IDoKl@ >A JDA I=mA n=mA =I JDA authid JD=J M=I AnJAHA@ =J >ooJ JEmA @KHEnC JDA auth/wrkey @E=loCKA. LEkAMEIA, IAJ JDA password Jo m=J?D JDA password JD=J M=I AnJAHA@ @KHEnC JDA auth/wrkey @E=loCKA. Note: 1B JDA KIAH =n@ F=IIMoH@ @o noJ m=J?D MD=J M=I AnJAHA@ @KHEnC JDA auth/wrkey @E=loCKA, KIAHI MEllnoJ>A=>lAJo=KJDAnJE?=JAKIEnCJDEI=KJDIAHLAH.

4A=@: FQA 7.4.2 − Adding users

7.4.1.1 − Avoiding an ndb entry for the auth server

1B =n =KJD IAHLAH BoH = CELAn authdom EI noJ BoKn@ En JDA lo?=l ndb, JDAn JDA authdial() BKn?JEon BHom JDA libauthsrv lE>H=HO KIA@ BoH HAIolLEnC =KJD IAHLAHI MEll @AB=KlJ Jo JDA @nI DoIJ n=mA p9auth.example.com, MDAHA p9auth EI JDA IK>­ @om=En, =n@ example.com EI JDA =KJD@om. 6DEI ?onLAnJEon MDAHA BolloMA@ EI KIABKl Jo =LoE@ D=LEnC Jo m=nK=llO =@@ =KJD IAHLAH EnBoHm=JEon BoH =H>EJH=HO HAmoJA nAJMoHkI JoJDAlo?=l ndb.

7.4.2 − Adding users

6o =@@ = nAM KIAH Jo JDA =KJD IAHLAH, loCEn =I JDA =KJD IAHLAHߣI hostowner, m=kA IKHA auth/keyfs EI HKnnEnC En OoKH n=mAIF=?A, =n@ JDAn IAJ =n =KJD F=IIMoH@ BoH JDAKIAH: % auth/keyfs % auth/changeuser username Password: # type password here, will not echo Confirm password: # confirm password here, will not echo assign Inferno/POP secret? (y/n) n Expiration date (YYYYMMDD or never)[return = never]: 2 keys read Post id: User’s full name: Department #: User’s email address: Sponsor’s email address: user username installed for Plan 9

Note: 3KAIJEonI JD=J =FFA=H =BJAH JDA keys read noJE?A =HA oFJEon=l. 0EJ Enter BoH A=?DonAJolA=LAJDAm>l=nk.

4A=@: auth(8), keyfs(4)

7.4.3 − secstored

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.

6oIAJKF secstored,loCEnJoJDA=KJDIAHLAH=I hostowner =n@:

#  mkdir /adm/secstore chmod 770 /adm/secstore

5J=HJ secstored =J >ooJ JEmA >O =@@EnC JDA BolloMEnC Jo /cfg/$sysname/cpurc onJDA=KJDIAHLAH: auth/secstored

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

7.4.3.1 − Adding users to secstore secuser EI =n =@mEnEIJH=JELA ?omm=n@ JD=J HKnI on JDA IA?IJoHA m=?DEnA, noHm=llO JDA =KJD IAHLAH, Jo ?HA=JA nAM =??oKnJI =n@ Jo ?D=nCA IJ=JKI on ANEIJEnC =??oKnJI. 1J FHomFJI BoH =??oKnJ EnBoHm=JEon IK?D =I F=IIMoH@ =n@ ANFEH=JEon @=JA, MHEJEnC Jo /adm/secstore/who/user BoH=CELAnIA?IJoHAKIAH.

LoCEnJoJDA=KJDIAHLAH=I hostowner =n@: auth/secuser username =n@=nIMAHJDAFHomFJI.

*O @AB=KlJ, secstored M=HnI JDA ?lEAnJ EB no =??oKnJ ANEIJI. 1B OoK FHABAH Jo o>I?KHA JDEIEnBoHm=JEon,KIA secuser Jo?HA=JA=n=??oKnJ FICTITIOUS.

4A=@: FQA 8.4.7 − secstore BoHmoHAEnBoHm=JEononKIEnCJDA secstore ?lEAnJ.

7.4.3.2 − Converting from p9sk1 to dp9ik

#! Date: Wed, 6 Jan 2016 03:54:08 +0100 From: [email protected] To: [email protected] Subject: [9front] new factotum/authsrv/keyfs Reply−To: [email protected] i just pushed the new code which adds dp9ik authentication support. to update a system, the following things need to be done:

# make sure you have the latest libmp/libsec cd /sys/src/libmp; mk install cd /sys/src/libsec; mk install

# rebuild mpc (required for libauthsrv) cd /sys/src/cmd; mk mpc.install

# rebuild libauthsrv / libauth cd /sys/src/libauthsrv; mk install cd /sys/src/libauth; mk install

# rebuild factotum/keyfs/authsrv cd /sys/src/cmd/auth; mk install

# then rebuild kernel to include the new factotum, # but dont reboot your authserver just yet... cd /sys/src/9/pc; mk install

# if your /adm/keydb is still in DES format (cat it to see # if the keyfile starts with the AES signature), you need to # convert it to use the new dp9ik protocol:

# make backup cp /adm/keys /adm/keys.old auth/convkeys −ap /adm/keys

# now set the aes key in nvram (so authserver can decrypt # the keydb when it boots) auth/wrkey

# now you can reboot the AS and once its up, you have to # set new passwords for the users. logging in with the # old p9sk1 plan9 password should continue to work if # you skip this. passwd [username]

# if there are issues logging in with dp9ik because keydb # doesnt have the new key yet, you can use delkey(1) to # remove the dp9ik key from factotum as a work arround.

−− cinap

#" 7.5 − Cpu server configuration and maintenance

7.5.1 − Configuring a cpu server

Note: OFAH=JEnC = ?FK IAHLAH HAGKEHAI =KJD IAHLE?AI. 4A=@: FQA 7.4 − Auth server configuration and maintenance

6DA BEHIJ IJAF En ?onLAHJEnC = JAHmEn=l Jo = ?FK IAHLAH EI Jo IMEJ?D BHom JDA terminal IAHLE?AJoJDA cpu IAHLE?A.

1B JDA ?FK IAHLAH m=?DEnA >ooJI BHom = lo?=l @EIk, A@EJ JDA service lEnA En En /n/9fat/plan9.ini: service=cpu

4A=@: FQA 7.2.2 − How do I modify plan9.ini?

1B JDA m=?DEnA >ooJI LE= 2:-, A@EJ JDA service lEnA En En JDA BElA Kn@AH /cfg/pxe/ JD=J?oHHAIFon@AIJoEJIM)+=@@HAII.1nJDEI?=IA, /cfg/pxe/000c292fd30c: service=cpu

Note: 6DA ?onJAnJI oB /cfg/pxe/000c292fd30c IAHLAI =I JDA AGKEL=lAnJ oB plan9.ini BoH JDA 2:- >ooJA@ m=?DEnA. )nO oJDAH IAJJEnCI JD=J MoKl@ noHm=llO >A ?onBECKHA@En plan9.ini m=O=lIo>AAnJAHA@DAHA.

5AJJEnC service=cpu ?=KIAI JDA IDAll I?HEFJ /rc/bin/cpurc Jo >A HKn =J >ooJ JEmA, MDE?D En JKHn l=Kn?DAI =lEIJAnAHJD=JI?=nIJDA /rc/bin/service @EHA?JoHOBoH I?HEFJI ?oHHAIFon@EnC Jo L=HEoKI nAJMoHk FoHJI. 4A=@: listen(8). 6DA I?HEFJ tcp17019 D=n@lAI En?omEnC ?FK ?onnA?JEonI. )KJDAnJE?=JEon BoH En?omEnC ?FK ?on­ nA?JEonI EI FAHBoHmA@ >O JDA =KJD IAHLAH =IIo?E=JA@ MEJD JDA authdom >O ndb. 4A=@: FQA 7.4.1 − Configuring an auth server

*ABoHA HA>ooJEnC, ?onBECKHA JDA nLH=m: FQA 7.3.2 − Configuring nvram. 6DEI =lloMI JDA m=?DEnA Jo lo=@ =KJD ?HA@AnJE=lI BHom JDA nvram BElA EnJo factotum, Io JD=J EJ ?=n ?onJEnKAJo>ooJMEJDoKJm=nK=lEnJAHLAnJEon.

4A>ooJ: fshalt −r

7.6 − Terminal configuration and maintenance

7.6.1 − Configuring a terminal

6DA 'BHonJ 15O >ooJI EnJo = lELA?@ HKnnEnC JDA 9pc kAHnAl, HAIKlJEnC En JDA IEmFlAIJ BoHm oB JAHmEn=l HKnnEnC on JDA !&$ =H?DEJA?JKHA. ) JAHmEn=l m=O =lIo >A nAJMoHk >ooJA@ JDA FHABAHHA@ mAJDo@ oH EnIJ=llA@ Jo EJI oMn IJ=n@-=lonA BElA IOIJAm on = lo?=l IJoH=CA@ALE?A.

4A=@: FQA 6.7 − How do I boot from the network?

## 7.6.2 − Configuring a Terminal to Accept cpu Connections

1B JDA hostowner B=?JoJKm D=I >AAn lo=@A@ MEJD JDA =FFHoFHE=JA kAO =n@ JDA IOIJAm EI lEIJAnEnC BoH cpu ?onnA?JEonI, = KIAH m=O cpu EnJo = JAHmEn=l JD=J EI noJ HKnnEnC =KJD IAHLE?AI. 6o ?onBECKHA = JAHmEn=l Jo =??AFJ cpu ?onnA?JEonI En JDEI B=IDEon, IK>IJE­ JKJAOoKH?DoE?AoB dom JDEIHABAHIJoJDA=KJD@om, user =n@ password,>AloM: echo ´key proto=dp9ik dom=9front user=glenda !password=p@ssw0rd´ \ >/mnt/factotum/ctl aux/listen1 −t ´tcp!*!rcpu´ /rc/bin/service/tcp17019

7.6.3 − UTC Timesync

*O @AB=KlJ, /rc/bin/termrc IAJI TIMESYNCARGS=(−rLa1000000), Jo IOn?DHo­ nEzA 'BHonJ JEmA MEJD JDA HA=l JEmA ?lo?k. On m=nO IOIJAmI JDEI JEmA EI I=LA@ =I 76+, MDAHA=I 9En@oMI kAAFI JDA lo?=l JEmA JDAHA. 1B OoKH JEmA EI En 76+ OoK IDoKl@ omEJ JDA -L: 2KJ TIMESYNCARGS=(−ra1000000) EnJo /rc/bin/termrc.local, MDE?D EI ANA?KJA@>O /rc/bin/termrc.

7.7 − Mail server configuration and maintenance

1n?omEnC =n@ oKJCoEnC m=El EI D=n@lA@ >O KF=I =n@ EJI HAl=JA@ IKEJA oB FHoCH=mI. +on­ BECKH=JEon EI D=n@lA@ >O = nKm>AH oB BElAI BoKn@ En /mail/lib/, MDElA m=nO oB upas’ ?ommon BKn?JEonI =HA ?=HHEA@ oKJ >O IDAll I?HEFJI JD=J =HA HAl=JELAlO A=IO Jo mo@EBO.

Note: 6DA KIAH MDo HKnI JDA =IIoHJA@ upas FHoCH=mI nAA@I HA=@ =n@ MHEJA FAHmEI­ IEonI on /mail/queue =n@ /mail/tmp, =I MAll =I MHEJA FAHmEIIEonI BoH =nO m=El­ >oNAIMDAHAm=ElMEll>A@AlELAHA@.

Note: *A IKHA Jo ?onBECKHA FHoFAH ,N5 AnJHEAI BoH OoKH @om=EnI. 1B 2l=n ' MEll DoIJ OoKH ,N5,IAA: FQA 6.2.5.2 − DNS authoritative name server

#$ 4A=@: Upas − A Simpler Approach to Network Mail, mail(1)

6DABolloMEnCIA?JEonI@AI?HE>A?onBECKH=JEonoB>=IE?1nJAHnAJm=ElIAHLE?AI.

7.7.1 − smtpd.conf

5omA ?D=nCAI Jo JDA @AB=KlJ smtpd.conf =HA HAGKEHA@ Jo =??AFJ m=El for 1nJAHnAJ @om=En n=mAI, =n@ Jo HAl=O m=El for HAmoJA DoIJI moIJ ?ommonlO, OoKH oMn m=?DEnAI.6DABolloMEnClEnAIIDoKl@>A?D=nCA@Jo?oHHAIFon@JoOoKHnAJMoHk: # outgoing mail will be sent from this domain by default defaultdomain 9front.org

# do not be an open relay norelay on

# disable dns verification of sender domain verifysenderdom off

# do not save blocked messages saveblockedmsg off

# if norelay is on, you need to set the # networks allowed to relay through # as well as the domains to accept mail for ournets 199.191.58.37/32 199.191.58.42/32 192.168.4.0/24

# domain names for which incoming mail is accepted ourdomains 9front.org, bell−labs.co, cat−v.org 4A=@: smtpd(6), smtp(8)

7.7.2 − rewrite

6o =?J =I =n 1nJAHnAJ m=El IAHLAH, ?oFO rewrite.direct Jo rewrite =n@ mo@EBO Jo HABlA?JOoKHIEJAߣI1nJAHnAJ@om=Enn=mAI:

#% # case conversion for postmaster pOsTmAsTeR alias postmaster

# local mail \l!(.*) alias \1 (ttr|9front.org|bell−labs.co|cat−v.org)!(.*) alias \2 [^!@]+ translate "/bin/upas/aliasmail ´&´" local!(.*) >> /mail/box/1/mbox

# we can be just as complicated as BSD sendmail... # convert source domain address to a chain a@b@c@d... @([^@!,]*):([^!@]*)@([^!]*) alias \2@\3@\1 @([^@!]*),([^!@,]*):([^!@]*)@([^!]*) alias @\1:\3@\4@\2

# convert a chain a@b@c@d... to ...d!c!b!a ([^@]+)@([^@]+)@(.+) alias \2!\1@\3 ([^@]+)@([^@]+) alias \2!\1

# /mail/lib/remotemail will take care of gating to systems we don’t know ([^!]*)!(.*) | "/mail/lib/qmail ´\\s´ ´net!\1´""´\2´" 4A=@: rewrite(6)

7.7.3 − names.local

6o m=F En?omEnC A-m=El =@@HAIIAI Jo lo?=l KIAHn=mAI, A@EJ names.local =??oH@­ EnClO: # postmaster goes to glenda postmaster glenda

Note: postmaster@[any domain] MEll>A@AlELAHA@Jolo?=lKIAH glenda.

7.7.4 − remotemail

.En=llO, upas nAA@I Jo knoM MD=J Jo @o MEJD m=El JD=J ?=nnoJ >A @AlELAHA@ lo?=llO. -@EJ remotemail =n@AnJAHJDA@AIEHA@>AD=LEoH.

6o@AlELAHm=El@EHA?JlOJoJDAHAmoJA IAHLAH HAIFonIE>lA BoH JDA 1nJAHnAJ @om=En n=mA En GKAIJEon: #!/bin/rc shift sender=$1 shift addr=$1 shift exec /bin/upas/smtp $addr $sender $* 4A=@: smtp(8)

#& 7.7.5 − SMTP over TLS

.EHIJ,m=kAIKHAOoKD=LA=lHA=@O?HA=JA@6L5?AHJEBE?=JAIBoHOoKHIAHLAH.

NANJ,?HA=JA=BElA /rc/bin/service/tcp587: #!/bin/rc user=‘{cat /dev/user} exec /bin/upas/smtpd −c /sys/lib/tls/cert −n $3 # to use with listen1, change $3 to $net

7.7.6 − IMAP4 over TLS

.EHIJ,m=kAIKHAOoKD=LA=lHA=@O?HA=JA@6L5?AHJEBE?=JAIBoHOoKHIAHLAH.

NANJ,?HA=JA=BElA /rc/bin/service/tcp993: #!/bin/rc exec tlssrv −c/sys/lib/tls/cert −limap4d \ −r‘{cat $3/remote} /bin/ip/imap4d −p \ −r‘{cat $3/remote} >>[2]/sys/log/imap4d # to use with listen1, change $3 to $net

7.7.7 − Spam Filtering

7.7.7.1 − ratfs

.Hom ratfs(4):

4=JBI IJ=HJI = FHo?AII JD=J moKnJI EJIAlB IAA >En@  on moKnJFoEnJ @AB=KlJ /m=El/H=JEBO. 4=JBI EI = FAHIEIJAnJ HAFHAIAnJ=JEonoBJDAlo?=lnAJMoHk?onBECK­ H=JEon =n@ IF=m >lo?kEnC lEIJ. 9EJDoKJ EJ A=?D EnIJ=n?A oB ImJF@$ MoKl@ nAA@JoHAHA=@=n@F=HIA=mKlJEmAC=>OJAlEIJoB=@@HAIIAI=n@=??oKnJI.

6o ?onBECKHA JDA IF=m >lo?kEnC lEIJ, A@EJ /mail/lib/blocked =I @AIEHA@, =??oH@EnC JoJDAHKlAIl=E@oKJEnJDAm=nF=CA.-N=mFlA: # allow messages from any user at 9front.org *allow 9front.org!*

# block messages from any user at bell−labs.com *block bell−labs.com!*

# block messages from ip block of aol modems block 152.166.0.0/15 1B ratfs EI=lHA=@OHKnnEnC,?=KIAEJJoHAlo=@JDAmo@EBEA@ /mail/lib/blocked: echo reload >/mail/ratify/ctl .oHmoHA@AJ=ElI,HA=@: ratfs(4), smtpd(6)

6o l=Kn?D ratfs =J >ooJ JEmA, =@@ JDA BolloMEnC lEnA Jo /cfg/$sysname/cpustart:

#' upas/ratfs =n@=@@JDABolloMEnClEnAJo /lib/namespace: mount −c #s/ratify /mail/ratify Note: 6DA @EHA?JoHO IAHLA@ >O ratfs mKIJ >A LEIE>lA BHom JDA upas lEIJAnAHߣI n=mAI­ F=?A.7IK=llO,JDEIEI=??omFlEIDA@>OIJ=HJEnC ratfs before JDA upas lEIJAnAHI.

7.7.7.2 − scanmail

4A=@: scanmail(8)

7.7.8 − Troubleshooting the mail server

)n onlEnA Jool JD=J AL=lK=JAI JDA ?onBECKH=JEon oB = CELAn m=El IAHLAH EI =L=El=>lA =J: https://www.mail−tester.com

7.7.9 − Setting up a mailing list

7.7.9.1 − mlmgr

6DA'BHonJm=ElEnClEIJI=HADoIJA@on'BHonJKIEnCJDA mlmgr(1) ?ollA?JEonoBJoolI.

1n?omEnC m=El Jo = lEIJ EI BElJAHA@ JDHoKCD = ?KIJom pipeto, MDE?D En JKHn ?=llI = I?HEFJ?=llA@ nml.

;oKHmElA=CAm=OL=HO.

$ 7.8 − Web server configuration and maintenance

1BOoKmKIJ.

7.8.1 − ip/httpd

No.

7.8.2 − rc−httpd

6DA rc−httpd MA> IAHLAH EI = IEmFlA IDAll I?HEFJ JD=J D=n@lAI IJ=JE? BElAI, @EHA?JoHO lEIJEnCI =n@ @HoF-En +/1 FHoCH=mI IK?D =I JDA MAH? =nJE-BH=mAMoHk. rc−httpd EI HKn BHom = BElA En JDA @EHA?JoHO I?=nnA@ >O listen(8), oH ?=llA@ =I =n =HCKmAnJ Jo listen1(8).

4A=@: rc−httpd(8)

Note: rc−httpd EIAmFloOA@JoIAHLAJDA 9front.org B=mElOoBMA>IEJAI.

$  7.9 − TLS certificates

6o KIA 6L5-An=>lA@ IAHLE?AI on = 2l=n ' m=El IAHLAH FoFJlI, =FoFJlI, Em=FI, AJ?. OoK nAA@ Jo CAnAH=JA = ?AHJEBE?=JA =n@ kAO BoH OoKH m=El IAHLAH =n@ JAll JDA factotum oB JDAIAHLAH=>oKJJD=JkAO.6DABolloMEnCAN=mFlA?HA=JAI=IAlB-IECnA@?AHJEBE?=JA: ramfs −p cd /tmp auth/rsagen −t ´service=tls role=client owner=*´ > key chmod 600 key cp key /sys/lib/tls/key # or: store key in secstore auth/rsa2x509 ´C=US CN=fakedom.dom´ /sys/lib/tls/key | \ auth/pemencode CERTIFICATE > /sys/lib/tls/cert Note: 0AHA, US EI JDA JMo-@ECEJ ?oKnJHO ?o@A, =n@ fakedom.dom EI JDA BKllO GK=lEBEA@ @om=Enn=mA.

6o lo=@ JDA kAO EnJo JDA IAHLAHߣI factotum =J >ooJ JEmA, =@@ JDA BolloMEnC lEnA Jo /cfg/$sysname/cpustart: cat /sys/lib/tls/key >>/mnt/factotum/ctl

4A=@: rsa(8)

$  $! 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 Unix, 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 rio 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: 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=C 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 /dev/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, sam, =n@ mothra >KJ m=O l=JAH>AANJAn@A@JooJDAHFHoCH=mI.

Note: 9DElA JDA >AD=LEoH oB JDA =HHoM =n@ F=CA kAOI EI B=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), acme(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=nJEon En HAIFonIA Jo = GKAIJEon on JDA 'B=nI m=El­ EnClEIJoBIomAoBJDA?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 Text Editor 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 user interface, 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 [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=@: ftpfs(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 − abaco no.

8.4.5.3 − hget hget EI = ?omm=n@ lEnA 0662 ?lEAnJ IEmEl=H Jo FHoCH=mI IK?D =I curl 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 − charon

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 − sshfs

'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@EBA@ 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://docs.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??=IIEon 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)

&$ 8.6 − External Media

8.6.1 − Mount 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 cdfs 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 − Linux 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??AI=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=JICoEnCon: 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 − /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=FA=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@ =@@ = = 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 ext4.

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 ?omFlAJAJA 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 − Coummunity Maintained Link For Additional Software

DJJF://@o?I.'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

New in current release.

# create directory 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 An=>lA@ MEJD JDA FHAIAn?A oB *acpi= >ooJ F=H=mAJAH. 6DEI MEll ?HA=JA JDA /dev/acpitbls BElA JD=J ?=n >A KIA@ Jo HA=@ JDA IOIJAmI =?FE J=>lAI. 5FA?EBOEnC *acpi=0 MEllm=kA=?FEJ=>lAI=??AIIE>lAJDHKJDABElA>KJnoJKIAEJEnJDAkAHnAl.

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

6DAHAEI=n=JELA git EmFlAmAnJ=JEon=L=El=>ABoHFl=n'.

,oMnlo=@EJDAHA: https://github.com/oridb/git9

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/

 FQA 9 − Troubleshooting

9.1 − First

ߦ 56)6-;O74)557M261ON5.

ߦ cat /etc/os−release Jo LAHEBO OoK =HA noJ, En B=?J, HKnnEnC 7>KnJK LEnKN MEJD=2l=n'JDAmA.

ߦ )HAOoKHKnnEnC@H=MJAHm?

ߦ 8AHEBOOoKHOFAn*5,?onBECKH=JEon.

  ߦ )HAOoKKIEnCJDA qwerty kAO>o=H@l=OoKJ?

ߦ *ABoHAHAFoHJEnC=>KC,JHOJDAl=JAIJ15OEm=CA.

ߦ M)K-5-N5-.

ߦ 9DAn=llAlIAB=ElI,IAA: FQA 2.4 − Reporting Bugs

9.2 − Booting

9.2.1 − Boot parameters

ߦ 1mmA@E=JAlO =BJAH JDA *1O5 I?HAAn, DEJ =nO kAO KnJEl OoK IAA JDA > FHomFJ. .Hom JDAHA, L=lKAI BHom plan9.ini m=O >A JAmFoH=HElO =@@A@ oH ?D=nCA@. 4A=@: 9boot(8)

ߦ *ooJ F=H=mAJAHI >ACEnnEnC MEJD = * =HA EnJAHFHAJA@ >O JDA kAHnAl. )ll oJDAH F=H=mAJAHI=HAF=IIA@=IAnLEHomAnJL=HE=>lAIJoJDA>ooJFHo?AII.

ߦ )@@EnCoH?D=nCEnC=F=H=mAJAH: param=value

ߦ 4AmoLEnC=F=H=mAJAH: clear param=

ߦ 9DAnBEnEIDA@,JOFA boot JoHAIKmA>ooJEnC.

9.2.2 − Break into a shell

)J JDA [bootargs] FHomFJ, JOFA !rc =n@ DEJ AnJAH Jo >HA=k EnJo = IDAll. 6OFA exit JoHAJKHnJoJDA [bootargs] FHomFJ.

  9.2.3 − Editing plan9.ini

ߦ 1J EI noJ FoIIE>lA Jo A@EJ Fl=n'.EnE IJoHA@ on JDA 15O, >KJ F=H=mAJAHI ?=n >A ?D=nCA@JAmFoH=HElO>ABoHA>ooJEnC.5AA=>oLA.

ߦ On = D=H@@HELA EnIJ=ll=JEon, plan9.ini EI IJoHA@ MEJD JDA >ooJlo=@AH =n@ JDA kAHnAl En = Im=ll .)6 F=HJEJEon ?=llA@ 9fat =J JDA >ACEnnEnC oB JDA plan9 F=HJE­ JEon. 6DA 9fat ?=n >A moKnJA@ >O ANA?KJEnC 9fs 9fat BHom JDA lELA?@ oH JDA EnIJ=llA@ IOIJAm. 6DA BElA /n/9fat/plan9.ini ?=n JDAn >A A@EJA@ MEJD = JANJ A@EJoHlEkA acme(1), sam(1) oH ed(1).

ߦ 1B OoKH ?D=nCA Jo plan9.ini oH JDA 9fat m=@A JDA IOIJAm Kn>ooJ=>lA, EJ EI =lM=OI FoIIE>lA Jo m=nK=llO oLAHHE@A F=H=mAJAHI on JDA > FHomFJ IAA =>oLA oH IJ=HJ JDA IOIJAm BHom JDA lELA?@ =n@ FE?k OoKH EnIJ=llA@ cwfs oH hjfs F=HJEJEon on JDA [bootargs] FHomFJ.-N=mFlA: local!/dev/sdC0/fscache

9.2.4 − Boot media not recognized

ߦ *HA=k EnJo = IDAll, JDAn JOFA grep −n ’^01’ ’#$/pci/’*ctl Jo CAJ JDA F?E LE@/@E@ oB JDA EnIJ=llA@ @EIk ?onJHollAHI. JDAn look En JDA I@ @HELAHI Jo IAA EB JDA ?onJHollAHEI=lHA=@OHA?oCnEzA@.

ߦ 5omAJEmAI, JDAHA EI = FHo>lAm MEJD JDA @HELA, noJ JDA ?onJHollAH. cat /dev/sd*/ctl JoCAJJDAIJ=JKIoBJDAEn@ELE@K=l@HELAI.

ߦ 6HO@EBBAHAnJ*1O5IAJJEnCIlEkA)0+1/1,-mo@A.

ߦ 6HO JDA 75* JHoK>lAIDooJEnC IJAFI IAA >AloM. 5omAJEmAI 75* FHo>lAmI FHALAnJ KnHAl=JA@@ALE?AIBHomMoHkEnCFHoFAHlO.

9.2.5 − I moved my hard drive between ports

1BOoKHBElAIOIJAmEI cwfs(4):

ߦ LAJߣI=IIKmAEJMAnJBHomI@-JoI@- .

ߦ )JJDA>ooJ=HCIFHomFJ: local!/dev/sdE1/fscache −c filsys main c(/dev/sdE1/fscache)(/dev/sdE1/fsworm) filsys dump o filsys other /dev/sdE1/other end

! 9.3 − Graphics

9.3.1 − Rio fails to start

5AA JDA @EI?KIIEon oB CH=FDE?I En FQA 4 − 9front Installation Guide. 9DAn OoK BEn@ = MoHkEnCmo@A,KF@=JAOoKH plan9.ini.

9.3.2 − VESA BIOS does not contain a valid mode

6DA IJ=n@=H@ IolKJEon EI Jo D=LA JDA ?KIJomAH IAn@ JDA ?omFKJAH >=?k Jo JDA m=nKB=?­ JKHAH, MDo HABl=IDAI JDA --24OM MEJD JDA ?oHHA?J EnBoHm=JEon =n@ HAJKHn JDA ?omFKJAH JoJDA?KIJomAH.

9.4 − Networking

9.4.1 − Networking is not working

4A=@: FQA 6.2.8 − Verifying network settings

9.4.2 − Cannot resolve domain names

1B ndb/dns EI HKnnEnC >KJ OoK =HA IJEll Kn=>lA Jo HAIolLA @om=EnI, OoK ?=n JHO =@@EnC = ,N5IAHLAH@EHA?JlOJo /net/ndb.

4A=@: FQA 6.2.5 − DNS Resolution

9.4.3 − /mnt/web/clone does not exist

2HoCH=mIJD=JHAGKEHA webfs(4) Jo>AHKnnEnCHAGKEHA webfs(4) Jo>AHKnnEnC.

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

9.4.4 − PCMCIA WiFi stopped working after reboot

,o fshalt =n@FoMAH@oMn?omFlAJAlOEnIJA=@oBjKIJHA>ooJEnCMEJD fshalt −r.

9.5 − USB

9.5.1 − Devices not recognized or not working

ߦ *HA=k EnJo = IDAll, oH IEmFlO JOFA En = rio MEn@oM: cat /dev/usbevent =n@ JHO FlKCCEnC En = 75* @ALE?A. 1B JDA @ALE?AI MDAHA @AJA?JA@, IomA oKJFKJ IDoKl@ =FFA=H on I?HAAn. 6DEI @oAInJ mA=n MA D=LA = MoHkEnC @HELAH BoH EJ >KJ LAHEBEAIJD=JJDA75*?onJHollAH=n@07*@HELAHHA?oCnEzA@JDA@ALE?A.

" ߦ ,KmF 75* ?onJHollAH IJ=JKI Jo JDA ?onIolA MEJD echo dump >/dev/usb/ctl =BJAH JD=J, OoK mECDJ HA?oLAH JDA oKJFKJ BHom /dev/kmesg oH HKn cat /dev/kprint En = IAF=H=JA HEo MEn@oM Jo noJ IFEll EJ =ll oLAH JDA I?HAAn. +DA?k JDA nintr =n@ tdintr ?oKnJAHI Jo IAA EB JDAO =HA =ll zAHo. 1B JD=JI JDA ?=IA, JDAn JDEI EI mECDJ >A = EnJAHHKFJ HoKJEnC FHo>lAm IomAJEmAI ?=KIA@ >O >HokAn/En?omFlAJA*1O5M2J=>lAI.5AA>AloM.

ߦ 1B 75* kAO>o=H@ EI JDA onlO oFJEon, JHO Jo An=>lA 25 AmKl=JEon En JDA *1O5 =n@ @EI=>lAkAHnAlKI>IKFFoHJ.5AA>AloM.

ߦ EB JDA m=?DEnA AmFloOI = 75*!. N0+1 ?onJHollAH, JHO Jo @EI=>lA 75*!. IKFFoHJ En*1O5=IJDA@HELAHm=OnoJIKFFoHJOoKH?DEFIAJOAJ.

9.5.2 − System freezes after showing memory sizes

ߦ 6DA >ooJ F=H=mAJAH *acpi=1 mECDJ IolLA EnJAHHKFJ HoKJEnC FHo>lAmI En JDA ?=IAoB>HokAnoHEn?omFlAJA*1O5M2J=>lAI.=?FEEIIJEllANFAHEmAnJ=l

ߦ 6HOJDA>ooJF=H=mAJAH *nomp= Jo@EI=>lAmKlJEFHo?AIIoHmo@A.

ߦ 6HOJDA>ooJF=H=mAJAH *nousbehci= 6DEI@EI=>lAI75* ..

ߦ 6HOJDA>ooJF=H=mAJAH *nousbuhci=

ߦ 6HOJDA>ooJF=H=mAJAH *nousbohci=

ߦ 6HOJDA>ooJF=H=mAJAH *nousbprobe= 6DEI@EI=>lAI75*?omFlAJAlO

9.6 − auth 6DEIIF=?AlABJEnJAnJEon=llO>l=nk.

# 9.99999999999999999999999999999999999999 − GIVE UP

/ELAKFnoM.

/o=M=O.

Every joke is a tiny revolution ߞ /AoHCAOHMAll

$ Appendix B − Bounties

INTRODUCTION

6DEIEI=MEIDlEIJJD=JD=IALolLA@oLAHJEmAJomonAO.

PLEDGE

2lA@CA = >oKnJO BoH = IFA?EBE? J=Ik >O MHEJEnC = mAII=CA Jo JDA 'BHonJ m=ElEnC lEIJ. 5=O MD=J OoK mA=n, oBBAH = @ABEnEJA FHE?A, =n@ >A FHAF=HA@ Jo F=O KF MDAn IomAonA BKlBEllI OoKHHAGKAIJ,@A=@>A=J.

PENDING

Searchable PDFs in page $200 look?omm=n@JD=J=lloMImAJoIA=H?DBoHJANJEn2,.I

3D Accelerated Graphics $1 MD=J fully functional, read/write hgfs $55 9DOIDoKl@MAnAA@FOJDon=n@mAH?KHE=ljKIJJoMoHkMEJDmAH?KHE=lHAFoIEJoHEAI? fully functional, read/write gitfs $5 9DOIDoKl@=nOonAFoHJCEJJo2l=n'?

ICC color profiles $10 5KFFoHJ BoH ?=lE>H=JEnC @EIFl=OI KIEnC ?KIJom 1++ ?oloH FHoBElAI. 6DEI EI moIJ KIABKl BoH m=kEnClEL=>lAl=FJoFIJD=JD=LAIDEJJOL+,F=nAlI.

% MP4/VP9 video support $200 ,A?o@AH =n@/oH An?o@AH. ,AJ=ElI Jo >A @AJAHmEnA@. 5omA MoHk En JDEI =HA= M=I @onA >O mEI?DEAB =n@ DA M=I F=E@   oB JDA oHECEn=l " >oKnJO. 5ECHE@ D=I J=kA JDEI = loJ B=HJDAH,@EIFl=OEnCOoKJK>ALE@AoIEnBKllmoJEon.

vcardfs $5 .ElAIOIJAmBoHL+=H@BElAI,FHABAH=>lOHA=@)N,MHEJA.IlMEll=?JK=llOF=OBoHJDEI.

USB WiFi driver (you choose hardware) $5 IlߣI6DEnk2=@: 6=>lAJ IJ/AnIJEll?=nߣJ9E.E.

SSH server $5 550 IJH=ECDJ Jo 'BHonJ =n@ =KJDAnJE?=JA MEJD 'BHonJ KIAH ?HA@AnJE=lI. 2oJAnJE=l KIA ?=IAI En?lK@A:550BHomFDonAI,IAHLACEJ,AJ?.

fix/polish hubfs, or create TMUX−alike $5 9DAn OoK 550 En BHom = FDonA, OoK @onߣJ M=nJ Jo @o = loJ oB JOFEnC Jo HAIKmA MDAHA OoK lABJ oBB >ABoHA OoKH nAJMoHk ?onnA?JEon @HoFFA@. kLEk m=O GK=lEBO BoH JDEI FHEzA MEJD FEn . dmenu−bar for the i3−like rio replacement with useful info 30 euros 5omA EnBo JD=J IDoKl@ >A FoIIE>lA Jo @EIFl=O: MoHkIF=?AI, IOIJAm EnBo ?FK lo=@, mAmoHO lo=@, nAJMoHk lo=@, ..., @ECEJ=l "D ?lo?k. 1B noJ ?onBECKH=>lA, JDA >=H IDoKl@ >A =JJDAJoFoBJDAI?HAAnon=llMoHkIF=?AI. configuration−file based customization of the i3−like rio replacement and dmenu− like bar 20 euros )?onBECKH=JEonBElAMDAHAkAO>En@EnCI=n@?oloKHI?=n>A=@jKIJA@. games/md Sega CD support $5 5N)6+0-4M=InߣJ=?=HJHE@CAC=mA. games/tg16 TurboGrafx 16 $5 5DoKl@ANEIJ.

OneDrive file system 20 MKIJ0=LA  

* .ElA m=n=CAmAnJ BKll +47, IKFFoHJ. * 9oHkI MEJD OnA,HELA. * 9oHkI MEJD 5D=HAFoEnJ,HELAI. *9oHkIMEJDoBBE?E=lME?HoIoBJIAHLAHIoBBE?A.?omIJKBB.

5DoKl@0=LA

* 7IAH kAOI En B=?JoJKm. * No ?omFlE?=JA@ ?onBECKH=JEon. )KJD EnBo, @HELA =n@ m=O>A IAHLAH?IDoKl@>AAnoKCD. *N=JELA+FHABAHHA@'BHonJ.

NE?AJo0=LA+# 

* )??AII LAHIEonI: .ElA LAHIEonI =HA FHoLE@A@ >O OnA,HELA/5D=HAFoEnJ. 7IA JDAIA. * L=zO ?=?DEnC: OnA,HELA FHoJo?ol FHoLE@AI ID= IKmI. .ElAI ?oKl@ >A IJoHA@ En = FAHIEIJAnJ ?=?DA IEmFlA @EHA?JoHO?. ?=J BElA >/@AL/nKll BoH m=nK=llO ?=?DEnC EI BEnA. * IomA M=O JoIDoMBElAI=HA?=?DA@m=O>AMEJDlI?.

arm64 golang + gofmt $500

& 1 MEll =lIo =??AFJ IEmFlO >AEnC =>lA Jo HKn /OO5=Fl=n' /O)4+0==m@ on JDA $"->EJ Fl=n'FEEm=CA.

DONE (pay up, deadbeats)

Intel 8260 WiFi driver $5 IlߣI6DEnk2=@: 6=>lAJ IJ/An?=nߣJ9E.E.,ON-F=O?En=F

dwm/i3/sway−like rio replacement 50 euros  MoHk IF=?AI, JElEnC, IJ=HJ JAHmEn=l MEJD mo@+AnJAH, IMEJ?D MoHk IF=?A MEJD mo@+nKm>AH.,ON-F=E@IECHE@

Native Intel VGA Driver $260 2AoFlAM=nJJo>A=>lAJo=??AIIHAIolKJEonInoJFHAIAnJA@LE=8-5).,ON-F=O?En=F

Bookmark Support in page(1) $10 2AoFlA M=nJ Jo >ookm=Hk JDEnCI En 2,.I =n@ IK?D, Jo ?omA >=?k Jo l=JAH. 0oM =>oKJ CAnAHE? In=HB MDAHA 1 =m IKFFoHJ? 5omA M=nJ Jo ?oFO Em=CA F=JD/n=mA. ,ON- F=O ?En=F

Quake $5 )FF=HAnJlO,oomEInoJCoo@AnoKCD.,ON-F=OGMN bsdemu $1 LEnKNAmK EI JDA LEnKN JHA=@mEll. 5En?A JDA FoEnJ oB =ll JDEI EI >AEnC =>lA Jo HKn IoBJM=HA noJ IKFFoHJA@ En 2l=n ', H=JDAH JD=n IEmFlO MoHIDEFFEnC LEnKN, OFAn*5, m=kAI moHA IAnIA =I = >=IA Fl=JBoHm, IEn?A JDA ?onJAnJI oB EJI FoHJI JHAA =HA >oJD . noM HA=Ion=>lO KF Jo @=JA, =n@ . Jo IomA ANJAnJ, FHA-?DA?kA@ BoH =>HEC=JEonI oB I=nEJO. 5OI?=llI =HA IJEll oKJ oB ?onJHol, >KJ lAJߣI AN=mEnA JDA HA=l ?oIJ/>AnABEJ oB JDA AmKl=JEon =FFHo=?D.,ON-IAALmN F=O=EjK look $5 FKJJDAlook?omm=n@EnHEo,ON-F=O?En=F fix webfs to work with livejournal.com $1 +KHHAnJlO, =BJAH loCCEnC En Jo lELAjoKHn=l.?om, MA>BI CAJI IJK?k En = ! HA@EHA?J looF MDAnLEIEJEnC=nO=??oKnJ_n=mA.lELAjoKHn=l.?omLEHJK=lDoIJ.,ON-F=O?En=F replace p9sk1 with something better $10 9AߣHAIEJJEnC@K?kI.,ON-F=O?En=F qemu or qemu−alike $50 2+ D=H@M=HA LEHJK=lEz=JEon. -NFoIA CKAIJ HAIoKH?AI Jo JDA DoIJ. .oHCAJ =>oKJ lEnKNAmK/>I@AmKBoHALAH.,ON-IAALmN F=O=EjK

improve TLS support $10 6DA JlI! @ALE?A EmFlAmAnJI JDA HA?oH@ l=OAH FHoJo?olI oB 6H=nIFoHJ L=OAH 5A?KHEJO LAHIEon . =n@ 5A?KHA 5o?kAJI L=OAH LAHIEon !.. 1J @oAI noJ EmFlAmAnJ JDA D=n@ID=kA FHoJo?olI, MDE?D =HA HAIFonIE>lA BoH mKJK=l =KJDAnJE?=JEon =n@ kAO AN?D=nCA. 'B=nI D=I @A>=JA@ MD=J BoHm ANF=nIEon oB 6L5 IDoKl@ J=kA. 9=nJA@: moHA ?EFDAHI, IKFFoHJ BoH KIAH ?AHJEBE?=JAI, IKFFoHJ BoH ?AHJEBE?=JA LAHEBE?=JEon. -+,5) -+,0- )lIo: 5N1 IKFFoHJ En JlIIHL.

' 5omAMoHkD=I=lHA=@O>AAn@onA:

lE>IA?: EmFlAmAnJ JlI+lEAnJ IKFFoHJ BoH 4.+$$$ IAHLAH n=mA E@AnJEBE?=JEon 5N1 F=O ?En=F lE>IA?: =@@ 6L5_,0-_45)_9160_!,-5_-,-_+*+_50) ?lEAnJ ?EFDAH IKEJ IKFFoHJ F=O ?En=F lE>IA?:=@@=AI_ &_?>?=n@=AI_ #$_?>??EFDAHIF=OmEI?DEAB lE>IA?/N#':KIA50) - #$@ECAIJ=lCoHEJDmEnIJA=@oBM,#F=O?En=F lE>IA?/JlID=n@:EmFlAmAnJ?lEAnJIE@A-+,0-F=OFH lE>IA?:6L5 . IKFFoHJnAA@InAM@ALJlIF=O?En=F lE>IA?:6L5 . ?lEAnJIKFFoHJF=O?En=F lE>IA?:6L5 . IAHLAHIKFFoHJ,m=kA?EFDAHlEIJMEJDmoIJFHABAHA@BEHIJF=O?En=F lE>IA?:=@@6L5_45)_9160_)-5_ &_+*+_50) #$=n@ 6L5_45)_9160_)-5_ #$_+*+_50) #$?EFDAHIF=OmEI?DEAB lE>IA?: =@@ ?KHLA ## ' BHom DJJF://[email protected].?om/F/?KHLA ## '-@onn=/ F=O ?En=F lE>IA?:=@@HB?#&$'Dm=?->=IA@kAO@AHEL=JEonBKn?JEonDk@B_NF=O?En=F lE>IA?:=@@6L5_-+,0-_-+,5)_9160_)-5_ &_+*+_50) #$=n@ 6L5_-+,0-_45)_9160_)-5_ &_+*+_50) #$?EFDAHIKEJIF=O?En=F lE>IA?:EmFlAmAnJ?lEAnJ?AHJEBE?=JA=KJDAnJE?=JEonBoHJlI . F=O?En=F

 lE>IA?:=@@FolO !#F=O?En=F lE>IA?:=@@?D=?D=?EFDAHBHom?D=HlAIBoHIOJDF=O?En=F lE>IA?: =@@ ?D=?D=  FolO !# =A=@, =lloM $" >EJ ELߣI BoH ?D=?D=, =@@ JImAm?mF F=O ?En=F

JlI:EmFlAmAnJ?D=?D= /FolO !#=A=@?EFDAHIKEJIF=O?En=F lE>IA?:=@@I=lI= IJHA=m?EFDAHF=O?En=F lE>IA?:A?@I=?lEAnJIKFFoHJBoHJlID=n@F=O?En=F lE>IA?:=@@lE>?.DEn?lK@ABoH=AI_NJI.?@H=MJAHmF=O?En=F lE>IA?: EmFlAmAnJ AllEFJE? ?KHLA CHoKF oFAH=JEonI En j=?o>E=n ?ooH@En=JA IOIJAm F=O ?En=F lE>IA?:EmFlAmAnJIAHLAHIE@A5+58FHALAnJEnCIEllO?lEAnJB=ll>=?kIF=O?En=F

IDEJJonoBoJDAHJlIMoHkF=O?En=F

 Appendix G − GSOC

GSOC project ideas

Difficulty on a scale 1−5

/AnAH=llO =ll oB oKH FHojA?JI HAGKEHA + FHoCH=mmEnC =n@ FHEoH ANFAHEAn?A MEJD + EI = FHAHAGKEIEJA BoH =ll oB JDAm. 2HEoH ANFAHEAn?A MEJD 2l=n ', MDElA noJ JA?DnE?=llO = FHAHAG­ KEIEJA, EI ANJHAmAlO DAlFBKl =n@ =nO IJK@AnJ EI =@LEIA@ Jo =J lA=IJ ?=HABKllO HA=@ JDA 2l=n '@o?KmAnJ=JEon>ABoHA=FFlOEnC.

MPEG−4 decoder (4) 6DA Co=l oB JDEI FHojA?J EI Jo ?HA=JA = LE@Ao @A?o@AH Jo =lloM n=JELA Fl=O>=?k oB M2-/-" LE@Ao. 6DEI EI = LAHO ?D=llAnCEnC FHojA?J JD=J HAGKEHAI = LAHO IolE@ >=?kCHoKn@ En +. 2oJAnJE=l mAnJoHI: ?En=F_lAnHAk 5kEllI: 4A=@EnC =n@ Kn@AHIJ=n@EnC JDA M2-/-" @o?KmAnJ=JEon MDE?D FHo>=>lO HAGKEHAI = ?AHJ=En mEnEmKm oB m=JDAm=JE?=l IkEllI, MHEJEnC=n@@A>KCCEnC?omFlANFHoCH=mI

Sam scrolling and other GUI work (2) 5?HollEnC En JDA JANJ A@EJoH I=m EI ?KHHAnJlO LAHO AHH=JE?. 6DA Co=l oB JDEI FHojA?J EI Jo EmFHoLA on JDEI IEJK=JEon. 6DEI FHojA?J @oAI noJ HAGKEHA mK?D FHoCH=mmEnC FAH IA>KJEJ @oAI HAGKEHA =n=lOzEnC, Kn@AHIJ=n@EnC =n@ EmFHoLEnC ANEIJEnC ?o@A. 6DEI FHojA?J MoKl@ FHo>=>lO >A ANJAn@A@ Jo BENEnC oJDAH /71 FHo>lAmI. 2oJAnJE=l mAnJoHI: ?En=F_lAnHAk, OHE_*5kEllI:>AEnC=>lAJoEnnoL=JA, ?omEnC KF MEJD =lCoHEJDmI BoH /71 FHo>lAmI IK?D =I I?HollEnC

Improved APE (2) OKH)N51/2O51:AmKl=JEonl=OAHEI?KHHAnJlOLAHOKnFolEIDA@=n@EmFHoLEnCJDA ?oLAH=CA MoKl@ >A = MoHJDMDElA FHojA?J. 6DEI EI noJ LAHO @EBBE?KlJ >KJ FHo>=>lO = loJ oB MoHk. 2oJAnJE=l mAnJoHI: ?En=F_lAnHAk, OHE_* 5kEllI: HA=@EnC )N51/2O51: @o?KmAnJ=JEon, @A>KCCEnC?o@AMHEJJAn>OoJDAHFAoFlA

 Drivers (3) 6DEI FHojA?J MoKl@ ?onIEIJ oB mKlJEFlA @HELAHI Jo >A @A?E@A@ JD=J nAA@ Jo >A MHEJJAn. 6DEI FHojA?J EI mo@AIJlO ?D=llAnCEnC. 2oJAnJE=l mAnJoHI: ?En=F_lAnHAk 5kEllI: CAnAH=l IOIJAmIFHoCH=mmEnC,FHEoHO5@ALAloFmAnJANFAHEAn?ADAlFBKl

DjVu/CHM/Jbig2 support (2) OKH @o?KmAnJ HA=@AH F=CA  nAA@I ,j8K, +0M =n@ J>EC 2,. An?o@EnC IKFFoHJ. )noJDAH FHojA?J JD=JߣI noJ F=HJE?Kl=HlO ?D=llAnCEnC >KJ = loJ oB MoHk. 2oJAnJE=l mAnJoHI: ?En=F_lAnHAk, OHE_* 5kEllI: HA=@EnC =n@ EmFlAmAnJEnC @o?KmAnJ=JEon BoH L=HEoKI @o?KmAnJIJ=n@=H@I,IomAANFAHEAn?AMEJDEm=CAFHo?AIIEnCFHo>=>lODAlFBKl

Improving acid (3) OKH @A>KCCAH =?E@  l=?kI IALAH=l KIABKl @A>KCCEnC BA=JKHAI JD=J mECDJ >A MoHJD lookEnC EnJo, IK?D =I M=J?DFoEnJI. 6DA Co=l MoKl@ >A Jo HAIA=H?D MD=J mECDJ >A Coo@ BA=JKHAI =n@ EmFlAmAnJ JDAm. 6DEI m=O HAGKEHA kAHnAl ?D=nCAI. 2oJAnJE=l mAnJoHI: ?En=F_lAnHAk5kEllI:CAnAH=lIOIJAmIFHoCH=mmEnC,B=mElE=HEJOMEJDloM-lALAl?on?AFJI

Implement ECDSA and ECDHE for TLS (2) 6DEI MoKl@ >A EmFlAmAnJEnC JDA -++ ?EFDAH IKEJI BoH 6L5 HB?""'  MEJD lE>IA?I A?  BKn?JEonI. 6DEI IDoKl@ >A = HAl=JELAlO A=IO J=Ik BoH >ACEnnAHI. 2oJAnJE=l mAnJoHI: ?En=F_lAnHAk5kEllI:HA=@EnCIJ=n@=H@I,HA=@EnC?o@A,?HOFJoFCH=FDO mercurial hosting support for werc (1) 9AH? EI = MA> =nJE-BH=mAMoHk MHEJJAn En H?, JDA 2l=n ' IDAll. H?-DJJF@ EI =n 0662 IAHLAH MHEJJAn En JDA I=mA l=nCK=CA. 'BHonJ KIAI MAH?KHE=l BoH LAHIEon ?onJHol -- >KJ no>o@OߣI @onA mK?D MoHk on m=kEnC 'BHonJ =>lA Jo *DoIJ* mAH?KHE=l HAFoI. 6DEI FHojA?J MoKl@ EnLolLA IAJJEnC KF MAH? =n@ H?DJJF@ on = 'BHonJ 5OIJAm, JDAn JA=?DEnC MAH? Jo MoHk MEJD DC Jo DoIJ HAFoIEJoHEAI. .oH >onKI FoEnJI, JAIJ OoKH ?D=nCAI on = 7N1: IOIJAm Jo m=kA IKHAEJߣIFoHJ=>lA 2oJAnJE=lmAnJoHI:kDm5kEllI:MA>IJKBB,mAH?KHE=l,H?I?HEFJEnC

Internet of things project: use 9p for sensor networks (1−2) 9HEJA = 'F IAHLAH =n@ ?lEAnJ =I OoK IAA BEJ on JDA oH?DAIJH=JoH =n@ no@AI. +HA=JA =n@ AL=lK=JA JANJ->=IA@ FHoJo?ol BoH 'F->=IA@ IAnIoH nAJMoHk oH?DAIJH=JEon. ;oK ?=n KIA HFE BoH ALAHOJDEnC, >KJ =HA =lIo BHAA Jo ?DooIA = loM-FoMAH IolKJEon BoH JDA no@AI EB OoKߣHA KF BoH IomA loM-lALAl + FHoCH=mmEnC ANFAHEAn?A. 2oJAnJE=l mAnJoHI: jFm 5kEllI: Iol@AHEnC,JDAoHOoBIAnIoHnAJMoHkI,+

! Appendix J − Junk

Raspberry Pi

Installation Instructions

6DA l=IJ HAlA=IA EnJHo@K?AI IKFFoHJ BoH H=IFE , =n@ ! =n@ OoK ?=n >KEl@ = I@?=H@ Em=CA JD=JMEll>A>ooJ=>lAonH=IFE>OHKnnEnC: # build arm userspace cd /sys/src objtype=arm mk install

# download raspi firmware cd /sys/src/boot/bcm mk

# build 32 bit arm kernel for raspi (pi2 also works for raspi3) cd /sys/src/9/bcm mk ’CONF=pi’ install mk ’CONF=pi2’ install

# build bootable hjfs sdcard image for raspi cd /sys/lib/dist bind / /n/src9 mk /path/to/somethingsomething.pi.img On?A>ooJA@onJDA4=IF>AHHO2E,OoKߣHA=>lAJomoKnJJDA@oIF=HJEJEonMEJD: 9fs pidos 6DEIMEllmoKnJJDA@oIF=HJEJEonon /n/pidos,IEmEl=HJoDoM 9fs 9fat MoHkI.

" FQA Appendix L − Languages

C

4A=@: Plan 9 C Compilers, How to Use the Plan 9 C Compiler

C++

4A=@: Bjarne Stroustrup: "I Did It For You All..."

# C#

Go

Note: 6DA BolloMEnC EnIJHK?JEonI m=O >A moHA KF Jo @=JA: http://docs.9front.org/building−go

.oHnoM,JDEIIJEllMoHkI:

$ # automatically converted ca certs from mozilla.org hget https://curl.haxx.se/ca/cacert.pem >/sys/lib/tls/ca.pem

# shell script that emulates git commands hget http://9front.org/extra/rc/git >$home/bin/rc/git chmod 775 $home/bin/rc/git

# fetch the repository git clone https://go.googlesource.com/go cd go git checkout go1.4.2 # amd64 only: bootstrap with 1.4.2

# build go cd src ./make.rc

# install documentation go get golang.org/x/tools/cmd/godoc

# go! 4A=@: Documentation − The Go Programming Language =n@ Go Plan 9 Wiki

Haskell

% Perl

2AHl#.&.,FoHJA@Jo2l=n ':DJJF://Fl=n'.>All-l=>I.?om/IoKH?AI/ANJH=/FAHl.EIo.>z

PHP

& Python

2OJDon .#. EI En?lK@A@ MEJD JDA 'BHonJ @EIJHE>KJEon, noJ >A?=KIA =nOonA loLAI 2OJDon, >KJ >A?=KIA EJ M=I HAGKEHA@ >O MAH?KHE=l =lIo loLA@ >O no onA, MDE?D M=I HAGKEHA@ >O /ooClA+o@AIDKJJEnC@oMnEn  #.)n=>jA?JlAIIonEnANFA@EAn?O.

JABB5E?kAlFoHJA@2OJDon .%Jo2l=n'.

Ruby

4A=@: Ruby is Not Even Funny

' I am now used to the FQA being frankly not worth the 1s and 0s it was written in ߞ ƺ. µ ǫ On?A KFon = JEmA, kDm M=I IA=H?DEnC BoH rails documentation =n@ =??E@AnJ=llO DEJ JDA Images lEnk. 1n JDA BEHIJ F=CA oB HAIKlJI M=I = FDoJo oB JDA JH=En JH=?kI oB )KI?DMEJz. 1JI FHAIAn?A =monC JDA 4K>O on 4=ElI loCoI M=I Io =>IKH@ =n@ oKJ oB Fl=?A JD=J kDm mAmoHE=lEzA@ EJ. 1J M=I m=@A En =n AH= >ABoHA =?JK=l N=zEI D=@ HA-AnJAHA@ JDA FK>lE? @E=loCKA, Io EJ BAlJ lEkA /ooClA 1m=CA 5A=H?D M=I @AnECH=JEnC 4K>O on 4=ElI >O En?lK@EnCJDEIIoHJoBEm=CAHOEnJDAHAIKlJI.

/AnAH=llO IFA=kEnC, "?D=n JOFAI HA=@ EJ =I =n An@oHIAmAnJ, MDE?D IK?kI. MoHA HA?AnJlO, FAoFlA MDo =HA noJ =IIDolAI D=LA =lIo >ACKn Jo HA=@ EJ =I =n An@oHIAmAnJ, MDE?D EI ALAn moHA KnBoHJKn=JA. .En=llO, JDA FAoFlA MDo jKIJ CAJ m=@ =>oKJ JDEnCI on Io?E=l mA@E= D=LA >ACKn nAIJEnC En EJ. )I = HAIKlJ, JDEI Em=CA D=I >AAn J=HCAJA@ BoH HA@=?JEon >OJDA'BHonJ1nJAHnAJMo>MollEBE?=JEon?ommEJJAA.

4A=@: https://news.ycombinator.com/item?id=25777580, https://mastodon.social/@stevelord/105509463981426031, https://lobste.rs/s/2tvtwp

FQA Appendix T − TODO

Introduction

6DEI EI = lEIJ oB FoIIE>lA JDEnCI Jo =@@, HAmoLA, ?D=nCA En 'BHonJ. )BJAH JDAHAߣI >AAn IomA ?onIAnIKI JD=J IomAJDEnC DAHA EI CoEnC Jo >A EmFlAmAnJA@, =n EIIKA m=O >A ?HA­ =JA@onJDA>KCJH=?kAH.

 Crazy Ideas ߦ m=kA=6O,OlEIJMDE?DEInߣJBKlloB>KllIDEJ=n@H=n@omIKCCAIJEonI

Basically Sound ߦ @=n?HoIIߣ M=lk=n@IoH http://permalink.gmane.org/gmane.os.plan9.general/8755

ߦ LE@Ao@A?o@AH/Fl=OAHBBmFACFoHJ?IAA FQA Appendix B − Bounties 

ߦ CH=FDLEz

ߦ AGKEI:

࢐ KIA/@AL/k>@BoHLE@AoC=mAAmKl=JoHI,=monCIJoJDAHJDEnCI

࢐ In=HB/F=IJA IKFFoHJ mECDJ >A Coo@ =I ?lEAnJ FHoCH=mߞDoM MoKl@ JDEI MoHk?

ߦ oFAnLFn

ߦ KnH=H!

ߦ Kn%zEF

ߦ 8=?.5

ߦ ?lEAnJ=KJD

ߦ CHoKFI?

ߦ MHEJA=??AII

ߦ N$",25:,5M5,6/- $AmKl=JoHI

ߦ mKIE?JH=?kAHFHoCH=mIAGKAn?AH

ߦ FE?o JDAFl=n'Em=CAm=nEFKl=JEonl=nCK=CA

ߦ O275=K@EoIKFFoHJ http://tools.ietf.org/html/rfc6716

ߦ @jLKIKFFoHJ

ߦ ?DmIKFFoHJ http://www.nongnu.org/chmspec/latest/index.html

ߦ /71 FHoCH=mI moJDH=, =>=?o, I=m, AJ?. IDoKl@ D=LA IDEBJ+KF/@oMn =HHoM >AD=LEoHlEkAHEo

ߦ =@@m=CnAJ/@DJ=n@FAAH@EI?oLAHOIKFFoHJJoEF/JoHHAnJ

ߦ EmFlAmAnJIomAM=OJo@AJAHmEnAKIA@=n@BHAAIF=?Aon.)6LolKmAI

 Somebody Else’s Problem ߦ EnBAHno:

࢐ m=kAIn=HBMoHk>O@AB=KlJ

࢐ BEN>KEl@on=m@$"

For the Masochists ߦ MHEJAN6.5@HELAH

ߦ ANB=JBElAIOIJAm

For the Users ߦ HA=@BG=

ߦ HA=@m=nF=CAI

ߦ HA=@Fl=n'F=FAHI

ߦ lA=Hn?

 FQA Appendix Z − Getting Started With 9front

M=nOKIAHI=HAnoJonlOnAMJo'BHonJ,>KJnAMJo2l=n'.

;oKm=O>AloIJ.

4A=@:DJJF://m=IIELABE?JEonI.?om/NO_+OM276-4/

LEIJAn:DJJFI://=H?DELA.oHC/@oMnlo=@/2EH=?O/2EH=?O-6H=?k_"-No>o@O_LEIJAnI_L>H.mF!

! NOTES

"