AIX内核扩展编程3

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

最后更新2021/05/19

我们有了加载程序(大部分),有了被加载程序,还缺什么?还缺如何编译,如何使用,先说编译,这是个make模板。

#cat makefile
all: mykext kloader
kloader: kloader.c
	cc -o kloader kloader.c

mykext: myExtension.c
	cc -q32 -o ext32.o -c myExtension.c
	ld -b32 -o myExt32 ext32.o -e myEntry -bI:/usr/lib/kernex.exp -lsys -l csys
	cc -q64 -o ext64.o -c myExtension.c
	ld -b64 -o myExt64 ext64.o -e myEntry -bI:/usr/lib/kernex.exp -lsys -l csys
	ar -X32_64 -r -v kernExt myExt32 myExt64

clean:
	rm -f *.o kernExt myExt32 myExt64 kloader

说明:

  1. 关于loader没什么特别的,可以按照标准c编译处理;
  2. kernal extension不能直接编译链接一步完成,一般都是先编译为obj,再链接,最后还要打包;
  3. 由于AIX同时支持32位,64位目标码,所以在makefile中分别生成了两种格式的目标码;
  4. 内核扩展程序由于运行在内核中,不能使用普通的libc,只有syslib和csyslib可用,在这两个lib中,包含了主要的常用c函数,但还是有很多标准libc提供,但在这两个lib中不存在
  • 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、付费专栏及课程。

余额充值