├── .dockerignore ├── .github └── workflows │ └── main.yml ├── .gitignore ├── Dockerfile ├── Makefile ├── README.md ├── os ├── .cargo │ └── config ├── Cargo.toml ├── Makefile ├── build.rs └── src │ ├── boot │ ├── entry64.asm │ └── linker64.ld │ ├── consts.rs │ ├── context.rs │ ├── fs │ ├── device.rs │ ├── file.rs │ ├── mod.rs │ └── stdio.rs │ ├── init.rs │ ├── interrupt.rs │ ├── io.rs │ ├── lang_items.rs │ ├── lib.rs │ ├── main.rs │ ├── memory │ ├── frame_allocator.rs │ ├── memory_set │ │ ├── area.rs │ │ ├── attr.rs │ │ ├── handler.rs │ │ └── mod.rs │ ├── mod.rs │ └── paging.rs │ ├── process │ ├── mod.rs │ ├── processor.rs │ ├── scheduler.rs │ ├── structs.rs │ ├── switch.asm │ └── thread_pool.rs │ ├── sbi.rs │ ├── sync │ ├── condvar.rs │ └── mod.rs │ ├── syscall.rs │ ├── timer.rs │ └── trap │ └── trap.asm ├── rust-toolchain ├── test.py ├── test ├── mutex_test.rs ├── pmm_test.rs ├── test_test.rs ├── usr │ ├── fork_test.rs │ ├── pipe_test.rs │ ├── stride_test.rs │ ├── test_test.rs │ └── wait_test.rs └── vm_test.rs └── usr ├── Makefile └── rust ├── .cargo └── config ├── Cargo.toml └── src ├── bin ├── hello_world.rs ├── model.rs ├── notebook.rs ├── user_shell.rs └── write.rs ├── io.rs ├── lang_items.rs ├── lib.rs └── syscall.rs /.dockerignore: -------------------------------------------------------------------------------- 1 | */* 2 | -------------------------------------------------------------------------------- /.github/workflows/main.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcore-os/rCore_tutorial/HEAD/.github/workflows/main.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcore-os/rCore_tutorial/HEAD/.gitignore -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcore-os/rCore_tutorial/HEAD/Dockerfile -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcore-os/rCore_tutorial/HEAD/Makefile -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcore-os/rCore_tutorial/HEAD/README.md -------------------------------------------------------------------------------- /os/.cargo/config: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcore-os/rCore_tutorial/HEAD/os/.cargo/config -------------------------------------------------------------------------------- /os/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcore-os/rCore_tutorial/HEAD/os/Cargo.toml -------------------------------------------------------------------------------- /os/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcore-os/rCore_tutorial/HEAD/os/Makefile -------------------------------------------------------------------------------- /os/build.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcore-os/rCore_tutorial/HEAD/os/build.rs -------------------------------------------------------------------------------- /os/src/boot/entry64.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcore-os/rCore_tutorial/HEAD/os/src/boot/entry64.asm -------------------------------------------------------------------------------- /os/src/boot/linker64.ld: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcore-os/rCore_tutorial/HEAD/os/src/boot/linker64.ld -------------------------------------------------------------------------------- /os/src/consts.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcore-os/rCore_tutorial/HEAD/os/src/consts.rs -------------------------------------------------------------------------------- /os/src/context.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcore-os/rCore_tutorial/HEAD/os/src/context.rs -------------------------------------------------------------------------------- /os/src/fs/device.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcore-os/rCore_tutorial/HEAD/os/src/fs/device.rs -------------------------------------------------------------------------------- /os/src/fs/file.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcore-os/rCore_tutorial/HEAD/os/src/fs/file.rs -------------------------------------------------------------------------------- /os/src/fs/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcore-os/rCore_tutorial/HEAD/os/src/fs/mod.rs -------------------------------------------------------------------------------- /os/src/fs/stdio.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcore-os/rCore_tutorial/HEAD/os/src/fs/stdio.rs -------------------------------------------------------------------------------- /os/src/init.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcore-os/rCore_tutorial/HEAD/os/src/init.rs -------------------------------------------------------------------------------- /os/src/interrupt.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcore-os/rCore_tutorial/HEAD/os/src/interrupt.rs -------------------------------------------------------------------------------- /os/src/io.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcore-os/rCore_tutorial/HEAD/os/src/io.rs -------------------------------------------------------------------------------- /os/src/lang_items.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcore-os/rCore_tutorial/HEAD/os/src/lang_items.rs -------------------------------------------------------------------------------- /os/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcore-os/rCore_tutorial/HEAD/os/src/lib.rs -------------------------------------------------------------------------------- /os/src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcore-os/rCore_tutorial/HEAD/os/src/main.rs -------------------------------------------------------------------------------- /os/src/memory/frame_allocator.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcore-os/rCore_tutorial/HEAD/os/src/memory/frame_allocator.rs -------------------------------------------------------------------------------- /os/src/memory/memory_set/area.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcore-os/rCore_tutorial/HEAD/os/src/memory/memory_set/area.rs -------------------------------------------------------------------------------- /os/src/memory/memory_set/attr.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcore-os/rCore_tutorial/HEAD/os/src/memory/memory_set/attr.rs -------------------------------------------------------------------------------- /os/src/memory/memory_set/handler.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcore-os/rCore_tutorial/HEAD/os/src/memory/memory_set/handler.rs -------------------------------------------------------------------------------- /os/src/memory/memory_set/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcore-os/rCore_tutorial/HEAD/os/src/memory/memory_set/mod.rs -------------------------------------------------------------------------------- /os/src/memory/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcore-os/rCore_tutorial/HEAD/os/src/memory/mod.rs -------------------------------------------------------------------------------- /os/src/memory/paging.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcore-os/rCore_tutorial/HEAD/os/src/memory/paging.rs -------------------------------------------------------------------------------- /os/src/process/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcore-os/rCore_tutorial/HEAD/os/src/process/mod.rs -------------------------------------------------------------------------------- /os/src/process/processor.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcore-os/rCore_tutorial/HEAD/os/src/process/processor.rs -------------------------------------------------------------------------------- /os/src/process/scheduler.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcore-os/rCore_tutorial/HEAD/os/src/process/scheduler.rs -------------------------------------------------------------------------------- /os/src/process/structs.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcore-os/rCore_tutorial/HEAD/os/src/process/structs.rs -------------------------------------------------------------------------------- /os/src/process/switch.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcore-os/rCore_tutorial/HEAD/os/src/process/switch.asm -------------------------------------------------------------------------------- /os/src/process/thread_pool.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcore-os/rCore_tutorial/HEAD/os/src/process/thread_pool.rs -------------------------------------------------------------------------------- /os/src/sbi.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcore-os/rCore_tutorial/HEAD/os/src/sbi.rs -------------------------------------------------------------------------------- /os/src/sync/condvar.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcore-os/rCore_tutorial/HEAD/os/src/sync/condvar.rs -------------------------------------------------------------------------------- /os/src/sync/mod.rs: -------------------------------------------------------------------------------- 1 | pub mod condvar; 2 | -------------------------------------------------------------------------------- /os/src/syscall.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcore-os/rCore_tutorial/HEAD/os/src/syscall.rs -------------------------------------------------------------------------------- /os/src/timer.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcore-os/rCore_tutorial/HEAD/os/src/timer.rs -------------------------------------------------------------------------------- /os/src/trap/trap.asm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcore-os/rCore_tutorial/HEAD/os/src/trap/trap.asm -------------------------------------------------------------------------------- /rust-toolchain: -------------------------------------------------------------------------------- 1 | nightly-2020-06-04 2 | -------------------------------------------------------------------------------- /test.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcore-os/rCore_tutorial/HEAD/test.py -------------------------------------------------------------------------------- /test/mutex_test.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcore-os/rCore_tutorial/HEAD/test/mutex_test.rs -------------------------------------------------------------------------------- /test/pmm_test.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcore-os/rCore_tutorial/HEAD/test/pmm_test.rs -------------------------------------------------------------------------------- /test/test_test.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcore-os/rCore_tutorial/HEAD/test/test_test.rs -------------------------------------------------------------------------------- /test/usr/fork_test.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcore-os/rCore_tutorial/HEAD/test/usr/fork_test.rs -------------------------------------------------------------------------------- /test/usr/pipe_test.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcore-os/rCore_tutorial/HEAD/test/usr/pipe_test.rs -------------------------------------------------------------------------------- /test/usr/stride_test.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcore-os/rCore_tutorial/HEAD/test/usr/stride_test.rs -------------------------------------------------------------------------------- /test/usr/test_test.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcore-os/rCore_tutorial/HEAD/test/usr/test_test.rs -------------------------------------------------------------------------------- /test/usr/wait_test.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcore-os/rCore_tutorial/HEAD/test/usr/wait_test.rs -------------------------------------------------------------------------------- /test/vm_test.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcore-os/rCore_tutorial/HEAD/test/vm_test.rs -------------------------------------------------------------------------------- /usr/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcore-os/rCore_tutorial/HEAD/usr/Makefile -------------------------------------------------------------------------------- /usr/rust/.cargo/config: -------------------------------------------------------------------------------- 1 | [build] 2 | target = "riscv64imac-unknown-none-elf" 3 | -------------------------------------------------------------------------------- /usr/rust/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcore-os/rCore_tutorial/HEAD/usr/rust/Cargo.toml -------------------------------------------------------------------------------- /usr/rust/src/bin/hello_world.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcore-os/rCore_tutorial/HEAD/usr/rust/src/bin/hello_world.rs -------------------------------------------------------------------------------- /usr/rust/src/bin/model.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcore-os/rCore_tutorial/HEAD/usr/rust/src/bin/model.rs -------------------------------------------------------------------------------- /usr/rust/src/bin/notebook.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcore-os/rCore_tutorial/HEAD/usr/rust/src/bin/notebook.rs -------------------------------------------------------------------------------- /usr/rust/src/bin/user_shell.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcore-os/rCore_tutorial/HEAD/usr/rust/src/bin/user_shell.rs -------------------------------------------------------------------------------- /usr/rust/src/bin/write.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcore-os/rCore_tutorial/HEAD/usr/rust/src/bin/write.rs -------------------------------------------------------------------------------- /usr/rust/src/io.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcore-os/rCore_tutorial/HEAD/usr/rust/src/io.rs -------------------------------------------------------------------------------- /usr/rust/src/lang_items.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcore-os/rCore_tutorial/HEAD/usr/rust/src/lang_items.rs -------------------------------------------------------------------------------- /usr/rust/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcore-os/rCore_tutorial/HEAD/usr/rust/src/lib.rs -------------------------------------------------------------------------------- /usr/rust/src/syscall.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rcore-os/rCore_tutorial/HEAD/usr/rust/src/syscall.rs --------------------------------------------------------------------------------