runner: add first stage script parser
本次 MR 内容
本 MR 完成 runner 第一阶段最小闭环中的脚本读取与命令解析部分。
主要内容:
- 新增
oskernel/os/src/runner/mod.rs; - 接入
runner::run_first_stage(); - runner 通过
fs::read_file_by_path("/glibc/basic_testcode.sh", 4096)读取脚本; - runner 跳过空行和
#注释; - runner 解析第一条有效命令;
- 将脚本中的
./busybox规范化为/glibc/busybox; - 打印
program和argv; - 当前阶段只解析,不执行 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
...