linux 设备驱动分类及特点

        计算机系统的硬件主要由 CPU、 存储器和外设组成。 随着 IC 制作工艺的发展, 目前, 芯片的集成度越来越高, 往往在 CPU 内部就集成了存储器和外设适配器。 譬如, 相当多的 ARM、 PowerPC、 MIPS 等处理器都集成了 UART、 I2C 控制器、 SPI 控制器、 USB 控制器、 SDRAM 控制器等, 有的处理器还集成了 GPU(图形处理器) 、 视频编解码器等。 驱动针对的对象是存储器和外设(包括 CPU 内部集成的存储器和外设, 而不是针对 CPU 内核。 Linux 将存储器和外设分为 3 个基础大类: 字符设备驱动, 块设备驱动, 网络设备驱动。
        其中, 理解和掌握字符设备驱动的概念最重要, 因为在后续工作中我们遇到的大部分是字符设备。 为什么会这么说呢? 比如说我们选了一个 cpu,不管它是哪个厂家的, 比如它是三星的或者恩智浦的或者 T(I 德州仪器) , 那么他们都会给你提供一个 bsp 包, 在这个开发包里面, 像块设备驱动和网络设备驱动已经做好了, 我们要做的事情是配置一下就可以用了。 平常开发的时候用的最多的就是字符设备驱动, 我们掌握了字符设备的开发, 那么我们开发产品基本上就没有什么问题了。
        字符设备指那些必须以串行顺序依次进行访问的设备, 如触摸屏、 磁带驱动器、 鼠标等。 块设备可以按任意顺序进行访问, 以块为单位进行操作, 如硬盘、 eMMC 等。 字符设备和块设备的驱动设计有出很大的差异, 但是对于用户而言, 它们都要使用文件系统的操作接口 open() 、 close() 、 read() 、 write()等进行访问。 网络设备主要有哪些呢? 从字面意思可以看出, 和网络相关的都是网络设备, 比如 WiFi, 以太网。 在 Linux 系统中, 网络设备面向数据包的接收和发送而设计, 它并不倾向于对应于文件系统的节点。内核与网络设备的通信与内核和字符设备、 网络设备的通信方式完全不同, 网络设备主要还是使用套接字接口。
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

木士易

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值