As an aside about Wolfram and SMP (and one that actually has
something to do with UNIX):
I ran the VAX on which Wolfram et al (and it was very much et al)
developed SMP. It started out running UNIX/TS 1.0. I know how
that system was snuck out of Bell Labs, but if I told you I'd have
to terminate you with extreme prejudice. (I wasn't involved
anyway.)
SMP really needed dynamic paging; the TS 1.0 kernel had only
swapping. We had quite a few discussions about what to do.
Moving wholesale to 3BSD or early 4BSD (this was in 1981)
would have been a big upheaval for our entire user community.
Those systems were also notorious at the time for their delicate
stability: some people reported that they ran well, others that
they crashed frequently. Our existing system was pretty solid,
and I had already put some work into making it more so (better
handling of low-level machine errors, for example).
Somehow we ended up deciding that the least-painful path was
to lift the VM code out of 4BSD and shoehorn it into our
existing kernel, creating what we called Bastardized Paging
UNIX. I did most of the work; I was younger and more energetic
back then. Also considerably grumpier. In the heart of the
page-in (I think) code, the Berkeley guys had written a single
C function that stretched to about ten printed pages. (For those
too young to remember printers, that means about 600 lines.)
I was then and still am adamant that that's the wrong way to
write anything, but I didn't want to take the time to rewrite
it all, so (being young and grumpy) I relieved my feelings by
adding a grumpy comment at the top of the source file.
I also wrote a paper about the work, which was published in
(of all places) AUUGN. I haven't read it in years but it was
probably a bit snotty. It nevertheless ended up causing a
local UNIX-systems-software company to head-hunt me (but at
the time I had no interest in leaving Caltech), so it must
not have been too rude.
What days those were, when a single person could understand
enough of the OS to do stuff like that in only a month or two,
and get it pretty much right too. I did end up finding some
interesting race-condition bugs, probably introduced by me, but
fascinating to track down; e.g. something that went wrong only
if a page fault happened at exactly the right time with respect
to something else.
Norman Wilson
Toronto ON