我想得到linux“jiffies”变量的物理地址,这样我就可以通过读取这个内存地址的内容来读取它。

最佳答案

从内核模式代码(例如,可加载的内核模块)中,您需要包含<linux/jiffies.h>头文件。它包含jiffies变量的定义:

extern unsigned long volatile __jiffy_data jiffies;

但是,它也包含以下警告:
/*
 * The 64-bit value is not atomic - you MUST NOT read it
 * without sampling the sequence number in xtime_lock.
 * get_jiffies_64() will do this for you as appropriate.
 */

也就是说,你不应该直接访问这个变量。它是一个64位变量,对它的访问在32位系统上不是原子的,因此来自同一头文件的get_jiffies_64()函数。在64位系统上,该函数是一个非常简单的内联函数,返回jiffies变量的值。
另一方面,从用户空间代码来看,您根本无法访问内核内存。

08-28 03:53