Skip to content

Merge feature/ext4: add EXT4 VFS support for runner/syscall

不让内核死机 requested to merge feature/ext4 into main

本次合并补齐 EXT4/VFS 对 runner 和 syscall 的最小支撑能力,主要包括:

  1. 稳定 EXT4 路径级文件读取接口

    • 支持 ext4_read_file(path, max_len)
    • 支持 fs::read_file_by_path(path, max_len)
    • 已验证 /glibc/basic_testcode.sh 与 /musl/basic_testcode.sh 可读取
  2. 支持 execve 读取 busybox ELF

    • /glibc/busybox 可通过 EXT4 返回 ELF bytes
    • 为后续 execve("/glibc/busybox", argv, envp) 联调提供文件系统侧能力
  3. 接入 EXT4-backed shadow fd

    • openat 可打开 EXT4 regular file
    • read 支持按 offset 顺序读取
    • close 可释放 fd 资源
  4. 增加目录扫描接口

    • 支持 list_dir("/glibc")、list_dir("/musl")
    • 支持筛选 *_testcode.sh
    • 为后续 runner 扫描测试脚本做准备
  5. runner handoff

    • EXT4 smoke test 不再直接 shutdown
    • 成功读取脚本后继续进入 runner 流程
    • 保留 runner 后续接入 execve/wait4/shutdown 的接口边界

验证情况:

  • cargo check 通过
  • make kernel-rv 通过
  • bash scripts/run_ours.sh 退出码为 0
  • QEMU 日志包含 EXT4 path read ok
  • QEMU 日志包含 /glibc/busybox ELF 读取成功 marker
  • QEMU 日志包含 openat/read/close EXT4 shadow fd marker
  • QEMU 日志包含 list_dir/find_testcode_scripts marker
  • 未发现 panic / panicked / read elf failed

Merge request reports