User Tools

Site Tools


boot_camp_9p_resource

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
boot_camp_9p_resource [2024/09/01 04:25] – **” hc9boot_camp_9p_resource [2024/09/27 00:23] (current) – [Boot Camp 9p resource] ro: hc9
Line 1: Line 1:
 +====== Boot Camp 9p resource ======
 +
 +|x| https://9p.sdf.org //(an amd64 plan9front ((plan9front running natively on hardware.)) complement to the SDF Plan 9 Boot Camp ((NetBSD Xen [] running Plan 9 Boot Camp participants' VMs, during the announced Plan 9 Boot Camp occurrences.)))//|
 +|x|SDF Plan 9 [[vps_-_9front#communication_resources|Boot Camp 9p communication resources]] (please ask for help)|
 +
 +The [[https://9p.sdf.org|9p.sdf.org]] rio rc prompt is accessable with [[vps_-_9front#front_drawterm|9front Drawterm]] or [[vps_-_9front#a_9front_rcpu_application|an rcpu connection]]. A //9p.sdf.org// user name (-u USER) is required.
 +
 +<code>
 +
 +  $ ./drawterm -a 9p.sdf.org -h 9p.sdf.org -u USER
 +</code>
 +
 +|//Optional:// ''drawterm -h 9p.sdf.org -u USER''|||
 +|//[[plan9front_-_drawterm_rio_and_stats#drawterm|Optional]]:// ''drawterm -a 9p.sdf.org -h 9p.sdf.org **-p** -u USER''|//[[plan9front_-_drawterm_rio_and_stats#persistent_network|persistent network]]//||
 +
 +A Drawterm rc prompt (without rio; //teletype only//):
 +
 +<code>
 +
 +  $ ./drawterm -G -h 9p.sdf.org -u USER
 +</code>
 +
 +|x|A Drawterm [[vps_-_9front#drawterm_and_file_transfer|file transfer]] hint:|''% lc /mnt/term''|
 +
 +|x|//Please use the chmod(1) command to restrict file permissions in your home directory (/usr/USERNAME)//.|
 +
 +<code>
 +
 +  % lc -l /usr | grep rwxr-xr-x
 +</code>
 +
 +| [%%:!:%%] ((The [%%:!:%%] is  interchangeable with a //[CAUTION]//, for the [[plan9front_-_acme_sam_abaco_mothra_and_man#abaco|abaco]], and [[plan9front_-_acme_sam_abaco_mothra_and_man#mothra|mothra]] browsers. :!:)) The ''%%9p.sdf.org%%'' server is ((SDF members may avoid this **''[Plan 9]''** server‚ if seeking [[wp>Parity|parity]] with the mentioned references: [[https://plan9.io/wiki/plan9/plan_9_wiki/|reference]] or [[https://wiki.9front.org/|reference]]. [%%:!:%%] //external links//)) shared with other users. The **//restrict file permissions//**\\ usage may vary depending on the user application. Please [[membership_levels#arpa|apply]], and **caution** if\\ testing a modified [[boot_camp_9p_resource#p_mail_example|email]] configuration. |
 +
 +=== Possible "Tea Note" Presentation commands from the 9p rio rc prompt (%). ===
 +
 +|astro:|astro - print astronomical information|http://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 away|http://man.9front.org/1/kill|
 +|castor:|''castor [address]'' - A Gemini browser for Plan 9| |
 +|chmod:|chmod - change mode|http://man.9front.org/1/chmod|
 +|com:|com - An early version of commode|9p contrib directory|
 +|delkey:|delkey - [[plan9front_-_factotum_delkey_pw|delete keys]] from factotum|http://man.9front.org/1/delkey|
 +|df:|''df'' - disk usage|9p contrib directory|
 +|dircp:|tar, dircp - archiver|http://man.9front.org/1/tar|
 +|auth/factotum:|factotum, fgui, userpasswd - authentication agent (([[https://9p.io/sys/doc/auth.html|Security in Plan 9]]; //The user may or may not have a secure store in which all his keys are kept.//))|http://man.9front.org/4/factotum|
 +|figlet:|FIGlet - display large characters made up of ordinary screen characters| |
 +|file: |file - determine file type|http://man.9front.org/1/file|
 +|find:|''find [-1dfq] [path <nowiki>...</nowiki>]'' - 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 formatters|http://man.9front.org/1/fmt|
 +|lookman: |man, lookman, sig - print or find pages of this manual|http://man.9front.org/1/man|
 +|mkhomepg:| |9p contrib directory|
 +|mug:|''mug'' - convert an image to a face icon|http://man.9front.org/1/mug|
 +|p:|''p'' - paginate|http://man.9front.org/1/p|
 +|paint:|''paint'' - create image files by drawing with a mouse or other pointing device|http://man.9front.org/1/paint|
 +|spell:|spell, sprog - find spelling errors|http://man.9front.org/1/spell|
 +|src:|src, Bfn  - find source code for executable|http://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 server|http://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 path|http://man.9front.org/1/walk|
 +|who:|who, whois - who is using the machine|http://man.9front.org/1/who|
 +
 +|x|A related VPS //[[vps_-_9front#command_reminder|command reminder]]// list.|
 +
 +===== bboard example =====
 +
 +A [[plan9front_-_bboard_and_castor#p_bboard_acme_example|bboard acme example]].
 +
 +===== date and time example =====
 +
 +|x|A scheduled Plan 9 Boot Camp [[plan_9_9front#tea_note_guide|TEA NOTE]]|
 +|x|Start the clock in a rio rc window.|
 +
 +<code>
 +
 +  cpu% cp /adm/timezone/US_Pacific /env/timezone && clock.amber
 +</code>
 +
 +//The command will pick up the new timezone, but nothing already running or not sharing the environment will be affected.// 
 +
 +===== broke example =====
 +
 +<code>
 +
 +  cpu% psu -a | grep Broke
 +</code>
 +
 +<code>
 +
 +  cpu% broke
 +</code>
 +
 +<code>
 +
 +  cpu% broke $user
 +</code>
 +
 +===== commode example =====
 +
 +|**1.**|Avoid using a “**:**” (colon) in the 9p com //emote// text.||
 +|a.|//The sequence for entering// ☺ //on an IBM keyboard is// ''ALT-:-%%)%%''.|[[plan9front_-_unicode_utf_and_fontviewer#keyboard|keyboard]]|
 +
 +<code>
 +
 +  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
 +  
 +</code>
 +
 +//Run ''com'' in a rio rc window, rather than a vt, to benefit from the Plan 9 <nowiki>I/O</nowiki>.//
 +
 +===== face example =====
 +
 +A [[plan9front_-_mailing_and_faces|face (create and install) example]].
 +
 +===== castor example =====
 +
 +A [[plan9front_-_bboard_and_castor#p_castor_example|castor example]] ((A [[membership_levels#users|validated]] SDF user can create their own __[[gemini_site_setup_and_hosting_features#getting_started|Gemini space]]__‚ in addition an occasional //[[plan9front_-_bboard_and_castor#gemini|Gemini example]]//.)) ((The infrequent //[[plan9front_-_bboard_and_castor#gemini|Gemini example]]// is dependent on schedule availability.)).
 +
 +<code>
 +
 +  cpu% castor gemini://sdf.org
 +</code>
 +
 +===== 9p rio rc prompt example =====
 +
 +<code>
 +
 +  cpu% echo $prompt
 +  cpu%
 +  cpu% prompt='9p: '
 +  9p:
 +  9p: echo $prompt
 +  9p:
 +  9p: prompt='⑨p: '
 +  ⑨p:
 +</code>
 +
 +===== 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 [[https://9p.sdf.org/who/|9p.sdf.org]] for a static review of the //''mkhomepg''// results ((The process may take longer, a few hours, or days.)).
 +
 +| <del>''cpu% mkdir /usr/$user/html''</del> | **Avoid** ''//mkdir//''; the //Strike-through Text// is a reference. |
 +
 +<code>
 +
 +  cpu% mkhomepg
 +</code>
 +
 +<code>
 +
 +  cpu% touch /usr/$user/html/index.html
 +</code>
 +
 +<code>
 +
 +  cpu% sed 10q /usr/$user/html/example.html
 +  <html>
 +   <body>
 +  <h6>1st example</h6>
 +  
 +  <pre>
 +  2nd example
 +  </pre>
 +  
 +   </body>
 +  </html>
 +  cpu%
 +</code>
 +
 +^ optional ^^
 +|**1.**| A //<title>//title//</title>// is not necessary for the default. ((The default description is //my internet homepage//.)) ((A [[membership_levels#users|validated]] SDF user can create __[[building_a_website_on_sdf|their own website]]__‚ in addition to the //[[https://9p.sdf.org/who/|internet homepage]]//.)) |
 +|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 <nowiki>https://9p.sdf.org/who/$user/index.html</nowiki>''|
 +|''mothra -k <nowiki>https://9p.sdf.org/~$user</nowiki>''|
 +|//''<nowiki>https://9p.sdf.org/who/</nowiki>''// links to all of the active homepages.|
 +
 +===== 9p gemini index location =====
 +
 +<code>
 +
 +  cpu% touch /usr/$user/html/index.gem
 +</code>
 +
 +^ Further 9p //gemini// functionality detail ((An infrequent //[[plan9front_-_bboard_and_castor#gemini|Gemini server example]]// is dependent on schedule availability.)), or inquiry, may occur during the upcoming Plan 9 Boot Camp. ^^
 +|<del>''castor <nowiki>gemini://9p.sdf.org/who/$user/index.gem</nowiki>''</del>|SDF Plan 9 Boot Camp [[plan_9_9front#plan_9_boot_camp|event and information]]|
 +
 +===== 9p mail example =====
 +
 +A detailed [[plan9front_-_mailing_and_faces#p_mail|9p mail example]].
 +
 +===== default 9p lib/profile =====
 +
 +The mentioned default profile may look slightly different than the SDF 9p profile.
 +
 +<file config $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% ' ' ')
 +}
 +</file>
 +
 +Useful modifications of the lib/profile above the **''case terminal''** statement.
 +
 +<file config 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.
 +</file>
 +
 +|x|Optional: 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''**.
 +
 +<file config 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
 +</file>
 +
 +|x|Optional: 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 ^^
 +|//abaco//|''webfs;abaco''||
 +|//acme//|''plumber;upas/fs;acme''||
 +|//faces -i//|''plumber;upas/fs;faces -i''||
 +|//com//|''webfs;com''|<sup>''hget'' needs //''webfs''// to pull the aNONradio schedule; ''@a''</sup>|
 +|//mothra -k//|''webfs;mothra -k''||
 +|//neinbook//|''plumber;neinbook''||
 +|//netsurf//|''webfs;netsurf''||
 +|//ssh//|''auth/factotum;ssh''||
 +|//webcookies//|''webcookies''||
 +
 +|x|Optional: the $user can view the number of processes (numberofprocesses) initially, then later after starting or stopping applications manually.|
 +
 +<code>
 +
 +  cpu% ps | awk '$1 !~ /^(glenda|none|upas)$/ { print $1 }' | sort | uniq -c | sort -n
 +</code>
 +
 +===== vt and ssh example =====
 +
 +^ Command ^ Option ^ Manual ^
 +|SSH:|''ssh user@sdf.org''|http://man.9front.org/1/ssh|
 +|VT:|''vt [-f font]''|http://man.9front.org/1/vt|
 +
 +<code>
 +
 +  cpu% vt
 +</code>
 +
 +=== From a vt window: ===
 +
 +|x|There is the possibility of entering the [[plan9front_-_factotum_delkey_pw|incorrect password]].|
 +
 +<code>
 +
 +  cpu% ssh USER@sdf.org
 +  
 +  !Adding key: proto=pass server=sdf.org service=ssh thumb=XoXoXoXoXoXoXoXoXo user=USER
 +  password:
 +  !
 +</code>
 +
 +^   24x80    ^ <= select 24x80 ^
 +|   crnl   | |
 +|   nlcr   | |
 +|   cooked   | |
 +|   blocksel   | |
 +|   exit   | |
 +
 +|x|Press the right mouse button, while the pointer is over a vt window. Select “24x80” to toggle the vt window size.||
 +|1.|OPTIONAL – Avoid using the //<= select 24x80// 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''//|
 +
 +<code>
 +
 +  $ stty -a
 +</code>
 +
 +<file config; A snippet from the stty -a output.>
 +speed 9600 baud; 0 rows; 0 columns; queue = 1024; line = termios;
 +</file>
 +
 +<code>
 +
 +  $ stty rows 24 columns 80
 +  $ stty -a
 +</code>
 +
 +<file config; A snippet from the stty -a output.>
 +speed 9600 baud; 24 rows; 80 columns; queue = 1024; line = termios;
 +</file>
 +
 +<code>
 +
 +  $ exit
 +</code>
 +
 +<code>
 +
 +  cpu%
 +</code>
 +
 +|   24x80   | |
 +|   crnl   | |
 +|   nlcr   | |
 +|   cooked   | |
 +|   blocksel   | |
 +^   exit    ^ <= select exit ^
 +
 +|x|Press the right mouse button, while the pointer is over a vt window. Select “exit” to exit the vt window.|
 +
 +<code>
 +
 +  cpu%
 +</code>
 +
 +===== Reference book =====
 +
 +|**1.**|Introduction to Operating Systems Abstractions [[https://archive.org/details/plan9designintro|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 [[https://archive.org/details/plan9designintro|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|
 +
 +=== Reference search ===
 +
 +^ Topic / Subject ^^^
 +|AWK|[[https://archive.org/search.php?query=title%3A%28AWK%20programming%29|title:(AWK programming)]]|<sup>archive.org</sup>|
 +
 +|x|Previous dedicated links are located at the [[plan_9_9front#links|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 [[plan9front_-_acme_sam_abaco_mothra_and_man#abaco|abaco]], and [[plan9front_-_acme_sam_abaco_mothra_and_man#mothra|mothra]], browsers.