<<

6DEI >ook M=I JOFAIAJ troff -ms -mpictures|lp -dstdout|ps2pdf En LK?E@= 5=nI >O JDA =KJDoH, KIEnC = LAnoLo 6DEnk2=@ : ! 6=>lAJ HKnnEnC JDA 'BHonJ oFAH=JEnC IOI­ JAm.

4An@AHA@:  $- - #

'.4ON6 'BHonJ.oHC

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,lELEnCoH@A=@,>KIEnAIIAI,?omF=nEAI,ALAnJIoHlo?=lAIEIAnJEHAlO?oEn?E@AnJ=l.

M16/++/2K>lE?,om=En 9FRONT FREQUENTLY QUESTIONED ANSWERS

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

ACHTUNG! 6DEI @o?KmAnJߣI 5647+674- ߞ =n@ IomA oB EJI 6-:6 ߞ EI Fl=CE=HEzA@ ߞ BHomJDAO2-N*5,.)3

ACHTUNG! 601515NO6)  52)+-

ACHTUNG! 1nBoHm=JEon FHoLE@A@ >O JDEI @o?KmAnJ m=O >A oKJ@=JA@ oH jKIJ Fl=En MHonC.7IAOoKH>H=En.NO4-.7N,5.

_sl’s info is incorrect. ߞ =nJD_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'?

. ."-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?=  "

.!-.KHJDAH4A=@EnC

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

.!. -M=nF=CAI

.!.!-9A>F=CAI

.!."-*ookI

1 − Introduction to 9front

. -9D=JEI'BHonJ?

. . -+EHnoߣI>AAnoKHm=I?oJBoH=MDElA.

. -OnMD=JIOIJAmI@oAI'BHonJHKn?

.!-9DOmECDJ1M=nJJoKIA'BHonJ?

.!. -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

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

!. . -)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@

!. .#-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,JKn"

!.!. .".!-9En@oMI6)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

".!.%- 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

$. . . -9EBE

$. . . . -1nJAHB=?AI

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

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

$. . . . .!-EMl

$. . . . ."-HJ &$

$. . . . .#-MFE

$. . . . -92)

$. . . .!-9EBE4o=mEnC

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

$. .!-12=@@HAII

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

$. .#-,N54AIolKJEon

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

$. .#. -,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

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

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

%.". -+onBECKHEnC=n=KJDIAHLAH

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

%.". -)@@EnCKIAHI

%.".!-IA?IJoHA@

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

%.".!. -+onLAHJEnCBHomFI'k 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

%.&-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

&.". . -nA@m=El

&.". .!-nKF=I

&.". -NN62

&.".!-14+

&.".!. -EH?H?

&.".!. -EH?%

&."."-.62

&.".#-0662

&.".#. -moJDH=

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

&.".#.!-DCAJ

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

&.".#.#-E

&.".$-550

&.".$. -IID

&.".$. -IID

&.".$.!-I?FK

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

&.".$."-OFAn550

&.".$.#-IBJFBI

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

! &.".%-IA?IJoHA

&.".&-@H=MJAHm

&.#-)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

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

&.&. -'BHonJIoKH?AIIAHLAH

&.&. -'BHonJ?onJHE>

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

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

&.'. -=m@$"

&.'. -4=IF>AHHO2E

&. -)+21

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

&. -M26=>lAOLAHHE@A

&. -4ALEIEon+onJHol

&. . -?LI

&. . -CEJ

&. .!-MAH?KHE=l

&. ."-ILn

" 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

J-JKnk

# L-L=nCK=CAI

$ 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 ALolLA IomA oB JDA I=mA E@A=I JD=J EnBoHmA@ 7N1: 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 =I 7N1:, onlO moHAIo.

.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:

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 =?HEmonO=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?DEJA?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@.

' 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:

DJJF://MMM.Fl=n'.>All-l=>I.?om/MEkE/Fl=n'/MD=J_@o_FAoFlA_lEkA_=>oKJ_Fl=n_'/

0.2.1.1 − What do you use Plan 9 for?

EBOoK@onJknoMMD=JJDEIEIKIABKll

JDAnEJInoJBoHOoK

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@:*7,/5

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.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.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:DJJF://Fl=n'.>All-l=>I.?om/Fl=n'

*AllL=>I2l=n'MEkE:DJJF://MMM.Fl=n'.>All-l=>I.?om/MEkE/Fl=n'/Fl=n_'_MEkE

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,En>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’s been our mascot for a while.

Our mascot

!  /lAn@=EICAJJEnCol@,+EHnoEInoMoKHm=I?oJ.

DJJF://JoKDoK.MEkE=.?om/MEkE/+EHno

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

ߦ mEFI

!! 4A=@: FQA 3.2 − Selecting Hardware

1.3 − Why might I want to use 9front?

NAM KIAHI BHAGKAnJlO M=nJ Jo knoM MDAJDAH 'BHonJ EI IKFAHEoH Jo IomA oJDAH BHAA 7N1:- lEkA oFAH=JEnC IOIJAm. 6D=J GKAIJEon EI l=HCAlO Kn=nIMAH=>lA =n@ EI JDA IK>jA?J oB ?oKnJ­ lAII =n@ KIAlAII HAlECEoKI @A>=JAI. ,o noJ, Kn@AH =nO ?EH?KmIJ=n?AI, =Ik IK?D = GKAI­ JEonon14+oHon='BHonJm=ElEnClEIJ.

9DAJDAH'BHonJEIHECDJBoHOoKEI=GKAIJEonJD=JonlOOoK?=n=nIMAH.

1.3.1 − New Features

ߦ /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

ߦ 5KFFoHJBoHAn?HOFJA@ F=HJEJEonI cryptsetup(8). 4A=@: .3) " - 'BHonJ 1nIJ=l­ l=JEon/KE@A

ߦ NAMI?HAAnBonJI: dejavu, germgoth, vga

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

ߦ KAO>o=H@ALAnJIMEJD /dev/kbd. 4A=@: kbdfs(8) =n@ rio(4)

ߦ /lib/ken, /lib/rob, /lib/rsc

ߦ NAM listen(8) −p maxprocs oFJEon

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

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

!" icanhasmsi(8) @KmFM51EnBo

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

ߦ NAM rio(1) −b oFJEon>l=?kMEn@oM>=?kCHoKn@I

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

ߦ 75*@HELA>ooJ

ߦ 1mFHoLA@75*moKIAIKFFoHJ

ߦ 5KFFoHJBoH75*FJF?=mAH=I

ߦ 5J=>lA=?HoIIm=?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

ߦ 9EBEIKFFoHJMEJDMF=/MF=

ߦ 55-IKFFoHJ

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

ߦ 7nE?o@AIKFFoHJEn vt(1)

ߦ pc64,kAHnAlBoH=m@$"

1.3.1.1 − New Programs

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

ߦ alarm(1) ߞ JEmAoKJIEn rc I?HEFJI

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

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

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

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

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

ߦ fplot(1)

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

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

ߦ hget(1) ߞ HAMHEJJAnEn rc,noMKIAI webfs

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

ߦ hold(1) ߞ IEmFlAJANJA@EJoH

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

ߦ 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

ߦ rc−httpd(8) ߞ 0662IAHLAH

ߦ 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

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

ߦ 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

ߦ tojpg(1) ߞ jFACAn?o@AH

ߦ totif(1) ߞ JEBBAn?o@AH

ߦ torrent(1) ߞ >EJJoHHAnJ?lEAnJ

1.3.1.2 − New Hardware Support

Audio

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

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

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

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

Wifi

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

ߦ 1nJAl+AnJHEno7lJEm=JA-NEMl-$

ߦ 1nJAl+AnJHEno9EHAlAII-N 

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

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

ߦ 4=lEnk46 &$/46!'

!% Tablets

ߦ 9=?om9)+.",9)+.&

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

Video

ߦ )M,/Ao@AL:@HELAH

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

ߦ 1nJAl/"#=n@1LO*HE@CA@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?

!& Note: 6DA m=EnJ=EnAHI oB 'BHonJ IKFFoHJ JDA FHojA?J l=HCAlO BHom JDAEH oMn Fo?kAJI. 6DEI En?lK@AI JDA JEmA IFAnJ FHoCH=mmEnC BoH JDA FHojA?J, AGKEFmAnJ KIA@, JDA nAJMoHk HAIoKH?AI KIA@ Jo @EIJHE>KJA 'BHonJ Jo OoK, =n@ JDA JEmA IFAnJ =nIMAHEnC GKAIJEonI =n@ EnLAIJEC=JEnC KIAHIߣ >KC HAFoHJI. 6DA 'BHonJ @ALAloFAHI =HA noJ En@AFAn@AnJlO MA=lJDO =n@ALAnIm=ll?onJHE>KJEonIoBJEmA,AGKEFmAnJ,=n@HAIoKH?AIm=kA=>EC@EBBAHAn?A.

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 'BHonJFHojA?J.

1.6 − Who maintains 9front?

'BHonJEIm=EnJ=EnA@>O=@ALAloFmAnJJA=mIFHA=@=?HoIIm=nO@EBBAHAnJ?oKnJHEAI.

1.7 − When is the next release of 9front?

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@DAHA:

DJJF://lEIJI.'BHonJ.oHC

1.8 − What is included with 9front?

5omAKIABKlFHoCH=mIEn?lK@A@MEJDJDAoFAH=JEnCIOIJAm=HA: ߦ 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.

.ECKHAEJoKJ.

1.10 − Why is/isn’t ProductX included?

2AoFlA oBJAn =Ik MDO = F=HJE?Kl=H FHo@K?J EI oH EInߣJ En?lK@A@ MEJD 'BHonJ. 6DA =nIMAH EI >=IA@ on JMo JDEnCI: JDA MEIDAI oB JDA @ALAloFAHI =n@ ?omF=JE>ElEJO MEJD JDA Co=lI oB JDAFHojA?J.)FHo@K?JMEllnoJ>AEn?lK@A@IEmFlO>A?=KIAEJEInEBJO.

) m=joH ?onIE@AH=JEon EI JDA MEIDAI oB JDA @ALAloFAHI. 6DA 'BHonJ @ALAloFAHI =HA JDA KlJEm=JA jK@CAI oB MD=J @oAI =n@ @oAInߣJ Co EnJo JDA FHojA?J. JKIJ >A?=KIA =n =FFlE?=­ JEon EI Coo@ @oAInߣJ mA=n JDA 'BHonJ FHojA?J MEIDAI Jo @ALoJA JDA HAIoKH?AI nAA@A@ Jo m=EnJ=EnEnCEJ,oHJD=JJDAOMEllID=HAoJDAHߣIAnJDKIE=Im=>oKJEJIFl=?AEn'BHonJ.

1n?HA@E>lO,m=nOKIAHIIJEllIAABEJJo@Am=n@oJDAHMEIA.

" 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=BHomJDABolloMEnClo?=JEonI.

1.11.1 − Mirrors

1.11.1.1 − 9front.iso

DJJF://'BHonJ.oHC/EIo/

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

DJJF://'BHonJ.HNH.mA/

DJJF://mEHHoH.'B=CI.nAJ/

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

1.11.1.2 − Mercurial repository

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

DJJF://?o@A.?HEJE?=lFD=.IA/DC/Fl=n'BHonJHA=@-onlO

"  Good Luck

"  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://>KCI.'BHonJ.oHCߞ >KCJH=?kAH

ߦ DJJF://BG=.'BHonJ.oHCߞ oBBE?E=l@o?KmAnJ=JEon,BHAGKAnJlOGKAIJEonA@=nIMAHI

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

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

ߦ DJJF://MEkE.'BHonJ.oHCߞ EnBoHm=l@o?KmAnJ=JEon,@ALAloFAHI?H=J?=@

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

5omA KIAHI D=LA IAJ KF IEJAI =n@ F=CAI MEJD 'BHonJ IFA?EBE? EnBoHm=JEon. )I MEJD ALAHO­ JDEnC on JDA 1nJAHnAJ, = Coo@ IA=H?D AnCEnA EI CoEnC Jo m=kA OoKH lEBA A=IEAH, =I MEll = DA=lJDO@oIAoBIkAFJE?EIm.)I=lM=OI,@onoJ>lEn@lOAnJAH?omm=n@IOoK@onoJ Kn@AH­ IJ=n@EnJoOoKH?omFKJAH.

6D=JI=E@,mK?DL=lK=>lAEnBoHm=JEon?=n>ABoKn@=JDJJF://?=J-L.oHCHAC=H@EnC=IFA?JI oB7N1:,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 IAH­ LE?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->KCIߞ HAFoHJ>KCI

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

'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−bugs /n/lists/9front−commits /n/lists/9front−sysinfo /n/lists/9nag /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 ?=n moKnJ JDAIA @EHA?Jo­ HEAI=Im=El>oNAI,BoHHA=@EnC@EHA?JlOMEJD=m=El?lEAnJ.

2.2.2 − Other useful mailing lists

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

'?D=nCAIߞ NoJEBE?=JEonIoB?D=nCAIJo2l=n'BHom*AllL=>IKnoBBE?E=l.

'n=Cߞ 2EnC=lAHJIBoHFl=n'.>All-l=>I.?omKnoBBE?E=l.

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

DJJF://Fl=n'.IJ=nlAOlEA>AH.?om/m=n =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 =n A-m=El Jo 9front−bugs−[email protected]. 6DAIK>jA?JlEnAoBOoKH A-m=El MEll >A KIA@ Jo oFAn =n EIIKA on JDA >KC JH=?kAH, =n@ OoKH mAII=CA MEll >A

"% BoHM=H@A@JoJDA'BHonJ->KCIm=ElEnClEIJ.

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,=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

# 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=nJDA@EBBAHAn?A>AJMAAnIK??AII=n@B=ElKHAoB=FHojA?J.

1B OoK =HA IDoFFEnC BoH = nAM 2+, MDAJDAH OoK =HA >KOEnC EJ FEA?A >O FEA?A oH ?omFlAJAlO FHA->KElJ, OoK M=nJ Jo m=kA IKHA BEHIJ JD=J OoK =HA>KOEnCHAlE=>lAF=HJI.1nJDA2+MoHl@, JDEI EI noJ A=IO. Bad or otherwise unreliable or mismatched parts can make 9front run poorly and crash often. 6DA >AIJ =@LE?A MA ?=n CELA EI Jo >A ?=HABKl, =n@ >KO >H=n@I =n@ F=HJI JD=J D=LA >AAn HALEAMA@ >O =n =KJDoHEJO OoK JHKIJ. 5omAJEmAI, = DECDAH-FHE?A m=?DEnA EI = >AJJAH GK=lEJO m=?DEnA. OJDAH JEmAI, EJ EI IEmFlO moHA ANFAnIELA.

6DAHA =HA ?AHJ=En JDEnCI JD=J MEll DAlF >HEnC oKJ JDA m=NEmKm FAHBoHm=n?A oB OoKH IOIJAm: Let the application choose the hardware: 1J EI KIK=llO >AJJAH Jo m=kA =n =@jKIJmAnJ Jo JDA D=H@M=HA OoK MAHA Fl=nnEnC on KIEnC H=JDAH JD=n ?omFHomEIEnC onOoKH=FFlE?=JEon@AIECn>A?=KIAOoKD=LAIomAJDEnCOoKHA=llOM=nJA@JoKIA.

Identify your bottlenecks: ,onߣJ F=O ANJH= BoH JDA ?KJJEnC-A@CA FHo?AIIoH EB OoKH =FFlE?=JEon EI HAIJHE?JA@ >O @EIk 1/O. ,onߣJ F=O BoH B=IJ @EIk EB OoKH IOIJAm EI HAIJHE?JA@ >O nAJMoHk IFAA@. ,onߣJ F=O BoH mK?D oB =nOJDEnC EB OoKH >oJJlAnA?k EI = !>FI@E=l-KFlEnA.

Keep it simple: 5EmFlA D=H@M=HA KIK=llO D=I IEmFlA FHo>lAmI. +omFlAN D=H@M=HA JD=J EInߣJ IKFFoIA@ Jo ALAH >HA=k m=O J=kA OoK = lonC JEmA Jo HAF=EH MDAn EJ>HA=kI =nOM=O.

Use hardware you understand, or learn the new hardware before you implement a production system: 4AC=H@lAII oB JDA JA?DnE?=l mAHEJI oB JDA

#  D=H@M=HA, ?ommEJJEnC Jo KIA = F=HJE?Kl=H JOFA oB D=H@M=HA >ABoHA OoK D=LA >A?omA B=mElE=HMEJDEJ,>oJDDoMEJMoHkI=n@DoMEJB=ElI,EIBoolEID.

Avoid cheap network adapters: 'BHonJ IKFFoHJI = FlAJDoH= oB ?DA=F nAJMoHk =@=FJAHI. 6DAIA =@=FJAHI MoHk CHA=J En DomA IOIJAmI, =n@ loM oH mo@AH=JA JDHoKCDFKJ >KIEnAII =n@ HAIA=H?D AnLEHonmAnJI. *KJ, EB OoK nAA@ DECD JDHoKCDFKJ =n@ loM EmF=?J on OoKH IAHLAH, OoK =HA >AJJAH oBB >KOEnC = GK=lEJO nAJMoHk =@=FJAH. 7nBoHJKn=JAlO, IomA n=mA->H=n@ =@=FJAHI =HA noJ mK?D >AJJAH JD=n JDA ?DA=F =@=FJAHI, =n@ IomA FoJAnJE=llO Coo@ =@=FJAHI @o noJ D=LA =??KH=JA @o?KmAnJ=JEon =L=El=>lA Jo MHEJA Coo@ @HELAHI. /EC=>EJ =@=FJAHI oBJAn FAHBoHm >AJJAH JD=n M>FI/ M>FI =@=FJAHI, ALAn MDAn KIA@ on IloMAH IFAA@ nAJMoHkI, @KA Jo IKFAHEoH>KBBAHEnC.

+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 nAM D=H@M=HA @HELAHI En'BHonJ.

3.2.0 − Input Devices

3.2.0.1 − Mice

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

#! 3.2.0.2.1 − IBM/Lenovo

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

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

#" 3.2.1 − Audio

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 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

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 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

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 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

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

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

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.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?DF=@,MoHkI CH=FDE?I: 45"& M )61 4),-ON :FHAII 5AHEAI, 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

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

$" R400

7439−1DG ?FK: # %M0z /AnKEnA1nJAl +oHA /:Aon ?FKE@: ): N $%$ +: N&-!., ,: N*.-*.*.. CH=FDE?I: Mo>ElA 1nJAl /M"# -NFHAII/"#M0,, realemu(8) monitor=vesa vgasize=1440x900x32 AJDAHnAJ:1nJAl& #$%LM& #$%LM- /EC=>EJ / / ,MoHkI MEBE:1nJAl9EBELEnk# )/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=CA 1:/+ $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: )61 Mo>ElEJO 4=@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: )61 Mo>ElEJO 4=@Aon .EHA/L 8! /:$, 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

T60p

2007−94U ?FK: 1nJAl +oHA ,Ko ;on=D . $/0z ?FKE@: ): N$-& +: N+ )' ,: N*.-'.*.. CH=FDE?I: )61 MO*1L16; .EHA/L 8#  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

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=JEon Mo>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?I MA@E= )??AlAH=JoH 0,, 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: 1nJAl 0, /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

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?I MA@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: 1nJAl 0, /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: 1nJAl 0, /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>ElA 1nJAl /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>ElA 1nJAl /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>ElA 1nJAl /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: 1nJAl 0, !, 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

%  X230

2306−CTO ?FK: 1nJAl +oHA E#-!! M  .$ /0z, !M* L!, $M0z .5*, ?FKE@: ): N!$)' +:N%%*)-!..,:N*.-*.*.. CH=FDE?I: 1nJAl 0, !H@ /An +oHA FHo?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: 1nJAl 0, ", realemu(8) monitor=vesa vgasize=1366x768x32 J=>lAJ:75*,KnJAIJA@ 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

X230 Tablet

3434−DB7 ?FK: 1nJAl4 +oHA6M E%-!# M +27 ( .'/0z ?FKE@: ): !$)' +: %%*)-!..,:*.-*.*.. CH=FDE?I: 1nJAl 0, ", realemu(8) monitor=vesa vgasize=1366x768x32 J=>lAJ:75*,KnJAIJA@ 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

%" 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-7 1nJACH=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,KnJAIJA@

%# X301

2776−P4U ?FK: 1nJAl +oHA ,Ko 57'" ."/0z !M* ?=?DA, ?FKE@: ): N $%) +: N"&-!.,,:N*.-*.*.. CH=FDE?I: Mo>ElA 1nJAl /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>ElA 1nJAl /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

%$ 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=

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 EI JAIJA@ MEJD GAmK .#. =n@ ..# HKnnEnC on LEnKN, KIEnC FQA 3.3.3 − virtio BoH@EIk=n@nAJMoHk.

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 9pcf −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 tun(4)

6AIJA@:OFAn*5,/=m@$"".'-+744-N6,GAmK-.'. F &,kGAmK- .!.FHA F!

+onBECKHA = JKn" EnJAHB=?A MEJD =n 12 =@@HAII IAlA?JA@ BoH OoKH qemu nAJMoHk. +onBECKHA >HE@CEnC >AJMAAn JDA tun(4) EnJAHB=?A =n@ OoKH m=?DEnAߣI ANJAHn=l EnJAHB=?A. .En=llO, ?onBECKHA N)6 oH HKlAI Jo F=II JH=BBE? BoH JDA qemu nAJMoHk En pf.conf. 4A>ooJ.

6ol=Kn?D qemu =I=HACKl=HKIAH: sudo sh −c "sudo −C 4 −u $USER qemu −m 768 \ −net nic,vlan=0,model=rtl8139,macaddr=52:54:00:12:33.36 \ −net tap,vlan=0,fd=3,script=no −no−fd−bootchk \ −hda 9front.qcow2.img 3<>/dev/tun0"

4A=@: hostname.if(5), pf.conf(5), tun(4)

& 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.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 "."/ ". : /AnAH=l->*=IE?6OFA:OJDAH8AHIEon:OJDAH/7knoMn

5OIJAm -> MoJDAH>o=H@ +DEFIAJ: 211:! 2oEnJEnC ,ALE?A: 25/ MoKIA -NJAn@A@ .A=JKHAI:[N]-n=>lA1/O)21+

5OIJAm->2Ho?AIIoH-NJAn@A@.A=JKHAI:[N]2)-/N:noJIKHAJDEIm=JJAHI

5OIJAm->)??AlAH=JEon[N]-n=>lA86-N/)M,-8[N]-n=>lANAIJA@2=CEnC

,EIFl=O -> 8E@Ao -NJAn@A@ .A=JKHAI: [N] -n=>lA !, )??AlAH=JEon noJ IKHA JDEI m=JJAHI

5JoH=CA->)JJHE>KJAIN=mA:1,-6OFA:211:"[N]7IA0oIJ1/O+=?DA

)K@Eo -> [N] -n=>lA )K@Eo 0oIJ )K@Eo ,HELAH: +oHA)K@Eo +=n >A 2KlIA)K@Eo oH oJDAHMEIA BoH LEnKN, AJ?. 5DoKl@nߣJ >A D=H@ Jo IAJ JDEI )K@Eo +onJHollAH: 5oKn@>l=IJAH $

NAJMoHk -> )@=FJAH )JJ=?DA@ Jo: N)6 -> )@L=n?A@ )@=FJAH 6OFA: 1nJAl 24O/ M65AHLAH2HomEI?KoKIMo@A:,AnONoJIKHAJDEIm=JJAHI

Note: -n=>lEnC 75* . +onJHoll En ߣ2oHJI -> 75*ߣ MoHkI jKIJ BEnA En 'BHonJ, moKnJEnC Kn@AH /shr Bl=MlAIIlO =I lonC =I JDA DoIJ D=IJDA8EHJK=l>oN-NJAn­ IEon2=?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

ACHTUNG! 6DEI @o?KmAnJ =n@ JDA 'BHonJ EnIJ=llAH FAHJ=EnI onlO Jo JDA !&$ EnIJ=ll J=H­ CAJ. .oH oJDAH =H?DEJA?JKHAI, HA=@: &.' - *ooJIJH=FFEnC =H?DEJA?JKHAI noJ En?lK@A@ on JDA 15O

&# 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. 1n CAnAH=l, 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 onJDA75*@EIk.

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=9pcf 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: /386/9bootfat /n/dos +al /n/dos/9bootfat # defrag magic cp /386/9pcf /n/dos cp /path/to/9front.iso /n/dos

OFJEon=lBoH-.1IOIJAmI: cd /sys/src/boot/efi; mk install −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@ 9pcf >En=HEAI. -EJDAH ?oFO JDAm BHom JDA @EI­ JHE>KJA@ 15O Em=CA JDA BElAI =HA lo?=JA@ Kn@AH /386/ oH >KEl@ KF Jo @=JA >En=HEAI on = 'BHonJIOIJAm.4A=@: FQA 5.2.2 − Building from source

OnJDALEnKNIOIJAm,?HA=JA= $dir MEJDJD=J?onJ=EnIJDABolloMEnCBElAI: 9front.iso 9pcf 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

&& EnEJE=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 (cpuid: AX 0x206A7 CX 0x82982203 DX 0xFEBFBFF) 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@. @{rfork n; aux/realemu; aux/vga −p} # obtain a list of vesa bios modes @{rfork n; aux/realemu; aux/vga −m vesa −l 1024x768x16} # configure one of the valid

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.

4A=@: FQA 3.3 − What is an appropriate first system to learn 9front on?

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

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/9pcf % 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/9pcf /n/9fat/9pcf

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 = IDAll FHomFJ.

ߦ )?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 >ooJEnC BHomJDAAn?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, >A IKHA Jo JKHn on IM=F >ABoHA >KEl@EnC. 4A=@: swap(8), FQA 3.3 − What is an appropriate first system to learn 9front on?

# 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

*KEl@JDAkAHnAlBoH!&$:

  cd /sys/src/9/pc mk install

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

*KEl@JDAkAHnAlBoH4=IF>AHHO2E: cd /sys/src/9/bcm 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 !&$ =H?DEJA?JKHA EI >KElJ BoH JDA 15O. 4A=@: FQA 8.9 − Bootstrapping architectures not included on the ISO BoH moHA EnBoHm=JEon on >ooJEnC oJDAH=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.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.

! 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 cd /sys/src/cmd/6c; mk install # choose the appropriate compiler for your architecture

" FQA 6 − Networking

6.1 − Before we go any further

2l=n 'ߣI =FFHo=?D Jo nAJMoHkEnC EI KnKIK=l. .oH JDA >Klk oB JDEI @o?KmAnJ, EJ DAlFI EB OoKD=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, OoK m=O >AnABEJ CHA=JlO >O HA=@EnC JDA 4.+I. MoIJ lEkAlO, OoK ?=nߣJ HA=@ =ll oB JDAm. 2E?k IomA JoFE?I JD=J OoK =HA EnJAHAIJA@ En, oH JD=J OoK KIA En OoKH nAJMoHk AnLEHonmAnJ. Look JDAm KF, BEn@ oKJ DoM JDAO =HA EnJAn@A@ Jo MoHk. 6DA 4.+I @ABEnA m=nO JDoKI=n@I oB IJ=n@=H@I BoH FHoJo?olI on JDA 1nJAHnAJ =n@ DoM JDAO =HA IKFFoIA@ JoMoHk.

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 = nAM JKFlA. LEnAI

# IJ=HJEnCMEJD=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 noJFAHIEIJ=?HoIIHA>ooJI.

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, =@@ AnJHEAI ?oHHAIFon@EnC Jo JDA ,N5 HooJIAHLAHI En /lib/ndb/local: # # entries defining the dns root. these will be overridden by any # authentic info obtained from the root. # dom= ns=A.ROOT−SERVERS.NET ns=B.ROOT−SERVERS.NET ns=C.ROOT−SERVERS.NET ns=D.ROOT−SERVERS.NET ns=E.ROOT−SERVERS.NET ns=F.ROOT−SERVERS.NET ns=G.ROOT−SERVERS.NET ns=H.ROOT−SERVERS.NET ns=I.ROOT−SERVERS.NET ns=J.ROOT−SERVERS.NET ns=K.ROOT−SERVERS.NET ns=L.ROOT−SERVERS.NET ns=M.ROOT−SERVERS.NET

NANJ, mo@BEO /cfg/$sysname/termrc oH /cfg/$sysname/cpurc MDE?DALAH EI =FFHoFHE=JAJoEn?lK@AJDABolloMEnC: ndb/dns −rs

6DA?=?DEnC,N5IAHLAHMEll>AIJ=HJA@=J>ooJJEmA.

.En=llO, 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=2012110732 # serial is automatically maintained if omitted 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.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+2 IAHLAH on OoKH IOIJAm, mo@EBO /cfg/$sysname/cpurc oH /cfg/$sysname/termrc MDE?DALAH EI =FFHoFHE=JA Jo IJ=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/9pcf 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 IOIJmAI, 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 pcf kAHnAl EI /sys/src/9/pc/pcf.

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/9pcf

.oH=m@$": cd /sys/src/9/pc64 mk install # kernel is copied to /amd64/9pc64

.oH>?m4=IF>AHHO2E,AJ?.: cd /sys/src/9/bcm mk install # kernel is copied to /arm/9pif

.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/9pcf /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).

" 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]

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 lEnAEnEn /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 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.4 − Mounting a file system from userspace

.oH?MBI: % cwfs64x −n fs −f /dev/sdE0/fscache # use the correct path to your fscache % mount /srv/fs /n/fs

Note: Running the above commands will post the file systems’s console in /srv/fs.cmd.

.oHDjBI:

$ to be announced

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 ps9k1 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 9pcf 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!*!17019 /bin/cpu −R &

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@AlEALAHA@.

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.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

i am form china here is lots of people knows and documented is chinese the time comllexity is need you youself and you will it ߞ MAnMAEFAnC

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

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 − /

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, moKIAMDAAl I?HollEnC EI noJ. 5o B=H, shift + up oH down EI onlO IKFFoHJA@ 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

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

"" ?oloHI, 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 BoH 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

"% ,=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

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: upas/fs HA=@I JDA AnJEHA m=El>oN EnJo 4)M, MDE?D mA=nI EJ m=O B=El Jo lo=@ m=El>oNAI JD=J AN?AA@ JDA =L=El=>lA IOIJAm mAmoHO. 6DEI FHo>lAm D=I >AAn =@@HAIIA@ En -HEk 3K=nIJHomߣI nKF=I, MDE?D HA=@I JDA m=El>oN EnJo =n En@AN BElA, JDAn FAHBoHmI nAMoFAH=JEonIonJDAEn@ANMDAHAFoIIE>lA.

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.3 − nupas

4A=@: Scaling Upas, >O-HEk3K=nIJHom

Note: 1nIJ=llEnC nupas HAFl=?AI JDA IOIJAmߣI @AB=KlJ upas. 4A=@ JDA En?lK@A@ README.9front =n@ mkfile >ABoHA=JJAmFJEnCJoEnIJ=ll.

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.4 − FTP

4A=@: ftpfs(4)

8.4.5 − HTTP

8.4.5.1 − mothra

mothra EI = JHELE=l MA> >HoMIAH 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 noM KIAI webfs, =n@ no lonCAH IKFFoHJInon-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.6 − SSH

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

8.4.6.1 − ssh

'BHonJIDEFIMEJDJDAoHECEn=l2l=n'n=JELA550 ?lEAnJBHom*AllL=>I.

4A=@: ssh(1)

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 cat $home/lib/ssh/key >/mnt/factotum/ctl # must be present before running

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 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 >oJD ?=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 Jo En?oHFoH=JA BA=JKHAI BHom 2l=n'BHonJ DJJF://'BHonJ.oHC, moIJ EmFoHJ=nJlO ,2'1K =KJDAnJE?=JEon IKFFoHJ IAA =KJDIHL$ =n@ JDA6L5>=IA@H?FK FHoJo?ol: http://drawterm.9front.org

8.5 − Audio

4A=@: 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.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

bugs/ ߞ >KCHAFoHJI

contrib/ ߞ KIAH?onJHE>KJA@IoBJM=HA

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

sources/ ߞ moIJlO?omFlAJAmEHHoHoB*AllL=>IIoKH?AIIAHLAH

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 JD=J EI =??AIIE>lA BHom =nO 2l=n ' IOI­ JAm: 9fs 9front

7IAH@EHA?JoHEAIMEllJDAn>A=L=El=>lAKn@AH /n/contrib/.

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

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.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.

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?

OKJ@=JA@ =n@ FoIIE>lO ?onBKIEnC EnIJHK?JEonI BoH EnIJ=llEnC @EHA?JlO onJo JDA HFEߣI I@ ?=H@=HA@AJ=ElA@En Appendix J − Junk

$  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

)+21EIAn=>lA@MEJDJDAFHAIAn?AoB *acpi= >ooJF=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 MEll m=kA =?FE J=>lAI =??AIIE>lA JDHK JDA BElA >KJ noJ KIA EJ EnJDAkAHnAl.

8.11 − MP Table Override

This horrible hack should be considered obsolete, in particular with the implementation of APIC renaming and MSI. It might still be useful.

5En?A IomA moJDAH>o=H@/*1O5 m=nKB=?JKHAH @onߣJ ?=HA =>oKJ =nOJDEnC >KJ )+21, JDA M2 J=>lA mECDJ >A En =n KnKI=>lA IJ=JA MDE?D mA=nJ JD=J *nomp=1 D=@ Jo >A KIA@. 6DA nAM M2 6=>lA OLAHHE@A ?=n >A KIA@ Jo IFA?EBO =n AnJEHAlO @EBBAHAnJ M2 J=>lA BoH 'BHonJ Jo KIA.

6oIFA?EBO=nM2 J=>lA JDA *mp =n@ *mpN oFJEonI =HA KIA@, BoH AN=mFlA BoH EllKIJH=JEon FKHFoIAI,noJ=L=lE@mFJ=>lA: *mp=16 *mp0=00 11 33 13 15 *mp1=16 99 DD 1C *mp2=9F 81 2a 0a 7b 8c 1c *mp IFA?EBEAI JDA IEzA En >OJA =n@ *mpNR, where N EI = ?onIA?KJELA nKm>AH IJ=HJEnC MEJDzAHo,IFA?EBEAIJDA@=J=EnDANBoHm.

$! 6DAEn-D=H@M=HAJ=>lA?=n>A@KmFA@MEJD *dumpmp=1 24O612:KIA=IAHE=l?onIolA.

/sys/src/9/pc/mp.h EIKIABKlJoD=LAD=n@O.

To Do

5omA=HAmKJK=llOAN?lKIELA

ߦ 9HEJA=nKJElEJOJoCAnAH=JA=FHoFAHJ=>lABHomLEnKNoHIEmEl=H

ߦ 9HEJAKIAHIF=?AJoolIJom=nEFKl=JAJDAmFJ=>lA

ߦ +=l?Kl=JAIEzA=KJom=JE?=llO=n@@HoF *mp

ߦ 7IA=JANJ>=IA@BoHm=JF=HIA@>OJDAkAHnAl

ߦ .ENM2IKFFoHJ=lJoCAJDAHmECDJnoJ>ABA=IE>lA

Example

.oHJDA02+omF=G,+#%:

$" *mp=528 *mp0=00 00 10 03 65 0f 00 00 ff fb eb bf 00 00 00 00 *mp1=00 00 00 00 00 01 10 01 65 0f 00 00 ff fb eb bf *mp2=00 00 00 00 00 00 00 00 01 00 50 43 49 20 20 20 *mp3=01 01 50 43 49 20 20 20 01 07 50 43 49 20 20 20 *mp4=01 20 50 43 49 20 20 20 01 ff 49 53 41 20 20 20 *mp5=02 02 11 01 00 00 c0 fe 03 00 0f 00 00 08 02 10 *mp6=03 00 0f 00 00 09 02 11 03 00 0f 00 00 0c 02 10 *mp7=03 00 0f 00 00 0d 02 11 03 00 0f 00 00 0e 02 12 *mp8=03 00 0f 00 00 74 02 14 03 00 0f 00 00 75 02 15 *mp9=03 00 0f 00 00 76 02 16 03 00 0f 00 00 77 02 17 *mp10=03 00 0f 00 00 68 02 14 03 00 0f 00 00 69 02 15 *mp11=03 00 0f 00 00 6a 02 16 03 00 0f 00 00 01 02 13 *mp12=03 00 0f 00 00 6c 02 15 03 00 0f 00 00 7c 02 11 *mp13=03 00 0f 00 00 7d 02 12 03 00 0f 00 00 7e 02 12 *mp14=03 00 0f 00 00 70 02 14 03 00 0f 00 00 71 02 15 *mp15=03 00 0f 00 00 72 02 16 03 00 0f 00 00 73 02 17 *mp16=03 00 0f 00 07 10 02 14 03 00 0f 00 07 11 02 15 *mp17=03 00 0f 00 07 12 02 16 03 00 0f 00 07 13 02 17 *mp18=03 00 0f 00 07 24 02 15 03 00 0f 00 07 25 02 16 *mp19=03 00 0f 00 07 26 02 17 03 00 0f 00 07 27 02 14 *mp20=03 00 0f 00 07 2c 02 16 03 00 0f 00 07 2d 02 17 *mp21=03 00 0f 00 07 2e 02 14 03 00 0f 00 07 2f 02 15 *mp22=03 00 0f 00 07 34 02 14 03 00 0f 00 07 35 02 15 *mp23=03 00 0f 00 07 36 02 16 03 00 0f 00 07 37 02 17 *mp24=03 00 0f 00 20 00 02 10 03 00 0f 00 20 01 02 11 *mp25=03 00 0f 00 20 02 02 12 03 00 0f 00 20 03 02 13 *mp26=03 00 00 00 ff 01 02 01 03 00 00 00 ff 03 02 03 *mp27=03 00 00 00 ff 04 02 04 03 00 00 00 ff 06 02 06 *mp28=03 00 00 00 ff 07 02 07 03 00 00 00 ff 08 02 08 *mp29=03 00 00 00 ff 09 02 09 03 00 00 00 ff 0c 02 0c *mp30=03 00 00 00 ff 0d 02 0d 03 00 00 00 ff 0e 02 0e *mp31=03 00 00 00 ff 0f 02 0f 04 01 00 00 ff 00 ff 01 *mp32=01 3f 50 43 49 20 20 20 03 00 0f 00 3f 00 02 11

8.12 − Revision Control

8.12.1 − cvs

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

)nEmFlAmAnJ=JEonoB= cvs BElAIAHLAH,?=llA@ cvsfs,M=I=lIo?HA=JA@BoH2l=n'.

8.12.2 − git

MoHA JD=n onA FAHIon D=I ?l=EmA@ Jo D=LA FoHJA@ git Jo 2l=n ', >KJ no ?o@A D=I ALAH >AAn m=@A FK>lE?. 2lA=IA IJoF JAllEnC KnIKIFA?JEnC nAM>I JD=J git EI =L=El=>lA BoH 2l=n '.

1n JDA mA=nJEmA, IomAonA MHoJA = IDAll I?HEFJ MH=FFAH JD=J =JJAmFJI Jo HAFlE?=JA IomA >=IE? git =?JEonI >O @oMnlo=@EnC = zEF BElA BHom JDA HAFoIEJoHO =n@ FAHBoHmEnC oFAH=­ JEonIonEJ.

$# 8.12.3 − Mercurial

'BHonJIDEFIMEJDMAH?KHE=l.

4A=@: FQA 5.2.1.1 − hgrc

8.12.4 − svn

No.

$$ 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=IMA@onJD=LA=@HELAHBoHJDAND?EOAJ.

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

9.99999999999999999999999999999999999999 − GIVE UP

/ELAKFnoM.

/o=M=O.

%  Every joke is a tiny revolution ߞ /AoHCAOHMAll

%  Appendix J − Junk

Raspberry Pi

Prebuilt image

I@?=H@Em=CA=L=El=>lABoHJDAH=IF>AHHOFE:

DJJF://BAlloBB.nAJ/KIH/?En=F_lAnHAk/'BHonJ-FE-! #.'B??=#>&=? .EmC.>z .JoHHAnJ

DJJF://EnJm=.En/@oMnlo=@I/'BHonJ-FE-! #.'B??=#>&=? .EmC.>z

1 KIA@ 4E?D=H@ MEllAHߣI pi.uboot.sd.img =I = >=IA, OoK m=O M=nJ Jo KF@=JA JDA BEHmM=HAonJDA.)6F=HJEJEonMEJDBElAIBHomDAHA:

DJJFI://CEJDK>.?om/H=IF>AHHOFE/BEHmM=HA ol@AHLAHIEonI:

'BHonJ'#>%#$&%A>BHom5KnO?J  :!&:!#+-5  !

DJJF://EnJm=.En/@oMnlo=@I/'BHonJ_FE.EmC.Cz.JoHHAnJ

DJJF://EnJm=.En/@oMnlo=@I/'BHonJ_FE.EmC.Cz

Installation Instructions

1B OoK @onߣJ M=nJ Jo KIA JDA FHoLE@A@ Em=CA, BolloM JDAIA EnIJHK?JEonI Jo m=kA OoKH oMn.;oK@onߣJnAA@=?omFKJAH?=F=>lAoBHKnnEnC'BHonJ,GAmKMEllIKBBE?A.

%! Image

M=kA = .)6 F=HJEJEon ?onJ=EnEnC =ll JDA nA?AII=HO BElAI Jo >ooJ JDA 4=IF>AHHO 2E. )n A=IO M=O Jo @o JDEI EI Jo KIA 4E?D=H@ MEllAHߣI pi.uboot.sd.img EJߣI Im=ll. 9HEJA EJ Jo OoKH 5, ?=H@ oH @o JDA BolloMEnC EB OoKߣHA KIEnC GAmK EnIJ=llEnC Jo =n 5, ?=H@ @EHA?JlO BHomGAmKM=I very IloMBoHmA: # set count to the size you want your image to be # (in 512b units, see dd manpage) dd if=/dev/zero of=9front−pi.img count=3782016

# copy minimal image to beginning of the newly created image dd if=pi.uboot.sd.img of=9front−pi.img conv=notrunc

Boot and Installation

NoM>ooJBHomJDA'BHonJ+,..oH qemu IAA.3)!.!. -GAmK,JDEIEIMD=J1@E@: qemu−system−i386 \ −enable−kvm \ −drive file=9front−pi.img,if=virtio \ −cdrom 9front−3125.9fcca5b8ac11.iso \ −boot d

NoM @o JDA EnIJ=ll=JEon IAA .3) " - 'BHonJ 1nIJ=ll=JEon /KE@A BoH DAlF, KIA hjfs. 5En?A OoK @onߣJ nAA@ = 9fat F=HJEJEon,OoKm=OM=nJJo@AlAJAJDA=KJom=JE?=llO?HA=JA@ F=HJEJEonI =n@ ?HA=JA OoKH oMn IJ=HJ =J IA?JoH oH prepdisk MEll ?omFl=En. NoJA JD=J IEn?A OoKߣLA HAmoLA@ 9fat, JDA EnIJ=llAH MEll FHomFJ OoK Jo @o JDA FHAF@EIk IJAF =C=En, jKIJJOFAJDAnANJIJAFEnm=nK=llO.

)BJAHJDAEnIJ=ll=JEonOoKD=LA='BHonJIOIJAmJD=J onlO D=I !&$ >En=HEAI. 6DA nANJ IJAF EI?omFElAJDA=Hm>En=HEAI.

Compiling for ARM

4A>ooJ =n@ >ooJ BHom +, =C=En, >KJ JDEI JEmA KIA JDA nAMlO ?HA=JA@ F=HJEJEon =I HooJ A.C.lo?=l/@AL/I@./BI

*ABoHA?omFElEnCOoKnAA@Jo?HA=JAIomA@EHA?JoHEAIKn@AH /arm/bin: echo allow >>/srv/hjfs.cmd # allow changing ownership of files cd /arm/bin for(i in audio auth aux bitsy btc dial disk fs games ip ip/httpd ndb nusb replica mkdir $i −u sys $i chgrp sys $i }

6DAn?omFElAALAHOJDEnC: cd /sys/src objtype=arm mk install cd 9/bcm mk install && mk install ’CONF=picpuf’

%" )n@?oFOJDAkAHnAlJoJDA.)6F=HJEJEon: dossrv >/dev/null >[2]/dev/null mount −c /srv/dos /n/dos /dev/sdF0/dos cp /arm/9pif /arm/9picpuf /n/dos

6DAn IAJ JDA kAHnAl En /n/dos/config.txt Jo 9pif oH 9picpuf BoH JAHmEn=l oH ?FK kAHnAl =n@ >ooJ JDA Em=CA MEJD JDA 4=IF>AHHO 2E. )J JDEI FoEnJ OoK ?=n @AlAJA JDA !&$>En=HEAIEBOoK@onߣJnAA@JDAm.

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: /o EI ?KHHAnJlO >HokAn on 'BHonJ/!&$. -LAn .".N LAHIEonI MDE?D KIA@ Jo ?omFElA no lonCAH >KEl@ on 'BHonJ/!&$. 'BHonJ/=m@$" IAAmI Jo MoHk, .$.N En?lKIELA. 7IK=l ?=LA=JIFAn@EnCEIIKAI=FFlO.

%% # 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 1.6 with 1.4.3

# build go cd src ./make.rc

# install documentation go get golang.org/x/tools/cmd/godoc

# go! 4A=@: Documentation − The Go Programming Language

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

&