一,内核模块功能: 让内核文件(zImage或bzImage)本身并不包含某组件,而是在该 组件需要被使用的时候,动态地添加到正在运行的内核中 二,内核模块安装和卸载加载:insmod (insmod hello.ko)卸载:rmmod (rmmod hello)查看:lsmod加载:modprob ...
分类:
系统相关 时间:
2016-06-27 23:10:35
阅读次数:
254
作者:华清远见讲师Linux驱动开发主要的工作就是编写模块,一个典型的Linux内核模块文件.ko主要由以下几个部分组成。模块加载函数(必须)当通过insmod或modprobe命令加载内核模块时,模块的加载函数会自动被内核执行,完成本模块的相关初始化工作。Linux内核模块加载函数一般用s..
分类:
系统相关 时间:
2016-06-24 20:43:32
阅读次数:
156
嵌入式Linux的调试技术 本章主要介绍如何利用开发板,Android模拟器以及一些函数、工具(gdb,gdberver以及kgdb)调试嵌入式Linux内核模块、可执行程序和共享库。 Printk函数,该函数的用法和printf函数类似,只不顾printk函数运行在内核空间,printf函数运行在 ...
分类:
移动开发 时间:
2016-06-24 14:33:01
阅读次数:
166
Linux反汇编调试方法 Linux内核模块或者应用程序经常因为各种各样的原因而崩溃,一般情况下都会打印函数调用栈信息,那么,这种情况下,我们怎么去定位问题呢?本文档介绍了一种反汇编的方法辅助定位此类问题。 代码示例如下: #include <signal.h> #include <stdio.h> ...
分类:
系统相关 时间:
2016-06-20 00:42:43
阅读次数:
254
[root@monitor klvl]# uname -aLinux monitor 2.6.32-431.23.3.el6.x86_64 #1 SMP Thu Jul 31 17:20:51 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux [root@monitor ...
分类:
系统相关 时间:
2016-05-29 09:42:22
阅读次数:
529
[root@localhost src]# uname -aLinux localhost.localdomain 2.6.32 #1 SMP Sun Sep 20 18:58:21 PDT 2015 x86_64 x86_64 x86_64 GNU/Linux redhat 5内核 是从源代码升级 ...
分类:
系统相关 时间:
2016-05-29 09:42:21
阅读次数:
310
内核模块编程 内核模块的基本结构 内核模块的基本结构 linux内核模块的程序结构有:模块加载函数(必须),模块卸载函数(必须),模块许可证声明(必须),模块参数(可选),模块导出符号(可选),模块作者的等信息声明(可选)。 一个内核模块应该至少包含两个函数。一个“开始”(初始化)的函数被称为ini ...
分类:
其他好文 时间:
2016-05-23 19:09:52
阅读次数:
157
linux内核模块的程序结构有:模块加载函数(必须),模块卸载函数(必须),模块许可证声明(必须),模块参数(可选),模块导出符号(可选),模块作者的等信息声明(可选)。 一个内核模块应该至少包含两个函数。一个“开始”(初始化)的函数被称为init_module(),当内核模块被insmod 加载时 ...
分类:
其他好文 时间:
2016-05-23 18:48:34
阅读次数:
120
一、Linux启动内核文件1.Linux系统组成动态视角:内核+根文件系统静态视角:磁盘分区+相关文件2.Kernel特点(1)支持某块化:.ko(kernelobject)文件centos7的ko文件:centos6的ko文件:注意:Linux内核模块文件的命名方式通常为<模块名称.ko>centos6系统的内核模块被集放在..
分类:
其他好文 时间:
2016-05-22 06:24:51
阅读次数:
198
1. 什么是内核模块
内核模块具有以下两个特点:1. 模块本身并不被编译进内核文件(zImage或bzImage),可以根据需求,在内核运行期间动态的安装或卸载。
2. 为什么需要内核模块
原因:Linux内核的整体结构非常庞大,其包含的组件也非常多,如何使用这些组件呢,方法1:把所有的组件都编译键内核,即:zImage或bzImage,但这样会导致一个问题:占用内存过多。然后...
分类:
系统相关 时间:
2016-05-07 07:33:35
阅读次数:
132