【发布时间】:2011-04-22 12:01:25
【问题描述】:
我们今天刚拿到一个“操作系统”课程的期中项目,要求我们实现一个系统调用(我想我假设我们必须编写一段代码来调用它)。
我知道我需要更新系统调用表(不记得名称,但没什么大不了的),以及创建该表将指向的内核模块,但这是否意味着我'必须重新编译整个内核,让内核知道我的模块?
我已经看到有可能劫持当前的系统调用,但我怀疑如果我这样做,我将不会获得我的任务的功劳。
只是想感受一下我将要付出的努力。
更新: 好吧,这有点麻烦,他们从我相信 2.6.32 开始改变了一些东西,所以当我回到我发现的特定于在线教程的先前内核版本时,它真的很容易理解。如果有人在网上看到这个并且正在学习教程,我建议最初在教程中下载相同的内核,然后在您了解自己在做什么后从那里继续前进。如果你真的很熟悉编译内核等,你可能没有问题,但这是我第一次编译内核,所以编译了2个小时然后发现有些东西不起作用,而且很痛苦,而且必须从头再来,尤其是当我不确定自己做错了什么/没有做错的时候。
【问题讨论】:
-
为了重新编译内核部分,我建议您从您的发行版中获取源代码和 .config,而不是使用 kernel.org 的源代码组成您自己的 .config。如果您的 .config 不适合您的硬件,这应该会减少您的麻烦。
标签: linux linux-kernel system-calls