完善内核 — 系统调用的实现

tags: 操作系统, 系统调用
@烩面 21/01/2026

《操作系统真相还原》学习笔记:用中断门实现系统调用,效仿 Linux 使用 0x80 号中断作为系统调用入口。

实现系统调用

实现步骤

  1. 用中断门实现系统调用,效仿 Linux 用 0x80 号中断作为系统调用的入口
  2. 在 IDT 中安装 0x80 号中断对应的描述符,注册系统调用对应的中断处理例程
  3. 建立系统调用子功能表 syscall_table,利用 eax 寄存器中的子功能号索引相应处理函数
  4. 用宏实现用户空间系统调用接口 _syscall,最大支持 3 个参数

寄存器传参约定

寄存器用途
eax子功能号
ebx第 1 个参数
ecx第 2 个参数
edx第 3 个参数

宏接口设计

_syscall[0-3] 分别对应 0~3 个参数的系统调用。用户程序通过宏发起系统调用,无需关心底层中断细节。