On Sun, Feb 8, 2015 at 3:42 PM, Noel Chiappa <jnc@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