Linux内核分析(二) 昨天我们开始了内核的分析,网上有很多人是用用源码直接分析,这样造成的问题是,大家觉得很枯燥很难理解,从某种意义上来说linux系统本身就是由一个个模块构成的,所以我会结合内核模块的设计,去分析内核,从而达到对linux内核的理解。 今天我们会分析到以下内容: 1. ...
Linux内核分析(二) 昨天我们开始了内核的分析,网上有很多人是用用源码直接分析,这样造成的问题是,大家觉得很枯燥很难理解,从某种意义上来说linux系统本身就是由一个个模块构成的,所以我会结合内核模块的设计,去分析内核,从而达到对linux内核的理解。 今天我们会分析到以下内容: 1. ...
注意: Makefile 文件的命名注意M需要大写,否则会报错。 在Makefile文件中make命令前应为tab制表符。 下文转载至:https://blog.csdn.net/b ...
Linux系统为应用程序提供了功能强大且容易扩展的API,但在某些情况下,这还远远不够。与硬件交互或进行需要访问系统中特权信息的操作时,就需要一个内核模块。 Linux内核模块是一段编译后的二进制代码,直接插入Linux内核中,在 Ring 0(x86–64处理器中执行最低和受保护程度最低的执行 ...
调试内核模块的方法有很多。最常用的,可能也是上手难度最低的就是使用prinfk打印出相关的调试信息,但是总给人的感觉不够geeek,所以这里描述一种能够使用gdb+qemu来调试内核的方法。 启动虚拟机 当进入到虚拟机之后,启动相关的网卡,可以方便的向虚拟机中拷贝相关需要的文件,方便调试 ...
Raspberry PI 2上的802.11ac网卡驱动编译 最近在树莓派2上折腾视频,用来做FPV,但是发现2.4G的控会严重干扰2.4G WIFI,在开控的时候我的台式机+外置USB网卡都频频掉 ...
从Linux内核的2.6某个版本开始,内核引入了导出符号的机制。只有在内核中使用EXPORT_SYMBOL或EXPORT_SYMBOL_GPL导出的符号才能在内核模块中直接使用。然而,内核并没有导出所有的符号。例如,在3.8.0的内核中,do_page_fault就没有被导出 ...