From main.c
on the OS init is mostly the same for all OS configs (e.g. SBI yes/no):
- parse the device three binary
- gets the memory map
- gets supported devices to pass on to init of the memory management to map known devices, also to init them later (see
struct Devices_List
)
- init console for
printk()
. - init memory_management
- init processes
- init timer interrupts
- init_filesystem part 1
- init all remaining devices
- init_userspace
- will create the first user space process
- will start part 2 of init_filesystem
- all harts start in the scheduler (see scheduling)
- See also life_cycle_cpu.
Overview: kernel
Boot: boot_process | init_overview
See also: life_cycle_cpu life_cycle_user_application