2023-12-27 20:37:40 +00:00
< p align = "center" >
2025-08-21 10:40:35 +00:00
< img src = "book/src/images/logo_en.svg" alt = "asterinas-logo" width = "620" > < br >
2024-02-28 05:11:45 +00:00
A secure, fast, and general-purpose OS kernel written in Rust and compatible with Linux< br / >
2025-03-29 01:47:31 +00:00
< a href = "https://github.com/asterinas/asterinas/actions/workflows/test_x86.yml" > < img src = "https://github.com/asterinas/asterinas/actions/workflows/test_x86.yml/badge.svg?event=push" alt = "Test x86-64" style = "max-width: 100%;" > < / a >
2025-04-06 13:26:16 +00:00
< a href = "https://github.com/asterinas/asterinas/actions/workflows/test_riscv.yml" > < img src = "https://github.com/asterinas/asterinas/actions/workflows/test_riscv.yml/badge.svg?event=push" alt = "Test riscv64" style = "max-width: 100%;" > < / a >
2025-07-17 04:07:06 +00:00
< a href = "https://github.com/asterinas/asterinas/actions/workflows/test_loongarch.yml" > < img src = "https://github.com/asterinas/asterinas/actions/workflows/test_loongarch.yml/badge.svg?event=push" alt = "Test loongarch64" style = "max-width: 100%;" > < / a >
2025-03-29 01:47:31 +00:00
< a href = "https://github.com/asterinas/asterinas/actions/workflows/test_x86_tdx.yml" > < img src = "https://github.com/asterinas/asterinas/actions/workflows/test_x86_tdx.yml/badge.svg" alt = "Test Intel TDX" style = "max-width: 100%;" > < / a >
2025-04-10 02:55:56 +00:00
< a href = "https://asterinas.github.io/benchmark/x86-64/" > < img src = "https://github.com/asterinas/asterinas/actions/workflows/benchmark_x86.yml/badge.svg" alt = "Benchmark x86-64" style = "max-width: 100%;" > < / a >
2025-08-18 05:02:25 +00:00
< a href = "https://asterinas.github.io/benchmark/tdx/" > < img src = "https://github.com/asterinas/asterinas/actions/workflows/benchmark_x86_tdx.yml/badge.svg" alt = "Benchmark Intel TDX" style = "max-width: 100%;" > < / a >
2024-02-28 05:11:45 +00:00
< br / >
2023-12-27 20:37:40 +00:00
< / p >
2022-05-18 06:26:07 +00:00
2024-10-27 00:18:48 +00:00
English | [中文版 ](README_CN.md ) | [日本語 ](README_JP.md )
2024-02-15 08:47:10 +00:00
2025-10-13 14:56:37 +00:00
**News:**
2025-10-18 09:58:02 +00:00
* 2025-10-17: **ICSE 2026** accepted yet another paper about Asterinas: _RusyFuzz: Unhandled Exception Guided Fuzzing for Rust OS Kernel_ .
2025-10-13 14:56:37 +00:00
* 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-10-13 15:09:29 +00:00
* 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-10-13 14:56:37 +00:00
* 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 ).
2025-07-23 11:23:55 +00:00
2025-10-13 14:56:37 +00:00
Congratulations to the Asterinas community🎉🎉🎉
2025-04-30 02:31:30 +00:00
2023-12-27 20:37:40 +00:00
## Introducing Asterinas
2022-05-18 06:26:07 +00:00
2024-02-15 08:47:10 +00:00
Asterinas is a _secure_ , _fast_ , and _general-purpose_ OS kernel
2024-01-26 03:51:40 +00:00
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,
2024-03-01 14:36:42 +00:00
(2) leverage a purpose-built toolkit called [OSDK ](https://asterinas.github.io/book/osdk/guide/index.html ) to streamline their workflows,
2024-01-26 03:51:40 +00:00
and (3) choose between releasing their kernel modules as open source
or keeping them proprietary,
thanks to the flexibility offered by [MPL ](#License ).
2025-02-08 06:47:56 +00:00
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 ).
2025-12-02 07:50:45 +00:00
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.
2024-01-26 03:51:40 +00:00
## 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.
2023-12-27 20:37:40 +00:00
2022-08-31 07:10:40 +00:00
```bash
2024-01-26 03:51:40 +00:00
git clone https://github.com/asterinas/asterinas
2022-08-31 07:10:40 +00:00
```
2024-01-26 03:51:40 +00:00
2. Run a Docker container as the development environment.
2022-08-31 07:10:40 +00:00
2022-08-17 03:22:49 +00:00
```bash
2025-11-25 03:37:47 +00:00
docker run -it --privileged --network=host -v /dev:/dev -v $(pwd)/asterinas:/root/asterinas asterinas/asterinas:0.16.1-20251130
2022-08-17 03:22:49 +00:00
```
2024-02-28 05:11:45 +00:00
3. Inside the container, go to the project folder to build and run Asterinas.
2024-02-26 02:44:21 +00:00
```bash
2024-02-27 08:40:16 +00:00
make build
make run
2023-02-07 08:05:21 +00:00
```
2024-01-26 03:51:40 +00:00
If everything goes well, Asterinas is now up and running inside a VM.
2023-05-29 05:29:53 +00:00
2024-01-26 03:51:40 +00:00
## The Book
2023-10-08 09:38:24 +00:00
2024-01-26 03:51:40 +00:00
See [The Asterinas Book ](https://asterinas.github.io/book/ ) to learn more about the project.
2023-09-05 08:32:02 +00:00
## License
2025-10-13 14:56:37 +00:00
Asterinas's source code and documentation primarily use the
2024-01-26 03:51:40 +00:00
[Mozilla Public License (MPL), Version 2.0 ](https://github.com/asterinas/asterinas/blob/main/LICENSE-MPL ).
Select components are under more permissive licenses,
2024-09-06 04:11:16 +00:00
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 ).