Plan9 VM

Skip to first unread message

Phil Winterbottom

Oct 20, 1992, 12:51:35 PM10/20/92

Plan 9 allows pageing to filesystems or discs either
locally or remotely. There are system calls to share
memory, change allocation and map devices. These are
documented in the manual under the segattach(2) and rfork(2)
system call pages. Memory can be shared only between
children of an owning process and there is no
representation of memory as files.

The VM system has an aggressive page cacheing policy
which almost entirely eliminates text/data page reads
once a program has been invoked once. The system also has
the means to control the cacheing policy used for
individual segments. So a split I&D cache can be
kept coherent. It is possible using system calls to
run user level bitblt code on an SMP.

The file server exportfs(4) and the concurrent programming
language ALEF(1) use all of these facilities.

As rob posted last week the manual is available by public
ftp from in the directories dist/plan9doc
and dist/plan9man.

Phil Winterbottom

Bill Spitzak

Oct 22, 1992, 12:37:27 PM10/22/92
The manual posted by Rob and the Plan 9 guys (in
/dist/plan9man) is all in PostScript. There are a bunch of small
papers called [0-9]*.ps.Z which add up to about 150 pages, and a giant
one called which is 575 pages long. Unfortunately most of
the interesting stuff is in the giant manual, with is laid out exactly
like classic Unix documentation with numbered chapters. You may want
to find a filter to print several pages on a sheet (I wish I had

Ronald G Minnich

Oct 25, 1992, 8:34:04 PM10/25/92
if you can, print out the whole manual. Really neat stuff. I would like
to check interest in comp.os.plan9, any thoughts here?

One question for now,
what is the format of /proc/*/segment? do i get file name,
va, length or some such for each segment in my address space?

It does look like they got inherit-on-exec segments right, among
many other things.

Never assume a conspiracy when you can assume |
incompetence. | (301)-805-7451 or 7312
Most abused words: open, scaleable, [more later] |

peter da silva

Oct 25, 1992, 8:35:25 PM10/25/92
In article <1c6lc7...@darkstar.UCSC.EDU> spi...@gree.Eng.Sun.COM (Bill Spitzak) writes:
> The manual posted by Rob and the Plan 9 guys (in
> /dist/plan9man) is all in PostScript.

yes, it's annoying. I printed the whole thing out, but it's easy enough to
pull out bits. It could be worse: the NT manual is in complete bogocode.

> You may want
> to find a filter to print several pages on a sheet (I wish I had
> one...).

There are plenty out there.

Another useful tool:

N=<desired first page>
M=<desired last page>
N1=`expr $N - 1`
M1=`expr $M + 1`
sed -e "/^%%Page: 1 1$/,/^%%EndPage: [0-9]* $N1$/d" \
-e "/^%%Page: [0-9]* $M1$/,/^%%EndPage: 548 576$/d" \ | lp -d$POSTSCRIPT

To map the pages:

Title Pages, Page 1 and 2.
Index, Pages 3 to 26 (add 2 to printed page number)
Manual entries, Pages 27 to 574 (add 26 to printed page number)
/L{lineto}def /M{moveto}def 72 72 translate 24 24 scale newpath 0 19 M 0 25 L 4
21 L 0 16 M 5 16 L 8 13 L 4 13 L 1 16 L 8 13 M 8 8 L 12 8 M 12 13 L 10 8 M 12 8
L 10 6 L 8 8 L 10 8 L 20 16 M 15 16 L 12 13 L 16 13 L 19 16 L 20 19 M 20 25 L
16 21 L stroke showpage % Peter da Silva % 77487-5012 USA % +1 713 274 5180

Matthias Urlichs

Oct 26, 1992, 6:55:21 PM10/26/92
In comp.os.research, article <1c6lc7...@darkstar.UCSC.EDU>,

If you apply the following unidiff to the manual pages, you can page
through it with GhostView. Printing a section can be accomplished by
prepending the appropriate pages with the header before the first page.

--- Sat Oct 17 21:39:07 1992
+++ Standard Input Mon Oct 26 00:34:54 1992
@@ -1,8 +1,9 @@
%%Version: 3.3.2
-%%DocumentFonts: (atend)
-%%Pages: (atend)
+%%DocumentFonts: Times-Roman Times-Bold Times-Italic Times-Roman Symbol
+%%Pages: 574
% Version 3.3.2 prologue for troff files.

"Sarcasm: barbed ire."
-- Author Unknown
Matthias Urlichs -- -- /(o\
Humboldtstrasse 7 -- 7500 Karlsruhe 1 -- Germany -- +49-721-9612521 \o)/

Reply all
Reply to author
0 new messages