LINUX:静态链接模块加载顺序
如果我有两个静态链接的模块。一个模块的 module_init 函数依赖于另一个模块的 module_init 函数已经运行。有没有办法强制一个模块先于另一个模块加载…
通过评估 CPU 寄存器找出系统锁定时正在执行哪个 Linux 进程
我需要找出当我的 Linux (Debian) 系统挂起(x86 平台)时正在执行什么。在系统锁定之前,我设法提取了以下信息: es: 0x7B cs: 0x73 ss: 0x7B ds: 0x…
如何在 Linux 内核中查找信号处理程序定义?
我目前正在研究“在 Intel 架构上的 Linux 中创建事后数据记录器”。 它只不过是核心实用程序的创建。 任何机构都可以分享有关各种信号(SIGSEGV、SIG…
“(void) (&_min1 == &_min2)”的作用是什么?在 kernel.h 的 min 宏中?
在 kernel.h 中,分钟是定义为: #define min(x, y) ({ \ typeof(x) _min1 = (x); \ typeof(y) _min2 = (y); \ (void) (&_min1 == &_min2); \ _min1 <…
Linux内核container_of宏和C90中的通用容器
是否可以实现 container_of 纯C90 中的宏?我不确定如何做到这一点,因为内核实现取决于 GCC Hacks,例如 typeof 运算符。 我这样问是因为我想在 C90 …
/proc//task//stat 中的 utime 和 stime 字段多久更新一次?
当我在内核版本 > 的 Linux 上反复检查 /proc//task//stat 中的值时, 2.6.2,其中 是进程 ID, 是线程 ID,我注意到字段 utime 和 stime (#14 和#15…
如何使用 ftrace 获取系统调用调用的内核调用图?
我已经尝试过这些,但它们都产生“空”输出文件: trace-cmd record -p function_graph -g munmap -F ls trace-cmd record -p function_graph -g sys_…
Linux 内核中的 asm__volatile()
有人可以解释一下这个函数到底在做什么吗?我尝试用谷歌搜索,但什么也没找到: long __res; //some variable __asm__ volatile ( "movl $244, %%eax;…
想要确保 tty 写入按给定时间戳推送到硬件(UART)或失败
我需要将一些数据写入串行端口,同时确保如果无法通过给定的“到期时间戳”写入数据,它将返回失败代码。数据来自不同的串行端口,到期时间来自第三个…
如何在Linux中找到USB转并口设备的基地址?
我正在 Ubuntu 中用 C 语言进行 IO 编程。我需要端口的基地址来写入数据。 我的笔记本电脑没有并行端口。所以我买了一个 USB 转并行端口连接器。我插…
汇编代码 `movl %1, %%ebx` 是什么意思?
我试图理解一些汇编代码: movl $244, %eax movl %1, %%ebx 第一个意味着将数字 244 放入寄存器 eax,但第二个意味着什么?预先感谢您的帮助 P.S see …
Linux 中的列表条目
user/include/linux/list.h 此声明: #define list_entry(ptr, type, member) \ ((type *)((char *)(ptr) – (unsigned long)(&((type *)0)->member))…