文件管理

  • basic
    • 脚本:scripts/basic/basic_testcode.sh
    • 关键测例:chdir、close、dup、dup2、fstat、getcwd、getdents、mkdir_、mount、open、openat、pipe、read、umount、unlink、write
  • busybox
    • 脚本:scripts/busybox/busybox_testcode.sh
    • 关键命令:touch、cat、cut、od、head、tail、hexdump、md5sum、sort、uniq、stat、wc、more、rm、mkdir、mv、rmdir、cp、find
  • iozone
    • 脚本:scripts/iozone/iozone_testcode.sh
    • 覆盖点:顺序读写、随机读、反向读、跨步读、fwrite/fread、pwrite/pread、pwritev/preadv
  • unixbench
    • 脚本:scripts/unixbench/unixbench_testcode.sh
    • 关键测项:fstime 的小/中/大文件读、写、拷贝
  • lmbench
    • 脚本:scripts/lmbench/lmbench_testcode.sh
    • 关键测项:lat_syscall read/write/open/stat/fstat、lmdd、lat_fs、bw_file_rd、bw_mmap_rd
  • LTP
    • 脚本:scripts/ltp/ltp_testcode.sh
    • 建议优先参考的 runtest 文件:ltp/runtest/fs、ltp/runtest/fs_bind、ltp/runtest/fs_perms_simple、ltp/runtest/fs_readonly
    • 典型 syscall 族:open*、close*、read*、write*、stat*、getdents*、mount*、umount*、unlink*、rename*、mkdir*

内存管理

  • basic
    • 关键测例:brk、mmap、munmap
  • libcbench
    • 脚本:scripts/libcbench/libcbench_testcode.sh
    • 作用:偏用户态运行库与分配器/字符串实现的微基准,可作为堆分配和内存访问路径压力来源
  • lmbench
    • 关键测项:lat_pagefault、lat_mmap、bw_mmap_rd
  • LTP
    • 建议优先参考的 runtest 文件:ltp/runtest/mm、ltp/runtest/hugetlb、ltp/runtest/numa
    • 典型 syscall 族:brk*、mmap*、munmap*、mremap*、madvise*、mincore*、mlock*、munlock*、move_pages*、migrate_pages*
    • 共享内存相关:shmat*、shmctl*、shmget*

进程、线程与调度

  • basic
    • 关键测例:clone、execve、exit、fork、getpid、getppid、sleep、times、wait、waitpid、yield
  • cyclictest
    • 脚本:scripts/cyclictest/cyclictest_testcode.sh
    • 关键测项:cyclictest 单线程/多线程实时延迟,hackbench 调度压力
  • unixbench
    • 关键测项:context1、pipe、spawn、execl、syscall、looper + multi.sh
  • lmbench
    • 关键测项:lat_proc fork/exec/shell、lat_ctx、lat_pipe、lat_select、lat_sig
  • LTP
    • 建议优先参考的 runtest 文件:ltp/runtest/sched、ltp/runtest/nptl、ltp/runtest/cpuhotplug
    • 典型 syscall 族:clone*、fork*、vfork*、execve*、wait*、waitpid*、waitid*、sched_*

IPC 与同步

  • basic
    • 关键测例:pipe
  • lmbench
    • 关键测项:lat_pipe、lat_select
  • LTP
    • 建议优先参考的 runtest 文件:ltp/runtest/syscalls-ipc
    • 典型 syscall 族:msg*、sem*、shm*、futex*、epoll*、select*、poll*、eventfd*、timerfd*

网络通信

  • iperf
    • 脚本:scripts/iperf/iperf_testcode.sh
    • 关键测项:TCP/UDP 基本吞吐、并发连接、反向传输
  • netperf
    • 脚本:scripts/netperf/netperf_testcode.sh
    • 关键测项:UDP_STREAM、TCP_STREAM、UDP_RR、TCP_RR、TCP_CRR
  • LTP
    • 建议优先参考的 runtest 文件:ltp/runtest/net.ipv6、ltp/runtest/net.multicast、ltp/runtest/net.tcp_cmds、ltp/runtest/net_stress.*

时间与定时

  • basic
    • 关键测例:gettimeofday、sleep、times
  • cyclictest
    • 关键测项:定时精度与实时调度延迟
  • LTP
    • 典型 syscall 族:getitimer*、setitimer*、timerfd_*、clock_nanosleep*、alarm*、nanosleep*

系统信息与基础环境

  • basic
    • 关键测例:uname
  • busybox
    • 关键命令:date、df、dmesg、du、uname、uptime、ps、pwd、free、hwclock

C 库与语言运行时

  • libctest
    • 脚本:scripts/libctest/libctest_testcode.sh
    • 作用:覆盖静态/动态链接下的 libc 接口兼容性
  • libcbench
    • 作用:覆盖 libc 微基准和用户态运行时热点路径
  • lua
    • 脚本:scripts/lua/lua_testcode.sh
    • 关键测项:date.lua、file_io.lua、random.lua、remove.lua、sort.lua、strings.lua

CPU / 算术微基准

  • unixbench
    • 关键测项:dhry2reg、whetstone-double、arithoh、short、int、long、float、double、hanoi

推荐使用方式

  • 先用 basic 对 syscall 能力做最小闭环验证。
  • 文件系统实现稳定后,继续看 busybox、iozone、lmbench、unixbench 里的文件相关项。
  • 内存和调度能力成熟后,再补 cyclictest、LTP 的 mm、sched、syscalls-ipc。
  • 网络栈单独看 iperf、netperf 和 LTP 的网络 runtest 入口。