-
qiqi authored
变更: - 扩展构建链路为 riscv64/loongarch64 双架构,更新顶层、内核和用户态 Makefile, 调整 cargo target 配置,并将 linker 脚本拆分为 rv/la 两套 - 新增 loongarch 架构目录及其入口、trap、timer、sbi 等基础代码, 让内核和 user 运行库都具备双架构编译入口 - 重构 syscall 目录结构,将原先的大文件拆分为 fs/process 子模块, 新增 signal 和 net 模块,补充 socket/bind/connect/listen/accept/sendto/recvfrom、 rt_sigaction/rt_sigprocmask/rt_sigtimedwait/rt_sigreturn、clone3/get_robust_list、 mremap/setsid/membarrier/prlimit64 等接口 - 重构 process 侧共享资源和线程组状态,新增 address_space/shared, 整理 clone/clone3 标志校验、RLIMIT_NOFILE、clear_child_tid、线程共享资源等逻辑 - 完善 futex 和 SysV shm 支持,补充 timeout、robust list、wait/wake、 进程退出时的清理与 bookkeeping,增强 pthread/libc 相关运行语义 - 加强 exec/loader/mm 相关路径,补充 TLS 预留与初始化、signal trampoline、 更完整的 auxv、mmap/brk/mprotect/mremap、COW/共享地址空间、文件映射预取等能力, 提升 libc-test 和动态程序启动兼容性 - 继续完善 fs/fd/overlay/page cache/path/io 相关逻辑,补足常用文件与目录操作语义 - 新增最小 loopback TCP/UDP 网络栈及用户态 socket 封装 - 更新 testmgr/testsmoke、README 和阶段日志,为 libctest/lua 及后续测试组准备统一入口 与 ai 协作: - 使用 ai 将团队三人代码进行合并,并处理合并时的冲突情况,合并后进行人工代码审查,并整理代码结构(ai只会达到合并解决问题的要求,部分代码结构会被破坏,相同部分的代码有时会变得东一块西一块可读性差,需要人工将代码结构重新进行整理,方便后续的开发和维护) - 对于当前知识水平无法解决的 bug 和测试项目,使用 ai 对相应的测试进行分析,并给出解决方案,人工进行评估后继续进行开发,如 `pthread_cancel_points`测试,使用 ai 分析代码和错误信息,并给出相应的解决办法,辅助开发、修复bug,最终pass。 - 使用 ai 对代码注释进行审核、对开发记录文档等进行结构优化和审查,确保文档和注释的质量和可读性 - 使用 ai 了解相应的系统调用、ABI以及loongarch架构相关知识,显著减少了查阅文档的时间,提高开发效率。 - 使用 ai 对测试进行分析,总结需要用到的系统调用缺口,给出内核针对当前测试的开发方向
50950521