Linux 中的 OE+ 是什么?
What is OE+ in Linux?
下面的(OE+)
是什么意思?
$ sudo cat /proc/modules | grep hello //hello_world is a kernel module created by me.
hello_world 20480 1 - Loading 0xffffffffc0221000 (OE+)
这是我的情况。
我已经修补了 Linux 内核函数 load_module()
,它是从 finit_module()
调用的,insmod
用来插入内核模块的系统调用。
该补丁会查找由我创建的正在安装的特定模块(称为 hello_world
),当它安装时,它会阻止调用 do_init_module()
,并改为调用 returns 0。 do_init_call()
负责调用模块的init
函数,并设置模块状态为live(MODULE_STATE_LIVE
)。
当我读取 /proc/modules
时,模块状态为 Loading
,这是预期的。但是我不明白输出末尾 (OE+)
的含义。这不会针对任何其他模块显示,如以下命令所验证。
$ sudo cat /proc/modules | grep OE
hello_world 20480 1 - Loading 0xffffffffc0221000 (OE+)
我正在使用 Linux 内核 v4.7.3
。
更新
这一切都发生在 Qemu 虚拟机中。在主机 运行 Linux 4.4.0-36-generic (Ubuntu)
上,我得到以下信息。
$ sudo cat /proc/modules | grep OE
vboxpci 24576 0 - Live 0xffffffffc082a000 (OE)
vboxnetadp 28672 0 - Live 0xffffffffc066e000 (OE)
vboxnetflt 28672 0 - Live 0xffffffffc0635000 (OE)
vboxdrv 454656 3 vboxpci,vboxnetadp,vboxnetflt, Live 0xffffffffc0783000 (OE)
sep4_0 671744 0 - Live 0xffffffffc06de000 (OE)
socperf2_0 36864 1 sep4_0, Live 0xffffffffc0660000 (OE)
pax 16384 0 - Live 0xffffffffc05f9000 (OE)
O
表示Out-of-tree模块已经加载。
E
表示未签名的模块已经加载。
+
表示正在加载模块。
-
表示正在卸载模块。
print_modules(), then module_flags(), and then print_tainted() 函数的源代码可能有助于弄清这些标志和其他一些标志的含义。查看 print_tainted()
函数上方的注释。希望这有帮助。
下面的(OE+)
是什么意思?
$ sudo cat /proc/modules | grep hello //hello_world is a kernel module created by me.
hello_world 20480 1 - Loading 0xffffffffc0221000 (OE+)
这是我的情况。
我已经修补了 Linux 内核函数 load_module()
,它是从 finit_module()
调用的,insmod
用来插入内核模块的系统调用。
该补丁会查找由我创建的正在安装的特定模块(称为 hello_world
),当它安装时,它会阻止调用 do_init_module()
,并改为调用 returns 0。 do_init_call()
负责调用模块的init
函数,并设置模块状态为live(MODULE_STATE_LIVE
)。
当我读取 /proc/modules
时,模块状态为 Loading
,这是预期的。但是我不明白输出末尾 (OE+)
的含义。这不会针对任何其他模块显示,如以下命令所验证。
$ sudo cat /proc/modules | grep OE
hello_world 20480 1 - Loading 0xffffffffc0221000 (OE+)
我正在使用 Linux 内核 v4.7.3
。
更新
这一切都发生在 Qemu 虚拟机中。在主机 运行 Linux 4.4.0-36-generic (Ubuntu)
上,我得到以下信息。
$ sudo cat /proc/modules | grep OE
vboxpci 24576 0 - Live 0xffffffffc082a000 (OE)
vboxnetadp 28672 0 - Live 0xffffffffc066e000 (OE)
vboxnetflt 28672 0 - Live 0xffffffffc0635000 (OE)
vboxdrv 454656 3 vboxpci,vboxnetadp,vboxnetflt, Live 0xffffffffc0783000 (OE)
sep4_0 671744 0 - Live 0xffffffffc06de000 (OE)
socperf2_0 36864 1 sep4_0, Live 0xffffffffc0660000 (OE)
pax 16384 0 - Live 0xffffffffc05f9000 (OE)
O
表示Out-of-tree模块已经加载。
E
表示未签名的模块已经加载。
+
表示正在加载模块。
-
表示正在卸载模块。
print_modules(), then module_flags(), and then print_tainted() 函数的源代码可能有助于弄清这些标志和其他一些标志的含义。查看 print_tainted()
函数上方的注释。希望这有帮助。