tg-rcore-tutorial-signal
Signal handling abstractions for the rCore tutorial operating system.
设计目标
- 定义“信号子系统的接口层”,把实现细节与内核调用方解耦。
- 抽象统一的信号处理行为,支持不同实现(教学扩展或实验变体)。
- 以 trait 形式约束
fork、mask、投递、处理、返回等关键语义。
总体架构
Signaltrait:信号管理核心接口。SignalResult:信号处理结果枚举,指导上层调度决策。- 复用
tg-rcore-tutorial-signal-defs导出的SignalNo、SignalAction。
主要特征
- trait 驱动,便于替换具体实现。
- 结果类型覆盖继续执行、忽略、终止、挂起等路径。
no_std兼容,适合内核态。
功能实现要点
handle_signals(&mut LocalContext)将信号处理与上下文切换关联。sig_return提供用户 handler 返回后恢复现场的统一入口。from_fork支撑子进程继承/重建信号状态。
对外接口
- trait:
Signal
- 类型:
SignalResultSignalNo(re-export)SignalAction(re-export)
使用示例
use ;
use LocalContext;
- 章节内真实用法:
tg-rcore-tutorial-ch7/src/main.rs根据SignalResult决定进程后续状态。tg-rcore-tutorial-ch8/src/main.rs延续并扩展同一信号处理流程。
与 tg-rcore-tutorial-ch1~tg-rcore-tutorial-ch8 的关系
- 直接依赖章节:
tg-rcore-tutorial-ch7、tg-rcore-tutorial-ch8。 - 关键职责:定义信号处理抽象接口,供内核主循环统一驱动。
- 关键引用文件:
tg-rcore-tutorial-ch7/Cargo.tomltg-rcore-tutorial-ch7/src/main.rstg-rcore-tutorial-ch8/src/main.rs
License
Licensed under either of MIT license or Apache License, Version 2.0 at your option.