| Age | Commit message (Collapse) | Author |
|
Signed-off-by: Carlos Maiolino <[email protected]>
|
|
This is missing and will come in handy for path parsing.
Signed-off-by: Carlos Maiolino <[email protected]>
|
|
Signed-off-by: Carlos Maiolino <[email protected]>
|
|
Enable the kernel to read from an ATA device
Signed-off-by: Carlos Maiolino <[email protected]>
|
|
Enable paging in the CPU and add some testing code to check
virtual addresses are being redirected.
Signed-off-by: Carlos Maiolino <[email protected]>
|
|
Add infra-structure to enable and manipulate page tables in the
processor.
Signed-off-by: Carlos Maiolino <[email protected]>
|
|
Signed-off-by: Carlos Maiolino <[email protected]>
|
|
So far we've been playing a dangerous game... We enabled interrupts
before we actually had the interrupt descriptor table setup.
Fix this so we prevent IRQs to fire before the table is initialized
and attempt to run garbage instead of code
Signed-off-by: Carlos Maiolino <[email protected]>
|
|
Use the heap API to implement a 100MiB heap to
be used by the kernel code.
Add example usage to src/kernel.c
Signed-off-by: Carlos Maiolino <[email protected]>
|
|
The first heap page (0x0) is a valid and usable page for now.
When checking the starting page from heap_get_start_page(), we need to
take that into account, otherwise we'll always return the first 0x0 page
as the allocated page.
This makes the users to always get 0x0 as the allocated region.
We loose the possibility for error checking here, so we'll need to
rework this API so we can get an error check.
Signed-off-by: Carlos Maiolino <[email protected]>
|
|
Add a simple API implementing a heap memory area.
This specifies 2 main data structures:
struct heap - Defines a heap:
Holds a table with all entries in the specific heap and
the initial heap memory address
struct heap_table - Describes the usage state of every PAGE
within the specific heap.
Signed-off-by: Carlos Maiolino <[email protected]>
|
|
This is supposed to be compliand with POSIX
Signed-off-by: Carlos Maiolino <[email protected]>
|
|
So far I just need a roundup routine to implement a basic heap manager
Signed-off-by: Carlos Maiolino <[email protected]>
|
|
I've forgotten to commit this when working on interrupts. The OS
won't build without these helpers.
They are used for now mostly to setup PICs.
Signed-off-by: Carlos Maiolino <[email protected]>
|
|
This has only been working so far because vga.h was included only
on source files already including stdint.h.
We should put it direct to the header file
Signed-off-by: Carlos Maiolino <[email protected]>
|
|
Remap master PIC to IOAddress 0x20 to avoid collisions with CPU
exceptions.
Setup a default interrupt handler and map all interrupts to this handler
by default.
Setup a Keyboard interrupt handler for testing purposes
Wire everything up in the Makefile
Signed-off-by: Carlos Maiolino <[email protected]>
|
|
Signed-off-by: Carlos Maiolino <[email protected]>
|
|
Signed-off-by: Carlos Maiolino <[email protected]>
|
|
Move the include files to the toxic/ subdirectory, so it gets a bit more
organized.
Ah, yeah, OS name will be renamed to ToxicOS
Signed-off-by: Carlos Maiolino <[email protected]>
|
|
Also add a small test to the kernel code
Signed-off-by: Carlos Maiolino <[email protected]>
|
|
Add driver to deal with VGA text mode.
Also adds a simple vprintl function while I don't implement a print
library.
Signed-off-by: Carlos Maiolino <[email protected]>
|
|
Add a couple string lib functions to start with video text development.
Signed-off-by: Carlos Maiolino <[email protected]>
|
|
Create the kernel.c file and its initial start_kernel(), and
jump to it from the ASM.
Also setup the build system to actually build it
Signed-off-by: Carlos Maiolino <[email protected]>
|
|
It should be aligned to 16-bits IIRC, forcing the kernel.asm to be
alined to a 512 byte boundary should suffice
Signed-off-by: Carlos Maiolino <[email protected]>
|
|
Write ata_lba_read routine to load 100 disk sectors from the disk into
memory address 0x00100000 (1MiB).
Once the data is loaded, jump to that Address
Signed-off-by: Carlos Maiolino <[email protected]>
|
|
Move the code unders [BITS 32] label to its own file to be loaded as a
kernel by the boot loader.
Add a linker script to link the bootloader and the kernel in a single
binary file.
Add a build script to make it easier to use the cross compiler
Update the Makefile to build everything and pack it into the os.bin
Signed-off-by: Carlos Maiolino <[email protected]>
|
|
Signed-off-by: Carlos Maiolino <[email protected]>
|
|
Signed-off-by: Carlos Maiolino <[email protected]>
|