/proc/modules 中模块的加载状态
Load state of a module in /proc/modules
根据这个question的回答,给出/proc/modules
的第五个字段是模块的负载状态,可以是Live
或Loading
或 Unloading
。但是在我的 Ubuntu 14.04
系统和其他一些系统中,我只能找到该字段的值 Live
。该字段是否也可以具有其他值?
该字段有 3 种可能的状态:
Live
Loading
Unloading
你可以在内核源代码中看到这个,在 kernel/module.c 文件中:
/* Informative for users. */
seq_printf(m, " %s",
mod->state == MODULE_STATE_GOING ? "Unloading" :
mod->state == MODULE_STATE_COMING ? "Loading" :
"Live");
mod->state
的描述可以在 enum module_state
、include/linux/module.h 中找到:
enum module_state {
MODULE_STATE_LIVE, /* Normal state. */
MODULE_STATE_COMING, /* Full formed, running module_init. */
MODULE_STATE_GOING, /* Going away. */
MODULE_STATE_UNFORMED, /* Still setting it up. */
};
该字段可能有其他值,但这些是过渡状态,您很难从内核外部发现它们。例如,Loading
状态只会从模块完全加载到内存中持续到其初始化完成。通常,这只需要几微秒。
根据这个question的回答,给出/proc/modules
的第五个字段是模块的负载状态,可以是Live
或Loading
或 Unloading
。但是在我的 Ubuntu 14.04
系统和其他一些系统中,我只能找到该字段的值 Live
。该字段是否也可以具有其他值?
该字段有 3 种可能的状态:
Live
Loading
Unloading
你可以在内核源代码中看到这个,在 kernel/module.c 文件中:
/* Informative for users. */
seq_printf(m, " %s",
mod->state == MODULE_STATE_GOING ? "Unloading" :
mod->state == MODULE_STATE_COMING ? "Loading" :
"Live");
mod->state
的描述可以在 enum module_state
、include/linux/module.h 中找到:
enum module_state {
MODULE_STATE_LIVE, /* Normal state. */
MODULE_STATE_COMING, /* Full formed, running module_init. */
MODULE_STATE_GOING, /* Going away. */
MODULE_STATE_UNFORMED, /* Still setting it up. */
};
该字段可能有其他值,但这些是过渡状态,您很难从内核外部发现它们。例如,Loading
状态只会从模块完全加载到内存中持续到其初始化完成。通常,这只需要几微秒。