Run FreeBSD jails on Linux with Docker-like simplicity. Powered by BSDulator's real-time syscall translation engine. No VMs. No overhead. Just containers.
Lochs uses BSDulator's ptrace-based syscall interception to translate FreeBSD system calls into Linux equivalents at runtime — no kernel modules, no virtualization.
BSD-grade security isolation meets Docker-like developer experience.
Run FreeBSD binaries directly on Linux through ptrace syscall translation. No QEMU, no VirtualBox.
Each jail gets a dedicated virtual network stack via Linux network namespaces.
Familiar commands: lochs run, lochs build, lochs compose. If you know Docker, you know Lochs.
Dockerfile-style image building with FROM, COPY, ENV, RUN directives.
Multi-container orchestration with prison.yml — dependency resolution and port forwarding.
Expose jail services to the host with socat-based port mapping. -p 8080:80 just works.
Create, start, stop, attach, and remove jails in real time with state persistence.
Comprehensive FreeBSD-to-Linux syscall translation for file ops, networking, signals, and jails.
Mount, UTS, PID, and network namespaces per jail with cgroups v2 resource limits.
The syscall translation engine that makes it all possible.
BSDulator intercepts FreeBSD system calls using ptrace and translates them to Linux equivalents before they reach the kernel. FreeBSD binaries run at near-native speed with full jail support.
Working: ls cat pwd echo sh tar jail jls jexec
| FreeBSD | Linux | Name | Status |
|---|---|---|---|
| 5 | 2 | open | ✓ |
| 6 | 3 | close | ✓ |
| 54 | 16 | ioctl | ✓ |
| 507 | — | jail_set | ✓ emulated |
| 506 | — | jail_get | ✓ emulated |
| 436 | — | jail_attach | ✓ emulated |
| 508 | — | jail_remove | ✓ emulated |
| 574 | — | __realpathat | stub |
| 596 | — | credsync | ✓ emulated |
If you know Docker, you already know Lochs.
lochs runCreate + startlochs buildBuild Prisonfilelochs composeOrchestrationlochs execExecute in jaillochs psList jailslochs stopStop gracefullylochs imagesList imageslochs logsView outputlochs networkManage VNETlochs inspectJail detailslochs rmRemove jaillochs pullPull registryBSD jail security, Docker-level usability, zero virtualization overhead.
| Feature | Docker | FreeBSD Jails | Lochs |
|---|---|---|---|
| Runs on Linux | ✓ | ✗ | ✓ |
| No VM required | ✓ | ✓ (native) | ✓ |
| VNET isolation | ✗ | ✓ | ✓ |
| Jail-grade security | ✗ | ✓ | ✓ |
| Dockerfile-style builds | ✓ | ✗ | ✓ Prisonfile |
| Compose orchestration | ✓ | ✗ | ✓ prison.yml |
| FreeBSD binary compat | ✗ | ✓ | ✓ BSDulator |
| Port forwarding | ✓ | Manual | ✓ |
Linux with kernel 3.8+ and root access. That's all you need.
One-line install pulls BSDulator + FreeBSD base + Lochs CLI.
lochs run --name test freebsd:15
Write a Prisonfile, build an image, deploy FreeBSD services on Linux.
The engine is free forever. Managed services for teams.
Shipping fast, shipping open.
500+ FreeBSD syscalls mapped. ELF loader, TLS emulation, signal handling.
jail_set, jail_get, jail_attach, jail_remove. Namespace integration, state persistence.
Virtual networking via Linux namespaces. Bridge networking, jail-to-jail connectivity.
Docker-like CLI, Prisonfile builds, prison.yml compose, port forwarding.
macOS and Windows support. Tauri desktop app. Web dashboard.
Multi-node orchestration. Public jail image registry. CI/CD runners.