Following the recent discussion on this list about early paging systems and John Reiser’s work in this area, I succeeded in reaching out to him. It is all very long ago, but John’s recollection is that his paging system work was initially done late in 1979 or maybe 1980. This matches with Rob Pike’s memory of seeing it demoed in early 1981.
John’s recollection confirms that his design implemented mmap and copy-on-write, and was integrated with the file buffer cache (all features that Norman Wilson also remembered).
I have appended John’s message below (with permission). I am not sure I understand - at this time - how John’s code was multiplexing page table entries with kernel data structures beyond what is mentioned, but I think it might be an interesting summer project to see how much of the design can be resurrected using related code, old documents and memories.
Paul
====
> I joined Bell Labs department 1135 ("Interactive Computer Systems Research")
> at Holmdel, NJ in Feb.1977. I soon gained fame by re-writing the C pre-processor,
> which was bug-infested and slow. (" 1.e4 " was recognized as an opportunity
> to expand the macro "e4", instead of as a floating-point constant.)
> cpp used to take 15% to 18% of total CPU compile time. My replacement code
> was 2% to 3%. The average improvement was a factor of 7; the minimum:
> a factor of 5; the best: a factor of 11 or 12.
> During the rest of 1977, I became dissatisfied with our PDP-11/45 (and other's
> PDP-11/70), having spent a few student years at Stanford Univ and its AI Lab,
> where PDP-6 and PDP-10 reigned. So Tom London and I wrote an "internal grant"
> for $250,000 to get a new machine, with a "research goal" of exploring CCD
> (charge coupled device) which was promised to replace spinning harddrive.
> Actual CCD product never appeared until flash memory devices in 1990s
> and SSD (current solid state drive) later.
>
> Our VAX-11/780, the first one delivered to a customer, arrived Feb.12, 1978
> (Lincoln's Birthday). Tom and I had been preparing using PDP-11/45 since
> December, and we achieved "login: " on the console DECwriter by April 15
> (the deadline for US income tax filing). The rest of 1978 was "tuning",
> and preparing for the release of "UNIX-32/V" to UC Berkeley. My annual
> performance review in early 1979 said "Well done; but don't ever do it again"
> because it was not regarded as "Research".
> So what did I do? I did it again; this time, with demand paging.
> I designed and implemented mmap() based on experience with PDP-10/Tenex
> PMAP page mapping system call. I fretted over introducing the first
> UNIX system call with 6 arguments.
>
> The internal design of the paging mechanism "broke the rules" by having a
> non-hierarchical dependency: A1 calls B1 calls A2 calls B2 where {A1, A2}
> are parts of one subsystem, and {B1, B2} are parts of another subsystem.
> (One subsystem was the buffer cache; I forget what was the other subsystem.)
> Our machine started with 512KB of RAM, but within a few months was upgraded
> to 4 MB with boards that used a new generation of RAM chips.
> The hardware page size was 512 bytes, which is quite small. Strict LRU
> on 8,192 pages, plus Copy-On-Write, made the second reference to a page
> "blindingly fast". It was impressive, running sometime in 1979 or 1980,
> I think. But it was not "Research", so I got many fewer accolades.
> My internal design strategy was to use the hardware page table entry
> (4 bytes per page, with "page not present" being one bit which freed
> the other 31 bits for use by software) as the anchor to track everything
> about a page. This resulted in a complicated union of bitfield structs,
> which became a headache. When other departments took over the work,
> the first thing they did was use 8 bytes per page, which meant shuffling
> between the software and the hardware descriptors: its own mess.
> I wasn't interested in maintaining a paging system, so I moved on
> to other things such as design of integrated circuits using
> Carver-Mead methodology.
Is it okay for me to ask a question about Linux that's from '91~'92?
Does anyone happen to have copies of H.J. Lu's Bootable Root and the
associated Linux Base System disk images from the early '90s?
I've managed to find a copy of 0.98.pl5-31 bootable root disk. But I
can't find any base disks to go along with it.
The files used to be on tsx-11.mit.edu:/pub/linux/GCC in rootdisk and
basedisk subdirectories.
Unfortunately all of the mirrors I'm finding of tsx-11 are newer, have
the basedisk directories, but no image files there in.
--
Grant. . . .
unix || die
More mildewy items from my dödsstäda project. Finally found my
March 1974 BTL directory. A while ago I was trying to figure
out who the people with the initials EPR, LIS, and MAS were in
the 516-TSS documents. Best guesses via vgrep on an ancient
single-processor are that EPR is Peter E. Rosenfeld, supervisor
of Computer Graphics Design Group, LIS is Loretta I. Stukas in
Programming Aids Software And Techniques Group. No reasonable
looking matches on MAS.
Nothing else spectacular in this box - it does have my Lyons
books and a whole bunch or original UNIX docs such as the C
manual, introduction to ed, and so on which I think are all
sufficiently preserved that I don't need to scan them in.
Jon
What's the current status of net/2?
I ask because I have a FreeBSD 1.1.5.1 CVS repo that I'd like to make
available. Some of the files in it are encumbered, though, and the
University of California has communicated that fact. But what does that
actually mean now that V7 has been released and that's what the files were
based on? Are they no longer encumbered?
Warner
> From: Clem Cole
> search is your friend:
The number of people who come here asking for help, who apparently don't know
how to do a Web search, is pretty astounding. Get off my lawn.
> The first hit is Noel's great text:
Actually, I didn't write that; another CHWiki contributor imported it from
the Web. (Wouldn't touch SIMH myself... :-)
Most of the other pages at the bottom, in the 'See also' section, I did
write. Some of them might actually be useful. Also, at the bottom of the
'Installing UNIX Sixth Edition on Ersatz-11' page, there are links to a
couple of external pages that have lots of info on how to upgrade a V6
into something semi-usable.
Noel
Hello there I’m Resun a teenaged programmer who knows nothing about past days.
Here Index of /Archive/Distributions/Research/Dennis_v6 (tuhs.org)<https://www.tuhs.org/Archive/Distributions/Research/Dennis_v6/> there are some compressed file of v6 Unix.
And here’s SETTING UP UNIX - Sixth Edition (tuhs.org)<https://www.tuhs.org/Archive/Distributions/Research/Documentation/v6_setup.…> a documentation about how to set it up.
But the documentation is not for me I mean I don’t understand what it’s saying. There are terms like “Mount magtape on drive 0 at load point”, “Mount formatted disk pack on drive 0.”, “Key in and execute at 100000” and lots of other stuffs that newbies like me don’t understand. Is there any easy documentation about it? Or any documentation that tells us what does those terms mean?
Please help me.
Thanks.
Sent from Mail<https://go.microsoft.com/fwlink/?LinkId=550986> for Windows 10
This video got passed around at my (new!) job, and I think it's very
relevant to this list. It's Bill Joy talking about what he and Sun were
thinking about as the future of workstations and computing in general ca
1987. Some of the predictions were not accurate, but some were.
I'm curious what others think. https://www.youtube.com/watch?v=k8Pd6xYaHGU
- Dan C.