基于Linux制作驱动过程中需要认识的 ------内核模块

Ⅰ、驱动的改变

Linux内核源码版本在2.4以前,驱动就是直接定义一个xx.ko,然后再Linux系统中insmod这人格模块就可以把这个驱动加载到内核,就可以驱动自己的代码,只有一个:驱动.c

Linux内核版本在2.6以后,引入了一个高级的Linux模型:

1、Linux设备总线 ---------------------------------------------------

              |         |

              |           |

            2、设备           3、驱动

Ⅱ、(.ko) ----------   驱动模块与内核模块

  

  xx.ko    >>>  内核模块,但是不一定是驱动模块  -----驱动模块一定是内核模块,也就是说,内核模块不一定有驱动的功能。

  

  内核模块与驱动模块的区别:

  相同点:内核模块是在内核里面执行的,驱动也一样

  不同点:内核模块不一定是用开驱动设备的

      而驱动模块就是用来驱动设备的

  

时间: 2024-11-15 19:25:22

基于Linux制作驱动过程中需要认识的 ------内核模块的相关文章

[转载] linux 程序运行过程中替换文件

今天被朋友问及“Linux下可以替换运行中的程序么?”,以前依稀记得Linux下是可以的(而Windows就不让),于是随口答道“OK”.结果朋友发来一个执行结果:(test正在运行中)# cp test2 test cp: cannot create regular file `test': Text file busy 看起来是程序被占用,无法覆盖.于是自己又再做了几个实验: (1)先rm删除正在运行的test,然后cp test2 test就没有错误了.(2)先mv改名正在运行的test,

轻松识破linux内核启动过程中的“”套路“”

内核启动流程相关的内容让很多热爱linux的小伙伴既爱又恨,因为这是了解linux系统基本构造的良好过程同时由于其本身复杂且底层,脑子中的脉络不是很清晰,本文就总结了一些优秀博文,以自己的理解来解构一下. 本文的环境是CentOS 6.8, 基本过程: 庖丁解牛: 1.POST BIOS的功能由两部分组成, 步骤1:上电自检POST(Power-on self test),主要负责检测系统外围关键设备(如:CPU.内                 存.显卡.I/O.键盘鼠标等)是否正常.例如,

Linux下安装过程中编译PHP时报错:configure: error: libjpeg.(a|so) not found

在Linux下安装PHP过程中,编译时出现configure: error: libjpeg.(a|so) not found 错误的解决的方法: 检查之后发现已经安装libjpeg.可是/usr/lib文件夹下没有libjpeg.so这个文件,在/usr/lib64下是有的,使用–with-jpeg-dir=/usr/lib64 依旧无效, 最后用ln -s /usr/lib64/libjpeg.so /usr/lib/libjpeg.so问题解决 libpng报错解决方法一样

Linux学习笔记(1)Linux虚拟机安装过程中的知识点及常用管理工具

1. VMware的相关知识 (1)建议的VMware的配置: CPU 主频1GHz以上 内存 1GB以上 硬盘 分区空闲空间8GB以上 (2)VMware创建快照 快照的作用是保存虚拟机的现有状态,以便以后可返回到相同状态.快照的特点是:① 可以快速启动虚拟机:② 虚拟机系统崩溃时,可以快速恢复. 创建快照的方法是,点击VMware工具栏上的标志,然后填写快照名称,如下图所示: 恢复快照的方法是单击VMware工具栏上的标志,选择弹出的对话框中创建的快照,然后单击"转到"按钮,即可打

Linux虚拟机安装过程中的常见错误

作为初学Linux的菜鸟,在安装过程中出现了各种各样的错误.在这里把我遇到的错误列出来与大家分享,也希望对初学的人有一些帮助.这里列举了几种常见网络配置问题并详述了其原因和解决方法.如虚拟机不能访问外部网络. 1.Xshell等工具连不上虚拟机的问题,如下图:首先.要保证虚拟机正常开机.并配置正确.其次.是电脑的网络配置. 打开电脑的控制面板->网络和Internet->网络和共享中心->点击更改适配设置.如图显示VMware Network Adapter VMnet1 已禁用.点击右

linux安装nginx过程中出现的问题及解决办法

安装nginx步骤以及遇到的问题: 1.yum install gcc gcc-c++   //执行命令后出现的问题,一直循环执行其中的三句,如下图所示: 解决办法就是先ctrl+z一下,接着输入rm –f /var/run/yum.pid 注意:一定要有网 2.安装 pcre-8.37和 zlib-1.2.8 其中需要使用rz命令时,如果rz使用不了,执行命令yum install lrzsz即可 3.unbuntu下安装安装pcre-8.37 configure: error: You ne

基于echarts在使用过程中的有关javascript的总结(入门级)

step1: 页面上在一段区域上从左到右添加三个同一类型的"pie"饼图,但是数据不一样时,如何减少不必要的重复代码段呢? 首先,html页面代码如下: <ul class="order-infoList"> <li> <div id="order-category" style="width: 100%;height: 100%"></div> </li> <

[linux内存]系统启动过程中的内存管理

内核启动过程的内存管理1,memblock机制 kernel/arm/mm/memblock.c arm_memblock_init()函数 系统刚启动的时候不是所有的内存都是可以作为分配使用的,比如有些内存是默认给rootfs或者kernel使用的,memblock机制 作用就是决定哪些内存是可以分配的,哪些是默认已经被使用的. 涉及的三个主要API是memblock_init() memblock_reserve()  memblock_add()函数 2,bootmem机制 http://

linux内核启动过程中__set_up的作用!

__set_up是一个宏 #define __setup(str, fn) \ __setup_param(str, fn, fn, 0) #define __setup_param(str, unique_id, fn, early) static char __setup_str_##unique_id[] __initdata = str; static struct obs_kernel_param __setup_##unique_id __attribute_used__ __att