Distribution notes.
This commit is contained in:
parent
67f1f37bd8
commit
f305dffb85
3 changed files with 109 additions and 1 deletions
89
NOTES
Normal file
89
NOTES
Normal file
|
|
@ -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>
|
||||||
17
PORTING
Normal file
17
PORTING
Normal file
|
|
@ -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.
|
||||||
|
|
||||||
4
TODO
4
TODO
|
|
@ -45,7 +45,9 @@
|
||||||
but need to put it together.
|
but need to put it together.
|
||||||
|
|
||||||
* Dump
|
* 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,
|
needs cleanup and release. should be easy to add ext2,
|
||||||
fat. ntfs harder but possible.
|
fat. ntfs harder but possible.
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue