Asterinas aims to be a production-grade Linux alternative—memory safe, high-performance, and more.
Toward a production-grade Linux alternative—memory safe, high-performance, and more
https://github.com/user-attachments/assets/eabf8674-8503-44f7-abcc-52395d2ca4a3
News:
- 2025-12-08: FAST 2026 accepted a paper on a novel secure storage solution having been integrated into Asterinas: MlsDisk: Trusted Block Storage for TEEs Based on Layered Secure Logging.
- 2025-10-17: ICSE 2026 accepted yet another paper about Asterinas: RusyFuzz: Unhandled Exception Guided Fuzzing for Rust OS Kernel.
- 2025-04-30: USENIX ATC 2025 accepted two Asterinas papers:
Congratulations to the Asterinas community🎉🎉🎉
Introducing Asterinas
The future of operating systems (OSes) belongs to Rust—a modern systems programming language (PL) that delivers safety, efficiency, and productivity at once. The open question is not whether OS kernels should transition from C to Rust, but how we get there.
Linux follows an incremental path. While the Rust for Linux project has successfully integrated Rust as an official second PL, this approach faces inherent friction. As a newcomer within a massive C codebase, Rust must often compromise on safety, efficiency, clarity, and ergonomics to maintain compatibility with legacy structures. And while new Rust code can improve what it touches, it cannot retroactively eliminate vulnerabilities in decades of existing C code.
Asterinas takes a clean-slate approach. By building a Linux-compatible, general-purpose OS kernel from the ground up in Rust, we are liberated from the constraints of a legacy C codebase—its interfaces, designs, and assumptions—and from the need to preserve historical compatibility for outdated platforms. Languages—including PLs—shape our way of thinking. Through the lens of a modern PL, Asterinas rethinks and modernizes the construction of OS kernels:
- Modern architecture.
- Modern design.
- Modern code.
- Modern tooling.
Asterinas aims to become a production-grade, memory-safe Linux alternative, with performance that matches Linux—and in some scenarios, exceeds it. The project has been under active development for four years, supports 230+ Linux system calls, and has launched an experimental distribution, Asterinas NixOS.
In 2026, our priority is to advance project maturity toward production readiness, specifically targeting standard and confidential virtual machines on x86-64. Looking ahead, we will continue to expand functionality and harden the system for mission-critical deployments in data centers, autonomous vehicles, and embodied AI.
Getting Started
Supported CPU Architectures
Asterinas targets modern, 64-bit platforms only.
A development platform is where you build and test Asterinas (i.e., the host machine running the Docker-based development environment).
| Development Platform | | -------------------- | | x86-64 | | ARM64 |
A deployment platform is a CPU architecture that Asterinas can run on as an OS kernel.
| Deployment Platform | Tier | | ------------------- | ------ | | x86-64 | Tier 1 | | x86-64 (Intel TDX) | Tier 2 | | RISC-V 64 | Tier 2 | | LoongArch 64 | Tier 3 |
Tier definitions:
- Tier 1: Fully supported and tested.
- Tier 2: Actively developed with basic functionality working.
- Tier 3: Early-stage or experimental.
For End Users
We provide Asterinas NixOS ISO Installer to make the Asterinas kernel more accessible for early adopters and enthusiasts. We encourage you to try out Asterinas NixOS and share feedback. Instructions on how to use the ISO installer can be found here.
**Disclaimer: Asterinas is an independent, community-led project. Asterinas NixOS is not an official NixOS project and has no affiliation with the NixOS Foundation. No sponsorship or endorsement is implied.**
For Kernel Developers
Follow the steps below to get Asterinas up and running.
- Download the latest source code on an x86-64 (or ARM64) Linux machine:
git clone https://github.com/asterinas/asterinas
- Run a Docker container as the development environment:
docker run -it --privileged --network=host -v /dev:/dev -v $(pwd)/asterinas:/root/asterinas asterinas/asterinas:0.18.0-20260702
Alternatively, if you use VS Code with the Dev Containers extension, open the cloned folder and select "Reopen in Container".
- Inside the container,
/root/asterinas) and run:
make kernel
make run_kernel
This results in a VM running the Asterinas kernel with a small initramfs.
- To install and test real-world applications on Asterinas,
make nixos
make run_nixos
This boots into an interactive shell in Asterinas NixOS,
where you can use Nix to install and try more packages.
The Book
See The Asterinas Book to learn more about the project.
License
Asterinas's source code and documentation primarily use the Mozilla Public License (MPL), Version 2.0. Select components are under more permissive licenses, detailed here. For the rationales behind the choice of MPL, see here.