1.字符设备驱动

I/O传输过程中以字符为单位进行传输的设备。如键盘。

write :操作就是从应用程序接收数据送到硬件。

read :操作就是从硬件读取数据并交给应用程序。

ioctl: 应用程序提供对硬件行为的控制

open:应用程序打开设备时对设备进行初始化

release :应用程序关闭设备时的操作

static struct file_operations my driver_fops={

owner :THIS_Module,

write:mydriver_write,

read:mydriver_read,

ioctl:mydriver_ioctl,

open: mydriver_open,

release:mydriver_release,

};

module_exit() 用于向内核声明退出。

字符设备驱动程序开发基本步骤如下:

1.确定主设备号和次设备号

2.实现字符驱动程序,先实现file_operations 结构体,然后实现初始化函数并注册字符设备,然后实现销毁函数并释放字符设备。

3.创建设备文件节点。

块设备驱动

块设备只能以块为单位接收输入返回输出。

块设备需要缓冲区。

块设备可以随机访问。字符设备只能顺序读写。

struct block_device_operations

int(*open)(struct inode *,stuct file*);

int (*release)

int(*ioctl)

int(*unlock_ioctl)

...

....

网络设备驱动

net_device 表示网络设备接口。

网络设备媒介层

网络设备驱动层

网络设备接口层

网络协议接口层

linux 中的3类驱动程序相关推荐

  1. linux怎么自动装驱动程序,linux中如何安装设备驱动程序

    两种方式来寻找驱动程序 一.用户界面 如果是一个刚从 Windows 或 MacOS 转过来的 Linux 新手,那你会很高兴知道 Linux 也提供了一个通过向导式的程序来查看驱动程序是否可用的方法 ...

  2. java编译命令 Linux,通过命令行在linux中编译Java类

    嗨,谢谢你花时间回答我的问题. 我的根文件夹中有两个文件(〜/).Main.Java和TestMain.java.Main.java编译并运行顺利.另一方面,TestMain没有.TestMain基本 ...

  3. Linux中的Java类,Java基础入门学习-Java中类的属性

    Java基础入门学习-Java中类的属性 发布时间:2006-05-27 00:46:15来源:红联作者:WWW Public.private.protected显示了三种类中的属性和服务的类型,pu ...

  4. Linux驱动(14)--字符类设备与驱动

    字符类设备 1. 静态申请字符类设备号 1.1 所需函数与头文件 1.2 源码与注释 1.3 运行结果 2. 动态申请字符类设备号 2.1 所需函数与头文件 2.2 源码与注释 2.3 运行结果 3. ...

  5. linux中I/O设备分为两类:字符设备和块设备。

    Linux中I/O设备分为两类:字符设备和块设备.两种设备本身没有严格限制,但是,基于不同的功能进行了分类. (1)字符设备:提供连续的数据流,应用程序可以顺序读取,通常不支持随机存取.相反,此类设备 ...

  6. 嵌入式Linux中I2C设备驱动程序的研究与实现

    I2C是"Inter Integrated Circuit Bus"的缩写,中文译成"内部集成电路总线", 它是Philips 公司于20 世纪80 年代研发成 ...

  7. linux中不识别memcy,c - Linux设备驱动程序:找不到符号“memcpy” - 堆栈内存溢出...

    我正在尝试编写Linux设备驱动程序. 我已经让它工作得很好,直到我尝试使用"memcpy". 我甚至没有得到编译器错误,当我"制造"它只是警告我: WARNI ...

  8. linux中scsi驱动程序,探索 Linux 通用 SCSI 驱动器

    转载:https://www.ibm.com/developerworks/cn/linux/l-scsi-api/#ibm-pcon SCSI 客户机/服务器模型 在主机和存储介质进行通信期间,主机 ...

  9. 超专业解析!10分钟带你搞懂Linux中直接I/O原理

    导语 | 本文主要以一张图为基础,向大家介绍Linux在I/O上做了哪些事情,即Linux中直接I/O原理,希望本文的经验和思路能为读者提供一些帮助和思考. 引言 我们先看一张图: 这张图大体上描述了 ...

  10. linux中的热插拔和mdev机制

    mdev手册(自己翻译的留着看) mdev实现U盘或SD卡的自动挂载 mdev的使用以及mdev.conf的规则配置--busybox linux中的热插拔和mdev机制 关于实现udev/mdev自 ...

最新文章

  1. Django源码分析10:makemigrations命令概述
  2. python多久学会自学-python自学多久
  3. 用python简单处理图片(2):图像通道\几何变换\裁剪
  4. 五分钟快速搭建Serverless免费邮件服务
  5. 2021 程序媛跳槽记:学习计划篇(已收获字节等offer)
  6. 帝国CMS7.5响应式后台美化模板 支持GBK+UTF
  7. can通道采样频率_关于CAN通信速率设置
  8. 新华三模拟器STP和RSTP及其MSTP的作用与配置
  9. 四川师范大学大学计算机基础,大学计算机基础课程教学改革探索——以四川师范大学为例...
  10. ①变量、常量、数据类型解释 ②标识符命原则 ③sizeof使用原则 ④float型科学计数法 ⑤字符转换到ASCII表 ⑥\t 的使用意义【黑马程序员视频】
  11. 2010年度十大心理学发现
  12. 音乐播放器制作 (HTML + CSS + JavaScript)
  13. 人生没有白走的路,走过的都算数
  14. 产品可用性原则:网页设计点睛秘笈
  15. Hive in、exists 和 left semi join
  16. js ios调用ios方法_通过iOS 13的模式演示调用生命周期方法
  17. SAR信号处理之窗函数9——凯泽(Kaiser)窗
  18. 什么硬技能,什么是软技能,怎么提高它们!
  19. cavans图形绘制(直线、矩形、原型、贝塞尔曲线、渐变背景)
  20. 苏泊尔 CFXB30FC19电源板 原理图 苏泊尔FC19维修手册摘录

热门文章

  1. python管理系统web版_Python从零搭建Conf_Web配置管理平台
  2. Visual SVN Server
  3. 用matlab对微分方程组进行仿真,基于MATLAB的微分方程组的数值计算
  4. MATLAB画频率响应曲线(幅频特性和相频特性)并将横坐标转换为赫兹hz单位
  5. 连续状态空间模型离散化
  6. C语言反汇编 - 函数与结构体
  7. 安装使用FLTK图形库
  8. 【Oracle19C】数据库基本知识
  9. 使用js实现简单的动画效果
  10. 无人驾驶全局路径规划之RRT算法