You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+10-9Lines changed: 10 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -177,18 +177,19 @@ This crate is part of a series of tutorial crates for learning OS development wi
177
177
| 4 |[arceos-readblk](https://crates.io/crates/arceos-readblk)| VirtIO block device driver discovery and disk I/O, demonstrating device probing and block read operations |
178
178
| 5 |[arceos-childtask](https://crates.io/crates/arceos-childtask)| Multi-tasking basics: spawning a child task (thread) that accesses a PFlash MMIO device |
179
179
| 6 |**arceos-msgqueue** (this crate) | Cooperative multi-task scheduling with a producer-consumer message queue, demonstrating inter-task communication |
180
-
| 7 |[arceos-loadapp](https://crates.io/crates/arceos-loadapp)| FAT filesystem initialization and file I/O, demonstrating the full I/O stack from VirtIO block device to filesystem |
181
-
| 8 |[arceos-userprivilege](https://crates.io/crates/arceos-userprivilege)| User-privilege mode switching: loading a user-space program, switching to unprivileged mode, and handling syscalls |
182
-
| 9 |[arceos-lazymapping](https://crates.io/crates/arceos-lazymapping)| Lazy page mapping (demand paging): user-space program triggers page faults, and the kernel maps physical pages on demand |
183
-
| 10 |[arceos-runlinuxapp](https://crates.io/crates/arceos-runlinuxapp)| Loading and running real Linux ELF applications (musl libc) on ArceOS, with ELF parsing and Linux syscall handling |
184
-
| 11 |[arceos-guestmode](https://crates.io/crates/arceos-guestmode)| Minimal hypervisor: creating a guest address space, entering guest mode, and handling a single VM exit (shutdown) |
185
-
| 12 |[arceos-guestaspace](https://crates.io/crates/arceos-guestaspace)| Hypervisor address space management: loop-based VM exit handling with nested page fault (NPF) on-demand mapping |
| 8 |[arceos-loadapp](https://crates.io/crates/arceos-loadapp)| FAT filesystem initialization and file I/O, demonstrating the full I/O stack from VirtIO block device to filesystem |
182
+
| 9 |[arceos-userprivilege](https://crates.io/crates/arceos-userprivilege)| User-privilege mode switching: loading a user-space program, switching to unprivileged mode, and handling syscalls |
183
+
| 10 |[arceos-lazymapping](https://crates.io/crates/arceos-lazymapping)| Lazy page mapping (demand paging): user-space program triggers page faults, and the kernel maps physical pages on demand |
184
+
| 11 |[arceos-runlinuxapp](https://crates.io/crates/arceos-runlinuxapp)| Loading and running real Linux ELF applications (musl libc) on ArceOS, with ELF parsing and Linux syscall handling |
185
+
| 12 |[arceos-guestmode](https://crates.io/crates/arceos-guestmode)| Minimal hypervisor: creating a guest address space, entering guest mode, and handling a single VM exit (shutdown) |
186
+
| 13 |[arceos-guestaspace](https://crates.io/crates/arceos-guestaspace)| Hypervisor address space management: loop-based VM exit handling with nested page fault (NPF) on-demand mapping |
| 15 |[arceos-guestmonolithickernel](https://crates.io/crates/arceos-guestmonolithickernel)| Full hypervisor + guest monolithic kernel: the guest kernel supports user-space process management, syscall handling, and preemptive scheduling |
188
189
189
190
**Progression Logic:**
190
191
191
-
-**#1–#7 (Unikernel Stage)**: Starting from the simplest output, these crates progressively introduce memory allocation, device access (MMIO / VirtIO), multi-task scheduling, and filesystem support, building up the core capabilities of a unikernel.
192
+
-**#1–#8 (Unikernel Stage)**: Starting from the simplest output, these crates progressively introduce memory allocation, device access (MMIO / VirtIO), multi-task scheduling (both cooperative and preemptive), and filesystem support, building up the core capabilities of a unikernel.
192
193
-**#8–#10 (Monolithic Kernel Stage)**: Building on the unikernel foundation, these crates add user/kernel privilege separation, page fault handling, and ELF loading, progressively evolving toward a monolithic kernel.
193
194
-**#11–#14 (Hypervisor Stage)**: Starting from minimal VM lifecycle management, these crates progressively add address space management, virtual devices, timer injection, and ultimately run a full monolithic kernel inside a virtual machine.
0 commit comments