kernel: Prepare for v0.1-pre

This commit is contained in:
RaphProductions 2025-05-11 18:37:15 +02:00
parent 6e77fbc323
commit 3bbc916ffd
6 changed files with 11 additions and 25 deletions

View file

@ -6,13 +6,18 @@ The Soaplin kernel is a new Unix-like operating system kernel.
* Memory management (VMM/PMM) * Memory management (VMM/PMM)
* Simple pre-emptive scheduler * Simple pre-emptive scheduler
* Ring 3 (user mode) support * Ring 3 (user mode) support
* ELF loader
## In the works
* Virtual File System
* FPU support
## To come ## To come
* RTC support * RTC support
* ELF loader
* Virtual File System
* EXT2 driver * EXT2 driver
* FAT32 driver * FAT32 driver
* CPIO-based init ram disk * CPIO-based init ram disk
* Video driver for Bochs graphics adapter, and the VMware display adapter. * Video driver for Bochs graphics adapter, and the VMware display adapter.
* FPU support
## Known bugs
* If a user process calls the syscall handler by using interrupts, the system may crash due to a Page Fault.

View file

@ -29,21 +29,6 @@ pagemap_t *vmm_alloc_pm() {
pagemap_t *pm = (pagemap_t *)HIGHER_HALF((uint64_t)pmm_request_page()); pagemap_t *pm = (pagemap_t *)HIGHER_HALF((uint64_t)pmm_request_page());
memset(pm, 0, PMM_PAGE_SIZE); memset(pm, 0, PMM_PAGE_SIZE);
/*if (vmm_kernel_pm_exists) {
pm->toplevel = (uint64_t*)HIGHER_HALF((uint64_t)pmm_request_page());
memset(pm->toplevel, 0, PMM_PAGE_SIZE);
for (int i = 256; i < 512; i++) {
pm->toplevel[i] = vmm_kernel_pm->toplevel[i];
}
} else {
__asm__ volatile("mov %%cr3, %0" : "=r"(pm->toplevel) : : "memory");
pm->toplevel = HIGHER_HALF(pm->toplevel);
logln(info, "vmm", "Limine-provided kernel PML4: %p", pm->toplevel);
}*/
pm->toplevel = (uint64_t *)HIGHER_HALF((uint64_t)pmm_request_page()); pm->toplevel = (uint64_t *)HIGHER_HALF((uint64_t)pmm_request_page());
memset(pm->toplevel, 0, PMM_PAGE_SIZE); memset(pm->toplevel, 0, PMM_PAGE_SIZE);

View file

@ -74,5 +74,6 @@ void exception_handler(registers_t *regs) {
syscall_handle(regs); syscall_handle(regs);
} }
// logln(info, "arch/ints", "Received interrupt %d\n", regs->int_no); // logln(info, "arch/ints", "Received interrupt %d\n", regs->int_no);
//vmm_load_pagemap(curr_proc->pm);
pic_ack(regs->int_no - 32); pic_ack(regs->int_no - 32);
} }

Binary file not shown.

View file

@ -3,12 +3,7 @@ section .text
global _start global _start
_start: _start:
int 0x80 mov rax, 10
int 0x80
int 0x80
int 0x80
int 0x80
int 0x80
int 0x80
.hey: .hey:
add rax, 1
jmp .hey jmp .hey

Binary file not shown.