Age | Commit message (Collapse) | Author |
|
Set the ESP register to NULL before calling any C code. This allows a
stack trace to occur without overrunning the initial bootstrap stack.
Signed-off-by: Danny Holman <dholman@gymli.org>
|
|
Don't hardcode the __stack_chk_guard value, generate a random value
(using RDRAND on x86) before running any C code.
Signed-off-by: Danny Holman <dholman@gymli.org>
|
|
Allocate a few pages at startup just to get the paging and physical
memory manager up and running.
Signed-off-by: Danny Holman <dholman@gymli.org>
|
|
Add a third argument to i386_entry. This argument is the bootstrap page
directory. Pages can be temporarily mapped in during the initialization
of the paging system.
Signed-off-by: Danny Holman <dholman@gymli.org>
|
|
Add the mostly finished physical memory allocator and expose its
functions to the paging system.
Signed-off-by: Danny Holman <dholman@gymli.org>
|
|
Add an implmentation of strcpy. This function is used in several places
in the kernel to copy strings between memory addresses.
Signed-off-by: Danny Holman <dholman@gymli.org>
|
|
Move the function that jumps to ring 3 to its own assembly file.
Signed-off-by: Danny Holman <dholman@gymli.org>
|
|
Move simple assembly calls to their own header. All one or two line
assembly calls should be defined in a single place.
Signed-off-by: Danny Holman <dholman@gymli.org>
|
|
Define the load_page_dir and enable_paging functions in assembly. This
allows normal C code to initialize the CR3 register and control paging
without using inline assembler.
Signed-off-by: Danny Holman <dholman@gymli.org>
|
|
Move the initial C entry-point to its own file. Call all the i386
specific initialization routines from the new i386_entry function.
Signed-off-by: Danny Holman <dholman@gymli.org>
|
|
Fix several small bugs in assembler.
Signed-off-by: Danny Holman <dholman@gymli.org>
|
|
Add support for rudementary system calls and IRQ interrupts.
Signed-off-by: Danny Holman <dholman@gymli.org>
|
|
Simplify the setup and definitions of GDT/TSS entries.
Signed-off-by: Danny Holman <dholman@gymli.org>
|
|
Add support for the 8259 programmable interrupt controller.
Signed-off-by: Danny Holman <dholman@gymli.xyz>
|
|
Create files that add IDT support for i386.
Signed-off-by: Danny Holman <dholman@gymli.xyz>
|
|
Add a set of routines that setup the x86's global descriptor table.
Signed-off-by: Danny Holman <dholman@gymli.xyz>
|
|
Move the start of the kernel image to the "higher half" of memory. This
also enables paging.
|
|
Add structure to the internals of the x86 directory.
Signed-off-by: Danny Holman <dholman@gymli.xyz>
|