mirror of
https://github.com/Leonmmcoset/cleonos.git
synced 2026-04-21 18:44:01 +00:00
1.3 KiB
1.3 KiB
CLeonOS Stage5
Stage Goal
- Add ELF64 parsing and loading framework for CLKS.
- Add executable-file probe path via Limine executable request.
- Add syscall framework with
int 0x80dispatcher. - Keep scheduler + interrupt flow integrated with syscall path.
Acceptance Criteria
- Kernel logs
CLEONOS STAGE5 START. - ELF runner initializes and probes kernel ELF metadata (entry/phnum/segments).
- Syscall framework initializes and
int 0x80returns timer ticks. - IRQ timer and scheduler still run without panic/reboot.
Build Targets
make setupmake isomake runmake debug
QEMU Command
qemu-system-x86_64 -M q35 -m 1024M -cdrom build/CLeonOS-x86_64.iso -serial stdio
Common Bugs and Debugging
KERNEL ELF PROBE FAILED:- Verify Limine executable file request is present in
.limine_requestssection.
- Verify Limine executable file request is present in
- Syscall always returns
-1:- Check
clks_syscall_init()call order and vector0x80IDT gate.
- Check
int 0x80causes exception:- Ensure vector 128 stub exists and IDT gate uses DPL3-capable flags (
0xEE).
- Ensure vector 128 stub exists and IDT gate uses DPL3-capable flags (
- Linker undefined symbols for ELF/syscall:
- Confirm
elf64.c,elfrunner.c,syscall.care listed inC_SOURCES.
- Confirm
- Interrupt instability after syscall integration:
- Confirm timer IRQ EOI path is untouched and syscall vector path returns early.