Skip to content

runner: prepare exec flow and sync syscall core APIs

WangHotpnT requested to merge feature/runner into main

本次 MR 内容

本 MR 同步 runner 分支当前进度,并接入 syscall/process 侧拆层后的基础接口。

主要内容:

  1. runner 已完成 /glibc/basic_testcode.sh 读取;
  2. runner 已能解析:
    • program = /glibc/busybox
    • argv[0] = busybox
    • argv[1] = echo
    • argv[2] = #### OS COMP TEST GROUP START basic-glibc ####
  3. runner 已打印 execve flow marker:
    • [runner] execve start: /glibc/busybox
  4. 已确认 kernel_execve/kernel_wait4 只能在已有 task/process 上下文中调用;
  5. rust_main 阶段暂时只保留 parse + marker,不直接调用 exec/wait;
  6. 更新 docs/RUNNER_STATUS.md,说明当前完成度和阻塞点。

验证命令

cd oskernel && make kernel-rv && cd ..
QEMU=$(which qemu-system-riscv64) bash scripts/run_ours.sh
grep -nEi "runner|program|argv|execve|busybox|wait4|shutdown|panic|unsupported" logs/ours/qemu.log
cat logs/ours/exit_code.txt

##当前结论

当前 runner 已完成脚本读取、program/argv 构造和 execve marker。

真正 execve/wait4 闭环尚未完成,原因是当前 runner 在 rust_main 阶段运行,没有 current task/current process;后续需要将 exec/wait 迁移到 task/process 上下文中。

Merge request reports