MMUless Systems
On several embedded devices, there is no Memory Management Unit, which is a requirement for implementing the copy-on-write semantics prescribed by fork
. If the system has some other mechanism for per-process address spaces, such as a segment register, copying the entire process memory to the new process achieves the desired effect, however this is a costly operation and most likely unneeded given that the new process almost immediately replaces the process image in most instances.
If all processes share a single address space, then the only way fork
could be implemented would be to swap the memory pages along with the rest of the task context switch. Rather than doing that, embedded operating systems such as uClinux usually omit fork
and only implement vfork
; part of the work porting to such a platform involves rewriting code to use the latter.
Read more about this topic: Fork (operating System)
Famous quotes containing the word systems:
“We have done scant justice to the reasonableness of cannibalism. There are in fact so many and such excellent motives possible to it that mankind has never been able to fit all of them into one universal scheme, and has accordingly contrived various diverse and contradictory systems the better to display its virtues.”
—Ruth Benedict (18871948)