跳到正文
Hacker News· calebhwin·· 9 天前AI 评分38

Fork 就是沙箱基础设施所需的一切

Fork is all you need for sandbox infrastructure

AI 导读

文章主张以 fork 作为云虚拟机沙箱的核心原语,认为单一 fork 操作即可覆盖创建、快照、模板与分支等生命周期管理,从而降低 API 的圈复杂度。作者指出每个 VM 都 fork 自基础 VM,VM fork 相当于持久化检查点,并可为编码智能体的测试时扩展提供分支能力;Arker API 即是 fork 之上的薄封装,ComputeSDK 等沙箱 API 也可用 fork 实现。

正文 · AI 翻译

2026年9月3日

1971年,fork(2)随第一版UnixUNIX Programmer's ManualUNIX程序员手册K. Thompson, D. M. Ritchie一同发布。它源自伯克利分时系统A User Machine in a Time-Sharing System分时系统中的用户机器Lampson, Lichtenberger, Pirtle,而该系统的理念又可追溯到Melvin Conway 1963年的论文A Multiprocessor System Design多处理器系统设计Melvin E. Conway。fork(2)的约定很简单:调用它会将CPU陷入内核模式,以复制调用进程。

2026年,在许多应用中,工作单元由AI代理执行,它们需要的往往不是进程,而是虚拟机的隔离。那么,云虚拟机的fork(3)在哪里?

对圈复杂度说不

大多数(如果不是全部)沙箱API都将创建、快照、模板化和分支作为独立概念暴露出来。API功能丰富本身并无不妥。但对于像虚拟机基础设施这样对可靠性至关重要的系统,我们更希望尽可能降低圈复杂度。一个fork操作或许出人意料地能够完成大部分生命周期管理,否则这些管理会分散在不同的执行路径中。

基础

每个构建在VM基础设施上的产品或服务都有一个基础VM,其他所有VM都从它fork而来。确实没有例外。那个基础VM可能来自OCI镜像或Dockerfile,但无论如何,应用会话期间创建的每个VM都是一次fork。因此,我们有意将fork作为我们服务的主要入口点。

大多数工作负载fork一个基础VM。

检查点

进程的状态跨越RAM和磁盘(用于交换),但相对于宿主机而言,这些状态都不是持久的。持久VM的状态不仅跨越RAM和磁盘,还跨越宿主机之外的持久存储。这使得VM fork成为一个持久检查点。上游需求是VM fork必须在运行中途也能工作。下游好处是,编写良好的fork实现让用户可以在其上构建任意的检查点逻辑。

检查点就是fork。

分支

最后,编码代理工作负载从测试时扩展中获益良多,这是我们斯坦福实验室开发的一种技术。对于许多工作负载,这需要分支,在某些情况下是在执行中途进行分支。Fork是实现分支逻辑的自然原语。这再次产生了上游需求:fork必须能够精确控制什么被fork。

Fork创建完整工作负载状态的忠实分支。

我们喜欢将fork作为基本原语的最后一个原因:它消除了基础设施锁定。几乎任何人设计的任何沙箱或VM API都可以用fork来实现。例如,ComputeSDK是一个流行的沙箱统一API,而在我们的案例中,Arker API就是fork之上的一层薄封装。

来源:Hacker News · arker.ai