c - 我怎么能拦截Linux系统调用?

c - 我怎么能拦截Linux系统调用?

除了LD_PRELOAD技巧和Linux内核模块,用你提供的系统调用代替某个系统调用,有没有可能拦截一个系统调用(例如打开),以便在它到达实际打开之前首先通过你的函数?…


是否可以在Linux x86 GAS程序集中创建没有系统调用的线程?

在学习“汇编语言”(在使用GNU作为汇编程序的x86架构上的linux中)时,其中一个时刻就是使用系统调用的可能性。 这些系统调用非常方便,有时甚至是必需的,因为您的程序在用户空间中运行 。 但是,系统调用在性能方面相当昂贵,因为它们需要中断(当然还有系统调用),这意味着必须从用户空间中的当前活动程序到内核空间中运行的系统进行上下文切换。 我想说的是:我目前正在实现一个编译器(用于大学项目)…


在Linux中创建一个系统调用

我们今天刚刚为我的“操作系统”课程获得了一个中期项目,我们被要求实现一个系统调用(我猜我认为我们必须编写一段代码来调用它)。 我知道我需要更新系统调用表(不记得名字,但没有biggie),以及创建一个表将指向的内核模块,但这是否意味着我将不得不重新编译整个内核,所以内核知道我的模块? 我已经看到可以劫持一个当前的系统调用,但是我怀疑如果我这样做,我不会得到我的任务的功劳。 只是想了解我将要…


简单的方法来检测linux的内核中的无限循环

我刚刚花了2个多小时,试图在修改linux内核的过程中发现错误,每次当我将模块连接到内核时都很好,但是当我断开连接时,我的鼠标停止工作,所以使用printk我发现无限循环,我的问题是有人知道很好的技术来检测这样的错误,有时很难找到这样的循环,并且linux变得不可预测, so how can I avoid infinite loops提前在内核中so how can I avoid infini…


c - 系统调用的历史是否已添加到Linux?

有什么地方我可以获得每个系统调用所需的Linux最低版本的完整列表吗? 我正在寻找表格问题的一般答案“如果我使用系统调用X,那么我的代码可以运行的Linux的最低版本是什么?”…


在Linux内核3.3中添加一个新的系统调用

我对这个内核的东西很新。 我想要做的只是添加一个新的系统调用内核。 我遵循这个准则: http://hekimian-williams.com/?p=20 。 问题出在arch/x86/kernel下的syscall_table_32.S文件中,但在内核版本3.3中找不到x86系统的文件。 我是否仍然需要编辑文件并为新添加的系统调用追加一行? 还是我需要做其他事情来让内核知道我…



linux kernel - Linux系统调用

我能够获得系统调用的执行,并在Kernel中处理。 但是很少有事情我不清楚。 进入swi例程后,内核将用户模式寄存器保存在堆栈中。 问题是- 谁的筹码是?(由于swi处理和相应的系统调用例程需要栈帧工作) 如果是内核自己的堆栈,从哪里得到堆栈分配..? 它会开始使用当前的堆栈吗? 如果是,那么当前可以是在内核中可能正在执行的任何进程。 这不是耗尽电流的堆栈吗? 如果它在swi处理程序中…


linux kernel - 进行系统调用以获取进程列表

我是新的模块编程,我需要进行系统调用来检索系统进程,并显示他们消耗多少CPU。 我怎样才能打这个电话?…


linux kernel - 用MADV_SEQUENTIAL调用madvise系统调用需要很长时间才能完成

在我的代码中,我使用了一个外部的C库,而且这个库调用了MADV_SEQUENTIAL选项,这个选项需要很长时间才能完成。 在我看来,只有用MADV_SEQUENTIAL调用madvise对我们的工作来说已经足够了。 我的第一个问题是,为什么要进行多个疯狂的系统调用,有没有一个按顺序调用不同选项的逻辑? 我的第二个问题是,你有什么想法,为什么madvise与MADV_SEQUENTIAL需要太长,…


如何在ARM64中实现系统调用?

我正在使用arm64汇编代码,我想用svc指令来实现系统调用。 我找不到任何在线工作的arm64系统调用。另外,我找不到arm64的系统调用列表。 另外说明实施。…




syscall函数 syscall 系统调用跟我学 linux系统api android 系统调用过程 system linux添加系统调用 linux call过程