【发布时间】:2013-07-13 05:13:58
【问题描述】:
我正在阅读 Robert Love 的 Linux Kernel Development,他所做的练习之一是创建系统调用(第 106 页)。问题是我无法在 v3.9 中找到 x86_32 架构的系统调用表文件。我知道他使用的是 2.6.xx 版本,但我不知道该版本是否适用于我正在使用的发行版,因为它已经很旧了,所以我更喜欢 v3.9。
更多信息: 我所说的练习如下: 在系统调用表的末尾添加一个条目。这需要为每个支持系统调用的架构(对于大多数调用,是所有的架构)完成。系统调用在表中的位置,从零开始, 是它的系统调用号。例如,列表中的第十个条目分配给系统调用号 9。
使用以下方法解决: 对于 x86 架构,系统调用表位于 arch/x86/syscalls/syscall_32.tbl 中。感谢 Sudip Mukherjee 的帮助。
另一种方法如下: http://lists.kernelnewbies.org/pipermail/kernelnewbies/2013-July/008598.html 也感谢 Srinivas Ganji 的帮助。
【问题讨论】:
-
你在哪里搜索的?
-
在书中它说它位于 entry.S 但据我所知,这已在最新版本中进行了更改。所以我在 arch/x86/kernel 中搜索了 entry_32.S 文件,但我也没有找到那里的表
-
好像是here
-
似乎在内核 v3.0 中,该表位于一个名为 syscall_table_32.S 的文件中,但我在 v3.9 中找不到它。来源:emntech.com/docs/syscall_emntech.pdf