You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+50-4Lines changed: 50 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -20,6 +20,7 @@ A3S Box is built toward production use, but it is not a full Docker, containerd,
20
20
| OCI images | Pull, load, save, tag, inspect, history, remove, and local cache resolution are implemented. Push and cosign signing/verification paths exist and require registry access for end-to-end validation. |
21
21
| Dockerfile build | Honest subset. `FROM`, metadata instructions, `COPY`/`ADD`, and shell-form `RUN` are implemented. `RUN` is isolated with Linux `chroot` and requires root-capable Linux; macOS fails by default unless explicitly unsafe host execution is enabled. |
22
22
| Lifecycle and exec |`run`, `create`, `start`, `stop`, `restart`, `rm`, `wait`, foreground/detached runs, non-PTY exec, PTY exec, logs, stats, and inspect are implemented. |
23
+
| Warm pool and snapshot-fork | A warm pool serves pre-booted sandboxes over a socket. Native snapshot-fork (Copy-on-Write microVM cloning) snapshots one booted template and restores many forks from it, each mapping the template RAM `MAP_PRIVATE`. Verified on `/dev/kvm`: ~4× faster than a cold boot per fork, 100 forks in under ~1 s (~8 ms amortized each). Requires `/dev/kvm`; opt in with `pool start --snapshot-fork` or the `KRUN_SNAPSHOT_*` / `KRUN_RESTORE_FROM` env. |
23
24
| Networking | Default TSI networking, TCP `host:guest` publishing, user-defined bridge networks, network inspect/connect/disconnect/rm, and `/etc/hosts` peer discovery are implemented with documented platform boundaries. |
24
25
| Compose | A useful local subset is implemented: image, command, entrypoint, env, env_file, ports, volumes, depends_on, networks, DNS, tmpfs, workdir, hostname, extra_hosts, labels, healthcheck, restart, CPU/memory, capabilities, and privileged mode. |
25
26
| TEE | AMD SEV-SNP-oriented attestation, RA-TLS, sealing, and secret injection flows exist, plus simulation mode for development. Hardware-backed operation depends on SEV-SNP-capable hosts and libkrun support. TDX is not a productized path. |
@@ -48,7 +49,7 @@ The ignored `core_smoke` suite covers the core CLI path on a real MicroVM host:
48
49
- TCP published ports with host loopback HTTP reachability;
49
50
- bridge network endpoint allocation, peer `/etc/hosts`, connect/disconnect, and force removal cleanup;
50
51
- named volumes, `cp`, `diff`, `export`, `commit`, `snapshot`, restart-policy monitor recovery, and Compose health/volume flow;
51
-
- warm pool (`pool start`/`pool run`): pre-warmed sandboxes served over a socket, with backpressure and multi-image lazy pools; `--deferred` runs each command as the box's real main for full box semantics (real exit code + json-file console logs) with no cold boot.
52
+
- warm pool (`pool start`/`pool run`): pre-warmed sandboxes served over a socket, with backpressure and multi-image lazy pools; `--deferred` runs each command as the box's real main for full box semantics (real exit code + json-file console logs) with no cold boot; `--snapshot-fork` fills the pool by Copy-on-Write restore from one booted template instead of cold booting each sandbox.
52
53
53
54
The most recent local record in this branch: all 14 ignored `core_smoke` tests
54
55
passed on macOS HVF with an offline Alpine OCI archive, and the ignored
@@ -96,11 +97,11 @@ a3s-box rm web
96
97
97
98
## Command surface
98
99
99
-
A3S Box exposes 55 top-level commands. They are Docker-like, not Docker-identical.
100
+
A3S Box exposes 56 top-level commands. They are Docker-like, not Docker-identical.
Snapshots are configuration/filesystem-oriented Box snapshots, not a live RAM checkpoint facility.
197
+
The `snapshot` command produces configuration/filesystem-oriented Box snapshots, not a live RAM checkpoint. The live RAM Copy-on-Write facility is a separate, lower-level mechanism described in [Warm pool and snapshot-fork](#warm-pool-and-snapshot-fork).
198
+
199
+
## Warm pool and snapshot-fork
200
+
201
+
A **warm pool** keeps a set of sandboxes pre-booted and serves them over a Unix
202
+
socket, so a request is answered by an already-running microVM instead of a cold
203
+
boot. It supports backpressure, multi-image lazy pools, and a `--deferred` mode
204
+
that runs each request as the box's real main process (real exit code +
0 commit comments