kernel: Prepare for v0.1-pre
This commit is contained in:
parent
6e77fbc323
commit
3bbc916ffd
6 changed files with 11 additions and 25 deletions
11
README.md
11
README.md
|
@ -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.
|
|
@ -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);
|
||||||
|
|
||||||
|
|
|
@ -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.
|
@ -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
|
BIN
testing/test.o
BIN
testing/test.o
Binary file not shown.
Loading…
Add table
Add a link
Reference in a new issue