Compatibility
Carrick emulates the Linux syscall interface, not the Linux kernel. This means compatibility is a spectrum, not a binary. We run standard test suites continuously and publish the results so you can assess whether your workload will work.
Go runtime test suite
341 / 341 core runtime tests pass. verified
Subsystem detail:
context— 38/38sync/atomic— 95/95runtimecore — all passing
Known gaps:
os/signal— missingpidfdsupportos/exec— PATH resolution edge case- Rare HVF coherence races under heavy concurrent memory operations (intermittent, not consistently reproducible)
Source: docs/go-conformance-punchlist.md in the carrick repo.
LTP (Linux Test Project) syscall conformance
568 / 896 oracle-validated tests match (63%). verified
This is the most granular measure of ABI fidelity. Breakdown by subsystem:
| Subsystem | Pass rate | Note |
|---|---|---|
| Scheduler | 76% | Strong — sched_setaffinity, priority, yield |
| Timers | 74% | clock_gettime, timerfd, nanosleep |
| Signals | 73% | rt_sigaction, sigaltstack, sigpending |
| Filesystem | 68% | open, read, write, stat, rename, link |
| Networking | 43% | Socket translation is solid; gaps in raw/packet sockets |
| IPC | 38% | SysV shm/sem/msg partially implemented |
| Memory management | 34% | mmap/mprotect work; gaps in mremap, MADV_* flags |
Source: docs/ltp-baseline/ in the carrick repo.
CPython test-suite parity
356 / 482 standard library modules match (74%). verified nuanced
The 74% figure is skewed upward by simple modules (pure-Python tests that don't stress syscalls). The important failures are:
test_subprocess— blocked by the nested multithreaded fork wedgetest_multiprocessing— same root cause- Several
test_osandtest_posixsubtests that depend on unimplemented/procentries or missing syscalls
Source: docs/cpython-baseline/ in the carrick repo.
End-to-end workloads
| Workload | Status | Notes |
|---|---|---|
apt-get install hello | works | Full package lifecycle including dpkg scripts |
Python http.server | works | Serves concurrent requests from the host |
Interactive shell (-t) | works | Real PTY, job control, Ctrl-C/Ctrl-Z |
| OCI image pull + run | works | Standard Docker Hub / registry images |
| Go binaries | works | Statically linked Go executables run reliably |
gdb / delve | not yet | ptrace is Phase-1 only |
| x86_64 Linux binaries | research | Rosetta 2 integration blocked at TTBR1 frontier |
Reporting issues
If you hit a binary that doesn't work, carrick compat-report
will show which syscalls the binary uses and which aren't implemented.
File an issue on GitHub
with the report output and the binary (or reproduction steps).