您的位置:首页 > 编程语言

<笔记-Unix系统编程1>系统调用

2018-01-10 18:18 183 查看
系统调用与C语言调用很相似,以X86-32为例,有以下步骤:

1.调用C语言函数库中的外壳(Wrapper)函数,发起系统调用。

2.如有参数,外壳函数要保证所有参数可用并将它们复制到特定寄存器供内核使用

3.为了区分各个系统调用,外壳函数还需要将系统调用的编号复制到CPU寄存器中(%eax)

4.此处还是外壳函数执行中断指令(int 0x80),是处理器从用户态切换到内核态,执行中断0x80中断矢量指向的代码

5.内核响应0x80,调用system_call()。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: