Divided the kernel into seperate distinct phases
The first stage after GRUB will be Pre-Kernel. This stage will organize the information we receive from the bootloader. (in our case that will be grub) The second stage is for now called early_main. The program will at this point already be running in virtual higher-half / higher-quarter address space. The goal of the second stage is to set up the kernel in such a way that we are ready to jump in to usermode. The third stage is for now called kernel_main. This stage will jump us into usermode and load the startup programs. - Added a GRUB entry for tests - Started writing the pre-kernel stage - Removed knowledge of multiboot from early_main - Edited the linkerscript to link variables in pre-kernel to lower address space. ( from 1MB and up)
This commit is contained in:
@ -3,19 +3,16 @@ extern "C"
|
||||
{
|
||||
#include "Lib/string.h"
|
||||
}
|
||||
|
||||
#include "definitions.h"
|
||||
|
||||
#include "Drivers/VGA/VBE.h"
|
||||
#include "Terminal/kterm.h"
|
||||
|
||||
#include "multiboot.h"
|
||||
#include "bootinfo.h"
|
||||
|
||||
#include "Memory/PhysicalMemoryManager.h"
|
||||
#include "Memory/memoryinfo.h"
|
||||
#include "Memory/VirtualMemoryManager.h"
|
||||
#include "KernelLauncher/bootcheck.h"
|
||||
|
||||
#include "Memory/GDT/gdtc.h"
|
||||
#include "Interrupts/idt/idt.h"
|
||||
@ -27,17 +24,15 @@ extern "C"
|
||||
|
||||
#include "time.h"
|
||||
#include "SuperVisorTerminal/superVisorTerminal.h"
|
||||
#include "PreKernel/bootstructure.h"
|
||||
|
||||
#define CHECK_FLAG(flag, bit) ( flag & (1 << bit ))
|
||||
#define PANIC(message) {return;}
|
||||
|
||||
|
||||
void map_multiboot_info_structure(unsigned long addr);
|
||||
|
||||
extern "C" void kernel_main (BootInfo* bootinfo);
|
||||
extern "C" void kernel_main ();
|
||||
|
||||
extern "C" const void* kernel_begin;
|
||||
extern "C" const void* kernel_end;
|
||||
|
||||
extern "C" uint32_t boot_page_directory;
|
||||
extern "C" uint32_t multiboot_page_table;
|
||||
|
Reference in New Issue
Block a user