linux-inject:动态注入替换进程调用函数
最近打算替换Linux下进程的调用函数,这有点类似于LD_PRELOAD环境变量所实现的功能,但是我需要动态的注入,Google了一下,找到几个玩意,linux-inject、linux-injector等。 这里试试linux-inject。 1,系统环境 CentOS... [阅读更多]
最近打算替换Linux下进程的调用函数,这有点类似于LD_PRELOAD环境变量所实现的功能,但是我需要动态的注入,Google了一下,找到几个玩意,linux-inject、linux-injector等。 这里试试linux-inject。 1,系统环境 CentOS... [阅读更多]
题目没有把问题完全描述清楚,举个栗子:假设在一个多核机器上(当然是Linux操作系统),有进程A当前运行于CPU 0上,当它进行系统调用陷入内核后,执行对应内核代码的也是CPU... [阅读更多]
Linux提供了一个套接口选项SO_LINGER,可以改变在套接口上执行close()函数时的默认行为,对于改变之后的行为如何,网上有大量的资料人云亦云的对其进行了说明,但是事实上却并非如此。 选项SO_LINGER用到的相关参数主要是一个linger结构体: Filename... [阅读更多]
ACPI的介绍能Google到很多,今天遇到一个与此相关的问题。一同事说设备nmi中断不触发,凌动D425的CPU芯片,2.4.37的linux内核,把设备拿来启动看看,发现启动参数里acpi=off,而/proc/cpuinfo显示为1个cpu,查看/proc/interrupts,发现中断类型皆为最原始的XT-PIC,想到nmi需要apic支持,难道是apic被连带的禁用了?试试将内核参数改为acpi=on,结果还真成了,nmi能够得以触发,/proc/cpuinfo显示出2个cpu,原来D425是单核心双线程,/proc/interrupts里显示的各个中断类型为IO-APIC-edge或IO-APIC-level。 试了2.6的内核,禁用acpi貌似并不会导致apci也无法使用,不知是否是因为2.4的内核太矬了?嘛,算了,贴一下相关内核参数: acpi=off或noacpi 禁止一切ACPI功能;This... [阅读更多]
在linux 2.6内核上使用direct... [阅读更多]
之前写在CU的博客上的文章,今天又看了看,转过来。 Linux 2.6.35于2010年8月1号发布,新增特性比较多,而其中最引我注意的为第一点:Transparent spreading of incoming network traffic load across... [阅读更多]
在linux下统计时间有很多种方法,在内核代码里,最简单方便的方法自然是利用全局变量jiffies,这个字段记录了自系统启动以来产生的节拍总数,而系统每1秒钟将产生HZ次节拍,HZ是个常数,在内核2.6版本,编译时可选择,100/250/300/1000,可以查看内核编译选项: #... [阅读更多]
前面曾提到Linux 2.6.x内核在X86 32位架构上可以配置内核栈大小(在进行内核编译时,Kernel... [阅读更多]
不同于Linux应用程序的栈能够动态增长,Linux内核栈是固定的,并且比较小,比如Linux 2.6.x内核,在X86 32位架构上一般是4K或8K(在进行内核编译时,Kernel hacking下进行配置,默认8K),而在X86... [阅读更多]