μFork: Supporting POSIX fork Within a Single-Address-Space OS
John Alistair Kressel, Hugo Lefeuvre, Pierre Olivier
Abstract
Single-address-space operating systems have well-known lightweightness benefits that result from their central design idea: the kernel and applications share a unique address space. This model makes these operating systems (OSes) incompatible by design with a large class of software: multiprocess POSIX applications. Indeed, the semantics of the primitive used to create POSIX processes, fork, are inextricably tied to the existence of multiple address spaces.
Prior approaches addressing this issue trade off lightweightness, compatibility and/or isolation. We propose µFork, a single-address-space operating system design supporting POSIX fork on modern hardware without compromising on any of these key objectives. µFork emulates POSIX processes (µprocesses) and achieves fork by creating for the child a copy of the parent µprocess' memory at a different location within a single address space. This approach presents two challenges: relocating the child's absolute memory references (pointers), as well as providing user/kernel and µprocesses isolation without impacting lightweightness. We address them using CHERI. We implement µFork and evaluate it upon three real-world use-cases: Redis snapshots, Nginx multi-worker deployments, and Zygote FaaS worker warm-up. µFork outperforms previous work and traditional monolithic OSes on key lightweightness metrics by an order of magnitude, e.g. it can offer a fork-bound FaaS function throughput 24% higher than that of a monolithic OS, and can fork a µprocess in 54 µs, 3.7× faster than a traditional fork.
Ask about this paper
Your agent reads all of it.
Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.
Your agent calls
Luneget_paper_fulltext
Free to start. No credit card required.
Terminal
Install the CLIlune papers fulltext ce9a071b-1ecb-4f70-85b9-b076e7e3b438Cited by top-tier papers1
Ask how each one uses itBuilds on37
- Serverless in the Wild: Characterizing and Optimizing the Serverless Workload at a Large Cloud ProviderMohammad Shahrad, Rodrigo Fonseca, Iñigo Goiri, Gohar Irfan Chaudhry et al.USENIX ATC 2020 · 946 citations
- SEUSS: skip redundant paths to make serverless fastJames Cadden, Thomas Unger, Yara Awad, Han Dong et al.EuroSys 2020 · 156 citations
- Full-Speed Fuzzing: Reducing Fuzzing Overhead through Coverage-Guided TracingStefan Nagy, Matthew HicksS&P 2019 · 156 citations
- Ramblr: Making Reassembly Great AgainRuoyu Wang, Yan Shoshitaishvili, Antonio Bianchi, Aravind Machiry et al.NDSS 2017 · 155 citations
- HDFI: Hardware-Assisted Data-Flow IsolationChengyu Song, Hyungon Moon, Monjur Alam, Insu Yun et al.S&P 2016 · 146 citations
Related papers
- Nephele: Extending Virtualization Environments for Cloning Unikernel-based VMsCostin Lupu, Andrei Albisoru, Radu Nichita, Doru-Florin Blânzeanu et al.EuroSys 2023 · 10 citations
- On-demand-fork: a microsecond fork for memory-intensive and latency-sensitive applicationsKaiyang Zhao, Sishuai Gong, Pedro FonsecaEuroSys 2021 · 25 citations
- Efficient Linkage-Based Compartmentalization on CHERIDapeng Gao, John Baldwin, Jessica Clarke, Nicholas C. Connolly et al.CCS 2026
- No Provisioned Concurrency: Fast RDMA-codesigned Remote Fork for Serverless ComputingXingda Wei, Fangming Lu, Tianxia Wang, Jinyu Gu et al.OSDI 2023 · 78 citations
- Fast Core Scheduling with Userspace Process AbstractionJiazhen Lin, Youmin Chen, Shiwei Gao, Youyou LuSOSP 2024 · 3 citations
