====== 9front on an SDF VPS ====== |[%%:!:%%] ((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. :!:)) 1.) Move to the [[boot_camp_9p_resource|notes regarding 9p.sdf.org]], where the __Plan 9 Boot Camp\\ challenges__ are taking place. 2.) A redirect to the SDF [[plan_9_9front|Plan 9 / 9Front]] home,\\ and user contributed //Self Guided Discoveries//. [%%:!:%%] ((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. :!:))| @@@@@@ @@@@@@@@ @@@@@@@ @@@@@@ @@@ @@@ @@@@@@@ @@@@@@@@ @@@@@@@@ @@@@@@@@ @@@@@@@@ @@@@ @@@ @@@@@@@ @@! @@@ @@! @@! @@@ @@! @@@ @@!@!@@@ @@! !@! @!@ !@! !@! @!@ !@! @!@ !@!!@!@! !@! !!@!!@!! @!!!:! @!@!!@! @!@ !@! @!@ !!@! @!! !!@!!! !!!!!: !!@!@! !@! !!! !@! !!! !!! !!! !!: !!: :!! !!: !!! !!: !!! !!: !:! :!: :!: !:! :!: !:! :!: !:! :!: ::::: :: :: :: ::: ::::: :: :: :: :: : : : : : : : : : : :: : : === About === This is the tutorial for setting-up the 9front1 operating system in a VPS slice on SDF. The tutorial is aimed at participants in the SDF [[plan_9_9front#plan_9_boot_camp|Plan 9 Boot Camp]]3, but should be useful to other SDF VPS users. The //Boot Camp// participants will study virtualized //amd64 9front//. [[plan_9_9front#activities_of_the_sdf_plan_9_boot_camp_include|Previous activities of the SDF Plan 9 Boot Camp.]] |x|An //amd64 9front// [[vps_-_9front#sdf_boot_camp_9p_resource|complement]] to the SDF Plan 9 Boot Camp arrived in 2021.| 1 [[http://fqa.9front.org/fqa1.html|Plan9front]] (or //9front//) is a fork of the //Plan 9// from [[ https://9p.io/plan9/index.html|Bell Labs operating system]]; [[wp>Plan_9_from_Bell_Labs#Derivatives_and_forks|Plan 9 Derivatives and forks]]. 3 [[wp>Booting|Booting]] ===== Getting Involved ===== SDF hosts the //plan9-l// mailing list for participants in the Plan 9 Boot Camp. Email '[[majordomo_on_sdf|majordomo]]' and 'subscribe plan9-l' to join. Of the various VPS that SDF offers1, the SDF Plan 9 Boot Camp VPS is the only VPS provided without subscription, to SDF MetaARPA2 members. The [[#plan_9_boot_camp|Boot Camp]] VPS slice includes cluster access to the SDF Plan 9 Community 9p server. With your help, Plan 9 participation at SDF can continue to promote networking, learning and participation. To request an SDF Boot Camp Plan 9 VPS, type '//plan9//' at the SDF shell3 (''$ plan9''). 1 [[https://sdf.org/?join|VPS]] membership, or [[https://sdf.org/?subscribe|participation]], required. 2 Type '//meta//' at the SDF shell (''$ meta'') for details. 3 [[https://sdf.org/|UNIX Shell Account]]. ==== Console Menu and Shell ==== |x|**ctl-h** is backspace, kind of; **ctl-u** erases the current line. As seen, with the VPS Plan 9 console prompt **ctl-h** backspace, the screen output may not be what one would expect1.| |x|To detach the Plan 9 console prompt (%), while retaining the ability to reattach it __without__ rebooting your server, press **ctl-]** to close the prompt (%). Then, press '**q**' to disconnect the VPS Maintenance Shell menu, and ssh connection. You can return again with another ssh to the allocated VPS server, an SDF VPS Maintenance Shell [[vps_-_9front#shutdown_and_restart|menu review]], and a press on the '**c**' key to connect to the Plan 9 console prompt (%).| 1 [[http://sdf.org/?tutorials/Plan_9_rc|Control keys -- Available at the SDF Boot Camp VPS server console prompt]] ==== Getting started ==== |x|If you are reviewing this, and want to 9front Drawterm to the __new__ 9front Boot Camp VPS follow this suggested path.| |x|__Install the 9front Drawterm, since it's needed for the 9front Boot Camp VPS.__| |x|Write down your Plan 9 Boot Camp password (except for the Plan 9 Drawterm password).| |x|Write down your Plan 9 Boot Camp IP address (YOUR_IP, as seen in the reminder below).| |x|The VPS Maintenance Shell console __will ask for the password__ before confirming a shutdown '**s**', or a start '**r**'. //Keep your password nearby//.| |x|Request [[vps_-_9front#sdf_boot_camp_communication_resources|assistance, encouragement, or help]].| === Reminder links === |x|[[vps_-_9front#sdf_boot_camp_communication_resources|com]]| |x|[[https://sdf.org/tutorials/VPS_Plan9.html#install|Machine identity #]] (Top line of the VPS Maintenance Shell menu)| |x|[[vps_-_9front#shutdown_and_restart|An 's' reminder, and other options.]] (9front VPS Maintenance Shell commands)| |x|[[plan9front_-_drawterm_rio_and_stats|What Drawterm am I using? Do I need another?]] ''$ ./drawterm --help'' (A 9front Drawterm comparison.)| |x|The [[http://drawterm.9front.org/|9front Drawterm]] files.| === Install === After receiving notification of an allocated VPS slice, connect by '''$ ssh ////@////.sdf.org'''. The password1 is the same as your SDF member login. At the VPS Maintenance Shell menu, type '**x**' for a //Clean Install//. % WARNING! YOU WILL LOSE YOUR DATA! This function allows you to completely destroy your plan9 image and install a fresh generic distribution. Do you wish to continue? (yes/no) yes % Copying a fresh plan9 image [PLEASE WAIT] |x|This may take time.| % Copying a fresh plan9 image [PLEASE WAIT] [COMPLETE] (continue) |x|Press the '[**Enter**]' key to continue to the [[#shutdown_and_restart|VPS Maintenance Shell]].| === Basics === When the Plan 9 system boots, it will ask where root is from (the network, or a local disk). Just press the '[**Enter**]' key to select local (the default), "bootargs is (tcp, tls, il, local!device)[**local!/dev/sdC0/fscache**]". Next, there will be prompt to login. Press the '[**Enter**]' key to login as the Plan 9 default "user[**glenda**]:". bootargs is (tcp, tls, il, local!device)[local!/dev/sdC0/fscache] user[glenda]: You will now see the Plan 9 VPS console rc prompt (%), Plan 9's shell. === Plan 9 shell === |x|**ctl-h** is backspace, kind of; **ctl-u** erases the current line. As seen, with the VPS Plan 9 console prompt **ctl-h** backspace, the screen output may not be what one would expect.| |x|To detach the Plan 9 console prompt (%), while retaining the ability to reattach it __without__ rebooting your server, press **ctl-]** to close the prompt (%). Then, press '**q**' to disconnect the VPS Maintenance Shell menu, and ssh connection. You can return again with another [[#install|ssh]] to the allocated VPS server, an SDF VPS Maintenance Shell menu review, and a press on the '**c**' key to connect to the Plan 9 console prompt (%).| |Plan 9 Rc shell|[[#tutorials|Plan 9 Rc Survival Guide]]| 1 A VPS password change option is available from the VPS Maintenance Shell, after login. ==== Networking ==== |x|Review the ''/usr/glenda/start'' file, or rc script, from the VPS console prompt (%).| term% cat /usr/glenda/start The mentioned ''/usr/glenda/start'' file does __not__ require editing. Any edit1 can be made with ''% ed'', or ''% sam -d'', from the VPS console prompt (%), or later with ''% ed'', ''% sam'', or ''% acme'', from the Drawterm rio rc prompt (%). |x|This [[#shutdown_and_restart|shutdown and restart]] section applies, and is __necessary__2 after an ''% fshalt'', __before__ the networking is restarted.| 1 ''% man dp9ik'' 2 ''% fshalt'' from an rc prompt (%), then at the "VPS Maintenance Shell" enter '**s**' - force shutdown, then enter '**r**' - reset or start. ===== 9front Drawterm ===== [[plan9front_-_drawterm_rio_and_stats|Drawterm]]1 is essentially a BLIT terminal emulator which allows you to connect to your 9front system and load the //rio// windowing system. rio is a direct successor of UNIX 'layers' and Plan 9 '8½'. $ ./drawterm -a YOUR_IP -h YOUR_IP -u glenda === From the 9front Drawterm screen === |1|Press [**Enter**] once.| |2|Type your Drawterm password, then press [**Enter**].| ^ Plan 9 Console ^ Keyboard activity ^ |**auth[your.IP.exhibt.here]:**| <= Press [**Enter**] once.| |**glenda@plan9 dp9ik password:**| <= Type your **Drawterm password**, then press [**Enter**]| | The //**cpu: failed to chdir to**// message is not uncommon. | === From rio: === ^ New ^ <= release the button here ^ | Resize | | | Move | | | Delete | | | Hide | | |1|At the rio grey screen, press the right button of your mouse. A menu (above) should appear. Then, release the button over the "New" option.| |2|Now, press the right button again near the upper-left corner of Drawterm, and drag the mouse to the lower-right before releasing the button, drawing a rectangle.| | New | | | Resize | | | Move | | ^ Delete ^ <= delete a window gracefully ^ | Hide | | |There is a "Delete" option in addition to the "New" option. This "Delete" option is useful. It will delete a window gracefully.| | New | | | Resize | | | Move | | | Delete | | ^ Hide ^ <= hide a window ^ |There is a “Hide” option in addition to the “New” option.| 1 //Drawterm is a X11 application that allows one to connect to a remote Plan 9 server...; a graphical client for Plan 9 CPU servers//. [[vps_-_9front#install_or_build_drawterm|DRAWTERM]] http://git.9front.org/plan9front/drawterm ==== Drawterm and file transfer ==== === A 9front Drawterm note: === ^ Command ^ 9front Drawterm output ^ |''$ ./drawterm --help''|''usage: drawterm [-GBO] [**-h** host] [**-u** user] [-a authserver] [-s secstore] [-e 'crypt hash'] [-k keypattern] [-p] [-t timeout] [-r root] [-g geometry] [-c cmd ...]''| |Although __missing__ from the "''$ ./drawterm --help''" output, the "-r /path/to/local/directory" option will show the "/path/to/local/directory" files in "/mnt/term". This means that you can transfer files between the computer that you are connecting from and your 9front VPS simply by copying files in /mnt/term and getting them from your computer (or the reverse.)| |**Example:** ''$ ./drawterm -a YOUR_IP -h YOUR_IP -u glenda -r /path/to/local/directory''| [/path/to/local/directory] [/path/to/local/directory] mdkir foobar cpu% cd /mnt/term/foobar cpu% pwd /mnt/term/foobar cpu% touch screenshot.challenge.txt ^ Tilde Expansion ^^ |//[[https://www.gnu.org/software/bash/manual/html_node/Tilde-Expansion.html|3.5.2 Tilde Expansion]]//|| | **''~''** | //The value of ''$HOME''// | |**Example:** ''$ ./drawterm -a YOUR_IP -h YOUR_IP -u glenda -r ~/directory''|| ==== Closing Drawterm ==== |Introduction to Operating Systems Abstractions [[https://archive.org/details/plan9designintro|Using Plan 9 from Bell Labs]] (pdf; external archive)| |1.3. **Leaving the system**; Page 6.| |//To leave your terminal you have all you need. Press the terminal power button (don’t look at the window system for it) and switch it off. Because the files are kept in the file server, any file you changed is already kept safe in the file server. Your terminal has nothing to save. You can switch it off at any time.//| === local os: === ^ Drawterm ^ application ^ |Quit|<= select quit| ^ rio Exit menu option (plan9front) ^ |There is an "Exit" option in addition to the "Delete" option. This "Exit" option is useful. It will delete ''rio'' gracefully.| | New | | | Resize | | | Move | | | Delete | | | Hide | | ^ Exit ^ <= exit ''rio'' ^ | **1.** |At the rio grey screen, press the right button of your mouse. A menu (above) should appear.\\ Then, release the button over the ''Exit'' option. A //skull face// pointer (☠) will appear.| | a. |Cancel the ''Exit'' with a mouse button 1, or button 2 press. The previous pointer will appear.| | i. |Confirm the ''Exit'' with a mouse button 3 press.| | b. |Press the ''Enter'' key once to locate the prompt (%).| | i. |At the prompt (%) type ''exit'', then press the ''Enter'' key, to **exit drawterm**. [%%:!:%%] ((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 mentioned //''exit''//\\ is intended as a topic for Boot Camp [[vps_-_9front#communication_resources|discussion]]. Review [[vps_-_9front#closing_drawterm|closing drawterm]], the way to quit Plan 9 drawterm.| | ii. |At the prompt (%) type ''rio'', then press the ''Enter'' key, to start rio.| | **2.** |Try item **1.**, or ''Exit'', while running ''rio'' inside another ''rio'' window.| ==== Install or Build Drawterm ==== === Binary Executables === Pre compiled Drawterm executables can be downloaded from the following links: * https://9p.sdf.org/drawterm **(OS X, Debian, Win 10)** * http://drawterm.9front.org/drawterm.exe **(Windows)** === Building from Source (Linux and UNIX) === If you have "git" installed, you can grab a copy by running something like the following in a terminal. ''git clone git://git.9front.org/plan9front/drawterm'' Otherwise you will need to download the source. You can go to http://git.9front.org/plan9front/drawterm/HEAD/info.html, click the "files" link, and click the "snap.tar.gz" link to get a tarball of the latest snapshot. "tar xzf" the file and rename the new directory "drawterm". You will also need compilers to build the source. If you are running a Debian or Ubuntu based system (and you've never built an application on your system), you can install these by running a command like the following: ''sudo apt-get install build-essential'' In addition to downloading the source code, you will need a couple of additional dependancies; libx11-dev and libxt-dev. If you are running a Debian or Ubuntu based system, you can install these by running a command like the following: ''sudo apt-get install libx11-dev libxt-dev'' Finally, we will need to build drawterm. If you are running Linux, you would cd into the drawterm directory and run the following: ''CONF=unix make'' After the process completes, you shouldn't see any error. There should now be a "drawterm" executable in the drawterm directory. You can test it by running: ''./drawterm'' If it runs fine, you should see a new window labeled "Plan 9 Console", with a prompt for the "cpu" (server). ===== A 9front rcpu application ===== From the plan9front Raspberry Pi rio rc terminal prompt (%): === Edit the /lib/ndb/local file: === |x|The ''echo 'auth=9p.sdf.org authdom=9sdf' >> /lib/ndb/local'' is __only__ applied initially. The results are retained.| % echo 'auth=9p.sdf.org authdom=9sdf' >> /lib/ndb/local === Check if factotum is running: === term% ps | grep factotum glenda 130 0:00 0:00 168K Pread factotum |x|Start factotum if it is __not__ running.| term% auth/factotum === RCPU to 9p.sdf.org === |x|A ''9p.sdf.org'' user name (''-u USER'') is required.| % rcpu -h 9p.sdf.org -u USER password: ! |x|Once connected to //9p.sdf.org//:| cpu% cd $home |x|Start the rio1,2 window system:| cpu% rio |x|Start ''[[vps_-_9front#command_reminder|stats -lmisce]]'' in a new rio1,2 rc window:| cpu% stats -lmisce === An incorrect password repair example: === % cat /mnt/factotum/ctl key proto=dp9ik dom=9sdf user=USER !password? % echo 'delkey proto=dp9ik dom=9sdf user=USER' > /mnt/factotum/ctl % 1 [[vps_-_9front#from_rio|More about rio]] 2 [[plan9front_-_drawterm_rio_and_stats|More details about rio]] ===== 9front VPS update tasks ===== |x|'sysupdate' is reserved1 for the user glenda (Thu Jan 14 08:07:38 GMT 2021).| |x|The VPS Maintenance Shell console __will ask for the password__ before confirming a shutdown [**s**], or a start [**r**]. //Keep your password nearby//.| |x|Step "II.) Updating your system" (''% mk install'') will take time.| |x|Optionally,[[vps_-_9front#working_in_9front| select “scroll” to toggle the window scroll (on)]]. This will reduce the need to manually scroll during the install.| Tasks I., and II., are preformed from the 9front Drawterm VPS connection, or 9front Drawterm rio rc prompt (%). Task III. is preformed from the 9front VPS Maintenance Shell console rc prompt (%). a.) Due to the way that namespaces work on 9front, change to the console prompt to preform the "9fs 9fat" in Task IV. b.) be careful I.) Updating your system: 1. type 'sysupdate' - note if changes are brought in. (you can 'cat /bin/sysupdate' to see how it works) (also just an 'hg incoming' will tell you what patches are available) 2. cd / 3. . /sys/lib/rootstub (you can 'cat /sys/lib/rootstub' to see) 4. cd /sys/src 5. mk install II.) Updating your kernel: 1. cd /sys/src/9/pc64 2. mk III.) Installing your new kernel: From the vps?.sdf.org console: 1. type '9fs 9fat' # be careful: 2. cp /sys/src/9/pc64/9pc64 /n/9fat/9pc64 3. fshalt 4. select menu option 's' and then 'r' OR, from the Drawterm rio rc prompt: 1. % cd 2. % pwd /usr/glenda 3. % bind -a '#S' /dev 4. % 9fs 9fat 5. % cp /sys/src/9/pc64/9pc64 /n/9fat/9pc64 6. % echo sync >>/srv/hjfs.cmd 7. % fshalt 8. Select menu option 's' and then 'r' from the vps?.sdf.org console. IV.) Your system should boot completely up-to-date. === clean or nuke: === |x|clean - The ''clean'' target removes object files and //yacc// intermediate files but does not touch the library. The ''nuke'' target removes the library as well as the files removed by the ''clean'' target.2| |x|nuke - The ''nuke'' target removes the library as well as the files removed by the ''clean'' target.2| If you have done a 'sysupdate' and have issues with mk install failing, try this. |x|This __will__ take time.| 1. cd /sys/src 2. mk clean 3. cd / 4. . /sys/lib/rootstub 5. cd /sys/src 6. mk install OR //([[vps_-_9front#clean_or_nuke|only if necessary]])// |x|This __will__ take time.| 1. cd /sys/src 2. mk nuke 3. cd / 4. . /sys/lib/rootstub 5. cd /sys/src 6. mk install If you have done a 'sysupdate' and have issues with mk install failing due to a specific directory, try this (a //upas// example only, select the appropriate directory). |x|This may take time.| 1. cd /sys/src/cmd/upas 2. mk clean 3. cd / 4. . /sys/lib/rootstub 5. cd /sys/src 6. mk install OR //([[vps_-_9front#clean_or_nuke|only if necessary]])// |x|This may take time.| 1. cd /sys/src/cmd/upas 2. mk nuke 3. cd / 4. . /sys/lib/rootstub 5. cd /sys/src 6. mk install 1 Pending further evaluation. 2 [[http://doc.cat-v.org/plan_9/2nd_edition/papers/mkfiles/|Plan 9 Mkfiles]] ===== Working in 9front ===== When using Drawterm1 to connect to the SDF 9front cpu server, your local files will be available at "/mnt/term": "''% lc /mnt/term''". You can copy files between the SDF 9front VPS and your local os without the use of additional protocols. In other words, when working with Drawterm, your environment is a composite of your local os and the Plan 9 system -- technically it is a three node grid, because the Drawterm program acts as an ultra-minimal independent Plan 9 terminal system, connecting your host os to the SDF 9front cpu server. % lc -l /mnt/term === From a rio window: === | cut | | | paste | | | snarf | | | plumb | | | look | | | send | | ^ scroll ^ <= toggle window scroll ^ |x|Press the middle mouse button, while the pointer is over a rio window. Select "scroll" to toggle the window scroll (on/off).| |x|A carefree scroll setting for [[com#getting_starteda_walkthrough|room]] plan9 in com (toggle scroll **on** before ''% vt -f /lib/font/bit/pelm/unicode.8.font'')| === At the rio rc prompt: === |At the Plan 9 rio rc prompt, the ''DELETE'' key provides an interrupt.| |At the Plan 9 rio rc prompt, the ''Ctrl+F'' or ''INSERT'' key provides an auto-completion feature within the rio window system.| |x|At the Plan 9 rio rc prompt, the ''Ctrl+F'' reports the number of files in the current directory.| |x|Type a few characters and then a ''Ctrl+F'' will match.| |At the Plan 9 rio rc prompt, use the ''Ctrl+B'' key to go from anywhere in the rio window back to the command prompt.| |At the Plan 9 rio rc prompt, use the ''Ctrl+A'' key to go to the beginning of a line.| |At the Plan 9 rio rc prompt, use the ''Ctrl+E'' key to go to the end of the line.| |At the Plan 9 rio rc prompt, use the ''Ctrl+U'' key to erase the current line.| |At the Plan 9 rio rc prompt, use the ''Ctrl+W'' key to erase the previous word.| |At the Plan 9 rio rc prompt, use the ''Ctrl+I'' key to tab.| |At the Plan 9 rio rc prompt, the ''""'' executes the previous command.| |At the Plan 9 rio rc prompt, the ''"'' prints the previously used command.| |At a rio window, ''ESC'' changes the border.Then it accepts multiple commands and when ''ESC'' is pressed again they are issued together.| % pwd /usr/glenda % cd lib/mothra % lc hit.html % "" c % cd lib/mothra Can't cd lib/mothra: 'lib' directory entry not found % "" l % lc hit.html % |x|**Hint**:|grep '^cpu% ' /dev/text|http://docs.9front.org/tips-and-tricks| === profile: === % cat /usr/$user/lib/profile | grep rio |RIO:|''% man rio''|http://man.9front.org/4/rio| |RIO:|rio -i riostart|Its -i option names a startup script, which typically contains several window commands generated by wloc.|http://man.9front.org/4/rio |RIO:|rio -i riostart -s|The -s option initializes windows so that text scrolls; the default is not to scroll.| |RIO:|rio -i riostart -b|The -b option reverses the normal color scheme for windows, painting white text on a black background.| |x|Riostart is located here: $home/bin/rc/riostart| |x|rio [[plan9front_-_drawterm_rio_and_stats#rio|customization details]]| {{::wloc.png?800|}} === profile and rules === |x|A user profile: /usr/$user/lib/profile| |x|A user profile: /usr/$user/lib/plumbing| |x|Some 9front plumber rules are located in /sys/lib/plumb/basic| |x|Some 9front plumber rules are located in /mnt/plumb/rules| === plumb to web: === An existing ''/mnt/plumb/rules'' example. type is text data matches 'https?://[^ ]+' plumb to web plumb client window $browser |x| Users connecting with linux Drawterm may find this plumber rule useful. | A user created profile ''/usr/$user/lib/plumbing'' example. [%%:FIXME:%%] ((The [%%:FIXME:%%] is interchangeable with a //[%%FIXME%%]//, for the [[plan9front_-_acme_sam_abaco_mothra_and_man#abaco|abaco]], and [[plan9front_-_acme_sam_abaco_mothra_and_man#mothra|mothra]] browsers. FIXME)) type is text data matches 'https?://[^ ]+' plumb to web plumb start os firefox $0 === At the rio rc prompt: === === slay: === slay, broke, dontkill - print commands to kill processes |x|The '**webfs**' process is used to illustrate the '**slay**' command.| |x|A way to clear the browser cache.| % slay webfs @{echo kill>/proc/527/ctl} # webfs @{echo kill>/proc/612/ctl} # webfs @{echo kill>/proc/683/ctl} # webfs |1|Press the left mouse button, and sweep, to highlight (in grey) the ''% slay webfs'' **output text**.| |2|Press the middle mouse button to select '**send**'.| |3|**Release the middle mouse button** to complete the '**send**' to rc (''% slay webfs | rc'').| | cut | | | paste | | | snarf | | | plumb | | | look | | ^ send ^ <= release the middle mouse button here ^ | noscroll | | === ns: === |x|ns - display name space| |x|ns [ -r ] [ pid ]| |x|ns prints a representation of the file name space of the process with the named pid, or by default itself.| An **ns** example. |1|In one Drawterm rio window, enter these two commands at the rio rc prompt (%). The sam [[#editors|editor]] will start.| cpu% touch test.edit cpu% sam test.edit |2|In another Drawterm rio window, enter these three commands at the rio rc prompt (%). Use the pid from your "sam test.edit" line.| cpu% ps -a | grep sam glenda 1280 0:00 0:00 188K Pread sam test.edit glenda 1282 0:00 0:00 312K Rendez samterm [main] glenda 1283 0:00 0:00 312K Pread samterm [mouseproc] glenda 1284 0:00 0:00 312K Pread samterm [kbdproc] glenda 1285 0:00 0:00 312K Pread samterm glenda 1286 0:00 0:00 312K Pread samterm glenda 1290 0:00 0:00 56K Pread grep sam cpu% ns 1280 | grep tmp >view.tmp cpu% cat view.tmp bind -c /n/other/usr/glenda/tmp /usr/glenda/tmp bind -c /n/other/usr/glenda/tmp /tmp 1 Taken from [[https://9p.io/wiki/plan9/Expanding_your_Grid/index.html|Expanding your Grid]] //...CPU AND DRAWTERM CONNECTIONS BETWEEN MULTIPLE MACHINES//. ==== Editors ==== |x|The "Plan 9 on an SDF VPS" [[plan9front_-_acme_sam_abaco_mothra_and_man|applications]] tutorial (Sam, Ed, and Acme) applies to this tutorial.| |x|SAM:|sam1, B, sam.save, samterm - screen editor with structural regular expressions|http://man.9front.org/1/sam| |x|ED:|ed2 - text editor|http://man.9front.org/1/ed| |x|[[vps_-_9front#boot_camp_discoveries_or_challenges|ACME]]:|acme3, win - interactive text windows|http://man.9front.org/1/acme| === sam: === Sam is a screen editor. % pwd /usr/glenda % cp /usr/glenda/lib/profile /usr/glenda/lib/EDprofile % sam /usr/glenda/lib/EDprofile |1|While the cursor is over the sam window, press the right button of your mouse and drag the cursor over the file name.| |2|Release the right mouse button once the cursor is over the file name.| |3|The cursor pointer will change to a square.| |4|Press the right button, while the square cursor is over the lower panel, to load the file in the lower panel| | new | | | zerox | | | resize | | | close | | | write | | | ~~sam~~ | | ^ - /lib/EDprofile ^ <= release the right mouse button here ^ |A few words about '**w**' writing the file, and how to '**q**' quit sam.| |Commands (//sam -d//) are typed in the upper panel, while edits are typed in the lower panel.| |Press the left mouse button to activate the upper panel, or the lower panel.| |Type a '**w**' in the upper panel, then press '**[Enter]**'. This saves the file.| |Type a '**q**' in the upper panel, then press '**[Enter]**'. This quits sam.| | cut | | | paste | | | snarf | | | plumb | | | look | | ^ ^ <= toggle cut&paste buffer ^ | send | | |1|Press the middle mouse button, while the pointer is over a sam window.| |2|Select "**" to toggle the sam cut&past buffer to rio (on/off). The default cut&paste buffer is sam.| === 'sam -d': === |''% sam -d''| Editing will be done with the command language only, as in //ed//.| ^ Command ^ Option ^ Quick Reference ^ |SAM:|''sam -d''|http://sam.cat-v.org/cheatsheet/| |x|sam tutorial|[[http://doc.cat-v.org/bell_labs/sam_lang_tutorial/|]]| === ed: === Ed is a text editor, and similar to 'sam -d'. |x|ed Cheat Sheet|[[ed Cheat Sheet|]] tutorial. (wiki)| |x|ed Cheat Sheet|[[http://sdf.org/?tutorials/ed|]] (tutorials, compatible with Plan 9 abaco, or mothra)| === acme: === |x|//Acme manages windows of text that may be edited interactively or by external programs//.|http://man.9front.org/1/acme| % acme ^ Newcol Kill Putall Dump Exit ^ |**New Cut Paste Snarf Sort Zerox Delcol**| % acme SDF_User_Contributed_Tutorials.html ^ Newcol Kill Putall Dump Exit ^^^ |**New Cut Paste Snarf Sort Zerox Delcol**|:::|| |**//SDF_User_Contributed_Tutorials.html//** **Del Snarf : Look**|:::|<= Replace //Look// with //Edit ,s/Booting/Rowing/g//| ^ Newcol Kill Putall Dump Exit ^ |**New Cut Paste Snarf Sort Zerox Delcol**| |**//SDF_User_Contributed_Tutorials.html//** **Del Snarf : Edit ,s/Booting/Rowing/g**| |x|View //[[vps_-_9front#boot_camp_discoveries_or_challenges|A Tour Of The Acme Editor]]// for details.| |:::|Mouse buttons 1, 2, & 3 - **3:06**; Edit - **7:03**|

This is the tutorial for setting-up the 9front2 operating system in a VPS slice on SDF. The tutorial is aimed at participants in the SDF Plan 9 Boot Camp3, but should be useful to other SDF VPS users. More recently, the Boot Camp participants will begin studying virtualized amd64 9front.

1ASCII art 2 Plan9front (or 9front) is a fork of the Plan 9 from Bell Labs operating system; Plan 9 Derivatives and forks. 3 Booting

1 [[wp>Sam_(text_editor)|Sam (text editor)]] 2 [[wp>Ed_(text_editor)|ed (text editor)]] 3 [[wp>Acme_(text_editor)|Acme (text editor)]] ==== Mothra ==== |x|The "Plan 9 on an SDF VPS" [[plan9front_-_acme_sam_abaco_mothra_and_man|Browsing the web]] tutorial (Abaco) applies to this tutorial.| mothra - retrieve and display World-Wide Web files % mothra % webfs; mothra -k % === rio rc send: === |x|The previously issued '**webfs; mothra**' string is used to illustrate the '**send**' selection.| |x|Another way to '**send**' commands the rio rc prompt (%).| |1|Press the left mouse button, and sweep, to highlight the ''webfs; mothra'' **input text**.| |2|Press the middle mouse button to select '**send**'.| |3|**Release the middle mouse button** to complete the '**send**' to rc (''% webfs; mothra | rc'').| | cut | | | paste | | | snarf | | | plumb | | | look | | ^ send ^ <= release the middle mouse button here ^ | noscroll | | === mothra save hit: === While using mothra, the '**save hit**' and '**hit list**' is accessed by pressing the right mouse button. The right mouse button '**save hit**' selection will add the current URL to ''$home/lib/mothra/hit.html''. The right mouse button '**hit list**' selection will display the hit list in the mothra browser. | alt display | | | moth mode | | | snarf | | | paste | | | plumb | | | search | | ^ save hit ^ <= release the right mouse button here ^ | hit list | | | exit | | Hit List

Hit list

http://wiki.sdf.org/doku.php?id=plan_9_9front ===== Shutdown and restart ===== VPS Maintenance Shell for plan* (xxx.xxx.xx.xx) no stats collected. [c] - Connect to your console [l] - list your status [r] - reset or start [s] - Force Shutdown (not an OS shutdown) [t] - toggle your Operating System [i] - Switch your VPS ID (multiple VPS members only) [x] - Clean install (destroys data) [p] - Change your vps.sdf.org password [u] - View current interface statistics [U] - View all recorded interface statistics [q] - Disconnect [30-Oct-20 22:59:17] Command: q Connection to vps? closed. $ |x|''% **fshalt**'' from a Drawterm rio rc prompt (%), is okay. Close the local Drawterm application separately.| === From the 9front Drawterm rio rc prompt: === cpu% fshalt halting.../srv/cwfs.cmd... done halting cpu% |x|''% **fshalt**'' from the 9front VPS console rc prompt (%), then at the "VPS Maintenance Shell" enter '**s**' - force shutdown, then enter '**r**' - reset or start.| === From the 9front VPS Maintenance Shell console prompt: === term% fshalt halting.../srv/cwfs.cmd...halted at Fri Oct 30 15:58:54 2020. done halting term% |1|Press **ctl-]** to continue, if viewing where the VPS console rc prompt (%) was once active. Press the '[**Enter**]' key to access the VPS Maintenance Shell (may apply).| |x|From the VPS Maintenance Shell enter '**s**' - force shutdown, then enter '**r**' - reset or start, or '**q**' - disconnect. Enter '**l**' to list your status.| |x|From the VPS Maintenance Shell enter '**s**' - force shutdown before starting the SDF 9front VPS. Ping the SDF Plan 9 VPS IP address ([[plan9front_-_ed_network_configuration|YOUR_IP]]) to determine if the VPS is running with networking.| $ ping YOUR_IP ==== Command reminder ==== |x|Previously mentioned commands from //Plan 9 on an SDF VPS//.| ^ Command ^ Option ^ Manual ^ |ABACO:| ''abaco''|http://man.9front.org/1/abaco| |ACME:| ''acme''|http://man.9front.org/1/acme| |ED:|''ed''|http://man.9front.org/1/ed| |FACES:|''faces -i''|http://man.9front.org/1/faces| |MOTHRA:|''mothra -k''|http://man.9front.org/1/mothra| |NS:|''ns pid''|http://man.9front.org/1/ns| |PAGE:|''page /sys/doc/sam/sam.ps''|http://man.9front.org/1/page| |PAINT:|''paint''|http://man.9front.org/1/paint| |PS:|''ps -a''|http://man.9front.org/1/ps| |PSTREE:|''pstree''|http://man.9front.org/1/ps| |SAM:|''sam -d''|http://man.9front.org/1/sam| |SLAY:|''slay''|http://man.9front.org/1/kill| |SSH:|''ssh user@sdf.org''|http://man.9front.org/1/ssh| |STATS:|''stats -lmisce''|http://man.9front.org/8/stats| |VT:|''vt [-f font]''|http://man.9front.org/1/vt| |WEBFS:|''webfs''|http://man.9front.org/4/webfs| |WINWATCH:|''winwatch -e '^(winwatch|stats|faces)'''|http://man.9front.org/1/winwatch| |UNIX to Plan 9 command translation|https://9p.io/wiki/plan9/UNIX_to_Plan_9_command_translation/index.html| |UNIX to Plan 9 translation|http://wiki.9front.org/unix2plan9| === A screenshot within Drawterm, or from a rio rc prompt. === % topng screenshot.png % png screenshot.png === A window-shot within Drawterm, or from a rio rc prompt. === % topng window.png % png window.png === An "wsys/n" window within Drawterm, or from a rio rc prompt. === |wsys|is a directory containing a subdirectory for each window, named by the unique ID for that window.|http://man.9front.org/4/rio| ''topng window.png'' grep the window label to find the window number. |x|Mouse button 3 menu select 'hide', then target the window that you want to 'topng'. Mouse button 3 target confirm the window that you want to 'topng'. Mouse button 3 menu to visually review the hidden window label name. Mouse button 3 menu select 'label-name' to un-hide the target window.| |x|The example window target label ends with the number 385.| % grep 385 /dev/wsys/*/label /dev/wsys/10/label:rc 201318385 % topng window.png % png window.png |x|Run ''winwatch'' to view a window label list.| % winwatch ^ Command ^ Example ^ |TOPNG:|% ''topng screenshot.png''| ==== Adding a User ==== |x|'[[#front_vps_update_tasks|sysupdate]]' is reserved for the user glenda (Thu Jan 14 08:07:38 GMT 2021).| ^ Section ^ FQA 7 - System Management ^ |7.3.1 - Adding users|http://fqa.9front.org/fqa7.html| |7.4.2 - Adding users|http://fqa.9front.org/fqa7.html| You may want to add a user to your system once you get the hang of things. There is really //no need to create a new user// when you are first starting out. It's safer to use the Drawterm rio rc prompt (%) for the following task, should there be a need for the '[Backspace]' key. To create a new user, you must connect to the file server console by typing: '''con -C /srv/cwfs.cmd'''1. Once at the file server prompt (''a blank''), create a new user. Replace USER with what you want your new user to be named: 'newuser USER'. You will need to add that USER to the "sys" group if you want it to be able to change system configuration files. Again, change USER to what your new user name is: 'newuser sys +USER'. Exit the file server console prompt (''a blank'') by typing: '**ctrl+\**'. You will now be at the "''> > >''" prompt; type '**q**' to quit the "''> > >''" prompt. % con -C /srv/cwfs.cmd newuser USER newuser sys +USER newuser adm +USER newuser upas +USER ''Ctrl+\'' >>> q % The following steps assume that you have [[plan9front_-_acme_sam_abaco_mothra_and_man|edited]] files while user "glenda", have run '[[#shutdown_and_restart|% fshalt]]' from the [[#shutdown_and_restart|VPS console]] rc prompt (%) or Drawterm rio rc prompt (%), been able to "[[#shutdown_and_restart|[s] - Force Shutdown]]" and "[[#shutdown_and_restart|[r] - reset or start]]" the VM from the VPS Maintenance Shell, and have used 9front Drawterm successfully. Enter the new "USER" name after an '**fshalt**' and a VPS Maintenance Shell [**s**] - //Force Shutdown// and [**r**] - //reset or start//. ''user[glenda]:'' ← Enter the new 'USER' name. Verify your new "[[#adding_a_user|USER]]" login with '''pwd''' or '''lc -l'''. __**Stop**__ if '''pwd''' does not show your new "USER" name. Initialize the new user environment with '''% /sys/lib/newuser''', before '''% mail -c''', from the VPS console prompt (%). term% /sys/lib/newuser term% mail -c A list of eight directory and file tasks.2 mkdir /n/other/usr/$user mkdir /n/other/usr/$user/tmp cp -x /usr/glenda/sdf /usr/$user/sdf cp -x /usr/glenda/start /usr/$user/start cp -x /usr/glenda/bin/rc/riostart /usr/$user/bin/rc/riostart cp /usr/glenda/lib/profile /usr/$user/lib/profile mkdir /usr/$user/www cp /usr/glenda/www/* /usr/$user/www/ A list of one pending task.3 bind -c /n/other/usr/$user/tmp /usr/$user/tmp A list of two optional tasks. mkdir /usr/$user/lib/mothra cp /usr/glenda/lib/mothra/hit.html /usr/$user/lib/mothra/hit.html The mentioned eight tasks are preformed from the VPS console prompt (%). term% mkdir /n/other/usr/$user term% mkdir /n/other/usr/$user/tmp term% cp -x /usr/glenda/sdf /usr/$user/sdf term% cp -x /usr/glenda/start /usr/$user/start term% cp -x /usr/glenda/bin/rc/riostart /usr/$user/bin/rc/riostart term% cp /usr/glenda/lib/profile /usr/$user/lib/profile term% mkdir /usr/$user/www term% cp /usr/glenda/www/* /usr/$user/www/ A VPS console prompt (%) ''% sam -d'' edit example, similar to ''% ed''. Optionally, a new user start file can be created while user glenda is connected with Drawterm, before a new user is created. The ed, sam, and acme editors are usable with a Drawterm rio rc prompt (%). term% lc start start* term% cp start start2 term% sam -d start2 -. start2 /=glenda =glenda echo 'key proto=dp9ik dom=plan9 user=glenda !password=L0gWlaM' > /mnt/factotum/ctl s/=glenda/=moth1 /=L0gWlaM =L0gWlaM echo 'key proto=dp9ik dom=plan9 user=moth1 !password=L0gWlaM' > /mnt/factotum/ctl s/=L0gWlaM/=fR0g1m3 /glenda glenda ip/httpd/httpd -a $myip -w /usr/glenda/www s/glenda/moth1 . ip/httpd/httpd -a $myip -w /usr/moth1/www w start2: #273 q term% Start Drawterm from the local operating system, after the ''/usr/$user/start'' user name is changed, and the ''/usr/$user/start'' www directory name is changed. $ ./drawterm -a YOUR_IP -h YOUR_IP -u new USER 1 For the cwfs file server, only ([[#shutdown_and_restart|"halting.../srv/cwfs.cmd..."]]). 2 [[http://fqa.9front.org/fqa7.html|7.3.1 - Adding users]] //New users are created without a profile, mail directory, tmp directory (needed to edit files with sam) or other confections// (sdf, start, riostart, www, index.html). 3 [[http://fqa.9front.org/fqa7.html|7.3.1 - Adding users]] //The default system /lib/namespace does the [[#ns:|following]]: bind -c /n/other/usr/$user/tmp /usr/$user/tmp// ==== Configure a Time zone ==== ^ Section ^ FQA 4 - 9front Installation Guide ^ |4.3.15 - tzsetup|http://fqa.9front.org/fqa4.html| ^ Section^ FQA 7 - System Management ^ |7.6.3 - UTC Timesync|http://fqa.9front.org/fqa7.html| You might want to configure your system's timezone1. Identify the timezone with '''% lc /adm/timezone'''. Assuming that the CET time zone is appropriate, login as the user 'adm'2 'glenda' and 'cp /adm/timezone/CET /adm/timezone/local'. Last, while user "glenda" edit the "TIMESYNCARGS" line in the "/rc/bin/termrc" (or "/rc/bin/cpurc"), using an NTP service. Set it to "TIMESYNCARGS=(-n pool.ntp.org)" and [[#shutdown_and_restart|reboot]]3. ''user[glenda]:'' % lc /adm/timezone % cp /adm/timezone/CET /adm/timezone/local % sed 4q /rc/bin/termrc #!/bin/rc # this file is run if service=terminal #TIMESYNCARGS=(-rLa1000000) TIMESYNCARGS=(-n pool.ntp.org) % % sam /rc/bin/termrc % fshalt === Setting a User's Timezone === If you just want to change the timezone of your user account on a shared system, you can add something like the following to your lib/profile: cat /adm/timezone/US_Central > /env/timezone 1 [[https://9p.io/wiki/plan9/Installation_instructions/index.html|Plan 9 Wiki Installation Instructions]], //SETTING UP CORRECT TIMEZONE// section. 2 '''% cat /adm/users | grep adm''' 3 '''% fshalt''' from an rc prompt (%), then at the "VPS Maintenance Shell" enter '**s**' - force shutdown, then enter '**r**' - reset or start. ====== Plan 9 Boot Camp ====== SDF periodically runs a Plan 9 Boot Camp which is open to anyone with an SDF user1 account. Of the various VPS that SDF offers2, the SDF Plan 9 Boot Camp VPS is the only VPS provided without subscription, to SDF MetaARPA3 members. These Plan 9 Boot Camps are announced about 30 days before they begin and are often set around the //International Workshop on Plan 9// conference4. They are usually a seasonal occurrence and run for about 2 months. |Why learn Plan 9 as a group?| |Plan 9 wants a community.| |Yes you can learn a lot on your own but Plan 9 was designed with a network of machines and users in mind.| Activities of the SDF Plan 9 Boot Camp include: |x|Installation or pre-generated Plan 9 instance under Xen| |x|Self Guided Discoveries in: ed, network configuration| |x|Self Guided Discoveries in: drawterm (from your computer), rio and stats| |x|Self Guided Discoveries in: acme, sam, abaco, mothra and man| |x|Self Guided Discoveries in: mapdemo, catclock, juggle and tetris| |x|Self Guided Discoveries in: 9front and contrib via ftpfs| |x|Self Guided Discoveries in: mailing list and faces| During the SDF Plan 9 Boot Camp you are encouraged to make screenshots and videos of your Self Guided Discoveries and share your experiences on //plan9-l// to inspire others to do the same. Participants in the Plan 9 Boot Camps also get a contrib directory on ''ftp://ftp.sdf.org'' (in //pub/sdf/plan9/contrib//). This directory persists and can be used perpetually for Plan 9 related sharing. |x|The [[image_gallery|SDF Image Gallery]] wiki page offers a link to additional SDF [[social_network|Social Networks]], for possible web based Boot Camp screenshot sharing.| 1 [[https://sdf.org/|UNIX Shell Account]]. 2 VPS membership required. 3 Type "//meta//" at the SDF shell (''$ meta'') for details. 4 International Workshop on Plan 9 http://iwp9.org/ ===== Discoveries or Challenges ===== Discoveries, or challenges, are mentioned on //plan9-l// or __live__ on twitch. === Recommended: === |Russ Cox's A Tour Of The Acme Editor|https://archive.org/details/atouroftheacmeeditor| |Plan 9 demo, narrated by John Floren (full)|https://youtu.be/obKnSDbaBlw| |Acme Editor, **Acme Mail**, Plan 9 demo (short)|https://www.youtube.com/user/slawmasta| |Plan 9, Das bessere UNIX, Angelo Papenhoff|https://youtu.be/mCiRxM8dOSY| ^ Command ^ Option ^ Quick Reference, mentioned in an Acme video ^ |SAM:|''sam -d''|http://sam.cat-v.org/cheatsheet/| === A self guided challenge: === |NYC*BUG|| |Plan 9: Not dead, Just Resting, by Ori Bernstein|| |https://www.nycbug.org/index?action=view&id=10672|| |https://toobnix.org/w/wpnBbBoj5UixTQsrMCExYN|''toobnix.org''| |https://youtu.be/6m3GuoaxRNM|| |20:00 - //9front plumber rules//; ''% cat /sys/lib/plumb/basic''|| |29:15 - //Ori's git9//|| |31:09 - //The essence of Plan 9 is 9p and name spaces//.|| |53:32 - ''/sys/ports/dev-lang''|| === SDF Fall 2021 Plan9 Boot Camp "Tea Note" Presentation === |sdfpubnix1|https://www.twitch.tv/sdfpubnix| === Some "Tea Note" Presentation commands from the rio rc prompt (%). === |DATE:|date, clock - date and time|http://man.9front.org/1/date| |FILE:|file - determine file type|http://man.9front.org/1/file| |HG:|hg - Mercurial source code management system|http://man.9front.org/1/hg| |MEMORY:|memory - print memory statistics in human-readable format|http://man.9front.org/8/memory| |MK:|mk, membername - maintain (make) related files|http://man.9front.org/1/mk| |NETSTAT:|summarizes past and present network connections|http://man.9front.org/1/netstat| |PLUMB:|plumb - send message to plumber|http://man.9front.org/1/plumb| |PLUMBER:|plumber - file system for interprocess messaging|http://man.9front.org/4/plumber| |PLUMBER:|Plumbing examples|https://9p.io/wiki/plan9/plumbing_examples/index.html| |SSHFS:|sshfs - secure file transfer protocol client|http://man.9front.org/4/sshfs| |SYSINFO:|sysinfo, sysupdate - report information about, update the system|http://man.9front.org/1/sysinfo| |SYSUPDATE:|download latest sources|''% cat /bin/sysupdate''| |WHO:|who, whois - who is using the machine|http://man.9front.org/1/who| === Other “Tea Note” Presentation examples from the rio rc prompt (%). === |FILE:|''% for (i in *) file $i''| |9FS:|''% 9fs 9fat''| |9FS:|''% cd /n/9fat'' (//Only from the VPS console rc prompt, if 9front kernel changes are made//)| |9FS2:|''% 9fs:'' (//Plan 9 ''% 9fs:''//)| === Other "Tea Note" Presentation commands near the SDF prompt ($). === |COM:|''-'' toggle backspace, //% bksp is now ^H//; [[vps_-_9front#console_menu_and_shell|ctl-h]]| ^ Some hints about Plan 9 ^ |Plan 9's system console is a TTY, not a VT| |In UNIX almost everything is a file, in Plan 9 everything is a file| |Plan 9 is more like UNIX than Linux is like UNIX| |Environment variables are stored and manipulated in /env| |System configuration is in /cfg| |Login configuration is in /rc/bin (termrc or cpurc, also .local files)| |System types: cpu vs. term| 1 Dependent on schedule availability. 2 A snippet from Plan 9 ''% man srv'': [[http://9p.io/magic/man2html/4/srv|9fs:]] -- //9fs is an rc(1) script; examine it to see what local conventions apply.// ==== Hello World ==== |//Hello World//, an example|''http://sdf.org/?tutorials/Plan_9_C#section-1''| ===== Communication resources ===== These communication resources are dependent on the preference of the "Boot Camp" participants, during a scheduled //SDF Plan 9 Boot Camp//. Some previous timely resources are ''$ com'', ''% com'', //plan9-l//, '' $ bboard'', //mastodon.sdf.org//, and //wiki.sdf.or//g. The resources are mentioned below. |x|**com**1 https://wiki.sdf.org/doku.php?id=com; [[http://sdf.org/?tutorials/comnotirc|COM is not IRC]] - (tutorials, compatible with mothra)|| |x|[[com#getting_starteda_walkthrough|room]] '**plan9**' in '**com**'|| |x|[[com#getting_starteda_walkthrough|room]] '**lobby**' in //[[boot_camp_9p_resource#commode_example|9p]]// '**com**' (Type ''@h'' for a list of //9p// com [[boot_camp_9p_resource#commode_example|commands]], or ''@g bootcamp''.)|9p.sdf.org| |x|subscribe **//plan9-l//** (Email '[[finding_help#using_manpages|majordomo]]' and 'subscribe plan9-l' to join.) || |x|**bboard** https://wiki.sdf.org/doku.php?id=bboard|| |x|**@SDF** https://mastodon.sdf.org/@SDF|| 1**com** //partial command help//; to begin TALK MODE, press [SPACE]. ^ COMMODE (c)1993 ^^ |**A**:|**toggles AFK mode**| |**e**:|emote| |**g**:|**goto a room**| |**h**:|**command help**| |**q**:|**quit commode**| |**r**:|**room history**| |**R**:|extended history| |**z**:|**toggle color mode**| |**-**:|**toggle backspace**| ====== Boot Camp 9p resource ====== |x| [%%:!:%%] ((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 core [[boot_camp_9p_resource|SDF Boot Camp 9p.sdf.org resource]] wiki details have [[boot_camp_9p_resource|moved]]. [%%:!:%%] ((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. :!:))| |x| https://9p.sdf.org //(an amd64 plan9front1 complement to the SDF Plan 9 Boot Camp2)//| 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. $ ./drawterm -a 9p.sdf.org -h 9p.sdf.org -u USER |//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''| A Drawterm rc prompt (without rio; //teletype only//): $ ./drawterm -G -h 9p.sdf.org -u USER |x|A Drawterm [[vps_-_9front#drawterm_and_file_transfer|file transfer]] hint:|''% lc /mnt/term''| 1 plan9front running natively on hardware. 2 NetBSD Xen [] running Plan 9 Boot Camp participants' VMs, during the announced Plan 9 Boot Camp occurrences. ==== Tutorials ==== |x|**Plan 9 Rc Survival Guide** http://sdf.org/?tutorials/Plan_9_rc - (tutorials, compatible with Plan 9 abaco, or mothra)| |x|**Plan 9 C Programming** http://sdf.org/?tutorials/Plan_9_C - (tutorials, compatible with Plan 9 abaco, or mothra)| |x|**Plan 9 on SDF VPS** http://sdf.org/?tutorials/VPS_Plan9 - (tutorials, compatible with Plan 9 abaco, or mothra)| |x|**SDF User Contributed Tutorials** (html) https://sdf.org/tutorials/ - (tutorials, compatible with mothra)| |x|**SDF User Contributed Tutorials** (wiki) https://wiki.sdf.org - (tutorials, compatible with mothra)| |x|**9FRONT FREQUENTLY QUESTIONED ANSWERS** http://fqa.9front.org/| |x|[[http://doc.cat-v.org/plan_9/2nd_edition/README.html|README]] (slightly outdated) - "This brief document is intended to help you get started using Plan 9." | {{:playground:plan9-sdf-splash-1.png?direct&200|}} |An SDF Plan 9 Boot Camp snippet from @SDF (Sept. 26, 2020)| |**9front Propaganda**|http://9front.org/propaganda/| ^ Valued mention ^ resource ^ |Plan 9 from Bell Labs|https://9p.io/plan9| |Glenda, the Plan 9 Bunny|https://9p.io/plan9/glenda.html| |Other hardware|https://9p.io/wiki/plan9/Other_hardware/index.html| ==== Plan 9 VPS tutorial ==== |x|[[plan9front_-_acme_sam_abaco_mothra_and_man|Plan 9 on an SDF VPS]] tutorial (wiki)| |x|Getting Started with Plan 9 Drawterm| |x|Sam (''% sam -d'')| |x|Ed (''% ed'')| |x|Acme (''% acme'')| |x|Abaco (''% abaco'')| |x|Mothra (''% mothra -k'')| |x|Useful Plan 9 Commands| ===== Reference book ===== |x|Introduction to Operating Systems Abstractions [[https://archive.org/details/plan9designintro|Using Plan 9 from Bell Labs]] (pdf; external archive)| |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.