summaryrefslogtreecommitdiff
path: root/kernel (unfollow)
Commit message (Collapse)AuthorFilesLines
2024-05-29kernel: sched: implement the round-robin schedulerv0.06Danny Holman1-52/+56
Implement a basic round-robin scheduler and tie it to the PIT timer interrupt on x86. Signed-off-by: Danny Holman <dholman@gymli.org>
2024-05-27arch: i386: pmem: refactor the physical MMDanny Holman1-18/+1
Refactor the physical memory manager to be dramatically simpler. The new design uses only a single freelist, and only uses temporary mappings where needed. Signed-off-by: Danny Holman <dholman@gymli.org>
2024-05-27libk: create a subset libc for kernel useDanny Holman3-227/+17
Create a subset of the C library for use inside the kernel. Signed-off-by: Danny Holman <dholman@gymli.org>
2024-03-28kernel: sched: add a flag that is set on initDanny Holman1-0/+6
Add a flag that is set to 1 when the scheduler_init function is called. This allows the PIT interrupt to preempt the current thread and schedule the next one according to the scheduler's internal agorithm. Signed-off-by: Danny Holman <dholman@gymli.org>
2024-03-28kernel: add a basic thread schedulerDanny Holman1-0/+64
Add a basic thread scheduler. This should allow the kernel to schedule threads according to the round robin algorithm. Signed-off-by: Danny Holman <dholman@gymli.org>
2024-03-28arch: i386: kernel: implement a kmalloc functionDanny Holman1-1/+5
Add a basic kmalloc implementation. This allows the kernel to allocate blocks smaller than a whole page. Signed-off-by: Danny Holman <dholman@gymli.org>
2024-03-28arch: i386: kernel: add mostly finished PFA and paging systemDanny Holman2-16/+3
Add the mostly finished physical memory allocator and expose its functions to the paging system. Signed-off-by: Danny Holman <dholman@gymli.org>
2024-02-24kernel: string: add a strcpy functionDanny Holman2-4/+29
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>
2024-02-24arch: i386: cleanup everything and reorganizeDanny Holman1-2/+20
Clean up everything in the i386 arch directory. This code has been in dire need of refactoring for a long while. All the inline assembly functions and the data structures related to the architecture should be placed into their own header file. Now the scheduler can access registers and ISRs without having to deal with arch-specific code. Signed-off-by: Danny Holman <dholman@gymli.org>
2024-02-16kernel: panic: add a variable that locks other CPUsDanny Holman1-0/+3
Add a static variable to the panic function that should lock all other CPUs. Signed-off-by: Danny Holman <dholman@gymli.org>
2024-02-16kernel: mem: kmalloc should not call page allocationDanny Holman1-13/+5
Strip the code calling for the memory manager to allocate pages to kmalloc. The function should just return a raw pointer while a page fault will allocate the required memory. Signed-off-by: Danny Holman <dholman@gymli.org>
2024-02-16kernel: add a panic functionDanny Holman1-0/+8
Add a panic function that stops the current CPU and prints an error message into the ring buffer. Signed-off-by: Danny Holman <dholman@gymli.org>
2024-02-16kernel: string: add more functions to string libraryDanny Holman1-0/+64
Add more functions to the string library to process buffers and strings. Signed-off-by: Danny Holman <dholman@gymli.org>
2024-02-16kernel: make kprintf print to a ring bufferDanny Holman1-11/+23
The function kprintf should print to an internal ringbuffer instead of directly to the framebuffer. This reduces dependence on the existence of a framebuffer in the first place. Signed-off-by: Danny Holman <dholman@gymli.org>
2023-11-26kernel: mem: add a simple kmalloc implementationDanny Holman1-0/+23
Add a simple implementation of kmalloc. This system only works on x86-based processors at the time of commit. Signed-off-by: Danny Holman <dholman@gymli.org>
2021-08-30i386: create idt.c and isr.sDanny Holman1-1/+1
Create files that add IDT support for i386. Signed-off-by: Danny Holman <dholman@gymli.xyz>
2021-07-24arch: i386: add GDT setup routinesDanny Holman1-1/+1
Add a set of routines that setup the x86's global descriptor table. Signed-off-by: Danny Holman <dholman@gymli.xyz>
2021-07-20io: prefix a 'k' to print functionsDanny Holman2-6/+4
Add a 'k' prefix to the kernel versions of the printf family.
2021-01-20serial: add serial_writestring as a functionDanny Holman1-0/+1
Add a function in the serial interface that writes an entire string to the serial line. Signed-off-by: Danny Holman <dholman@gymli.xyz>
2021-01-20kernel: iterate over string with indexDanny Holman1-6/+6
Iterate over a formatted string with an index and strlen instead of using a non-const pointer. The latter method may result in unsafe memory conditions. Signed-off-by: Danny Holman <dholman@gymli.xyz>
2021-01-20kernel: maintain const on stringsDanny Holman1-2/+2
Keep const pointers const when casting from void to char. Signed-off-by: Danny Holman <dholman@gymli.xyz>
2021-01-20serial: don't declare serial_init as staticDanny Holman1-0/+1
The function serial_init should not be declared as static. This function could change under a different architecture and should be defined with the target architecture. Signed-off-by: Danny Holman <dholman@gymli.xyz>
2021-01-20i386: add serial port supportDanny Holman1-1/+2
Add support for serial communication in the i386 architecture. Signed-off-by: Danny Holman <dholman@gymli.xyz>
2021-01-18kernel: finish implementing string functionsDanny Holman1-4/+38
Finish implementing the functions from string.h in string.c. Signed-off-by: Danny Holman <dholman@gymli.xyz>
2021-01-17kernel: implement a basic printf functionDanny Holman1-0/+72
Implement a basic printf function using primitives from the TTY library. Signed-off-by: Danny Holman <dholman@gymli.xyz>
2021-01-17kernel: add main initialization functionsDanny Holman1-0/+7
Add the main initialiazation functions within the main kernel directory. Signed-off-by: Danny Holman <dholman@gymli.xyz>
2021-01-17kernel: add string.h implementationsDanny Holman1-0/+24
Add implementations for functions declared in string.h. Signed-off-by: Danny Holman <dholman@gymli.xyz>