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
@@ -147,18 +147,19 @@ This crate is part of a series of tutorial crates for learning OS development wi
147
147
| 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 |
148
148
| 5 |[arceos-childtask](https://crates.io/crates/arceos-childtask)| Multi-tasking basics: spawning a child task (thread) that accesses a PFlash MMIO device |
149
149
| 6 |[arceos-msgqueue](https://crates.io/crates/arceos-msgqueue)| Cooperative multi-task scheduling with a producer-consumer message queue, demonstrating inter-task communication |
150
-
| 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 |
151
-
| 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 |
152
-
| 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 |
153
-
| 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 |
154
-
| 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) |
155
-
| 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 |
152
+
| 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 |
153
+
| 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 |
154
+
| 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 |
155
+
| 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) |
156
+
| 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 |
158
159
159
160
**Progression Logic:**
160
161
161
-
-**#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.
162
+
-**#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.
162
163
-**#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.
163
164
-**#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