Commit Diff


commit - 67f1f37bd8bf7f95ae665edcf0aeacbed53f64fd
commit + f305dffb85432d58fd3bc3ce8d78371e652dd314
blob - 897d13191a8cba4021b653e65a2037bdefc673f4
blob + e46c76a8b1ddc97b195f5ae3af5909ae1d9f21c2
--- TODO
+++ TODO
@@ -45,7 +45,9 @@
 	  but need to put it together.
 
 * Dump
-	- have a dump file system that sits on the side of ffs.
+	- have a dump file system that sits on the side of ffs,
+	  backing up disk images to venti.  a loopback NFS server
+	  serves the backed-up images.  
 	  needs cleanup and release.  should be easy to add ext2,
 	  fat.  ntfs harder but possible.
 
blob - /dev/null
blob + 593f1bc88804ae1ca8a6bf6121c1c7484c78104f (mode 644)
--- /dev/null
+++ NOTES
@@ -0,0 +1,89 @@
+This is a port of some Plan 9 libraries and programs to Unix.
+
+Some parts expect that the tree is installed in /usr/local/plan9.
+Most are position independent.  The few hard-coded references
+(there's one in sam) should really be fixed.
+
+* Obtaining the source
+
+Tarballs will be posted occasionally at
+
+  http://pdos.lcs.mit.edu/~rsc/software/plan9
+
+/usr/local/plan9 is the suggested location to keep the software.
+All the paths in the tarball begin with plan9/, so it's okay to unpack it
+directly in /usr/local.
+
+You can use CVS to obtain the very latest version and stay up-to-date.
+See below.
+
+* Building
+
+To build, cd into src and run make install.  This will place binaries
+in "bin".  At time of writing, the commands are sam, samterm, and mk.
+There are a few shell scripts already included in bin -- B, Bwait,
+and samsave.
+
+* Make vs. Mk
+
+I'm trying to use make for everything so that it's easier to get
+off the ground, but this might not work out.  Working in the
+intersection of BSD make and GNU make is quite restrictive.
+If I'm going to start requiring a particular build utility,
+it might as well be mk.
+
+* Helping out
+
+If you'd like to help out, great!
+
+The TODO file contains our (somewhat long) to do list.
+
+If you port this code to other architectures, please share your changes
+so others can benefit.  See PORTING for some notes.
+
+Please use diff -u or CVS (see below) to prepare patches.
+
+* CVS
+
+You can use CVS to keep your local copy up-to-date as we make 
+changes and fix bugs.  The idioms explained here are pretty much
+all you need to know about CVS.
+
+To check out from the anonymous CVS repository, use
+
+  cd /usr/local
+  >$HOME/.cvspass
+  cvs -d :pserver:anoncvs@cvs.pdos.lcs.mit.edu:/cvs login
+  cvs -d :pserver:anoncvs@cvs.pdos.lcs.mit.edu:/cvs checkout plan9
+
+When prompted for a password, just hit enter.
+
+From then on, when you want to update, you can do
+
+  cd /usr/local/plan9
+  cvs update -dAP
+
+If there are conflicts between changes you have made locally
+and changes on the server, cvs will warn about them and leave
+them clearly marked in the updated files.
+
+If you change something and want to submit the change (please do!),
+you can run
+
+  cd /usr/local/plan9
+  cvs diff -u
+
+to generate the diff in a format that will be easy to apply.
+(You can also use this to see what you've changed.)
+
+Running the cvs commands in /usr/local/plan9 makes them
+apply to the whole tree.  Running them in a subdirectory applies
+only to the code rooted there in the code.
+
+There's not much magical about /usr/local/plan9.  If you
+check out the tree in some other directory, it should work
+just as well.
+
+Thanks.
+
+Russ Cox <rsc@swtch.com>
blob - /dev/null
blob + ddb94b995e422a3cbfb4a27bd957fa792d37bb1c (mode 644)
--- /dev/null
+++ PORTING
@@ -0,0 +1,17 @@
+[Need to write better notes.]
+
+Look for files named *386* or *FreeBSD* and you'll see what
+you need to implement for your architecture of choice.
+
+The hardest thing is probably the assembly routines: 
+src/lib9/tas-$SYSTYPE.s and src/libthread/asm-$SYSTYPE-$OBJTYPE.s.
+The former is a test and set used to implement shared-memory
+spin locks.  The latter is a stripped down setjmp and longjmp
+used to implement stack switching in the thread library.
+Also, src/libthread/$OBJTYPE.c needs to know how to set up a stack
+frame for the given object type.
+
+If you're only interested in mk and sam, you don't need to
+write any assembly to do a port.  Samterm requires everything
+though, since it uses libthread.
+