Describes how ManRiX is loaded to the primary memory.Steps are
given from loading the microkernel by GRUB bootloader upto the
init process loading.
Initialization of ManRiX microkernel is highly architecture
dependent. We give a brief overview how ManRiX boots in i386 systems.
ManRiX can only be loaded by Grub (Boot Loader) or any multi boot
complaint boot loaders. All executables are in UNIX ELF format.
Since, the microkernel is not capable of loading whole Operating
System; some extra modules need to be loaded by the boot loader.
Boot loader typically loads Kernel, Console Manager, ATA and Floppy
Manager, Bus Manager, File Manager and init process.
The boot loader then passes the control to the entry point of
the kernel which is _start and it jumps to kernel_entry.
The initializer part
1. Disables interrupt.
2. Sets up the PAGE sized STACK (statically allocated)
and switches to new stack.
3. Calls multiboot_parse which checks
if we are correctly loaded by a multiboot complaint boot loader.
4.Calls the main C function ManRiX_main
5. Call arch_setup; which does architecture specific
o initializes paging
o setup descriptors
o initializes traps
6. Initialize VM Manager
7. Initialize Process and thread subsystem
8. Initialize Scheduler
9. Initialize IRQ
10. Initialize Timer
11. Initialize SMP
o if not SMP system, do nothing and return
o initialize Application Processors (AP)
o create idle threads
12. Initialize Module
13.Enable interrupts and become the idle thread
for boot strap processor (BSP).