Table of Contents

Boot Camp 9p resource

x https://9p.sdf.org (an amd64 plan9front 1) complement to the SDF Plan 9 Boot Camp 2))
xSDF Plan 9 Boot Camp 9p communication resources (please ask for help)

The 9p.sdf.org rio rc prompt is accessable with 9front Drawterm or an rcpu connection. A 9p.sdf.org user name (-u USER) is required.

  $ ./drawterm -a 9p.sdf.org -h 9p.sdf.org -u USER
Optional: drawterm -h 9p.sdf.org -u USER
Optional: drawterm -a 9p.sdf.org -h 9p.sdf.org -p -u USERpersistent network

A Drawterm rc prompt (without rio; teletype only):

  $ ./drawterm -G -h 9p.sdf.org -u USER
xA Drawterm file transfer hint:% lc /mnt/term
xPlease use the chmod(1) command to restrict file permissions in your home directory (/usr/USERNAME).
  % lc -l /usr | grep rwxr-xr-x
[:!:] 3) The 9p.sdf.org server is 4) shared with other users. The restrict file permissions
usage may vary depending on the user application. Please apply, and caution if
testing a modified email configuration.

Possible "Tea Note" Presentation commands from the 9p rio rc prompt (%).

astro:astro - print astronomical informationhttp://man.9front.org/7/astro
battleship:bts, btsd - multi-user on-line battleship (sink the fleet)9p man page battleship(1)
bboard:bboard [-nps] [-r n]9p contrib directory
broke:broke [ user ] - broken processes go awayhttp://man.9front.org/1/kill
castor:castor [address] - A Gemini browser for Plan 9
chmod:chmod - change modehttp://man.9front.org/1/chmod
com:com - An early version of commode9p contrib directory
delkey:delkey - delete keys from factotumhttp://man.9front.org/1/delkey
df:df - disk usage9p contrib directory
dircp:tar, dircp - archiverhttp://man.9front.org/1/tar
auth/factotum:factotum, fgui, userpasswd - authentication agent 5)http://man.9front.org/4/factotum
figlet:FIGlet - display large characters made up of ordinary screen characters
file: file - determine file typehttp://man.9front.org/1/file
find:find [-1dfq] [path ...] - recursively list files.9p contrib directory; https://man.cat-v.org/9atom/1/find
finger:toe - A very basic finger client for plan9/9front.
fmt: fmt, htmlfmt - simple text formattershttp://man.9front.org/1/fmt
lookman: man, lookman, sig - print or find pages of this manualhttp://man.9front.org/1/man
mkhomepg: 9p contrib directory
mug:mug - convert an image to a face iconhttp://man.9front.org/1/mug
p:p - paginatehttp://man.9front.org/1/p
paint:paint - create image files by drawing with a mouse or other pointing devicehttp://man.9front.org/1/paint
spell:spell, sprog - find spelling errorshttp://man.9front.org/1/spell
src:src, Bfn - find source code for executablehttp://man.9front.org/1/src
top: 9p contrib directory
tweak:tweak - edit image files, subfont files, face files, etc.http://man.9front.org/1/tweak
upas/fs -f:upasfs - mail file serverhttp://man.9front.org/4/upasfs
uptime:uptime - show how long system has been running
vdir:vdir [-r] [directory] If the -r flag is passed, delete will recursively delete directories. (A minimalistic visual directory browser for Plan9.)9p contrib directory
walk:walk - walk a pathhttp://man.9front.org/1/walk
who:who, whois - who is using the machinehttp://man.9front.org/1/who
xA related VPS command reminder list.

bboard example

A bboard acme example.

date and time example

xA scheduled Plan 9 Boot Camp TEA NOTE
xStart the clock in a rio rc window.
  cpu% cp /adm/timezone/US_Pacific /env/timezone && clock.amber

The command will pick up the new timezone, but nothing already running or not sharing the environment will be affected.

broke example

  cpu% psu -a | grep Broke
  cpu% broke
  cpu% broke $user

commode example

1.Avoid using a “:” (colon) in the 9p com emote text.
a.The sequence for enteringon an IBM keyboard is ALT-:-).keyboard
  cpu% com
  
  @help
  commode version 6
  
  @h  help
  @f  finger user
  @l  list rooms
  @p  peek into a room
  @g  goto a room
  @w  who
  @i  idlers
  @r  review 50 lines
  @R  review N lines
  @u  post a shortened url
  @a  aNONradio schedule
  @q  quit
  :   emote
  !   run a command
  

Run com in a rio rc window, rather than a vt, to benefit from the Plan 9 I/O.

face example

A face (create and install) example.

castor example

A castor example 6) 7).

  cpu% castor gemini://sdf.org

9p rio rc prompt example

  cpu% echo $prompt
  cpu%
  cpu% prompt='9p: '
  9p:
  9p: echo $prompt
  9p:
  9p: prompt='⑨p: '
  ⑨p:

9p html directory example

mkhomepg is used to automate the process. The process includes a 5 to 10 minute wait after mkhomepg & touch, once a background task is preformed. Review 9p.sdf.org for a static review of the mkhomepg results 8).

cpu% mkdir /usr/$user/html Avoid mkdir; the Strike-through Text is a reference.
  cpu% mkhomepg
  cpu% touch /usr/$user/html/index.html
  cpu% sed 10q /usr/$user/html/example.html
  <html>
   <body>
  <h6>1st example</h6>
  
  <pre>
  2nd example
  </pre>
  
   </body>
  </html>
  cpu%
optional
1. A <title>title</title> is not necessary for the default. 9) 10)
a. Although, <title>a_title_that_speaks_completely</title>
must have contiguous characters.
i. A request to repair the <title></title> was acknowledged
during the Tea Note.
mothra -k https://9p.sdf.org/who/$user/index.html
mothra -k https://9p.sdf.org/~$user
https://9p.sdf.org/who/ links to all of the active homepages.

9p gemini index location

  cpu% touch /usr/$user/html/index.gem
Further 9p gemini functionality detail 11), or inquiry, may occur during the upcoming Plan 9 Boot Camp.
castor gemini://9p.sdf.org/who/$user/index.gemSDF Plan 9 Boot Camp event and information

9p mail example

A detailed 9p mail example.

default 9p lib/profile

The mentioned default profile may look slightly different than the SDF 9p profile.

$home/lib/profile.default
bind -qa $home/bin/rc /bin
bind -qa $home/bin/$cputype /bin
font=/lib/font/bit/vga/unicode.font
touch $home/lastlogin
switch($service){
case terminal
	webcookies
	webfs
	plumber
	echo -n accelerated > '#m/mousectl'
	echo -n 'res 3' > '#m/mousectl'
	prompt=('term% ' '	')
	fn term%{ $* }
	rio
case cpu
	bind /mnt/term/dev/cons /dev/cons
	bind -q /mnt/term/dev/consctl /dev/consctl
	>[2] /dev/null {
		cp /dev/sysname /mnt/term/dev/label
		if(wsys=`{cat /mnt/term/env/wsys} && ~ $#wsys 1) {
			wsys=/mnt/term^$wsys
		}
		if not {
			wsys=()
		}
	} 
	bind -a /mnt/term/dev /dev
	prompt=('cpu% ' '	')
	fn cpu%{ $* }
	if(! test -e /mnt/term/dev/wsys){
		# call from drawterm
		if(test -e /mnt/term/dev/secstore){
			auth/factotum -n
			read -m /mnt/term/dev/secstore >/mnt/factotum/ctl
			echo >/mnt/term/dev/secstore
		}
		if not
			auth/factotum
		webcookies
		webfs
		plumber
		rio
	}
case con
	prompt=('cpu% ' '	')
}

Useful modifications of the lib/profile above the case terminal statement.

lib/profile snippet from above "case terminal"
bind -qa $home/bin/rc /bin
bind -qa $home/bin/$cputype /bin
bind -qa /usr/sdf/bin /bin
upasname=$user@9p.sdf.org
 
font=/lib/font/bit/vga/unicode.font
touch $home/lastlogin
switch($service){
case terminal <= THIS IS THE CASE TERMINAL LINE; no need to edit this line.
xOptional: the $user can omit the upasname=$user@9p.sdf.org line if using the account without E-mail.

Useful modification of the lib/profile below the case cpu statement. Include upas/fs after plumber.

lib/profile snippet from below "case cpu"
		if not
			auth/factotum
		webcookies
		webfs
		plumber <= THIS IS THE PLUMBER LINE; no need to edit this line.
		upas/fs
		rio
xOptional: the $user can omit the webcookies, webfs, plumber, and upas/fs lines to reduce number of processes initially, starting programs manually when needed.
program grouping commands
abacowebfs;abaco
acmeplumber;upas/fs;acme
faces -iplumber;upas/fs;faces -i
comwebfs;comhget needs webfs to pull the aNONradio schedule; @a
mothra -kwebfs;mothra -k
neinbookplumber;neinbook
netsurfwebfs;netsurf
sshauth/factotum;ssh
webcookieswebcookies
xOptional: the $user can view the number of processes (numberofprocesses) initially, then later after starting or stopping applications manually.
  cpu% ps | awk '$1 !~ /^(glenda|none|upas)$/ { print $1 }' | sort | uniq -c | sort -n

vt and ssh example

Command Option Manual
SSH:ssh user@sdf.orghttp://man.9front.org/1/ssh
VT:vt [-f font]http://man.9front.org/1/vt
  cpu% vt

From a vt window:

xThere is the possibility of entering the incorrect password.
  cpu% ssh USER@sdf.org
  
  !Adding key: proto=pass server=sdf.org service=ssh thumb=XoXoXoXoXoXoXoXoXo user=USER
  password:
  !
24×80 ⇐ select 24×80
crnl
nlcr
cooked
blocksel
exit
xPress the right mouse button, while the pointer is over a vt window. Select “24×80” to toggle the vt window size.
1.OPTIONAL – Avoid using the ⇐ select 24×80 to toggle the vt.
a.$ stty rows 50 columns 100 The mentioned option requires a larger rio rc and vt window
b.$ stty rows 42 columns 86 The mentioned option requires a larger rio rc and vt window
I.cpu% wloc A wloc output example for b.: window -r 555 56 1276 745 vt100
  $ stty -a
A snippet from the stty -a output.
speed 9600 baud; 0 rows; 0 columns; queue = 1024; line = termios;
  $ stty rows 24 columns 80
  $ stty -a
A snippet from the stty -a output.
speed 9600 baud; 24 rows; 80 columns; queue = 1024; line = termios;
  $ exit
  cpu%
24×80
crnl
nlcr
cooked
blocksel
exit ⇐ select exit
xPress the right mouse button, while the pointer is over a vt window. Select “exit” to exit the vt window.
  cpu%

Reference book

1.Introduction to Operating Systems Abstractions Using Plan 9 from Bell Labs (pdf; external archive)
a.execute[d] in the background; page 97, 102, 155, 184, 247
b.mount table; page 161-164, 167-168, 327
2.Introduction to Operating Systems Abstractions Using Plan 9 from Bell Labs (pdf; external archive)
a.5.8. The file descriptor bulletin board; page 123-125
b.7.6. Local name space tricks; page 164-166
c.7.7. Device files; 166-167
d.7.8. Unions; page 167-169
e.7.11. Sand-boxing; 172-173
f.7.12. Distributed computing revisited; page 174-177
g.9 — More tools; 201
i.9.1. Regular expressions; 201-205
ii.9.2. Sorting and searching; 205-210
iii.9.3. Searching for changes; 210-214
iv.9.4. AWK; 214-219
v.9.5. Processing data; 219-224
vi.9.6. File systems; 224-228
h.14.2. The local machine; 358-359
i.14.3. Distributed security and authentication; page 359-362
j.14.4. Authentication agents; 362-367
Topic / Subject
AWKtitle:(AWK programming)archive.org
xPrevious dedicated links are located at the VPS Plan 9 / 9front tutorial. (wiki)

Conclusion or close

The wiki formatting used in this tutorial was reviewed with the SDF Plan 9 Boot Camp plan9front mothra browser, and the mothra option '-k': % mothra -k. The intention was to support those SDF Plan 9 Boot Camp participants who may participate (in the Boot Camp) with a low-speed Internet connection. The outcome of the mentioned formatting decision is pending the approval of future wiki editors. Have fun.


This wiki page was reviewed with the Plan 9 abaco, and mothra, browsers.

1)
plan9front running natively on hardware.
2)
NetBSD Xen [] running Plan 9 Boot Camp participants' VMs, during the announced Plan 9 Boot Camp occurrences.
3)
The [:!:] is interchangeable with a [CAUTION], for the abaco, and mothra browsers. :!:
4)
SDF members may avoid this [Plan 9] server‚ if seeking parity with the mentioned references: reference or reference. [:!:] external links
5)
Security in Plan 9; The user may or may not have a secure store in which all his keys are kept.
6)
A validated SDF user can create their own Gemini space‚ in addition an occasional Gemini example.
7)
The infrequent Gemini example is dependent on schedule availability.
8)
The process may take longer, a few hours, or days.
9)
The default description is my internet homepage.
10)
A validated SDF user can create their own website‚ in addition to the internet homepage.
11)
An infrequent Gemini server example is dependent on schedule availability.