c语言open与sys_open的用法

系统调用是有一个 CPU 运行等级的提高问题. 用户代码在 3 级, 操做系统代码在 0 级.
open 是对在 Ring 3 级对系统调用的一个包装. 
全部的系统函数只有一个系统调用入口, int $0x80, 在这条指令以前把调用的函数对应的功能号放到 %eax 寄存器.
这条指令产生一个中断, CPU 切换到中断处理程序, 运行等级从 Ring 3 级切换到 Ring 0 级. 开始在内核中运行. 内核再根据 %eax 中的功能号来调用不一样的函数. sys_open 就是内核中处理 open 对应的功能号的函数.函数

相关文章
相关标签/搜索