aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--NOTES89
-rw-r--r--PORTING17
-rw-r--r--TODO4
3 files changed, 109 insertions, 1 deletions
diff --git a/NOTES b/NOTES
new file mode 100644
index 00000000..593f1bc8
--- /dev/null
+++ b/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>
diff --git a/PORTING b/PORTING
new file mode 100644
index 00000000..ddb94b99
--- /dev/null
+++ b/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.
+
diff --git a/TODO b/TODO
index 897d1319..e46c76a8 100644
--- a/TODO
+++ b/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.