I'm fascinated by CodeSandbox's VM fork capability鈥攊t looks聽magical! 馃帺 I have a question about the implementation details:
When forking VM B from VM A, CodeSandbox uses CoW (via page faults) to track memory pages. But how exactly is VM B's process created at the beginning? Is it a direct聽fork()聽of VM A's process, or is it spawned from a snapshot (e.g.,snapshot.snap聽files) to rebuild execution context?
Also, beyond code snippet sharing and multi-branch testing, do you see broader use cases for VM forking? Has this been used in production for infra-layer magic? Any papers/case studies to share?
Thanks for your wisdom! 馃檶
I'm fascinated by CodeSandbox's VM fork capability鈥攊t looks聽magical! 馃帺 I have a question about the implementation details:
When forking VM B from VM A, CodeSandbox uses CoW (via page faults) to track memory pages. But how exactly is VM B's process created at the beginning? Is it a direct聽fork()聽of VM A's process, or is it spawned from a snapshot (e.g.,snapshot.snap聽files) to rebuild execution context?
Also, beyond code snippet sharing and multi-branch testing, do you see broader use cases for VM forking? Has this been used in production for infra-layer magic? Any papers/case studies to share?
Thanks for your wisdom! 馃檶