Skip to content

Asterinas is a secure, fast, and general-purpose OS kernel, written in Rust and providing Linux-compatible ABI.

License

Notifications You must be signed in to change notification settings

ldos-project/asterinas

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

asterinas-logo

The Learning-Directed OS project is developing the next-generation Machine Learning-based Operating System to drive computing infrastructure toward high efficiency and performance (see https://ldos.utexas.edu/ for more information).

The project is developing a kernel based on the Asterinas framekernel. We are not affiliated with the original authors of Asterinas and we expect our work to diverge from theirs due to very different research goals. However, the original authors deserve a huge amount of credit for developing such an impressive system. Our work would not be possible without their generosity in making Asterinas freely available.

Please do not report issues to the original Asterinas team or ask them questions about this repository. They are not responsible for any of the work done in this repository.

Introducing Asterinas

asterinas-logo

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, 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 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.

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. In 2025, our primary goal is 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.
git clone https://github.com/ldos-project/asterinas
cd asterinas
  1. Run a Docker container as the development environment.
make docker
  1. Inside the container, go to the project folder to build and run Asterinas.
make build
make run

If everything goes well, Asterinas is now up and running inside a VM. If things are running slow, look for Warning: KVM not present on your system in the output. Your system may not be configured properly.

Developer docs for LDOS's Asterinas are the advanced instructions. They include:

  • Userspace testing
  • Kernelspace testing
  • development environment setup (TODO see #46)
  • GDB setup information

You may find the files in editor-config useful in setting up your development environment. The unusual build system requires some additional configuration to allow rust-analyzer to run correctly.

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.

About

Asterinas is a secure, fast, and general-purpose OS kernel, written in Rust and providing Linux-compatible ABI.

Resources

License

Contributing

Stars

Watchers

Forks

Packages

No packages published

Contributors 51