plan 9.
I used to run the 9front fork of the Plan 9 operating system on a Raspberry Pi 3B+. I've also run it on a Lenovo ThinkPad X220, but that machine has since been swapped over to the haiku operating system. These are my notes, mostly specific to 9front, although some are certainly relevant for vanilla Plan 9.
The Plan 9 Foundation was recently granted ownership of the original Plan 9 source code and released it under the MIT license.
links.
- plan 9 desktop guide.
- the 9front frequently questioned answers.
- the 9front man pages.
- performing a simple install.
- 9front on qemu.
- using 9front.
- awesome plan 9.
- plan 9 papers.
- UNIX to Plan 9 command translations.
- netsurf port for 9front.
- reading e-mail on Plan 9.
- 9front raspberry pi instructions.
- Notes on the Plan 9 3rd Edition Kernel Source PDF.
notes.
- my rc scripts.
9fs 9fat
allows editing of /n/9fat/plan9.ini.- vt is a neat-o terminal emulator for SSHing to things.
- set timezone by copying the relevant timezone file, e.g.:
cp /adm/timezone/US_Eastern /adm/timezone/local
- add
TIMESYNCARGS=(-n pool.ntp.org)
to the top of /rc/bin/cpurc and /rc/bin/termrc to enable time-sync with an NTP server. nm -T someobj.6
prints the symbols and address offsets of a given binary.xd -1x file.bin
prints a hex dump of the binary file file.bin.- pc is the programmer's calculator. It's good.
- rio into a server:
cpu -h remote_host_ip_address -u glenda -c rio
- vga can swap to an external monitor.
- see free space on hjfs disk:
echo df >>/srv/hjfs.cmd
- see the sizes of all directories and files in the current directory:
du -sh *
- plumb commands to Local to affect everything in a running rio session without
restarting it, i.e. plumb:
Local bind -a $home/bin/rc /bin
- take cropped screenshot:
cat /dev/screen | crop -r 0 0 800 400 | topng >screenshot.png
- add a 5 pixel black border to an image and convert it to png:
crop -i -5 -b 0 0 0 image.img | topng >image_with_border.png
use ssh.
- generate keys:
mkdir $home/ssh auth/rsagen -t 'service=ssh' > $home/ssh/key auth/rsa2ssh $home/ssh/key > $home/ssh/key.pub
- add pubkeys to factotum:
cat $home/ssh/key >/mnt/factotum/ctl
- ssh to a nonstandard port w/ dialstring:
ssh user@tcp!example.com!1337
- mount SSH to /n/ssh:
sshfs user@example.com
change screen resolution.
@{rfork n;
aux/realemu;
aux/vga -m vesa -l 1920x1080x32}
update system.
sysupdate
# 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
See also: http://fqa.9front.org/fqa5.html