asterinas-logo
A secure, fast, and general-purpose OS kernel written in Rust and compatible with Linux
Test x86-64 Test riscv64 Test loongarch64 Test Intel TDX Benchmark x86-64 Benchmark Intel TDX

English | [中文版](README_CN.md) | [日本語](README_JP.md) **News:** * 2025-10-17: **ICSE 2026** accepted yet another paper about Asterinas: _RusyFuzz: Unhandled Exception Guided Fuzzing for Rust OS Kernel_. * 2025-10-14: [*CortenMM: Efficient Memory Management with Strong Correctness Guarantees*](https://dl.acm.org/doi/10.1145/3731569.3764836) received the **Best Paper Award** at **SOSP 2025**. * 2025-07-23: **SOSP 2025** accepted another Asterinas paper: [*CortenMM: Efficient Memory Management with Strong Correctness Guarantees*](https://dl.acm.org/doi/10.1145/3731569.3764836). * 2025-06-18: **USENIX _;login:_ magazine** published [*Asterinas: A Rust-Based Framekernel to Reimagine Linux in the 2020s*](https://www.usenix.org/publications/loginonline/asterinas-rust-based-framekernel-reimagine-linux-2020s). * 2025-04-30: **USENIX ATC 2025** accepted two Asterinas papers: 1. [*Asterinas: A Linux ABI-Compatible, Rust-Based Framekernel OS with a Small and Sound TCB*](https://www.usenix.org/conference/atc25/presentation/peng-yuke); 2. [*Converos: Practical Model Checking for Verifying Rust OS Kernel Concurrency*](https://www.usenix.org/conference/atc25/presentation/tang). Congratulations to the Asterinas community🎉🎉🎉 ## Introducing Asterinas Asterinas is a _secure_, _fast_, and _general-purpose_ OS kernel that provides _Linux-compatible_ ABI. It can serve as a seamless replacement for Linux while enhancing _memory safety_ and _developer friendliness_. * Asterinas prioritizes memory safety by employing Rust as its sole programming language and limiting the use of _unsafe Rust_ to a clearly defined and minimal Trusted Computing Base (TCB). This innovative approach, known as [the framekernel architecture](https://asterinas.github.io/book/kernel/the-framekernel-architecture.html), establishes Asterinas as a more secure and dependable kernel option. * Asterinas surpasses Linux in terms of developer friendliness. It empowers kernel developers to (1) utilize the more productive Rust programming language, (2) leverage a purpose-built toolkit called [OSDK](https://asterinas.github.io/book/osdk/guide/index.html) to streamline their workflows, and (3) choose between releasing their kernel modules as open source or keeping them proprietary, thanks to the flexibility offered by [MPL](#License). While the journey towards a production-grade OS kernel is challenging, we are steadfastly progressing towards this goal. Over the course of 2024, we significantly enhanced Asterinas's maturity, as detailed in [our end-year report](https://asterinas.github.io/2025/01/20/asterinas-in-2024.html). By the end of 2025, we plan to launch [Asterinas NixOS](https://asterinas.github.io/book/rfcs/0002-asterinas-nixos.html), the first distribution for Asterinas. This release will mark Asterinas reaching the Minimum Viable Product (MVP) milestone. In 2026, we aim to make Asterinas production-ready on x86-64 virtual machines and attract real users. ## Getting Started Get yourself an x86-64 Linux machine with Docker installed. Follow the three simple steps below to get Asterinas up and running. 1. Download the latest source code. ```bash git clone https://github.com/asterinas/asterinas ``` 2. Run a Docker container as the development environment. ```bash docker run -it --privileged --network=host -v /dev:/dev -v $(pwd)/asterinas:/root/asterinas asterinas/asterinas:0.16.1-20251130 ``` 3. Inside the container, go to the project folder to build and run Asterinas. ```bash make build make run ``` If everything goes well, Asterinas is now up and running inside a VM. ## The Book See [The Asterinas Book](https://asterinas.github.io/book/) to learn more about the project. ## License Asterinas's source code and documentation primarily use the [Mozilla Public License (MPL), Version 2.0](https://github.com/asterinas/asterinas/blob/main/LICENSE-MPL). Select components are under more permissive licenses, detailed [here](https://github.com/asterinas/asterinas/blob/main/.licenserc.yaml). For the rationales behind the choice of MPL, see [here](https://asterinas.github.io/book/index.html#licensing).