Module os::loader

source · []
Expand description

Loading user applications into memory

For chapter 3, user applications are simply part of the data included in the kernel binary, so we only need to copy them to the space allocated for each app to load them. We also allocate fixed spaces for each task’s KernelStack and UserStack.

Structs

UserStack 🔒

Statics

Functions

get_base_i 🔒

Get base address of app i.

Get the total number of applications.

get app info with entry and sp and save TrapContext in kernel stack

Load nth user app at [APP_BASE_ADDRESS + n * APP_SIZE_LIMIT, APP_BASE_ADDRESS + (n+1) * APP_SIZE_LIMIT).