加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux-kernel – Linux中的OE是什么?

发布时间:2020-12-14 01:02:43 所属栏目: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()调用的
(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(),而是返回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(),然后是module_flags(),然后是print_tainted()函数的源代码可能有助于弄清楚这些和其他一些标志的含义.看一下print_tainted()函数上方的注释.希望这可以帮助.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读