我们今天在我的“操作系统”课程中获得了一个期中项目,我们被要求实现一个系统调用(我想我会写一段代码来调用它)。
我知道我需要更新系统调用表(记不清名字了,但没关系),以及创建一个内核模块,使表指向它,但这意味着我必须重新编译整个内核,以便内核知道我的模块吗?
我看到可以劫持当前的系统调用,但我怀疑如果我那样做,我就无法得到任务分数。
只是想了解一下我将会付出的努力规模。
更新: 事实上有点麻烦,从我相信2.6.32开始他们改变了一些东西,所以当我回到一个之前的内核版本,特定于我找到的在线教程时,就很容易跟进。如果有人在线上捕捉到这个并正在遵循教程,我建议最初下载教程中相同的内核,然后从那里开始,一旦你了解了自己在做什么。如果你真的很熟悉编译内核等,你可能不会有问题,但这是我第一次编译内核,所以编译2个小时后发现某些东西不起作用,不得不重新开始,尤其是当我不确定自己做对了还是错了时,这真的很痛苦。
我知道我需要更新系统调用表(记不清名字了,但没关系),以及创建一个内核模块,使表指向它,但这意味着我必须重新编译整个内核,以便内核知道我的模块吗?
我看到可以劫持当前的系统调用,但我怀疑如果我那样做,我就无法得到任务分数。
只是想了解一下我将会付出的努力规模。
更新: 事实上有点麻烦,从我相信2.6.32开始他们改变了一些东西,所以当我回到一个之前的内核版本,特定于我找到的在线教程时,就很容易跟进。如果有人在线上捕捉到这个并正在遵循教程,我建议最初下载教程中相同的内核,然后从那里开始,一旦你了解了自己在做什么。如果你真的很熟悉编译内核等,你可能不会有问题,但这是我第一次编译内核,所以编译2个小时后发现某些东西不起作用,不得不重新开始,尤其是当我不确定自己做对了还是错了时,这真的很痛苦。