【问题标题】:Why does the exception handler look up the system call table?为什么异常处理程序要查找系统调用表?
【发布时间】:2019-03-17 07:18:10
【问题描述】:

我正在学习系统调用的工作原理。

我知道要进行系统调用,异常处理程序是通过软件中断调用的。然后异常处理程序从 eax 寄存器中读取系统调用 ID,然后在系统调用表中查找函数的绝对地址。

它如何从系统调用表中找到函数的绝对地址?

【问题讨论】:

  • 系统调用表是一个函数地址数组。系统调用 ID 是数组的索引。
  • 你的标题问“为什么”,但问题问“如何”。你真正想知道什么?
  • @Barmar 你能把它作为答案吗?我会将其标记为“已接受”。

标签: linux exception linux-kernel system-calls interrupt


【解决方案1】:

系统调用表是一个dispatch table,它是一个函数指针数组。系统调用号只是这个数组的索引。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-07-15
    • 2022-11-05
    • 2013-03-09
    • 1970-01-01
    • 1970-01-01
    • 2012-11-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多