sys: Implement LAPIC and IOAPIC support, add PS/2 keyboard driver

- Added LAPIC implementation in `apic.c` and `apic.h`, including initialization and basic operations.
- Introduced IOAPIC (I/O Advanced Programmable Interrupt Controller) support in `ioapic.c` and `ioapic.h`, parsing the ACPI MADT to locate IOAPICs and manage redirection entries.
- Implemented PS/2 keyboard driver in `ps2.c` and `ps2.h`, handling keyboard interrupts and translating scancodes to ASCII.
- Attempted to make usermode work again (it failed, coming soon)
- Cleaned up comments in `time.c` and `render.c` for clarity.

Signed-off-by: kaguya <vpshinomiya@protonmail.com>
This commit is contained in:
kaguya
2026-04-24 01:59:33 -04:00
parent 551eb00708
commit 3b6e68bc16
27 changed files with 1009 additions and 504 deletions
BIN
View File
Binary file not shown.
Binary file not shown.
BIN
View File
Binary file not shown.
+8 -8
View File
@@ -1,12 +1,12 @@
.global _start
.section .text
.global _start
_start:
call main
mov $60, %rax # exit syscall (you define this later)
xor %rdi, %rdi
mov $1, %rax
mov $'H', %rdi
syscall
hang:
jmp hang
mov $1, %rax
mov $'i', %rdi
syscall
1: jmp 1b