AIX内核扩展编程1

复杂度3/5
机密度4/5

最后更新2021/05/18

前面介绍过内核扩展也是一种执行程序,与普通执行程序不同的是它需要被加载到内核中执行,拥有内核权限。我们先来看看加载、卸载和内核扩展程序本体。

加载需要用到cfg_kmod结构和sysconfig系统调用,前者对要加载的程序进行描述,后者完成加载(或卸载)过程。要注意,不止sysconfig,还有好几个类似的系统调用都完成类似的功能,他们之间没有本质区别,只是适用场景(方便程度)不同,例如,有的调用一步完成加载及初始化,有的则分为若干步,需要使用不同参数,重复执行几次。

int sysconfig (Cmd, Parmp, Parmlen)
int Cmd;    /* 子功能,使用同一调用,设置不同功能可以分别完成加载、
初始化、卸载等多个功能,例如:
SYS_KLOAD  加载内核扩展;
SYS_SINGLELOAD 同上,不同的是会检测内核扩展是否已加载,如果没加载过,则加载,而前者则是不管是否加载过,都再加载一次。此功能等于帮你做了查询+加载;
SYS_QUERYLOAD 查询内核扩展是否已经被加载。那查询的依据是什么?
很傻的,依据是被加载程序的路径,而且只是路径字符,如果分别给绝对
路径和相对路径,那该命令会人为是不同的内核扩展。再回到SINGLELOAD
的疑问,如果使用SYS_KLOAD加载了两次怎么办?凉拌,内核不管的,
随便你加载几次,卸载的时候根据kmid这个唯一值卸载。
另一个问题?谁会被使用?如果能定位(通过kmid&
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ensighine

如需特定专题,踢我

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值