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.
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!
Get yourself an x86-64 Linux machine with Docker installed. Follow the three simple steps below to get Asterinas up and running.
- Download the latest source code.
git clone https://github.com/ldos-project/asterinas
cd asterinas- Run a Docker container as the development environment.
make docker- Inside the container, go to the project folder to build and run Asterinas.
make build
make runIf 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.
See The Asterinas Book to learn more about the project.
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.
