
develop
文章平均质量分 61
Ensighine
IT考古,翻新酒瓶
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
AIX内核扩展编程3
复杂度3/5机密度4/5最后更新2021/05/19我们有了加载程序(大部分),有了被加载程序,还缺什么?还缺如何编译,如何使用,先说编译,这是个make模板。#cat makefileall: mykext kloaderkloader: kloader.c cc -o kloader kloader.cmykext: myExtension.c cc -q32 -o ext32.o -c myExtension.c ld -b32 -o myExt32 ext32.o -e myE原创 2021-05-19 10:27:50 · 201 阅读 · 0 评论 -
AIX内核扩展编程2
复杂度3/5机密度4/5最后更新2021/05/18下面我们要研究被加载程序本身,这和普通c程序没什么太大区别,当然,区别还是有一些的,例如没有main。普通C程序本身,省缺会需要main函数,作为程序入口,而内核扩展程序是通过链接时定义,决定哪个函数是主入口的。甚至可能完全没有入口,只等待其它内核程序调用自己提供的扩展函数。我们先考虑最普通的内核扩展,也就是需要一个入口,需要进行初始化的内核扩展程序。下面的程序看起来与普通的C没什么不同是吧?其中几个主要区别我们说一下:没有main,这个说过了;原创 2021-05-18 18:20:25 · 231 阅读 · 2 评论 -
AIX内核扩展编程1
复杂度3/5机密度4/5最后更新2021/05/18前面介绍过内核扩展也是一种执行程序,与普通执行程序不同的是它需要被加载到内核中执行,拥有内核权限。我们先来看看加载、卸载和内核扩展程序本体。加载需要用到cfg_kmod结构和sysconfig系统调用,前者对要加载的程序进行描述,后者完成加载(或卸载)过程。要注意,不止sysconfig,还有好几个类似的系统调用都完成类似的功能,他们之间没有本质区别,只是适用场景(方便程度)不同,例如,有的调用一步完成加载及初始化,有的则分为若干步,需要使用不同参原创 2021-05-18 13:21:05 · 231 阅读 · 0 评论 -
AIX开发环境准备
复杂度2/5机密度2/5最后更新2021/05/02基础知识,就是本系列全部文章啦,在不断更新中;文件编辑器和IDE,任何一款文本文件编辑器,你熟悉哪个就用哪个。如果使用IDE,需要IDE能支持remote compile,就是通过运行在另一台机器上的编译器进行编译和测试;编译、测试硬件平台:要搞一台PowerPC或者Power CPU的硬件机器,也可以考虑挑战一下,弄个qemu虚拟机在x86上模拟PowerPC,不过后者很不好用,如果真的有开发任务,最好还是真正搞到一台Power CPU的机器原创 2021-05-02 12:22:43 · 373 阅读 · 0 评论