OS-异常与中断

异常与中断

Related: 系统调用接口

1. 核心定义

异常 (Exception) 是控制流中的突发改变,用来响应处理器状态的某些变化。

  • 它是硬件 (CPU) 与操作系统 (OS) 协同工作的交点。
  • 异常表 (Exception Table): 系统启动时分配的一张跳转表,记录了每种异常对应的处理程序 (Exception Handler) 地址。

2. 四大分类 (The Taxonomy)

类别原因行为 (同步/异步)返回行为示例
中断 (Interrupt)来自处理器外部 I/O 设备的信号异步 (随时可能发生)返回到下一条指令键盘 Ctrl+C, 磁盘数据到位, 网络包到达
陷阱 (Trap)有意的指令执行同步返回到下一条指令系统调用 (System Calls), 断点 (int 3)
故障 (Fault)潜在可恢复的错误同步重新执行当前指令缺页异常 (Page Fault)
终止 (Abort)不可恢复的致命错误同步不返回 (终止程序)硬件校验错误 (RAM 坏了)

3. 安全视角 (Security Insight)

  • Shellcode 原理: 所有的 Shellcode 最终目的都是为了触发 Trap (系统调用),通常是 execve("/bin/sh")
  • 调试器原理: GDB 的断点通过插入 int 3 指令触发 Trap,让 OS 暂停程序并将控制权交给调试器。
  • 拒绝服务 (DoS): 触发不可恢复的 Abort 或死循环的 Fault。