On Sun, Feb 8, 2015 at 5:42 PM, Noel Chiappa <jnc(a)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