朝向 POSIX 的用户空间化 - 第一部分:信号处理和 IO - Redox

主要观点:Redox 获 NGI Zero grants,作者负责其 POSIX 信号项目,此项目旨在实现合适的 POSIX 信号处理和进程管理,且在用户空间进行。公告后一周作者准备内核以适应新 IPC 变化,之后用大部分基于用户空间的方式替换当前信号实现,此改动接近合并。
关键信息

  • 改进的用户空间方案协议和无状态 IO:新的方案数据包格式和两个新系统调用使 RedoxFS 复制性能提高 63%,新格式类似 io_uring,添加了新系统调用SYS_PREAD2SYS_PWRITE2
  • 信号处理:内核信号实现已改进,但仍有限,如缺乏对sigprocmask等的支持。目前提议仅使用共享原子内存访问实现sigaction等,重点优化接收相关信号 API,还提出了用户空间进程管理器。
    重要细节
  • 数据包结构变化:旧的Packet结构在 2016 年定义,最多支持 3 个参数,导致技术债务,新的SqeCqe结构更适合,分别用于提交和完成队列条目。
  • 信号实现细节:用两个AtomicU64位集在 TCB 中存储标准和实时信号,实现sigprocmask等,目前未实现针对整个进程的信号,之后将继续实现相关功能。
  • 相关计划:信号项目按计划进行,夏季末有望完成 POSIX 信号支持,之后将开始用户空间进程管理器的工作,可能包括新的内核性能或功能改进。
阅读 8
0 条评论