On Sun, Feb 8, 2015 at 3:42 PM, Noel Chiappa <jnc(a)mercury.lcs.mit.edu>
wrote:
I don't know how the later systems work, but in
V6, the swap device, and
the
start block / # of blocks are specified in the c.c configuration file (i.e.
they are compiled into the system). So you can take one partition, and by
specifying less than the full size to 'mkfs', you can use the end of the
partition for swap space (which is presumably what's happening with
/dev/rl0
here).
Ah Noel - Thanks for the refresher course. That's right. I now remember
it. I knew it was compiled into the kernel but I had forgotten the details.
It was not until much later that the swap image became less screwed
down/more reflexible. You first needed to get to larger disks (rp05/rp06)
which had to be partitioned because they overflowed a 16 bit integer.
Once people started to partition them, then all sort of new things occurred
and I that's when the idea of a dedicated swap partition came up. I've
forgotten if that was a BSDism or UNIX/TS. Certainly by the time of Sam's
4.1A?? configuration tool that created conf.c and low.s it had already been
in for a while.
As I recall in V6 and I think V7, the process was first placed in the swap
image before the exec (or at least space reserved for it). So you had to
have a swap space to boot because to fork the "init" it needed to assigned
to the swap space (chick/egg issue). When demand support was added to the
kernel, the process did not have to have that requirement, so it meant swap
set up could be a post initial program load operation for the start
sequence.
Clem
Clem