How did fork work in Venix originally on the 8086 without an MMU? Did it just make literal copies of segments using something like memcpy? Did fork have different semantics?
Pretty sure it literally just copied the process image.
For it to have “real fork semantics” I guess it would have to but that seems like it would be super slow without paging/COW, especially given the speed of the hardware.
I guess that’s how it was in the earliest Unicies too, so…authentic I guess.
Slow is relative, of course. One thing to note is due to segment/process limitations, you’d be moving a few 10s of kilobytes of memory, not MB/GB. Impressive what they did with 64k+64k I+D.