A critical examination of Unix's fork() syscall and its design flaws. The author argues that fork was a poor design choice from the start, leading to cascading problems including the need for CLOEXEC, complex pipe setup, memory overcommitment, and the Linux OOM killer. Alternatives like vfork and posix_spawn are dismissed as inadequate. The author advocates for the spawn model (as used in KnightOS and Windows NT) and Plan 9's rfork as superior approaches, where new processes are configured before launch rather than copying the entire parent address space.
Sort: