mirror of
https://github.com/Leonmmcoset/cleonos.git
synced 2026-04-21 10:40:00 +00:00
40 lines
1.5 KiB
Markdown
40 lines
1.5 KiB
Markdown
|
|
# CLeonOS Stage10
|
||
|
|
|
||
|
|
## Stage Goal
|
||
|
|
- Upgrade ELF execution from "inspect-only" to "scheduler-driven kernel ELF execution".
|
||
|
|
- Build `/system/elfrunner.elf` and `/system/memc.elf` as kernel-ELF entry binaries.
|
||
|
|
- Add CLKS kernel ELF executor (`kelf`) that loads runtime image and dispatches ELF entry.
|
||
|
|
- Add `kelfd` scheduler task to periodically execute loaded kernel ELF apps.
|
||
|
|
|
||
|
|
## Acceptance Criteria
|
||
|
|
- Kernel boots and prints `CLEONOS STAGE10 START`.
|
||
|
|
- KELF framework logs:
|
||
|
|
- `APP READY` for `/system/elfrunner.elf` and `/system/memc.elf`
|
||
|
|
- `EXECUTOR ONLINE`
|
||
|
|
- `APP_COUNT` > 0
|
||
|
|
- Service framework includes KELF service and logs updated counts.
|
||
|
|
- Scheduler task count increases (idle + klogd + kworker + kelfd).
|
||
|
|
- System remains stable in interrupt-enabled idle loop.
|
||
|
|
|
||
|
|
## Build Targets
|
||
|
|
- `make setup`
|
||
|
|
- `make userapps`
|
||
|
|
- `make iso`
|
||
|
|
- `make run`
|
||
|
|
- `make debug`
|
||
|
|
|
||
|
|
## QEMU Command
|
||
|
|
- `qemu-system-x86_64 -M q35 -m 1024M -cdrom build/CLeonOS-x86_64.iso -serial stdio`
|
||
|
|
|
||
|
|
## Common Bugs and Debugging
|
||
|
|
- `KELF APP LOAD FAILED`:
|
||
|
|
- Check `/system/*.elf` are built using `cleonos/c/kelf.ld` and are valid ELF64.
|
||
|
|
- No `APP READY` logs:
|
||
|
|
- Verify ramdisk staging copied system ELF files into `/system`.
|
||
|
|
- `kelfd` task missing:
|
||
|
|
- Confirm `clks_scheduler_add_kernel_task_ex("kelfd", ...)` is present in `kmain`.
|
||
|
|
- KELF syscall counters return `-1`:
|
||
|
|
- Ensure syscall IDs for `KELF_COUNT` and `KELF_RUNS` match kernel/user headers.
|
||
|
|
- Build errors in Makefile app targets:
|
||
|
|
- Verify `APP_ELFRUNNER`/`APP_MEMC` link with `KELF_LDFLAGS` not `USER_LDFLAGS`.
|