In traditional concurrency, the boundary is a strict dichotomy: either a process (sharing nothing, completely isolated) or a thread (sharing everything, completely entangled). The architecture provides two different tools, two different concepts, and two different failure modes.
Plan 9 dismantles this dichotomy with a single system call: rfork.
There are no distinct processes or threads, only a continuous spectrum of state sharing parameterized by explicit bitmasks. By passing flags like RFMEM (share memory), RFNAME (share namespace), or RFFDG (share file descriptors), the caller specifies exactly which lines of state to weave together and which to cut loose. A "thread" is simply an rfork where everything is shared. A "process" is simply an rfork where nothing is.
Between them lies a vast, usable territory of partial entanglement. The boundary is not a binary choice of category; it is a mechanical parameter of the weave.
