On Sun, Feb 8, 2015 at 5:42 PM, Noel Chiappa <jnc@mercury.lcs.mit.edu> wrote:
But this is kind of confusing, because when I was bringing up V6 under the
Ersatz11 simulator, I had a problem where the swapper (process 0) was trying
to fork (with the child becoming 1 and running /etc/init), and it did the
'swap out' thing. But there was a ton of free memory at that point, so... why
was it doing a swap? Eh, something to investigate sometime...

​I'm relying on very old memory here ...  but my memory is that before either fork or exec or maybe both (I forget all of this and don't have the code on my laptop to check) the kernel did something in the swap area/maps.   It may have been just preallocate the data area for the process.  ​But if there was not enough space/got an error of some type, the system call failed.   

What this meant was the even if you has free ram, you had to have a working swap device very early in the start up.   I wish I could remember those details - hard to believe I spent so many hours (of fun) hacking on the kernel of those systems ;-)



Clem