- 4
- 0
- 约6.41千字
- 约 5页
- 2017-07-15 发布于浙江
- 举报
2.4. 编译和加载
2.4. 编译和加载
2.4. 编译和加载
本章开头的 hello world 例⼦包含了⼀个简短的建⽴并加载模块到系统中去的演⽰.
当然, 整个 程⽐我们⽬前看到的多. 本节提供了更多细节关于⼀个模块作者如何将源
码转换成内核中的运⾏的⼦系统.
2.4.1. 编译模块
第⼀步, 我们需要看⼀下模块如何必须被建⽴. 模块的建⽴ 程与⽤户空间的应⽤程序
的建⽴ 程有显著不同; 内核是⼀个⼤的, 独⽴的程序, 对于它的各个部分如何组合在
⼀起有详细的明确的要求. 建⽴ 程也与以前版本的内核的 程不同; 新的建⽴系统⽤
起来更简单并且产⽣更正确的结果, 但是它看起来与以前⾮常不同. 内核建⽴系统是⼀
头负责的野兽, 我们就看它⼀⼩部分. 在内核源码的 Document/kbuild ⽬录下发现的⽂
件, 任何想理解表⾯之下的真实情况的⼈都要阅读⼀下.
有⼏个前提, 你必须在能建⽴内核模块前解决. 第⼀个是保证你有版本⾜够新的编译器,
模块⼯具, 以及其他必要⼯具. 在内核⽂档⽬录下的⽂件 Documentation/Changes ⼀直
列出了需要的⼯具版本; 你应当在向前⾛之前参考⼀下它. 试图建⽴⼀个内核(包括它
的模块), ⽤错误的⼯具版本, 可能导致不尽的奇怪的难题. 注意, 偶
原创力文档

文档评论(0)