草庐IT

hook_event_proc

全部标签

c -/proc/interrupts 如何更新?

我想知道/proc/interrupts是如何更新的?它是否只检测了irq的驱动程序,或者它包含系统中所有可能的irqs的列表? 最佳答案 正如您在内核源代码中所见,它显示了系统所有可能的irq。在source/fs/proc/interrupts.c:39序列操作被初始化为返回与/proc/interrupts系统中存在的中断一样多的元素。在source/kernel/irq/proc.c:479我们可以看到每个中断的计数器都是通过kstat_irqs_cpu(irq,cpu)从全局计数器中提取的。这意味着中断计数信息在不同的计数

linux - 如何在 Perl 中将 Linux 键码从/dev/input/event* 转换为 ASCII?

我正在编写一个Perl脚本,从臭名昭著的/dev/input/event*读取数据,但我没有找到将内核生成的关键代码转换为ASCII的方法。我说的是这张表中的linux键码here如果不将数组硬编码到脚本中,我似乎找不到可以帮助我翻译它们的东西。我错过了什么吗?我想跳过数组部分,因为这似乎不是一个好的做法,有什么想法吗?:) 最佳答案 不幸的是,我不会用Perl编程,但这里有一个用C编写的简单示例。也许它可能对您有所帮助。/**Basedonkeytable.cbyMauroCarvalhoChehab**Thisprogramis

c - Linux 内核 : System call hooking example

我正在尝试编写一些简单的测试代码作为Hook系统调用表的演示。“sys_call_table”在2.6中不再导出,所以我只是从System.map文件中抓取地址,我可以看到它是正确的(在我找到的地址翻内存,我可以看到指向系统调用的指针)。但是,当我尝试修改此表时,内核给出“糟糕”消息“无法处理虚拟地址c061e4f4处的内核分页请求”,并且机器重新启动。这是运行2.6.18-164.10.1.el5的CentOS5.4。有某种保护措施还是我只是有一个错误?我知道它随SELinux一起提供,我已经尝试将它设置为宽容模式,但这并没有什么不同这是我的代码:#include#include#i

linux - 将 epoll 与设备(/dev/event/...)一起使用是否有效?

我正在开发一个单线程进程小程序,它创建一个代理虚拟设备(更准确地说是一个虚拟Xbox360pad);我确实设法用uinput创建了它界面,我正确设置了它,它工作得很好。为了向这个虚拟设备提供命令,我从另一个真实接口(interface)(在本例中是一个PS3pad)读取事件,然后我打开带有这些标志的真实设备文件:fd=open("/dev/input/event22",O_RDONLY);//openthePS3pad主循环类似于(减去错误检查):while(run){input_eventev={0};read(fd,&ev,sizeof(structinput_event));//

linux - 如何对 git 和 gitolite 钩子(Hook)进行版本控制?

是否有可能很好地版本化和跟踪githooks?我可以在服务器上的hook文件夹下安全地拥有另一个(嵌套的)git存储库吗? 最佳答案 没有什么能阻止您将gitolite服务器Hook添加到adminrepo(甚至是gitoliteadminrepo,您​​要在其中添加公共(public)sshkey和所有repos和相关权限的配置文件).然而,将该管理repo推送回gitolite服务器不会触发任何hook-wise。您仍然需要转到服务器上的Hook文件夹并:有一个钩子(Hook)可以检查该管理仓库的内容从您服务器文件夹中的每个Ho

c - 如何在linux内核中选择 "sys'和 "proc"文件

据我所知,在Linux文件系统中,为了用户空间和内核空间之间的信息通信,使用了两种虚拟文件系统。1)Proc文件系统http://www.tldp.org/LDP/Linux-Filesystem-Hierarchy/html/proc.html2)sysfs文件系统https://en.wikipedia.org/wiki/Sysfs在linux内核代码中,我看到一些子系统使用proc文件来执行这样的用户空间-内核空间通信,而一些系统使用sysfs文件来实现同样的问题。所以我只想知道,如果我要编写新的linux内核模块或驱动程序,那么如何选择虚拟文件?什么时候应该使用sysfs什么时

linux - RCHAR 是否包含 READ_BYTES (proc/<pid>/io)?

我读了proc//io测量SQL查询的IO事件,其中是数据库服务器的PID。我在每次查询之前和之后读取值以计算差异并获取请求导致读取和/或写入的字节数。据我所知的领域READ_BYTES计算实际磁盘IO,而RCHAR包括更多,例如linux页面缓存可以满足的读取(请参阅Understandingthecountersin/proc/[pid]/io了解详情)。这导致了假设,即RCHAR应该得出等于或大于READ_BYTES的值,但我的结果与这个假设相矛盾。我可以想象我为InfobrightICE获得的结果有一些小的block或页面开销(值是MB):QueryRCHARREAD_BYTE

c++ - basic_filebuf::underflow 错误读取文件与 ifstream on/proc/pid/stat

为什么下面的代码会抛出异常?请注意,该文件是一个/proc/pid/stat文件,因此它可能会受到内核的干扰。//Checkedthatfiledoesexisttry{std::ifstreamfile(path.c_str());//Shouldn'tevenbenecessarybecauseit'sthedefaultbutitdoesn't//makeanydifference.file.exceptions(std::ifstream::goodbit);//Readthestreamintomanyfields//!!!!Theexceptionwasthrownhere

c - 可以检索 glib 'event?' 上剩余的时间

我正在使用返回事件ID的g_timeout_add或g_timeout_add_seconds创建一个事件;我可以通过调用g_source_remove取消事件。但是,在某些时候我想做的是查看事件触发前剩余的时间。是否有使用glibapi执行此操作的简单方法,或者我是否需要手动存储时间戳并将其与g_source_get_current_time进行比较? 最佳答案 在GLib中没有合理的方法来做到这一点。不合理的方法是获取GSource(g_main_context_find_source_by_id),然后在GSource上调用s

c - 如何在 Linux 内核中进行分析或使用 perf_event*.[hc] 框架?

我注意到arch/arm/kernel下有一些分析源代码:perf_event.cperf_event_cpu.cperf_event_v6.cperf_event_v7.cperf_event_xscale.c我无法理解这些文件的层次结构,我该如何使用它们?我可以假设它们总是存在并在内核模块中使用它们吗?我的内核模块在Cortex-A7或Cortex-A15内核上运行。/arch/arm/kernel/目录下似乎有很多非常有用的东西,但没有关于功能的文档?怎么来的? 最佳答案 Perf_event确实提供了一个可以以编程方式使用的