Skip to content

runner: add first stage script parser

WangHotpnT requested to merge feature/runner into main

本次 MR 内容

本 MR 完成 runner 第一阶段最小闭环中的脚本读取与命令解析部分。

主要内容:

  1. 新增 oskernel/os/src/runner/mod.rs
  2. 接入 runner::run_first_stage()
  3. runner 通过 fs::read_file_by_path("/glibc/basic_testcode.sh", 4096) 读取脚本;
  4. runner 跳过空行和 # 注释;
  5. runner 解析第一条有效命令;
  6. 将脚本中的 ./busybox 规范化为 /glibc/busybox
  7. 打印 programargv
  8. 当前阶段只解析,不执行 busybox。

当前阶段边界:

runner 不解析 EXT4 inode、extent、block device,只通过 fs 层路径级接口读取脚本。 当前阶段暂不执行 busybox,后续由 syscall/process 侧继续对接 execve、openat/read/close、wait4。

验证命令

make kernel-rv
bash scripts/run_ours.sh
grep -nEi "runner|program|argv|basic_testcode|panic" logs/ours/qemu.log

## 预期日志

[runner] read script ok: /glibc/basic_testcode.sh
[runner] program = /glibc/busybox
[runner] argv[0] = busybox
[runner] argv[1] = echo
...

Merge request reports