Expand description
The main module and entrypoint
Various facilities of the kernels are implemented as submodules. The most important ones are:
- trap: Handles all cases of switching from userspace to the kernel
- task: Task management
- syscall: System call handling and implementation
- mm: Address map using SV39
- sync:Wrap a static data structure inside it so that we are able to access it without any- unsafe.
The operating system also starts in this module. Kernel code starts
executing from entry.asm, after which rust_main() is called to
initialize various pieces of functionality. (See its source code for
details.)
We then call task::run_tasks() and for the first time go to
userspace.
Modules
board 🔒 
config 🔒 
Constants used in rCore
console 🔒 
SBI console driver, for text output
The panic handler
loader 🔒 
Loading user applications into memory
Memory management implementation
sbi 🔒 
SBI call wrappers
Synchronization and interior mutability primitives
Implementation of syscalls
Task management implementation
timer 🔒 
RISC-V timer-related functionality
Trap handling functionality