Getting started
Why Motor OS
At the moment, most virtualized production workloads run Linux. Linux has many advanced features that in many situations make it the only reasonable choice, but several things make it less than ideal, in theory, for some virtualized workloads.
The problem with a general-purpose OS in a VM
- Linux is optimized for bare metal. Inside a VM running on a Linux
host, this leads to duplicated work:
- duplicate block caches, in the guest and in the host;
- duplicate page table walks;
- the host scheduler can preempt a vCPU while it holds a spinlock in the guest kernel, stalling every other vCPU that wants the lock.
- Linux is difficult to use. Docker, NixOS, "serverless" platforms, and similar projects all exist because of Linux's complexity.
- Linux has, historically, not been very secure.
A new operating system built from the ground up with a focus on virtualized workloads can be made much simpler and more secure than Linux, while matching or exceeding its performance and efficiency.
What Motor OS does differently
- Only VirtIO. Motor OS runs inside a VM, so it needs drivers for VirtIO block and network devices and nothing else. There is no device model to maintain.
- A microkernel. The kernel manages memory, threads, and IPC, and never blocks. Drivers, the filesystem, and the network stack are one userspace process; a bug there cannot corrupt the kernel, and if that process dies the machine halts with a clear log rather than limping on.
- Rust all the way down. Memory safety in the kernel, in the runtime, and in the services; a Rust system interface instead of a C one; no dynamic linking.
- A small process model. No
fork, no signals, no pseudo-terminals, no users. Processes carry an immutable capability word, and three roles derived from it drive filesystem permissions. This removes whole classes of problems that a Unix-like system has to manage. - Configuration is part of the image. Services, networking, and permissions are declared in a few files and in a declarative image policy, so an image is reproducible and inspectable.
- Boot time matters. Motor OS boots in about 200 ms; boot-time work is treated as a cost that needs justification.