Crate os

source ·
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 🔒
    Constants used in rCore for qemu
  • config 🔒
    Constants used in rCore
  • console 🔒
    SBI console driver, for text output
  • lang_items 🔒
    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

Macros

Functions