gitextract_71jihpoi/ ├── LICENSE ├── README.md ├── assembly/ │ ├── .gitignore │ ├── intrin.S │ └── intrin.c └── risc_v/ ├── .cargo/ │ └── config ├── .gitignore ├── BUILD.md ├── Cargo.toml ├── chapters/ │ ├── ch0/ │ │ ├── .build.config │ │ ├── .cargo/ │ │ │ └── config │ │ ├── Cargo.toml │ │ ├── Makefile │ │ ├── do.sh │ │ └── virt.lds │ ├── ch1/ │ │ ├── .cargo/ │ │ │ └── config │ │ ├── .gitignore │ │ ├── Cargo.toml │ │ ├── Makefile │ │ ├── make_hdd.sh │ │ └── src/ │ │ ├── asm/ │ │ │ ├── boot.S │ │ │ └── trap.S │ │ ├── lds/ │ │ │ └── virt.lds │ │ └── lib.rs │ ├── ch2/ │ │ ├── .cargo/ │ │ │ └── config │ │ ├── .gitignore │ │ ├── Cargo.toml │ │ ├── Makefile │ │ ├── make_hdd.sh │ │ └── src/ │ │ ├── asm/ │ │ │ ├── boot.S │ │ │ └── trap.S │ │ ├── lds/ │ │ │ └── virt.lds │ │ ├── lib.rs │ │ └── uart.rs │ ├── ch3/ │ │ ├── .cargo/ │ │ │ └── config │ │ ├── .gitignore │ │ ├── Cargo.toml │ │ ├── Makefile │ │ ├── make_hdd.sh │ │ └── src/ │ │ ├── asm/ │ │ │ ├── boot.S │ │ │ ├── mem.S │ │ │ └── trap.S │ │ ├── kmem.rs │ │ ├── lds/ │ │ │ └── virt.lds │ │ ├── lib.rs │ │ ├── page.rs │ │ └── uart.rs │ ├── ch4/ │ │ ├── .cargo/ │ │ │ └── config │ │ ├── .gitignore │ │ ├── Cargo.toml │ │ ├── Makefile │ │ ├── make_hdd.sh │ │ └── src/ │ │ ├── asm/ │ │ │ ├── boot.S │ │ │ ├── mem.S │ │ │ └── trap.S │ │ ├── cpu.rs │ │ ├── kmem.rs │ │ ├── lds/ │ │ │ └── virt.lds │ │ ├── lib.rs │ │ ├── page.rs │ │ ├── trap.rs │ │ └── uart.rs │ ├── ch5/ │ │ ├── .cargo/ │ │ │ └── config │ │ ├── .gitignore │ │ ├── Cargo.toml │ │ ├── Makefile │ │ ├── make_hdd.sh │ │ └── src/ │ │ ├── asm/ │ │ │ ├── boot.S │ │ │ ├── mem.S │ │ │ └── trap.S │ │ ├── cpu.rs │ │ ├── kmem.rs │ │ ├── lds/ │ │ │ └── virt.lds │ │ ├── lib.rs │ │ ├── page.rs │ │ ├── plic.rs │ │ ├── trap.rs │ │ └── uart.rs │ ├── ch6/ │ │ ├── .cargo/ │ │ │ └── config │ │ ├── .gitignore │ │ ├── Cargo.toml │ │ ├── Makefile │ │ ├── make_hdd.sh │ │ └── src/ │ │ ├── asm/ │ │ │ ├── boot.S │ │ │ ├── mem.S │ │ │ └── trap.S │ │ ├── cpu.rs │ │ ├── kmem.rs │ │ ├── lds/ │ │ │ └── virt.lds │ │ ├── lib.rs │ │ ├── page.rs │ │ ├── plic.rs │ │ ├── process.rs │ │ ├── trap.rs │ │ └── uart.rs │ ├── ch7/ │ │ ├── .cargo/ │ │ │ └── config │ │ ├── .gitignore │ │ ├── Cargo.toml │ │ ├── Makefile │ │ ├── make_hdd.sh │ │ └── src/ │ │ ├── asm/ │ │ │ ├── boot.S │ │ │ ├── mem.S │ │ │ └── trap.S │ │ ├── cpu.rs │ │ ├── kmem.rs │ │ ├── lds/ │ │ │ └── virt.lds │ │ ├── lib.rs │ │ ├── page.rs │ │ ├── plic.rs │ │ ├── process.rs │ │ ├── sched.rs │ │ ├── syscall.rs │ │ ├── trap.rs │ │ └── uart.rs │ ├── ch8/ │ │ ├── .cargo/ │ │ │ └── config │ │ ├── .gitignore │ │ ├── Cargo.toml │ │ ├── Makefile │ │ ├── make_hdd.sh │ │ └── src/ │ │ ├── asm/ │ │ │ ├── boot.S │ │ │ ├── mem.S │ │ │ └── trap.S │ │ ├── cpu.rs │ │ ├── kmem.rs │ │ ├── lds/ │ │ │ └── virt.lds │ │ ├── lib.rs │ │ ├── page.rs │ │ ├── plic.rs │ │ ├── process.rs │ │ ├── sched.rs │ │ ├── syscall.rs │ │ ├── trap.rs │ │ └── uart.rs │ └── ch9/ │ ├── .cargo/ │ │ └── config │ ├── .gitignore │ ├── Cargo.toml │ ├── Makefile │ ├── make_hdd.sh │ └── src/ │ ├── asm/ │ │ ├── boot.S │ │ ├── mem.S │ │ └── trap.S │ ├── block.rs │ ├── cpu.rs │ ├── kmem.rs │ ├── lds/ │ │ └── virt.lds │ ├── lib.rs │ ├── page.rs │ ├── plic.rs │ ├── process.rs │ ├── rng.rs │ ├── sched.rs │ ├── syscall.rs │ ├── trap.rs │ ├── uart.rs │ └── virtio.rs ├── src/ │ ├── asm/ │ │ ├── boot.S │ │ ├── mem.S │ │ └── trap.S │ ├── assembly.rs │ ├── block.rs │ ├── buffer.rs │ ├── console.rs │ ├── cpu.rs │ ├── elf.rs │ ├── fs.rs │ ├── gpu.rs │ ├── input.rs │ ├── kmem.rs │ ├── lds/ │ │ └── virt.lds │ ├── lock.rs │ ├── main.rs │ ├── page.rs │ ├── plic.rs │ ├── process.rs │ ├── rng.rs │ ├── sched.rs │ ├── syscall.rs │ ├── test.rs │ ├── trap.rs │ ├── uart.rs │ ├── vfs.rs │ └── virtio.rs └── userspace/ ├── .gitignore ├── Makefile ├── fb.cpp ├── helloworld.cpp ├── input-event-codes.h ├── shell.cpp ├── sleepy.cpp ├── startlib/ │ ├── .gitignore │ ├── Makefile │ ├── linker.lds │ ├── printf.cpp │ ├── printf.h │ ├── start.S │ ├── syscall.S │ └── syscall.h └── upload.sh