saved
Introducing FTL: A new operating system for clouds
Hraness wrote this summary from a saved copy of the source. Quotations are taken word for word from the source.
gist
Seiya Nuta introduces FTL, an early Rust exokernel meant as a practical cloud operating system. The kernel multiplexes CPU, memory, and devices, is about 100KB, and runs in 2MB of RAM. A per-container userspace OS library implements processes, files, and networking, and can present a Linux ABI so existing binaries run, including a small HTTP server on Google Compute Engine. The aim is virtual-machine isolation without hardware virtualization. Processes that share a container can still interfere with that shared library, and disk, fork, /proc, and modern runtimes are not working yet.
ideas
- Put the OS in a library. FTL keeps a minimal kernel for vCPU, memory, drivers, and virtual networking, and implements processes, VFS, and TCP in a userspace OS mapped into each container.
- Linux compatibility is optional. Existing Linux binaries run on that userspace ABI, a musl HTTP server already serves on Google Compute Engine, and Docker images plus modern async runtimes are still ahead.
- Isolation is user mode, not VT-x. The kernel aims to make containers as isolated as virtual machines by shrinking the interface, but processes that share a container can still interfere with the shared library.
- Drivers stay in-kernel, in Hard Mode Rust. virtio-net is a no_std library with no implicit allocation, handed an explicit I/O interface so it can be unit-tested, though implicit panics are not rejected.
- A cloud Linux replacement is the goal, not the present. Disk, efficient copy-on-write fork, /proc, and TTY are missing, and the near work is tokio, Node.js, and Linux container images.
quotes
“My question is what if we design a pragmatic kernel from scratch, inheriting the best ideas we have today?”
“In FTL, OS is just a library.”
“In short, FTL aims to make containers secure and well-isolated like virtual machines.”
“The goal of FTL is to be a drop-in replacement for Linux in clouds.”