mirror of
https://github.com/asterinas/asterinas.git
synced 2025-06-09 05:16:47 +00:00
doc: update kernel README with new version number
This commit is contained in:
parent
61f6c637d2
commit
5af0fd6010
@ -16,17 +16,17 @@ This book is divided into five distinct parts:
|
|||||||
|
|
||||||
Explore the modern OS kernel at the heart of Asterinas.
|
Explore the modern OS kernel at the heart of Asterinas.
|
||||||
Designed to realize the full potential of Rust,
|
Designed to realize the full potential of Rust,
|
||||||
Asterinas Kernel implements Linux ABI in a safe and efficient way.
|
Asterinas Kernel implements the Linux ABI in a safe and efficient way.
|
||||||
This means it can seamlessly replace Linux,
|
This means it can seamlessly replace Linux,
|
||||||
offering enhanced safety and security.
|
offering enhanced safety and security.
|
||||||
|
|
||||||
#### [Part 2: Asterinas OSTD](ostd/)
|
#### [Part 2: Asterinas OSTD](ostd/)
|
||||||
|
|
||||||
Asterinas OSTD lays down a minimalistic, powerful, and solid foundation
|
The Asterinas OSTD lays down a minimalistic, powerful, and solid foundation
|
||||||
for OS development.
|
for OS development.
|
||||||
It's akin to Rust's `std` crate
|
It's akin to Rust's `std` crate
|
||||||
but crafted for the demands of _safe_ Rust OS development.
|
but crafted for the demands of _safe_ Rust OS development.
|
||||||
Asterinas Kernel is built on this very OSTD.
|
The Asterinas Kernel is built on this very OSTD.
|
||||||
|
|
||||||
#### [Part 3: Asterinas OSDK](osdk/guide/)
|
#### [Part 3: Asterinas OSDK](osdk/guide/)
|
||||||
|
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
## Overview
|
## Overview
|
||||||
|
|
||||||
Asterinas is a _secure_, _fast_, and _general-purpose_ OS kernel
|
Asterinas is a _secure_, _fast_, and _general-purpose_ OS kernel
|
||||||
that provides _Linux-compatible_ ABI.
|
that provides an _Linux-compatible_ ABI.
|
||||||
It can serve as a seamless replacement for Linux
|
It can serve as a seamless replacement for Linux
|
||||||
while enhancing _memory safety_ and _developer friendliness_.
|
while enhancing _memory safety_ and _developer friendliness_.
|
||||||
|
|
||||||
@ -44,7 +44,11 @@ git clone https://github.com/asterinas/asterinas
|
|||||||
2. Run a Docker container as the development environment.
|
2. Run a Docker container as the development environment.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker run -it --privileged --network=host --device=/dev/kvm -v $(pwd)/asterinas:/root/asterinas asterinas/asterinas:0.9.0
|
docker run -it --privileged \
|
||||||
|
--network=host \
|
||||||
|
--device=/dev/kvm \
|
||||||
|
-v $(pwd)/asterinas:/root/asterinas \
|
||||||
|
asterinas/asterinas:0.9.0
|
||||||
```
|
```
|
||||||
|
|
||||||
3. Inside the container, go to the project folder to build and run Asterinas.
|
3. Inside the container, go to the project folder to build and run Asterinas.
|
||||||
|
@ -64,8 +64,8 @@ Then, in the interactive shell, run the following script to start the syscall te
|
|||||||
|
|
||||||
### Using GDB to Debug
|
### Using GDB to Debug
|
||||||
|
|
||||||
To debug Asterinas by [QEMU GDB support](https://qemu-project.gitlab.io/qemu/system/gdb.html),
|
To debug Asterinas via [QEMU GDB support](https://qemu-project.gitlab.io/qemu/system/gdb.html),
|
||||||
one could compile Asterinas in the debug profile,
|
you can compile Asterinas in the debug profile,
|
||||||
start an Asterinas instance and run the GDB interactive shell in another terminal.
|
start an Asterinas instance and run the GDB interactive shell in another terminal.
|
||||||
|
|
||||||
Start a GDB-enabled VM of Asterinas with OSDK and wait for debugging connection:
|
Start a GDB-enabled VM of Asterinas with OSDK and wait for debugging connection:
|
||||||
|
@ -18,7 +18,7 @@ which would take a significant amount of time.
|
|||||||
|
|
||||||
To address this obstacle,
|
To address this obstacle,
|
||||||
we have decided to enter the cloud market first.
|
we have decided to enter the cloud market first.
|
||||||
In an IaaS cloud, workloads of different tenants are run in VMs
|
In an IaaS (Infrastructure-as-a-Service) cloud, workloads of different tenants are run in VMs
|
||||||
or [VM-style bare-metal servers](https://dl.acm.org/doi/10.1145/3373376.3378507)
|
or [VM-style bare-metal servers](https://dl.acm.org/doi/10.1145/3373376.3378507)
|
||||||
for maximum isolation and elasticity.
|
for maximum isolation and elasticity.
|
||||||
The main device driver requirement for the VM environment is virtio,
|
The main device driver requirement for the VM environment is virtio,
|
||||||
@ -28,7 +28,7 @@ or the host OS of a VM-style bare-metal server in production
|
|||||||
looks quite feasible in the near future.
|
looks quite feasible in the near future.
|
||||||
|
|
||||||
Asterinas provides high assurance of memory safety
|
Asterinas provides high assurance of memory safety
|
||||||
thanks to [the framekernel architecture]().
|
thanks to [the framekernel architecture](the-framekernel-architecture.md).
|
||||||
Thus, in the cloud setting,
|
Thus, in the cloud setting,
|
||||||
Asterinas is attractive for usage scenarios
|
Asterinas is attractive for usage scenarios
|
||||||
where Linux ABI is necessary but Linux itself is considered insecure
|
where Linux ABI is necessary but Linux itself is considered insecure
|
||||||
|
@ -47,7 +47,7 @@ It must concurrently fulfill four criteria.
|
|||||||
The safe APIs of the framework are considered sound
|
The safe APIs of the framework are considered sound
|
||||||
if no [undefined behaviors](https://doc.rust-lang.org/reference/behavior-considered-undefined.html#behavior-considered-undefined) shall be triggered
|
if no [undefined behaviors](https://doc.rust-lang.org/reference/behavior-considered-undefined.html#behavior-considered-undefined) shall be triggered
|
||||||
by whatever safe Rust code that a programmer may write using the APIs
|
by whatever safe Rust code that a programmer may write using the APIs
|
||||||
---as long as the code is verified by the Rust toolchain.
|
- as long as the code is verified by the Rust toolchain.
|
||||||
Soundness ensures that the OS framework,
|
Soundness ensures that the OS framework,
|
||||||
in conjunction with the Rust toolchain,
|
in conjunction with the Rust toolchain,
|
||||||
bears the full responsibility for the kernel's memory safety.
|
bears the full responsibility for the kernel's memory safety.
|
||||||
|
@ -7,10 +7,10 @@
|
|||||||
> 子曰:
|
> 子曰:
|
||||||
> "从心所欲,不逾矩。"
|
> "从心所欲,不逾矩。"
|
||||||
|
|
||||||
With Asterinas OSTD,
|
With the Asterinas OSTD (Operating System Standard Library),
|
||||||
you don't have to learn the dark art of unsafe Rust programming
|
you don't have to learn the dark art of unsafe Rust programming
|
||||||
and risk shooting yourself in the foot.
|
and risk shooting yourself in the foot.
|
||||||
You will be doing whatever your heart desired
|
You will be doing whatever your heart desires,
|
||||||
and be confident that your kernel will never crash
|
and be confident that your kernel will never crash
|
||||||
or be hacked due to undefined behaviors,
|
or be hacked due to undefined behaviors,
|
||||||
even if today marks your Day 1 as a Rust programmer.
|
even if today marks your Day 1 as a Rust programmer.
|
||||||
@ -58,28 +58,27 @@ by leveraging OSTD.
|
|||||||
Adopting a minimalist philosophy,
|
Adopting a minimalist philosophy,
|
||||||
OSTD has a small codebase.
|
OSTD has a small codebase.
|
||||||
At its core lies the `ostd` crate,
|
At its core lies the `ostd` crate,
|
||||||
currently encompassing about 10K lines of code
|
currently encompassing about 10K lines of code - a figure
|
||||||
---a figure that is even smaller than those of many microkernels.
|
that is even smaller than those of many microkernels.
|
||||||
As OSTD evolves,
|
As OSTD evolves,
|
||||||
its codebase will expand,
|
its codebase will expand,
|
||||||
albeit at a relatively slow rate
|
albeit at a relatively slow rate
|
||||||
in comparison to the OS services layered atop it.
|
in comparison to the OS services layered atop it.
|
||||||
|
|
||||||
OSTD's efficiency is measurable
|
The OSTD's efficiency is measurable
|
||||||
through the performance metrics of its APIs
|
through the performance metrics of its APIs
|
||||||
and the system calls of Asterinas Kernel.
|
and the system calls of Asterinas Kernel.
|
||||||
No intrinsic limitations have been identified within Rust
|
No intrinsic limitations have been identified within Rust
|
||||||
or the framekernel architecture
|
or the framekernel architecture
|
||||||
that could hinder kernel performance.
|
that could hinder kernel performance.
|
||||||
|
|
||||||
Soundness,
|
Soundness, unlike the other three requirements,
|
||||||
unlike the other three requirements,
|
|
||||||
is not as easily quantified or proved.
|
is not as easily quantified or proved.
|
||||||
While formal verification stands as the gold standard,
|
While formal verification stands as the gold standard,
|
||||||
it requires considerable resources and time
|
it requires considerable resources and time
|
||||||
and is not an immediate priority.
|
and is not an immediate priority.
|
||||||
As a more pragmatic approach,
|
As a more pragmatic approach,
|
||||||
we will explain why the high-level design is sound
|
we will explain why the high-level design is sound
|
||||||
in the [soundness analysis]()
|
in the soundness analysis and rely on the many
|
||||||
and rely on the many eyes of the community
|
eyes of the community to catch any potential flaws
|
||||||
to catch any potential flaws in the implementation.
|
in the implementation.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user