FTL changes where the operating system lives.
FTL describes each container as an instance of a userspace OS. Its Linux compatibility library implements process, virtual filesystem, and TCP behavior. A smaller kernel supplies virtual CPU, address-space, memory, and network primitives. The repository calls this a hypervisor-shaped interface, but says FTL catches faults through user mode rather than hardware virtualization.[1]
This is more than a packaging trick. It moves code that would usually live in one host kernel into a library that can vary by container. The project argues that this makes OS behavior easier to change, inspect, and restart without rebooting the machine.[2]
The interesting claim is architectural. The risky claim is operational.
Version 0.1.0 widens the demo lane.
The October 3 release adds Linux threads, futexes, epoll, signals, terminal support, memory mapping, pipes, eventfd, QEMU microVM support, lazy anonymous pages, and x86-64 SMEP and SMAP hardening. The author reports that a Tokio-based HTTP server now runs on FTL and serves the project website.[3]
The release has a downloadable ISO and a QEMU command. We verified the release record and asset through GitHub's API. We also cloned the repository at revision b73801a and found the documented run.sh path. We did not boot the ISO in this run.
Compatibility grows one behavior at a time.
Userspace application kernels have a direct tradeoff. They can put distance between a workload and a host kernel, but the compatibility layer must implement the behavior that applications expect. gVisor's architecture guide states this plainly. If gVisor has not reimplemented a Linux feature, a sandboxed workload cannot use it.[4]
FTL is earlier. Its launch post says the project lacked disk support, efficient copy-on-write fork, /proc, and other facilities at publication. The roadmap puts a filesystem in November and container images, Node.js, Go, symmetric multiprocessing, and Arm support later.[2] Those are plans, not current compatibility.
Isolation needs adversarial proof.
FTL aims for VM-like container isolation with a smaller interface. The author also names a current weakness. Processes inside one container can interfere with the shared userspace OS library. Applications that depend on process isolation, including Chromium, may need more work.[2]
Do not translate "hypervisor-shaped" into "equivalent to a mature hypervisor." Ask for a threat model, interface inventory, negative tests, resource-exhaustion behavior, and escape testing. The same discipline applies to compatibility. Pin a real workload and record every missing behavior.
Use it as a research candidate.
- Pin the repository revision or release ISO digest.
- Boot the published image with the documented QEMU command.
- Run one named workload with fixed input. Keep stdout, exit status, and resource measurements.
- Inventory the syscalls, filesystems, devices, and network behavior that workload requires.
- Run failure cases for invalid memory, blocked I/O, process exit, memory pressure, and malformed network input.
- Keep the host, emulator, CPU flags, and FTL revision in the receipt.
- Compare the result with a Linux baseline and one established isolation route.
FTL is a sharp experiment because it makes the OS boundary movable. Treat the move as a test target, not as proof that the boundary is ready.